Nothing Special   »   [go: up one dir, main page]

0% found this document useful (0 votes)
69 views7 pages

Hacking SQL Server

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 7

Hacking

/ Hacking
Exposed
Color profile: Generic
CMYK printer
profile
Composite Default screen

Windows 2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3
/ Front Matter

CONTENTS
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xix
xxi
xxiii

Part I
Foundations

1 Network and System Security Basics . . . . . . . . . . . . . . . . . . . . .

Basic Security Practices . . . . . . . . . . . . . . . . . . . . . . . . .


Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . . .

4
7
7

2 The Windows 2000 Security Architecture from the Hackers Perspective . .

9
10
12
12
13
15
15
16

The Windows 2000 Security Model . . . . . . .


Security Principles . . . . . . . . . . . . . . . .
Users . . . . . . . . . . . . . . . . . . . . .
Groups . . . . . . . . . . . . . . . . . . . .
Special Identities . . . . . . . . . . . . . .
Other Security Principles and Containers
The SAM and Active Directory . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

xi

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:49 AM

/ Hacking
Color Hacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen

xii

2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter

Hacking Exposed Windows 2000: Network Security Secrets & Solutions

Forests, Trees, and Domains . . . . . . . . . . . . . . . . . .


Scope: Local, Global, and Universal . . . . . . . . . .
Trusts . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Administrative Boundaries: Forest or Domain? . . . .
SIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Putting It All Together: Authentication and Authorization
The Token . . . . . . . . . . . . . . . . . . . . . . . . .
Network Authentication . . . . . . . . . . . . . . . . .
Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

17
18
19
20
22
24
24
27
29
30
32

Part II
Profiling

3 Footprinting and Scanning . . . . . . . . . . . . . . . . . . . . . . . . . .


Footprinting . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Importance of Footprinting and Scanning Continuously
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . .

38
43
54
54
54

4 Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57
58
58
59
66
67
81
85
89
91

. .
.
. .
. .
.
. .
. .
. .
. .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

37

.
.
.
.
.

Prelude: Reviewing Scan Results . . .


NetBIOS Names vs. IP Addresses
NetBIOS Network Enumeration . . . .
Windows 2000 DNS Enumeration . .
Windows 2000 Host Enumeration
SNMP Enumeration . . . . . . . . . .
Active Directory Enumeration . . . . .
Summary . . . . . . . . . . . . . . . . .
References and Further Reading . . .

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

Part III
Divide and Conquer

5 Hacking CIFS/SMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Guessing SMB Passwords . . . . . . . . . . . . . . . . . . . .
Close Existing Null Sessions to Target . . . . . . . . . .
Review Enumeration Results . . . . . . . . . . . . . . .
Avoid Account Lockout . . . . . . . . . . . . . . . . . .
The Importance of Administrator and Service Accounts

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

95
96
97
97
98
99

/ Hacking
ColorzHacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen

2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter

Contents

Eavesdropping on SMB Authentication . . . . . . . . . . . . . . .


Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . . .

112
126
127

6 Privilege Escalation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

129
131
133
136
137
137

Named Pipes Prediction . . . . . . . . . . . . .


NetDDE Requests Run as SYSTEM . . . . . . .
General Privilege Escalation Countermeasures
Summary . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

7 Getting Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command-line Control . . . . . . . . . . . . .
Graphical User Interface (GUI) Control . . .
Summary . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

140
146
149
149

8 Expanding Influence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

151
152
154
154
154
156
156
164
169
170
172
176
179
179

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

139

.
.
.
.

Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extracting Passwords . . . . . . . . . . . . . . . . . . . . .
Pulling Reversibly Encrypted Passwords . . . . . .
Grabbing Cleartext Passwords from the LSA Cache
Password Cracking . . . . . . . . . . . . . . . . . . . . . .
The LM Hash Weakness . . . . . . . . . . . . . . . .
File Searching . . . . . . . . . . . . . . . . . . . . . . . . .
Trojan GINAs . . . . . . . . . . . . . . . . . . . . . . . . .
Sniffing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Island Hopping . . . . . . . . . . . . . . . . . . . . . . . .
Port Redirection . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

