1401575c6:	4c 8d 05 eb b3 9e 00 	lea    0x9eb3eb(%rip),%r8        # 0x140b429b8
1401575cd:	48 8d 15 0c 93 9e 00 	lea    0x9e930c(%rip),%rdx        # 0x140b408e0
1401575d4:	48 8b cf             	mov    %rdi,%rcx
1401575d7:	48 8b c3             	mov    %rbx,%rax
1401575da:	ff 15 58 56 9b 00    	call   *0x9b5658(%rip)        # 0x140b0cc38
1401575e0:	8b d8                	mov    %eax,%ebx
1401575e2:	8b f8                	mov    %eax,%edi
1401575e4:	c1 ef 1f             	shr    $0x1f,%edi
1401575e7:	48 8b 85 58 01 00 00 	mov    0x158(%rbp),%rax
1401575ee:	48 83 f8 07          	cmp    $0x7,%rax
1401575f2:	76 38                	jbe    0x14015762c
1401575f4:	48 8d 04 45 02 00 00 	lea    0x2(,%rax,2),%rax
1401575fb:	00
1401575fc:	48 8b 8d 40 01 00 00 	mov    0x140(%rbp),%rcx
140157603:	48 8b d1             	mov    %rcx,%rdx
140157606:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
14015760c:	72 18                	jb     0x140157626
14015760e:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
140157612:	48 2b d1             	sub    %rcx,%rdx
140157615:	48 8d 42 f8          	lea    -0x8(%rdx),%rax
140157619:	48 83 f8 1f          	cmp    $0x1f,%rax
14015761d:	76 07                	jbe    0x140157626
14015761f:	ff 15 73 53 9b 00    	call   *0x9b5373(%rip)        # 0x140b0c998
140157625:	cc                   	int3
140157626:	ff 15 94 52 9b 00    	call   *0x9b5294(%rip)        # 0x140b0c8c0
14015762c:	40 84 ff             	test   %dil,%dil
14015762f:	75 2e                	jne    0x14015765f
140157631:	49 8b 4e 20          	mov    0x20(%r14),%rcx
140157635:	48 8b 01             	mov    (%rcx),%rax
140157638:	48 8b 40 78          	mov    0x78(%rax),%rax
14015763c:	ff 15 f6 55 9b 00    	call   *0x9b55f6(%rip)        # 0x140b0cc38
140157642:	8b d8                	mov    %eax,%ebx
140157644:	85 c0                	test   %eax,%eax
140157646:	78 17                	js     0x14015765f
140157648:	49 8b 4e 20          	mov    0x20(%r14),%rcx
14015764c:	48 8b 01             	mov    (%rcx),%rax
14015764f:	48 8b 40 78          	mov    0x78(%rax),%rax
140157653:	ff 15 df 55 9b 00    	call   *0x9b55df(%rip)        # 0x140b0cc38
140157659:	8b d8                	mov    %eax,%ebx
14015765b:	85 c0                	test   %eax,%eax
14015765d:	79 02                	jns    0x140157661
14015765f:	8b f3                	mov    %ebx,%esi
140157661:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140157665:	e8 e6 c0 fd ff       	call   0x140133750
14015766a:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
14015766e:	ff 15 8c 4f 9b 00    	call   *0x9b4f8c(%rip)        # 0x140b0c600
140157674:	eb 02                	jmp    0x140157678
140157676:	8b f3                	mov    %ebx,%esi
140157678:	48 8d 8d d8 00 00 00 	lea    0xd8(%rbp),%rcx
14015767f:	e8 cc c0 fd ff       	call   0x140133750
140157684:	48 8d 8d d8 00 00 00 	lea    0xd8(%rbp),%rcx
14015768b:	ff 15 6f 4f 9b 00    	call   *0x9b4f6f(%rip)        # 0x140b0c600
140157691:	8b c6                	mov    %esi,%eax
140157693:	48 8b 8d 60 01 00 00 	mov    0x160(%rbp),%rcx
14015769a:	48 33 cc             	xor    %rsp,%rcx
14015769d:	e8 3e 7f 99 00       	call   0x140aef5e0
1401576a2:	48 8b 9c 24 b0 02 00 	mov    0x2b0(%rsp),%rbx
1401576a9:	00
1401576aa:	48 81 c4 70 02 00 00 	add    $0x270,%rsp
1401576b1:	41 5f                	pop    %r15
1401576b3:	41 5e                	pop    %r14
1401576b5:	5f                   	pop    %rdi
1401576b6:	5e                   	pop    %rsi
1401576b7:	5d                   	pop    %rbp
1401576b8:	c3                   	ret
1401576b9:	90                   	nop
1401576ba:	90                   	nop
1401576bb:	90                   	nop
1401576bc:	90                   	nop
1401576bd:	90                   	nop
1401576be:	90                   	nop
1401576bf:	90                   	nop
1401576c0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1401576c5:	57                   	push   %rdi
1401576c6:	48 83 ec 30          	sub    $0x30,%rsp
1401576ca:	48 8b fa             	mov    %rdx,%rdi
1401576cd:	48 8b d9             	mov    %rcx,%rbx
1401576d0:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
1401576d5:	4c 8d 0d 0c b0 b7 00 	lea    0xb7b00c(%rip),%r9        # 0x140cd26e8
1401576dc:	4c 8d 05 c5 af b7 00 	lea    0xb7afc5(%rip),%r8        # 0x140cd26a8
1401576e3:	33 d2                	xor    %edx,%edx
1401576e5:	48 8b 0f             	mov    (%rdi),%rcx
1401576e8:	e8 f1 ab 99 00       	call   0x140af22de
1401576ed:	48 85 c0             	test   %rax,%rax
1401576f0:	74 16                	je     0x140157708
1401576f2:	48 89 03             	mov    %rax,(%rbx)
1401576f5:	48 8b 47 08          	mov    0x8(%rdi),%rax
1401576f9:	48 89 43 08          	mov    %rax,0x8(%rbx)
1401576fd:	48 83 27 00          	andq   $0x0,(%rdi)
140157701:	48 83 67 08 00       	andq   $0x0,0x8(%rdi)
140157706:	eb 09                	jmp    0x140157711
140157708:	48 83 23 00          	andq   $0x0,(%rbx)
14015770c:	48 83 63 08 00       	andq   $0x0,0x8(%rbx)
140157711:	48 8b c3             	mov    %rbx,%rax
140157714:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140157719:	48 83 c4 30          	add    $0x30,%rsp
14015771d:	5f                   	pop    %rdi
14015771e:	c3                   	ret
14015771f:	90                   	nop
140157720:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140157725:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14015772a:	57                   	push   %rdi
14015772b:	41 56                	push   %r14
14015772d:	41 57                	push   %r15
14015772f:	48 83 ec 30          	sub    $0x30,%rsp
140157733:	4d 8b f0             	mov    %r8,%r14
140157736:	4c 8b fa             	mov    %rdx,%r15
140157739:	48 8b d9             	mov    %rcx,%rbx
14015773c:	b9 70 00 00 00       	mov    $0x70,%ecx
140157741:	ff 15 81 51 9b 00    	call   *0x9b5181(%rip)        # 0x140b0c8c8
140157747:	48 8b f8             	mov    %rax,%rdi
14015774a:	48 89 44 24 68       	mov    %rax,0x68(%rsp)
14015774f:	48 85 c0             	test   %rax,%rax
140157752:	75 07                	jne    0x14015775b
140157754:	ff 15 3e 4d 9b 00    	call   *0x9b4d3e(%rip)        # 0x140b0c498
14015775a:	90                   	nop
14015775b:	41 b9 01 00 00 00    	mov    $0x1,%r9d
140157761:	44 89 48 08          	mov    %r9d,0x8(%rax)
140157765:	44 89 48 0c          	mov    %r9d,0xc(%rax)
140157769:	48 8d 05 f0 26 9c 00 	lea    0x9c26f0(%rip),%rax        # 0x140b19e60
140157770:	48 89 07             	mov    %rax,(%rdi)
140157773:	48 8d 77 10          	lea    0x10(%rdi),%rsi
140157777:	4d 8b c6             	mov    %r14,%r8
14015777a:	49 8b d7             	mov    %r15,%rdx
14015777d:	48 8b ce             	mov    %rsi,%rcx
140157780:	e8 4b 9a f8 ff       	call   0x1400e11d0
140157785:	48 89 33             	mov    %rsi,(%rbx)
140157788:	48 89 7b 08          	mov    %rdi,0x8(%rbx)
14015778c:	48 8b c3             	mov    %rbx,%rax
14015778f:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
140157794:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
140157799:	48 83 c4 30          	add    $0x30,%rsp
14015779d:	41 5f                	pop    %r15
14015779f:	41 5e                	pop    %r14
1401577a1:	5f                   	pop    %rdi
1401577a2:	c3                   	ret
1401577a3:	90                   	nop
1401577a4:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1401577a9:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1401577ae:	55                   	push   %rbp
1401577af:	57                   	push   %rdi
1401577b0:	41 56                	push   %r14
1401577b2:	48 8b ec             	mov    %rsp,%rbp
1401577b5:	48 83 ec 50          	sub    $0x50,%rsp
1401577b9:	48 8b 05 80 78 b6 00 	mov    0xb67880(%rip),%rax        # 0x140cbf040
1401577c0:	48 33 c4             	xor    %rsp,%rax
1401577c3:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
1401577c7:	48 8b d1             	mov    %rcx,%rdx
1401577ca:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
1401577ce:	e8 dd ec ea ff       	call   0x1400064b0
1401577d3:	48 83 65 f0 00       	andq   $0x0,-0x10(%rbp)
1401577d8:	33 ff                	xor    %edi,%edi
1401577da:	48 8b 1d 87 3a bd 00 	mov    0xbd3a87(%rip),%rbx        # 0x140d2b268
1401577e1:	48 8b c3             	mov    %rbx,%rax
1401577e4:	4c 8b 0d 75 3a bd 00 	mov    0xbd3a75(%rip),%r9        # 0x140d2b260
1401577eb:	49 2b c1             	sub    %r9,%rax
1401577ee:	48 c1 f8 03          	sar    $0x3,%rax
1401577f2:	49 be cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r14
1401577f9:	cc cc cc
1401577fc:	49 0f af c6          	imul   %r14,%rax
140157800:	48 85 c0             	test   %rax,%rax
140157803:	74 70                	je     0x140157875
140157805:	33 f6                	xor    %esi,%esi
140157807:	48 8b c3             	mov    %rbx,%rax
14015780a:	49 2b c1             	sub    %r9,%rax
14015780d:	48 c1 f8 03          	sar    $0x3,%rax
140157811:	49 0f af c6          	imul   %r14,%rax
140157815:	48 3b f8             	cmp    %rax,%rdi
140157818:	0f 83 bc 00 00 00    	jae    0x1401578da
14015781e:	4a 8d 0c 0e          	lea    (%rsi,%r9,1),%rcx
140157822:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140157826:	48 83 7d e8 07       	cmpq   $0x7,-0x18(%rbp)
14015782b:	48 0f 47 55 d0       	cmova  -0x30(%rbp),%rdx
140157830:	4c 8b 41 10          	mov    0x10(%rcx),%r8
140157834:	48 83 79 18 07       	cmpq   $0x7,0x18(%rcx)
140157839:	76 03                	jbe    0x14015783e
14015783b:	48 8b 09             	mov    (%rcx),%rcx
14015783e:	4c 3b 45 e0          	cmp    -0x20(%rbp),%r8
140157842:	75 17                	jne    0x14015785b
140157844:	e8 f3 02 eb ff       	call   0x140007b3c
140157849:	85 c0                	test   %eax,%eax
14015784b:	74 64                	je     0x1401578b1
14015784d:	48 8b 1d 14 3a bd 00 	mov    0xbd3a14(%rip),%rbx        # 0x140d2b268
140157854:	4c 8b 0d 05 3a bd 00 	mov    0xbd3a05(%rip),%r9        # 0x140d2b260
14015785b:	48 ff c7             	inc    %rdi
14015785e:	48 83 c6 28          	add    $0x28,%rsi
140157862:	48 8b c3             	mov    %rbx,%rax
140157865:	49 2b c1             	sub    %r9,%rax
140157868:	48 c1 f8 03          	sar    $0x3,%rax
14015786c:	49 0f af c6          	imul   %r14,%rax
140157870:	48 3b f8             	cmp    %rax,%rdi
140157873:	72 92                	jb     0x140157807
140157875:	48 8b 05 b4 a1 b6 00 	mov    0xb6a1b4(%rip),%rax        # 0x140cc1a30
14015787c:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
140157880:	48 ff c0             	inc    %rax
140157883:	48 89 05 a6 a1 b6 00 	mov    %rax,0xb6a1a6(%rip)        # 0x140cc1a30
14015788a:	48 3b 1d df 39 bd 00 	cmp    0xbd39df(%rip),%rbx        # 0x140d2b270
140157891:	74 4e                	je     0x1401578e1
140157893:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140157897:	48 8b cb             	mov    %rbx,%rcx
14015789a:	e8 11 ec ea ff       	call   0x1400064b0
14015789f:	48 8b 7d f0          	mov    -0x10(%rbp),%rdi
1401578a3:	48 89 7b 20          	mov    %rdi,0x20(%rbx)
1401578a7:	48 83 05 b9 39 bd 00 	addq   $0x28,0xbd39b9(%rip)        # 0x140d2b268
1401578ae:	28
1401578af:	eb 40                	jmp    0x1401578f1
1401578b1:	48 8b 05 b0 39 bd 00 	mov    0xbd39b0(%rip),%rax        # 0x140d2b268
1401578b8:	48 8b 0d a1 39 bd 00 	mov    0xbd39a1(%rip),%rcx        # 0x140d2b260
1401578bf:	48 2b c1             	sub    %rcx,%rax
1401578c2:	48 c1 f8 03          	sar    $0x3,%rax
1401578c6:	49 0f af c6          	imul   %r14,%rax
1401578ca:	48 3b f8             	cmp    %rax,%rdi
1401578cd:	73 0b                	jae    0x1401578da
1401578cf:	48 8d 04 bf          	lea    (%rdi,%rdi,4),%rax
1401578d3:	48 8b 7c c1 20       	mov    0x20(%rcx,%rax,8),%rdi
1401578d8:	eb 17                	jmp    0x1401578f1
1401578da:	ff 15 b8 50 9b 00    	call   *0x9b50b8(%rip)        # 0x140b0c998
1401578e0:	cc                   	int3
1401578e1:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
1401578e5:	48 8b d3             	mov    %rbx,%rdx
1401578e8:	e8 67 00 00 00       	call   0x140157954
1401578ed:	48 8b 7d f0          	mov    -0x10(%rbp),%rdi
1401578f1:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
1401578f5:	48 83 f8 07          	cmp    $0x7,%rax
1401578f9:	76 35                	jbe    0x140157930
1401578fb:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
1401578ff:	48 8b d1             	mov    %rcx,%rdx
140157902:	48 8d 04 45 02 00 00 	lea    0x2(,%rax,2),%rax
140157909:	00
14015790a:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
140157910:	72 18                	jb     0x14015792a
140157912:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
140157916:	48 2b d1             	sub    %rcx,%rdx
140157919:	48 8d 42 f8          	lea    -0x8(%rdx),%rax
14015791d:	48 83 f8 1f          	cmp    $0x1f,%rax
140157921:	76 07                	jbe    0x14015792a
140157923:	ff 15 6f 50 9b 00    	call   *0x9b506f(%rip)        # 0x140b0c998
140157929:	cc                   	int3
14015792a:	ff 15 90 4f 9b 00    	call   *0x9b4f90(%rip)        # 0x140b0c8c0
140157930:	48 8b c7             	mov    %rdi,%rax
140157933:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
140157937:	48 33 cc             	xor    %rsp,%rcx
14015793a:	e8 a1 7c 99 00       	call   0x140aef5e0
14015793f:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
140157944:	49 8b 5b 28          	mov    0x28(%r11),%rbx
140157948:	49 8b 73 30          	mov    0x30(%r11),%rsi
14015794c:	49 8b e3             	mov    %r11,%rsp
14015794f:	41 5e                	pop    %r14
140157951:	5f                   	pop    %rdi
140157952:	5d                   	pop    %rbp
140157953:	c3                   	ret
140157954:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140157959:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
14015795e:	53                   	push   %rbx
14015795f:	56                   	push   %rsi
140157960:	57                   	push   %rdi
140157961:	41 54                	push   %r12
140157963:	41 55                	push   %r13
140157965:	41 56                	push   %r14
140157967:	41 57                	push   %r15
140157969:	48 83 ec 30          	sub    $0x30,%rsp
14015796d:	4c 8b fa             	mov    %rdx,%r15
140157970:	4c 8b 0d e9 38 bd 00 	mov    0xbd38e9(%rip),%r9        # 0x140d2b260
140157977:	48 8b ca             	mov    %rdx,%rcx
14015797a:	49 2b c9             	sub    %r9,%rcx
14015797d:	48 b8 67 66 66 66 66 	movabs $0x6666666666666667,%rax
140157984:	66 66 66
140157987:	48 f7 e9             	imul   %rcx
14015798a:	48 8b f2             	mov    %rdx,%rsi
14015798d:	48 c1 fe 04          	sar    $0x4,%rsi
140157991:	48 8b c6             	mov    %rsi,%rax
140157994:	48 c1 e8 3f          	shr    $0x3f,%rax
140157998:	48 03 f0             	add    %rax,%rsi
14015799b:	48 8b 05 c6 38 bd 00 	mov    0xbd38c6(%rip),%rax        # 0x140d2b268
1401579a2:	49 2b c1             	sub    %r9,%rax
1401579a5:	48 c1 f8 03          	sar    $0x3,%rax
1401579a9:	48 ba cd cc cc cc cc 	movabs $0xcccccccccccccccd,%rdx
1401579b0:	cc cc cc
1401579b3:	48 0f af c2          	imul   %rdx,%rax
1401579b7:	49 ba 66 66 66 66 66 	movabs $0x666666666666666,%r10
1401579be:	66 66 06
1401579c1:	49 3b c2             	cmp    %r10,%rax
1401579c4:	0f 84 e0 02 00 00    	je     0x140157caa
1401579ca:	4c 8d 60 01          	lea    0x1(%rax),%r12
1401579ce:	48 8b 0d 9b 38 bd 00 	mov    0xbd389b(%rip),%rcx        # 0x140d2b270
1401579d5:	49 2b c9             	sub    %r9,%rcx
1401579d8:	48 c1 f9 03          	sar    $0x3,%rcx
1401579dc:	48 0f af ca          	imul   %rdx,%rcx
1401579e0:	48 8b d1             	mov    %rcx,%rdx
1401579e3:	48 d1 ea             	shr    $1,%rdx
1401579e6:	49 8b c2             	mov    %r10,%rax
1401579e9:	48 2b c2             	sub    %rdx,%rax
1401579ec:	48 3b c8             	cmp    %rax,%rcx
1401579ef:	76 05                	jbe    0x1401579f6
1401579f1:	49 8b c2             	mov    %r10,%rax
1401579f4:	eb 0b                	jmp    0x140157a01
1401579f6:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
1401579fa:	49 3b c4             	cmp    %r12,%rax
1401579fd:	49 0f 42 c4          	cmovb  %r12,%rax
140157a01:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
140157a08:	00
140157a09:	49 3b c2             	cmp    %r10,%rax
140157a0c:	0f 87 92 02 00 00    	ja     0x140157ca4
140157a12:	48 8d 04 80          	lea    (%rax,%rax,4),%rax
140157a16:	48 8d 3c c5 00 00 00 	lea    0x0(,%rax,8),%rdi
140157a1d:	00
140157a1e:	45 33 f6             	xor    %r14d,%r14d
140157a21:	48 85 ff             	test   %rdi,%rdi
140157a24:	75 0a                	jne    0x140157a30
140157a26:	41 8b de             	mov    %r14d,%ebx
140157a29:	48 89 5c 24 78       	mov    %rbx,0x78(%rsp)
140157a2e:	eb 59                	jmp    0x140157a89
140157a30:	48 81 ff 00 10 00 00 	cmp    $0x1000,%rdi
140157a37:	72 2b                	jb     0x140157a64
140157a39:	48 8d 4f 27          	lea    0x27(%rdi),%rcx
140157a3d:	48 3b cf             	cmp    %rdi,%rcx
140157a40:	0f 86 5e 02 00 00    	jbe    0x140157ca4
140157a46:	ff 15 7c 4e 9b 00    	call   *0x9b4e7c(%rip)        # 0x140b0c8c8
140157a4c:	48 85 c0             	test   %rax,%rax
140157a4f:	74 24                	je     0x140157a75
140157a51:	48 8d 58 27          	lea    0x27(%rax),%rbx
140157a55:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
140157a59:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
140157a5d:	48 89 5c 24 78       	mov    %rbx,0x78(%rsp)
140157a62:	eb 1d                	jmp    0x140157a81
140157a64:	48 8b cf             	mov    %rdi,%rcx
140157a67:	ff 15 5b 4e 9b 00    	call   *0x9b4e5b(%rip)        # 0x140b0c8c8
140157a6d:	48 8b d8             	mov    %rax,%rbx
140157a70:	48 85 c0             	test   %rax,%rax
140157a73:	75 07                	jne    0x140157a7c
140157a75:	ff 15 1d 4a 9b 00    	call   *0x9b4a1d(%rip)        # 0x140b0c498
140157a7b:	cc                   	int3
140157a7c:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
140157a81:	4c 8b 84 24 80 00 00 	mov    0x80(%rsp),%r8
140157a88:	00
140157a89:	48 8d 04 b6          	lea    (%rsi,%rsi,4),%rax
140157a8d:	4c 8d 34 c5 00 00 00 	lea    0x0(,%rax,8),%r14
140157a94:	00
140157a95:	4d 8d 2c 1e          	lea    (%r14,%rbx,1),%r13
140157a99:	49 8d 75 28          	lea    0x28(%r13),%rsi
140157a9d:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140157aa2:	48 89 74 24 70       	mov    %rsi,0x70(%rsp)
140157aa7:	49 8b d0             	mov    %r8,%rdx
140157aaa:	49 8b cd             	mov    %r13,%rcx
140157aad:	e8 fe e9 ea ff       	call   0x1400064b0
140157ab2:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
140157ab9:	00
140157aba:	48 8b 40 20          	mov    0x20(%rax),%rax
140157abe:	49 89 45 20          	mov    %rax,0x20(%r13)
140157ac2:	4c 89 6c 24 70       	mov    %r13,0x70(%rsp)