14002d07d:	e8 16 49 00 00       	call   0x140031998
14002d082:	48 8b c3             	mov    %rbx,%rax
14002d085:	ba ff 07 00 00       	mov    $0x7ff,%edx
14002d08a:	48 c1 e8 34          	shr    $0x34,%rax
14002d08e:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
14002d095:	ff 0f 00
14002d098:	48 23 c2             	and    %rdx,%rax
14002d09b:	75 21                	jne    0x14002d0be
14002d09d:	48 85 d9             	test   %rbx,%rcx
14002d0a0:	74 0d                	je     0x14002d0af
14002d0a2:	f7 45 80 00 00 00 01 	testl  $0x1000000,-0x80(%rbp)
14002d0a9:	0f 84 c3 00 00 00    	je     0x14002d172
14002d0af:	41 83 64 24 04 00    	andl   $0x0,0x4(%r12)
14002d0b5:	4c 8d 05 ec f5 00 00 	lea    0xf5ec(%rip),%r8        # 0x14003c6a8
14002d0bc:	eb 60                	jmp    0x14002d11e
14002d0be:	48 3b c2             	cmp    %rdx,%rax
14002d0c1:	0f 85 ab 00 00 00    	jne    0x14002d172
14002d0c7:	48 8b c3             	mov    %rbx,%rax
14002d0ca:	48 23 c1             	and    %rcx,%rax
14002d0cd:	75 05                	jne    0x14002d0d4
14002d0cf:	41 8b c7             	mov    %r15d,%eax
14002d0d2:	eb 2a                	jmp    0x14002d0fe
14002d0d4:	48 85 db             	test   %rbx,%rbx
14002d0d7:	79 16                	jns    0x14002d0ef
14002d0d9:	48 b9 00 00 00 00 00 	movabs $0x8000000000000,%rcx
14002d0e0:	00 08 00
14002d0e3:	48 3b c1             	cmp    %rcx,%rax
14002d0e6:	75 07                	jne    0x14002d0ef
14002d0e8:	b8 04 00 00 00       	mov    $0x4,%eax
14002d0ed:	eb 0f                	jmp    0x14002d0fe
14002d0ef:	48 8b c3             	mov    %rbx,%rax
14002d0f2:	48 c1 e8 33          	shr    $0x33,%rax
14002d0f6:	f7 d0                	not    %eax
14002d0f8:	41 23 c7             	and    %r15d,%eax
14002d0fb:	83 c8 02             	or     $0x2,%eax
14002d0fe:	45 89 7c 24 04       	mov    %r15d,0x4(%r12)
14002d103:	41 2b c7             	sub    %r15d,%eax
14002d106:	74 44                	je     0x14002d14c
14002d108:	41 2b c7             	sub    %r15d,%eax
14002d10b:	74 36                	je     0x14002d143
14002d10d:	41 2b c7             	sub    %r15d,%eax
14002d110:	74 28                	je     0x14002d13a
14002d112:	41 3b c7             	cmp    %r15d,%eax
14002d115:	75 5b                	jne    0x14002d172
14002d117:	4c 8d 05 a6 48 01 00 	lea    0x148a6(%rip),%r8        # 0x1400419c4
14002d11e:	48 8b 95 58 07 00 00 	mov    0x758(%rbp),%rdx
14002d125:	49 8b ce             	mov    %r14,%rcx
14002d128:	e8 0b 37 ff ff       	call   0x140020838
14002d12d:	85 c0                	test   %eax,%eax
14002d12f:	0f 85 1f 11 00 00    	jne    0x14002e254
14002d135:	e9 e5 10 00 00       	jmp    0x14002e21f
14002d13a:	4c 8d 05 7b 48 01 00 	lea    0x1487b(%rip),%r8        # 0x1400419bc
14002d141:	eb db                	jmp    0x14002d11e
14002d143:	4c 8d 05 6a 48 01 00 	lea    0x1486a(%rip),%r8        # 0x1400419b4
14002d14a:	eb d2                	jmp    0x14002d11e
14002d14c:	48 8b 95 58 07 00 00 	mov    0x758(%rbp),%rdx
14002d153:	4c 8d 05 52 48 01 00 	lea    0x14852(%rip),%r8        # 0x1400419ac
14002d15a:	49 8b ce             	mov    %r14,%rcx
14002d15d:	e8 d6 36 ff ff       	call   0x140020838
14002d162:	85 c0                	test   %eax,%eax
14002d164:	0f 85 ea 10 00 00    	jne    0x14002e254
14002d16a:	45 33 ff             	xor    %r15d,%r15d
14002d16d:	e9 ad 10 00 00       	jmp    0x14002e21f
14002d172:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
14002d179:	ff ff 7f
14002d17c:	48 8d 4c 24 68       	lea    0x68(%rsp),%rcx
14002d181:	48 23 d8             	and    %rax,%rbx
14002d184:	45 33 c0             	xor    %r8d,%r8d
14002d187:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
14002d18c:	33 d2                	xor    %edx,%edx
14002d18e:	bb 1f 00 08 00       	mov    $0x8001f,%ebx
14002d193:	89 5c 24 6c          	mov    %ebx,0x6c(%rsp)
14002d197:	e8 fc 47 00 00       	call   0x140031998
14002d19c:	44 8b 44 24 6c       	mov    0x6c(%rsp),%r8d
14002d1a1:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
14002d1a6:	8b d3                	mov    %ebx,%edx
14002d1a8:	e8 eb 47 00 00       	call   0x140031998
14002d1ad:	f2 0f 10 44 24 50    	movsd  0x50(%rsp),%xmm0
14002d1b3:	ff c6                	inc    %esi
14002d1b5:	41 b9 ff 07 00 00    	mov    $0x7ff,%r9d
14002d1bb:	f2 0f 11 44 24 58    	movsd  %xmm0,0x58(%rsp)
14002d1c1:	48 8b 54 24 58       	mov    0x58(%rsp),%rdx
14002d1c6:	4c 8b c2             	mov    %rdx,%r8
14002d1c9:	89 74 24 60          	mov    %esi,0x60(%rsp)
14002d1cd:	49 c1 e8 34          	shr    $0x34,%r8
14002d1d1:	be 02 00 00 00       	mov    $0x2,%esi
14002d1d6:	49 8b c8             	mov    %r8,%rcx
14002d1d9:	49 23 c9             	and    %r9,%rcx
14002d1dc:	48 8b c1             	mov    %rcx,%rax
14002d1df:	48 f7 d8             	neg    %rax
14002d1e2:	48 b8 00 00 00 00 00 	movabs $0x10000000000000,%rax
14002d1e9:	00 10 00
14002d1ec:	48 1b db             	sbb    %rbx,%rbx
14002d1ef:	48 23 d8             	and    %rax,%rbx
14002d1f2:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
14002d1f9:	ff 0f 00
14002d1fc:	48 23 d0             	and    %rax,%rdx
14002d1ff:	48 03 da             	add    %rdx,%rbx
14002d202:	48 f7 d9             	neg    %rcx
14002d205:	1b c0                	sbb    %eax,%eax
14002d207:	45 23 c1             	and    %r9d,%r8d
14002d20a:	44 8d 24 06          	lea    (%rsi,%rax,1),%r12d
14002d20e:	45 03 e0             	add    %r8d,%r12d
14002d211:	e8 7a 49 00 00       	call   0x140031b90
14002d216:	e8 a9 48 00 00       	call   0x140031ac4
14002d21b:	f2 0f 2c c8          	cvttsd2si %xmm0,%ecx
14002d21f:	89 5d a4             	mov    %ebx,-0x5c(%rbp)
14002d222:	8d 81 01 00 00 80    	lea    -0x7fffffff(%rcx),%eax
14002d228:	83 e0 fe             	and    $0xfffffffe,%eax
14002d22b:	f7 d8                	neg    %eax
14002d22d:	1b c0                	sbb    %eax,%eax
14002d22f:	48 c1 eb 20          	shr    $0x20,%rbx
14002d233:	23 c1                	and    %ecx,%eax
14002d235:	89 5d a8             	mov    %ebx,-0x58(%rbp)
14002d238:	89 44 24 30          	mov    %eax,0x30(%rsp)
14002d23c:	8b c3                	mov    %ebx,%eax
14002d23e:	f7 d8                	neg    %eax
14002d240:	1b d2                	sbb    %edx,%edx
14002d242:	f7 da                	neg    %edx
14002d244:	41 03 d7             	add    %r15d,%edx
14002d247:	89 55 a0             	mov    %edx,-0x60(%rbp)
14002d24a:	41 81 fc 34 04 00 00 	cmp    $0x434,%r12d
14002d251:	0f 82 1a 02 00 00    	jb     0x14002d471
14002d257:	33 c0                	xor    %eax,%eax
14002d259:	c7 85 48 03 00 00 00 	movl   $0x100000,0x348(%rbp)
14002d260:	00 10 00
14002d263:	89 85 44 03 00 00    	mov    %eax,0x344(%rbp)
14002d269:	89 b5 40 03 00 00    	mov    %esi,0x340(%rbp)
14002d26f:	85 db                	test   %ebx,%ebx
14002d271:	0f 84 0c 01 00 00    	je     0x14002d383
14002d277:	45 33 c0             	xor    %r8d,%r8d
14002d27a:	42 8b 44 85 a4       	mov    -0x5c(%rbp,%r8,4),%eax
14002d27f:	42 39 84 85 44 03 00 	cmp    %eax,0x344(%rbp,%r8,4)
14002d286:	00
14002d287:	0f 85 f6 00 00 00    	jne    0x14002d383
14002d28d:	45 03 c7             	add    %r15d,%r8d
14002d290:	44 3b c6             	cmp    %esi,%r8d
14002d293:	75 e5                	jne    0x14002d27a
14002d295:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
14002d29a:	45 8d 9c 24 ce fb ff 	lea    -0x432(%r12),%r11d
14002d2a1:	ff
14002d2a2:	45 8b c3             	mov    %r11d,%r8d
14002d2a5:	8d 42 ff             	lea    -0x1(%rdx),%eax
14002d2a8:	41 83 e3 1f          	and    $0x1f,%r11d
14002d2ac:	41 c1 e8 05          	shr    $0x5,%r8d
14002d2b0:	8b f7                	mov    %edi,%esi
14002d2b2:	49 8b df             	mov    %r15,%rbx
14002d2b5:	41 2b f3             	sub    %r11d,%esi
14002d2b8:	8b ce                	mov    %esi,%ecx
14002d2ba:	48 d3 e3             	shl    %cl,%rbx
14002d2bd:	41 2b df             	sub    %r15d,%ebx
14002d2c0:	0f bd 44 85 a4       	bsr    -0x5c(%rbp,%rax,4),%eax
14002d2c5:	44 8b e3             	mov    %ebx,%r12d
14002d2c8:	41 f7 d4             	not    %r12d
14002d2cb:	74 04                	je     0x14002d2d1
14002d2cd:	ff c0                	inc    %eax
14002d2cf:	eb 02                	jmp    0x14002d2d3
14002d2d1:	33 c0                	xor    %eax,%eax
14002d2d3:	2b f8                	sub    %eax,%edi
14002d2d5:	42 8d 04 02          	lea    (%rdx,%r8,1),%eax
14002d2d9:	83 f8 73             	cmp    $0x73,%eax
14002d2dc:	0f 87 81 00 00 00    	ja     0x14002d363
14002d2e2:	45 33 f6             	xor    %r14d,%r14d
14002d2e5:	44 3b df             	cmp    %edi,%r11d
14002d2e8:	41 0f 97 c6          	seta   %r14b
14002d2ec:	44 03 f2             	add    %edx,%r14d
14002d2ef:	45 03 f0             	add    %r8d,%r14d
14002d2f2:	41 83 fe 73          	cmp    $0x73,%r14d
14002d2f6:	77 6b                	ja     0x14002d363
14002d2f8:	41 8d 78 ff          	lea    -0x1(%r8),%edi
14002d2fc:	45 8d 56 ff          	lea    -0x1(%r14),%r10d
14002d300:	44 3b d7             	cmp    %edi,%r10d
14002d303:	74 48                	je     0x14002d34d
14002d305:	41 8b c2             	mov    %r10d,%eax
14002d308:	41 2b c0             	sub    %r8d,%eax
14002d30b:	8d 48 ff             	lea    -0x1(%rax),%ecx
14002d30e:	3b c2                	cmp    %edx,%eax
14002d310:	73 07                	jae    0x14002d319
14002d312:	44 8b 4c 85 a4       	mov    -0x5c(%rbp,%rax,4),%r9d
14002d317:	eb 03                	jmp    0x14002d31c
14002d319:	45 33 c9             	xor    %r9d,%r9d
14002d31c:	3b ca                	cmp    %edx,%ecx
14002d31e:	73 06                	jae    0x14002d326
14002d320:	8b 54 8d a4          	mov    -0x5c(%rbp,%rcx,4),%edx
14002d324:	eb 02                	jmp    0x14002d328
14002d326:	33 d2                	xor    %edx,%edx
14002d328:	41 23 d4             	and    %r12d,%edx
14002d32b:	8b ce                	mov    %esi,%ecx
14002d32d:	d3 ea                	shr    %cl,%edx
14002d32f:	44 23 cb             	and    %ebx,%r9d
14002d332:	41 8b cb             	mov    %r11d,%ecx
14002d335:	41 d3 e1             	shl    %cl,%r9d
14002d338:	41 0b d1             	or     %r9d,%edx
14002d33b:	42 89 54 95 a4       	mov    %edx,-0x5c(%rbp,%r10,4)
14002d340:	41 ff ca             	dec    %r10d
14002d343:	44 3b d7             	cmp    %edi,%r10d
14002d346:	74 05                	je     0x14002d34d
14002d348:	8b 55 a0             	mov    -0x60(%rbp),%edx
14002d34b:	eb b8                	jmp    0x14002d305
14002d34d:	33 c9                	xor    %ecx,%ecx
14002d34f:	45 85 c0             	test   %r8d,%r8d
14002d352:	74 12                	je     0x14002d366
14002d354:	83 64 8d a4 00       	andl   $0x0,-0x5c(%rbp,%rcx,4)
14002d359:	41 03 cf             	add    %r15d,%ecx
14002d35c:	41 3b c8             	cmp    %r8d,%ecx
14002d35f:	75 f3                	jne    0x14002d354
14002d361:	eb 03                	jmp    0x14002d366
14002d363:	45 33 f6             	xor    %r14d,%r14d
14002d366:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
14002d36a:	45 8b e7             	mov    %r15d,%r12d
14002d36d:	44 89 bd 70 01 00 00 	mov    %r15d,0x170(%rbp)
14002d374:	c7 85 74 01 00 00 04 	movl   $0x4,0x174(%rbp)
14002d37b:	00 00 00
14002d37e:	e9 1f 03 00 00       	jmp    0x14002d6a2
14002d383:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
14002d388:	45 8d 9c 24 cd fb ff 	lea    -0x433(%r12),%r11d
14002d38f:	ff
14002d390:	45 8b c3             	mov    %r11d,%r8d
14002d393:	8d 42 ff             	lea    -0x1(%rdx),%eax
14002d396:	41 83 e3 1f          	and    $0x1f,%r11d
14002d39a:	41 c1 e8 05          	shr    $0x5,%r8d
14002d39e:	8b f7                	mov    %edi,%esi
14002d3a0:	49 8b df             	mov    %r15,%rbx
14002d3a3:	41 2b f3             	sub    %r11d,%esi
14002d3a6:	8b ce                	mov    %esi,%ecx
14002d3a8:	48 d3 e3             	shl    %cl,%rbx
14002d3ab:	41 2b df             	sub    %r15d,%ebx
14002d3ae:	0f bd 44 85 a4       	bsr    -0x5c(%rbp,%rax,4),%eax
14002d3b3:	44 8b e3             	mov    %ebx,%r12d
14002d3b6:	41 f7 d4             	not    %r12d
14002d3b9:	74 04                	je     0x14002d3bf
14002d3bb:	ff c0                	inc    %eax
14002d3bd:	eb 02                	jmp    0x14002d3c1
14002d3bf:	33 c0                	xor    %eax,%eax
14002d3c1:	2b f8                	sub    %eax,%edi
14002d3c3:	42 8d 04 02          	lea    (%rdx,%r8,1),%eax
14002d3c7:	83 f8 73             	cmp    $0x73,%eax
14002d3ca:	0f 87 81 00 00 00    	ja     0x14002d451
14002d3d0:	45 33 f6             	xor    %r14d,%r14d
14002d3d3:	44 3b df             	cmp    %edi,%r11d
14002d3d6:	41 0f 97 c6          	seta   %r14b
14002d3da:	44 03 f2             	add    %edx,%r14d
14002d3dd:	45 03 f0             	add    %r8d,%r14d
14002d3e0:	41 83 fe 73          	cmp    $0x73,%r14d
14002d3e4:	77 6b                	ja     0x14002d451
14002d3e6:	41 8d 78 ff          	lea    -0x1(%r8),%edi
14002d3ea:	45 8d 56 ff          	lea    -0x1(%r14),%r10d
14002d3ee:	44 3b d7             	cmp    %edi,%r10d
14002d3f1:	74 48                	je     0x14002d43b
14002d3f3:	41 8b c2             	mov    %r10d,%eax
14002d3f6:	41 2b c0             	sub    %r8d,%eax
14002d3f9:	8d 48 ff             	lea    -0x1(%rax),%ecx
14002d3fc:	3b c2                	cmp    %edx,%eax
14002d3fe:	73 07                	jae    0x14002d407
14002d400:	44 8b 4c 85 a4       	mov    -0x5c(%rbp,%rax,4),%r9d
14002d405:	eb 03                	jmp    0x14002d40a
14002d407:	45 33 c9             	xor    %r9d,%r9d
14002d40a:	3b ca                	cmp    %edx,%ecx
14002d40c:	73 06                	jae    0x14002d414
14002d40e:	8b 54 8d a4          	mov    -0x5c(%rbp,%rcx,4),%edx
14002d412:	eb 02                	jmp    0x14002d416
14002d414:	33 d2                	xor    %edx,%edx
14002d416:	41 23 d4             	and    %r12d,%edx
14002d419:	8b ce                	mov    %esi,%ecx
14002d41b:	d3 ea                	shr    %cl,%edx
14002d41d:	44 23 cb             	and    %ebx,%r9d
14002d420:	41 8b cb             	mov    %r11d,%ecx
14002d423:	41 d3 e1             	shl    %cl,%r9d
14002d426:	41 0b d1             	or     %r9d,%edx
14002d429:	42 89 54 95 a4       	mov    %edx,-0x5c(%rbp,%r10,4)
14002d42e:	41 ff ca             	dec    %r10d
14002d431:	44 3b d7             	cmp    %edi,%r10d
14002d434:	74 05                	je     0x14002d43b
14002d436:	8b 55 a0             	mov    -0x60(%rbp),%edx
14002d439:	eb b8                	jmp    0x14002d3f3
14002d43b:	33 c9                	xor    %ecx,%ecx
14002d43d:	45 85 c0             	test   %r8d,%r8d
14002d440:	74 12                	je     0x14002d454
14002d442:	83 64 8d a4 00       	andl   $0x0,-0x5c(%rbp,%rcx,4)
14002d447:	41 03 cf             	add    %r15d,%ecx
14002d44a:	41 3b c8             	cmp    %r8d,%ecx
14002d44d:	75 f3                	jne    0x14002d442
14002d44f:	eb 03                	jmp    0x14002d454
14002d451:	45 33 f6             	xor    %r14d,%r14d
14002d454:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
14002d458:	45 8b e7             	mov    %r15d,%r12d
14002d45b:	44 89 bd 70 01 00 00 	mov    %r15d,0x170(%rbp)
14002d462:	c7 85 74 01 00 00 02 	movl   $0x2,0x174(%rbp)
14002d469:	00 00 00
14002d46c:	e9 31 02 00 00       	jmp    0x14002d6a2
14002d471:	41 83 fc 36          	cmp    $0x36,%r12d
14002d475:	0f 84 44 01 00 00    	je     0x14002d5bf
14002d47b:	33 c0                	xor    %eax,%eax
14002d47d:	c7 85 48 03 00 00 00 	movl   $0x100000,0x348(%rbp)
14002d484:	00 10 00
14002d487:	89 85 44 03 00 00    	mov    %eax,0x344(%rbp)
14002d48d:	89 b5 40 03 00 00    	mov    %esi,0x340(%rbp)
14002d493:	85 db                	test   %ebx,%ebx
14002d495:	0f 84 24 01 00 00    	je     0x14002d5bf
14002d49b:	45 33 c0             	xor    %r8d,%r8d
14002d49e:	42 8b 44 85 a4       	mov    -0x5c(%rbp,%r8,4),%eax
14002d4a3:	42 39 84 85 44 03 00 	cmp    %eax,0x344(%rbp,%r8,4)
14002d4aa:	00
14002d4ab:	0f 85 0e 01 00 00    	jne    0x14002d5bf
14002d4b1:	45 03 c7             	add    %r15d,%r8d
14002d4b4:	44 3b c6             	cmp    %esi,%r8d
14002d4b7:	75 e5                	jne    0x14002d49e
14002d4b9:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
14002d4be:	0f bd c3             	bsr    %ebx,%eax
14002d4c1:	74 04                	je     0x14002d4c7
14002d4c3:	ff c0                	inc    %eax
14002d4c5:	eb 02                	jmp    0x14002d4c9
14002d4c7:	33 c0                	xor    %eax,%eax
14002d4c9:	45 33 f6             	xor    %r14d,%r14d
14002d4cc:	2b f8                	sub    %eax,%edi
14002d4ce:	3b fe                	cmp    %esi,%edi
14002d4d0:	41 0f 92 c6          	setb   %r14b
14002d4d4:	41 83 cb ff          	or     $0xffffffff,%r11d
14002d4d8:	44 03 f2             	add    %edx,%r14d
14002d4db:	41 83 fe 73          	cmp    $0x73,%r14d
14002d4df:	0f 86 87 00 00 00    	jbe    0x14002d56c
14002d4e5:	45 33 f6             	xor    %r14d,%r14d
14002d4e8:	be 36 04 00 00       	mov    $0x436,%esi
14002d4ed:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
14002d4f1:	41 2b f4             	sub    %r12d,%esi
14002d4f4:	48 8d 8d 44 03 00 00 	lea    0x344(%rbp),%rcx
14002d4fb:	8b fe                	mov    %esi,%edi
14002d4fd:	33 d2                	xor    %edx,%edx
14002d4ff:	c1 ef 05             	shr    $0x5,%edi
14002d502:	48 8d 1c bd 00 00 00 	lea    0x0(,%rdi,4),%rbx
14002d509:	00
14002d50a:	4c 8b c3             	mov    %rbx,%r8
14002d50d:	e8 9e d9 00 00       	call   0x14003aeb0
14002d512:	83 e6 1f             	and    $0x1f,%esi
14002d515:	41 8b c7             	mov    %r15d,%eax
14002d518:	40 8a ce             	mov    %sil,%cl
14002d51b:	d3 e0                	shl    %cl,%eax
14002d51d:	89 84 1d 44 03 00 00 	mov    %eax,0x344(%rbp,%rbx,1)
14002d524:	44 8d 67 01          	lea    0x1(%rdi),%r12d
14002d528:	45 8b c4             	mov    %r12d,%r8d
14002d52b:	49 c1 e0 02          	shl    $0x2,%r8
14002d52f:	44 89 a5 40 03 00 00 	mov    %r12d,0x340(%rbp)
14002d536:	44 89 a5 70 01 00 00 	mov    %r12d,0x170(%rbp)
14002d53d:	4d 85 c0             	test   %r8,%r8
14002d540:	0f 84 5c 01 00 00    	je     0x14002d6a2
14002d546:	bb cc 01 00 00       	mov    $0x1cc,%ebx
14002d54b:	48 8d 8d 74 01 00 00 	lea    0x174(%rbp),%rcx
14002d552:	4c 3b c3             	cmp    %rbx,%r8
14002d555:	0f 87 26 01 00 00    	ja     0x14002d681
14002d55b:	48 8d 95 44 03 00 00 	lea    0x344(%rbp),%rdx