9 Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Rogue User Accounts . . . . . . . . . . . . . . . . .
Trojan Logon Screens . . . . . . . . . . . . . . . . . . . . . . .
Remote Control . . . . . . . . . . . . . . . . . . . . . . . . . .
Back-Door Server Packages . . . . . . . . . . . . . . . .
Where Back Doors and Trojans Are Planted . . . . . . . . . .
Startup Folders . . . . . . . . . . . . . . . . . . . . . . .
Startup Registry Keys . . . . . . . . . . . . . . . . . . .
Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using a Web Browser Startup Page to Download Code
Scheduled Jobs . . . . . . . . . . . . . . . . . . . . . . .

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

181
182
183
183
183
185
186
186
187
187
188

xiii

/ Hacking
Color Hacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen

xiv

2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter

Hacking Exposed Windows 2000: Network Security Secrets & Solutions

Rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Covering tracks . . . . . . . . . . . . . . . . . . . . . . . .
Erasing the Logs . . . . . . . . . . . . . . . . . . . .
Hiding Files . . . . . . . . . . . . . . . . . . . . . . .
General Countermeasures: A Mini-Forensic Examination
Automated Tools . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

188
190
190
190
194
194
201
201

Part IV
Exploiting Vulnerable Services and Clients

10 Hacking IIS 5 and Web Applications . . . . . . . . . . . . . . . . . . . . .


Hacking IIS 5 . . . . . . . . . . . . . . . . . . . . . .
IIS Hacking Basics . . . . . . . . . . . . . . . .
IIS 5 Buffer Overflows . . . . . . . . . . . . . .
File System Traversal . . . . . . . . . . . . . . .
Writing Files to the Web Server . . . . . . . . .
Escalating Privileges on IIS 5 . . . . . . . . . .
Source Code Revelation Attacks . . . . . . . .
Web Server Security Assessment Tools . . . . . . . .
Stealth HTTP Scanner . . . . . . . . . . . . . .
SSLProxy . . . . . . . . . . . . . . . . . . . . . .
Achilles . . . . . . . . . . . . . . . . . . . . . .
wfetch . . . . . . . . . . . . . . . . . . . . . . .
whisker . . . . . . . . . . . . . . . . . . . . . .
Hacking Web Applications . . . . . . . . . . . . . .
Case Study: Penetration of a Web Application
Summary . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . .

206
206
212
222
229
234
238
249
249
250
251
252
253
255
255
258
261

11 Hacking SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

267
268
272
272
273
273
273
274
274
275

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

205

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Case Study: Penetration of a SQL Server


SQL Server Security Concepts . . . . . .
Network Libraries . . . . . . . . .
Security Modes . . . . . . . . . . .
Logins . . . . . . . . . . . . . . . .
Users . . . . . . . . . . . . . . . . .
Roles . . . . . . . . . . . . . . . . .
Logging . . . . . . . . . . . . . . .
SQL Server 2000 Changes . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

/ Hacking
ColorzHacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen

2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter

Contents

Hacking SQL Server . . . . . . . . . . . . . . . . . . . . . . . .


SQL Server Information Gathering . . . . . . . . . . . . .
SQL Server Hacking Tools and Techniques . . . . . . . .
Known SQL Server Vulnerabilities . . . . . . . . . . . . .
SQL Code Injection Attacks . . . . . . . . . . . . . . . . .
Abusing SQL Extended Stored Procedures to Manipulate
Windows 2000 . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Security Best Practices . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

276
277
279
289
293

.
.
.
.

.
.
.
.

298
302
306
307

12 Hacking Terminal Server . . . . . . . . . . . . . . . . . . . . . . . . . . .

309
310
311
311
311
312
315
319
319
321
322
323

Terminal Server Basics . . . . . . . . . . . . . . . .


Server . . . . . . . . . . . . . . . . . . . . . .
Remote Desktop Protocol (RDP) . . . . . . .
Clients . . . . . . . . . . . . . . . . . . . . . .
Identifying and Enumerating TS . . . . . . . . . .
Attacking TS . . . . . . . . . . . . . . . . . . . . . .
Harden Up! . . . . . . . . . . . . . . . . . . .
Basic Terminal Server Security . . . . . . . .
Advanced Terminal Server Security Features
Summary . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

13 Hacking Microsoft Internet Clients . . . . . . . . . . . . . . . . . . . . . .


Attack Categories . . . . . . . . . . . . . . . . . . . .
Implementing Internet Client Attacks . . . . . . . .
Malicious Web Page . . . . . . . . . . . . . . .
Malicious Email . . . . . . . . . . . . . . . . . .
Malicious Newsgroup/List Posting . . . . . .
Attacks . . . . . . . . . . . . . . . . . . . . . . . . . .
Buffer Overflows . . . . . . . . . . . . . . . . .
Executing Commands . . . . . . . . . . . . . .
Writing Local Files . . . . . . . . . . . . . . . .
Payloads: VBS Address Book Worms . . . . .
Reading Local Files . . . . . . . . . . . . . . . .
Invoking Outbound Client Connections . . . .
Putting It All Together: A Complete Client Attack .
General Countermeasures . . . . . . . . . . . . . . .
Why Not Abandon Microsoft Internet Clients?
IE Security Zones . . . . . . . . . . . . . . . . .
Antivirus on the Client and Server . . . . . . .
Gateway-Based Content Filtering . . . . . . . .

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

325
326
327
327
327
330
330
330
335
338
342
345
348
350
355
356
357
363
364

xv

/ Hacking
Color Hacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen

xvi

2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter

Hacking Exposed Windows 2000: Network Security Secrets & Solutions

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . . .

365
366

14 Physical Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

371
372
374
381
382

Offline Attacks Against the SAM


Implications for EFS . . . . . . .
Summary . . . . . . . . . . . . . .
References and Further Reading

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

15 Denial of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Current Windows 2000 DoS Attacks . . .
Best Practices for Defending DoS . . . . .
Best Practices . . . . . . . . . . . . .
Windows 2000Specific DoS Advice
Summary . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

385

.
.
.
.
.
.

387
395
396
396
399
399

16 Windows 2000 Security Features and Tools . . . . . . . . . . . . . . . . .

403
404
405
408
408
409
410
411
413
413
413
418
424
426
427
428
429
431
431
433
433

Part V
Playing Defense

Security Templates and Security Configuration and Analysis . .


Security Templates . . . . . . . . . . . . . . . . . . . . . . .
Security Configuration and Analysis . . . . . . . . . . . . .
Group Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Group Policy Defined . . . . . . . . . . . . . . . . . . . . .
Working with Group Policy . . . . . . . . . . . . . . . . . .
How Group Policy Is Applied . . . . . . . . . . . . . . . . .
IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Advantages of IPSec Filters . . . . . . . . . . . . . . . . . .
Known Limitations of IPSec Filtering . . . . . . . . . . . .
Creating an IPSec Policy Step by Step . . . . . . . . . . . .
Using ipsecpol to Manage Filters from the Command Line
IPSec Tools . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Encrypting File System . . . . . . . . . . . . . . . . . . . . . . . .
runas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows File Protection . . . . . . . . . . . . . . . . . . . . . . .
Bypassing WFP . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . .

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:51 AM

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

/ Hacking
ColorzHacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen

2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter

Contents

17 The Future of Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . .


The Future of Windows: A Roadmap . . . . . . . . . . . . . . .
.NET Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . .
Common Language Runtime (CLR) . . . . . . . . . . . .
Frameworks Classes . . . . . . . . . . . . . . . . . . . . .
ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Code Name Whistler . . . . . . . . . . . . . . . . . . . . . . . .
Whistler Versions . . . . . . . . . . . . . . . . . . . . . . .
Whistler Security Features . . . . . . . . . . . . . . . . . .
A Note on Raw Sockets and Other Unsubstantiated Claims
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

A Windows 2000 Security Checklist . . . . . . . . . . . . . . . . . . . . . .


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

451
452
452
453
453
458
460
461
461
462
465
467
468
470
470
471

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

473

Caveat Emptor: Roles and Responsibilities


Preinstallation Considerations . . . . . . . .
Basic Windows 2000 Hardening . . . . . . .
Non-Template Recommendations . .
Security Template Recommendations
IPSec Filters . . . . . . . . . . . . . . .
Group Policy . . . . . . . . . . . . . .
Miscellaneous Configurations . . . . .
IIS 5 Security Considerations . . . . . . . .
SQL Server Security Considerations . . . .
Terminal Server Security Considerations . .
Denial-of-Service Considerations . . . . . .
Internet Client Security . . . . . . . . . . . .
Audit Yourself! . . . . . . . . . . . . . . . .
References and Further Reading . . . . . .

435
436
436
437
438
438
438
438
439
448
449
449

P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:51 AM

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

xvii

You might also like