1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Ë
³òúhJLãóÀ—dZddlmZddlZddlZddlZddlmZmZddl    m
Z
ddl m Z m Z mZddlmZdd    lmZdd
lmZd ZGd „d e«ZGd„de«ZGd„de«ZGd„de«ZGd„de«ZGd„de«Zej8eZeD]1Zej@€J‚e!edej@›ejD«Œ3eD]1Z#e#j@€J‚e!ede#j@›e#jD«Œ3eD]1Z$e$j@€J‚e!ede$j@›e$jD«Œ3eD]1Z%e%j@€J‚e!ede%j@›e%jD«Œ3ejLZ'ejPZ)ejPejTzZ+ejXZ-ejXejTzZ.ej^Z0ejbZ2ejfejhzejjzejlzZ7ejpZ9ejtZ;ejxZ=ej|Z?ejhZ@ejjZAej„ZCejˆejŠzZFejˆZGejej’zZJejej–zZLejejšzZNejejžzZPejej¢zZRejej¦zZTejªZVej®ZXej²ZZej¶Z\ejºZ^ej¾Z`ejÂZbejÆZdejÊZfejÎZhejÒZjejÖZlejÚZnejÞZpGd„de j«ZqGd„de jä«Zsd$d „Ztd%d!„Zue jìeqjîeqeu«e jðd"es«e jòeqjîet«e jôeqjîd#«y)&a†
A Pillow plugin for .dds files (S3TC-compressed aka DXTC)
Jerome Leclanche <jerome@leclan.ch>
 
Documentation:
https://web.archive.org/web/20170802060935/http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt
 
The contents of this file are hereby released in the public domain (CC0)
Full text of the CC0 license:
https://creativecommons.org/publicdomain/zero/1.0/
é)Ú annotationsN)ÚIntEnumÚIntFlag)ÚIOé)ÚImageÚ    ImageFileÚ ImagePalette)Úi32le)Úo8)Úo32leiDDS có,—eZdZdZdZdZdZdZdZdZ    dZ
y    )
ÚDDSDréééééii€N) Ú__name__Ú
__module__Ú __qualname__ÚCAPSÚHEIGHTÚWIDTHÚPITCHÚ PIXELFORMATÚ MIPMAPCOUNTÚ
LINEARSIZEÚDEPTH©óúEH:\Change_password\venv_build\Lib\site-packages\PIL/DdsImagePlugin.pyrrs*„Ø €DØ €FØ €EØ €EØ€KØ€KØ€JØ Er!rcó—eZdZdZdZdZy)ÚDDSCAPSrri@N)rrrÚCOMPLEXÚTEXTUREÚMIPMAPr r!r"r$r$+s„Ø€GØ€GØ Fr!r$có,—eZdZdZdZdZdZdZdZdZ    dZ
y    )
ÚDDSCAPS2iéiri i@i€i N) rrrÚCUBEMAPÚCUBEMAP_POSITIVEXÚCUBEMAP_NEGATIVEXÚCUBEMAP_POSITIVEYÚCUBEMAP_NEGATIVEYÚCUBEMAP_POSITIVEZÚCUBEMAP_NEGATIVEZÚVOLUMEr r!r"r)r)1s0„Ø€GØÐØÐØÐØÐØÐØÐØ Fr!r)có$—eZdZdZdZdZdZdZdZy)ÚDDPFrrré é@rN)    rrrÚ ALPHAPIXELSÚALPHAÚFOURCCÚPALETTEINDEXED8ÚRGBÚ    LUMINANCEr r!r"r4r4=s „Ø€KØ €EØ €FØ€OØ
€C؁Ir!r4cóð—eZdZdZdZdZdZdZdZdZ    dZ
d    Z d
Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{yz){Ú DXGI_FORMATrrréréééré    é
é é é éééééééééééééééééér5é!é"é#é$é%é&é'é(é)é*é+é,é-é.é/é0é1é2é3é4é5é6é7é8é9é:é;é<é=é>é?r6éAéBéCéDéEéFéGéHéIéJéKéLéMéNéOéPéQéRéSéTéUéVéWéXéYéZé[é\é]é^é_é`éaébécédéeéfégéhéiéjékéléménéoépéqérésé‚éƒé„é½é¾N)|rrrÚUNKNOWNÚR32G32B32A32_TYPELESSÚR32G32B32A32_FLOATÚR32G32B32A32_UINTÚR32G32B32A32_SINTÚR32G32B32_TYPELESSÚR32G32B32_FLOATÚR32G32B32_UINTÚR32G32B32_SINTÚR16G16B16A16_TYPELESSÚR16G16B16A16_FLOATÚR16G16B16A16_UNORMÚR16G16B16A16_UINTÚR16G16B16A16_SNORMÚR16G16B16A16_SINTÚR32G32_TYPELESSÚ R32G32_FLOATÚ R32G32_UINTÚ R32G32_SINTÚR32G8X24_TYPELESSÚD32_FLOAT_S8X24_UINTÚR32_FLOAT_X8X24_TYPELESSÚX32_TYPELESS_G8X24_UINTÚR10G10B10A2_TYPELESSÚR10G10B10A2_UNORMÚR10G10B10A2_UINTÚR11G11B10_FLOATÚR8G8B8A8_TYPELESSÚR8G8B8A8_UNORMÚR8G8B8A8_UNORM_SRGBÚ R8G8B8A8_UINTÚR8G8B8A8_SNORMÚ R8G8B8A8_SINTÚR16G16_TYPELESSÚ R16G16_FLOATÚ R16G16_UNORMÚ R16G16_UINTÚ R16G16_SNORMÚ R16G16_SINTÚ R32_TYPELESSÚ    D32_FLOATÚ    R32_FLOATÚR32_UINTÚR32_SINTÚR24G8_TYPELESSÚD24_UNORM_S8_UINTÚR24_UNORM_X8_TYPELESSÚX24_TYPELESS_G8_UINTÚ R8G8_TYPELESSÚ
R8G8_UNORMÚ    R8G8_UINTÚ
R8G8_SNORMÚ    R8G8_SINTÚ R16_TYPELESSÚ    R16_FLOATÚ    D16_UNORMÚ    R16_UNORMÚR16_UINTÚ    R16_SNORMÚR16_SINTÚ R8_TYPELESSÚR8_UNORMÚR8_UINTÚR8_SNORMÚR8_SINTÚA8_UNORMÚR1_UNORMÚR9G9B9E5_SHAREDEXPÚR8G8_B8G8_UNORMÚG8R8_G8B8_UNORMÚ BC1_TYPELESSÚ    BC1_UNORMÚBC1_UNORM_SRGBÚ BC2_TYPELESSÚ    BC2_UNORMÚBC2_UNORM_SRGBÚ BC3_TYPELESSÚ    BC3_UNORMÚBC3_UNORM_SRGBÚ BC4_TYPELESSÚ    BC4_UNORMÚ    BC4_SNORMÚ BC5_TYPELESSÚ    BC5_UNORMÚ    BC5_SNORMÚ B5G6R5_UNORMÚB5G5R5A1_UNORMÚB8G8R8A8_UNORMÚB8G8R8X8_UNORMÚR10G10B10_XR_BIAS_A2_UNORMÚB8G8R8A8_TYPELESSÚB8G8R8A8_UNORM_SRGBÚB8G8R8X8_TYPELESSÚB8G8R8X8_UNORM_SRGBÚ BC6H_TYPELESSÚ    BC6H_UF16Ú    BC6H_SF16Ú BC7_TYPELESSÚ    BC7_UNORMÚBC7_UNORM_SRGBÚAYUVÚY410ÚY416ÚNV12ÚP010ÚP016Ú
OPAQUE_420ÚYUY2ÚY210ÚY216ÚNV11ÚAI44ÚIA44ÚP8ÚA8P8ÚB4G4R4A4_UNORMÚP208ÚV208ÚV408ÚSAMPLER_FEEDBACK_MIN_MIP_OPAQUEÚ'SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUEr r!r"r>r>Gs~„Ø€GØÐØÐØÐØÐØÐØ€OØ€NØ€NØÐØÐØÐØÐØÐØÐØ€OØ€LØ€KØ€KØÐØÐØ!ÐØ ÐØÐØÐØÐØ€OØÐØ€NØÐØ€MØ€NØ€MØ€OØ€LØ€LØ€KØ€LØ€KØ€LØ€IØ€IØ€HØ€HØ€NØÐØÐØÐØ€MØ€JØ€IØ€JØ€IØ€LØ€IØ€IØ€IØ€HØ€IØ€HØ€KØ€HØ€GØ€HØ€GØ€HØ€HØÐØ€OØ€OØ€LØ€IØ€NØ€LØ€IØ€NØ€LØ€IØ€NØ€LØ€IØ€IØ€LØ€IØ€IØ€LØ€NØ€NØ€NØ!#ÐØÐØÐØÐØÐØ€MØ€IØ€IØ€LØ€IØ€NØ €DØ €DØ €DØ €DØ €DØ €DØ€JØ €DØ €DØ €DØ €DØ €DØ €DØ     €BØ €DØ€NØ €DØ €DØ €DØ&)Ð#Ø.1Ñ+r!r>cóø—eZdZdZdZdZdZdZdZdZ    dZ
d    Z d
Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9e:d8«Z;e:d9«Z<e:d:«Z=e:d;«Z>e:d<«Z?e:d=«Z@e:d>«ZAe:d?«ZBe:d@«ZCe:dA«ZDe:dB«ZEe:dC«ZFe:dD«ZGe:dE«ZHe:dF«ZIe:dG«ZJe:dH«ZKyI)JÚD3DFMTrrNrOrPrQrRrSrTrUrVrWrXrYr5rZr[r\r]rarbrkrlrmrurvrwrxr6r{r~rrrƒr…r‡rˆrŠr‹rŒrr‰rœrržr¦r§r¨r©rªr«étéuévéwéÇsUYVYsRGBGsYUY2sGRGBsDXT1sDXT2sDXT3sDXT4sDXT5sDX10sBC4SsBC4UsBC5SsBC5UsATI1sATI2sMET1N)Lrrrr±ÚR8G8B8ÚA8R8G8B8ÚX8R8G8B8ÚR5G6B5ÚX1R5G5B5ÚA1R5G5B5ÚA4R4G4B4ÚR3G3B2ÚA8ÚA8R3G3B2ÚX4R4G4B4Ú A2B10G10R10ÚA8B8G8R8ÚX8B8G8R8ÚG16R16Ú A2R10G10B10Ú A16B16G16R16r#r"ÚL8ÚA8L8ÚA4L4ÚV8U8ÚL6V5U5ÚX8L8V8U8ÚQ8W8V8U8ÚV16U16Ú A2W10V10U10Ú D16_LOCKABLEÚD32ÚD15S1ÚD24S8ÚD24X8ÚD24X4S4ÚD16Ú D32F_LOCKABLEÚD24FS8Ú D32_LOCKABLEÚ S8_LOCKABLEÚL16Ú
VERTEXDATAÚINDEX16ÚINDEX32Ú Q16W16V16U16ÚR16FÚG16R16FÚ A16B16G16R16FÚR32FÚG32R32FÚ A32B32G32R32FÚCxV8U8ÚA1ÚA2B10G10R10_XR_BIASÚ BINARYBUFFERÚi32ÚUYVYÚ    R8G8_B8G8rÚ    G8R8_G8B8ÚDXT1ÚDXT2ÚDXT3ÚDXT4ÚDXT5ÚDX10ÚBC4SÚBC4UÚBC5SÚBC5UÚATI1ÚATI2Ú MULTI2_ARGB8r r!r"r+r+Ãs¯„Ø€GØ €FØ€HØ€HØ €FØ€HØ€HØ€HØ €FØ     €BØ€HØ€HØ€KØ€HØ€HØ €FØ€KØ€LØ €DØ     €BØ     €BØ €DØ €DØ €DØ €FØ€HØ€HØ €FØ€KØ€LØ
€CØ €EØ €EØ €EØ€GØ
€CØ€MØ €FØ€LØ€KØ
€CØ€JØ€GØ€GØ€LØ €DØ€GØ€MØ €DØ€GØ€MØ €FØ     €BØÐØ€Lá ˆw‹<€DِG“ €IÙ ˆw‹<€DِG“ €IÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€DÙ ˆw‹<€Dِw“<Lr!r+ÚDDSD_ÚDDSCAPS_Ú    DDSCAPS2_ÚDDPF_có$—eZdZdZdZdd„Zdd„Zy)Ú DdsImageFileÚDDSzDirectDraw Surfacecó&—t|jjd««s d}t|«‚t    j
d|jjd««\}|dk7rdt |«›}t|«‚|jj|dz
«}t|«dk7rdt|«›d}t|«‚tj|«}t    j
d    |jd
««\}}}||f|_ d |jz}t    j
d    |jd
««\}    }
} t    j
d |jd ««t    j
d|jd««\} } }}d}d}| tjzrs| tjzr
d|_d}n    d|_d}t    j
d|›d|j|dz««}t#j$d|d||f«g|_y| tj(zrB|dk(r    d|_ny|dk(r| tjzr    d|_nXd|›d| ›}t|«‚| tj*zrNd|_t-j.d|jjd««|_d|j0_nä| tj4zrÀ|dz}|t6j8k(rd|_d|_d}n¦|t6j<k(rd|_d |_d!}n|t6j>k(rd|_d"|_d}n\|t6j@t6jBfvrd|_d#|_d}n(|t6jDk(rd|_d$|_d%}n|t6jFt6jHfvrd|_d&|_d%}nÏ|t6jJk(r’|d'z }t    j
d|jjd««\}|jjd«|tLjNtLjPfvrd|_d(|_d}n6|tLjRtLjTfvrd|_d)|_d!}n|tLjVtLjXfvrd|_d*|_d}nÎ|tLjZtLj\fvrd|_d#|_d}nš|tLj^tLj`fvrd|_d&|_d%}nf|tLjbk(rd|_d$|_d%}nA|tLjdk(rd|_d+|_d,}n|tLjfk(rd|_d-|_d,}nø|tLjhtLjjtLjlfvr3d|_d.|_d/}|tLjlk(r¤d0|jnd1<n”|tLjptLjrtLjtfvr*d|_|tLjtk(rId0|jnd1<n9d2|›}tw|«‚d3t |«›}tw|«‚d4| ›}tw|«‚|r+t#j$d5|||j:f«g|_yt#j$d6|d|xs |j2«g|_y)7Nrznot a DDS filez<Ié|zUnsupported header size éxzIncomplete header: z bytesz<3IrF©rrz<11Ireú<4IrJrÚRGBAr;r?ú<ÚIÚdds_rgbrÚLÚLAzUnsupported bitcount z for ÚPr*rirrkrrmÚBC4rqr@ÚBC5rNÚBC1ÚBC2ÚBC3ÚBC6HrAÚBC6HSÚBC7rBg]tÑEÝ?ÚgammazUnimplemented DXGI format zUnimplemented pixel format zUnknown pixel format flags ÚbcnÚraw)<Ú_acceptÚfpÚreadÚ SyntaxErrorÚstructÚunpackÚreprÚOSErrorÚlenÚioÚBytesIOÚ_sizeÚsizer4r;r7Ú_moder    Ú_TileÚtiler<r:r
r“ÚpaletteÚmoder9r+riÚ pixel_formatrkrmrprsrqrrrtrnr>rør÷rúrûrýrþrrrrrrrrrrÚinforÌrÍrÎÚNotImplementedError)ÚselfÚmsgÚ header_sizeÚ header_bytesÚheaderÚflagsÚheightÚwidthÚextentsÚpitchÚdepthÚmipmapsÚpfsizeÚpfflagsÚfourccÚbitcountÚnÚrawmodeÚ
mask_countÚmasksÚoffsetÚ dxgi_formats                      r"Ú_openzDdsImageFile._openOs€Üt—w‘w—|‘| A“Ô'Ø"ˆCܘcÓ"Ð "ÜŸ™ t¨T¯W©W¯\©\¸!«_Ó=‰ˆØ ˜#Ò Ø,¬T°+Ó->Ð,?Ð@ˆCܘ#“,Ð Ø—w‘w—|‘| K°!¡OÓ4ˆ Ü ˆ|Ó  Ò #Ø'¬¨LÓ(9Ð':¸&ÐAˆCܘ#“,Ð Ü—‘˜LÓ)ˆä%Ÿ}™}¨U°F·K±KÀ³OÓDшˆvuؘV_ˆŒ
ؘ4Ÿ9™9Ñ$ˆä &§ ¡ ¨e°V·[±[À³_Ó Eшˆug܏ ‰ f˜fŸk™k¨"›oÔ.ô-3¯M©M¸%ÀÇÁÈRÃÓ,QÑ)ˆ˜ Ø ˆØˆØ ”T—X‘XÒ àœ×)Ñ)Ò)Ø#”
Ø‘
à"”
ؐ
ä—M‘M A j \°Ð"3°V·[±[ÀÈaÁÓ5PÓQˆEÜ"Ÿ™¨°G¸QÀÈ5Ð@QÓRÐSˆDŒIØ Ø ”t—~‘~Ò %ؘ1Š}Ø –
ؘR’ G¬d×.>Ñ.>Ò$>Ø!–
à-¨h¨Z°u¸W¸IÐFÜ˜c“lÐ"Ø ”t×+Ñ+Ò +؈DŒJÜ'×+Ñ+¨F°D·G±G·L±LÀÓ4FÓGˆDŒLØ &ˆDL‰LÖ Ø ”t—{‘{Ó "Ø  1‘_ˆFØœŸ™Ò$Ø#”
Ø$*Ô!Ø’Øœ6Ÿ;™;Ò&Ø#”
Ø$*Ô!Ø’Øœ6Ÿ;™;Ò&Ø#”
Ø$*Ô!Ø’ØœFŸK™K¬¯©Ð5Ñ5Ø ”
Ø$)Ô!Ø’Øœ6Ÿ;™;Ò&Ø"”
Ø$*Ô!Ø’ØœFŸK™K¬¯©Ð5Ñ5Ø"”
Ø$)Ô!Ø’Øœ6Ÿ;™;Ó&ؘ"‘ ä!'§¡¨t°T·W±W·\±\À!³_Ó!E‘Ø—‘— ‘ ˜RÔ ØÜ×)Ñ)Ü×,Ñ,ð#ñð"(D”JØ(-DÔ%Ø’AØ ¤[×%=Ñ%=¼{×?TÑ?TÐ$UÑUØ!'D”JØ(-DÔ%Ø’AØ ¤[×%=Ñ%=¼{×?TÑ?TÐ$UÑUØ!'D”JØ(-DÔ%Ø’AØ ¤[×%=Ñ%=¼{×?TÑ?TÐ$UÑUØ!$D”JØ(-DÔ%Ø’AØ ¤[×%=Ñ%=¼{×?TÑ?TÐ$UÑUØ!&D”JØ(-DÔ%Ø’AØ ¤K×$9Ñ$9Ò9Ø!&D”JØ(.DÔ%Ø’AØ ¤K×$9Ñ$9Ò9Ø!&D”JØ(.DÔ%Ø’AØ ¤K×$9Ñ$9Ò9Ø!&D”JØ(/DÔ%Ø‘AØ Ü×,Ñ,Ü×)Ñ)Ü×.Ñ.ð%ñð
"(D”JØ(-DÔ%ؐAØ"¤k×&@Ñ&@Ò@Ø-4˜Ÿ    ™     'Ò*Ø Ü×1Ñ1Ü×.Ñ.Ü×3Ñ3ð%ñð
"(D”JØ"¤k×&EÑ&EÒEØ-4˜Ÿ    ™     'Ò*à6°{°mÐDCÜ-¨cÓ2Ð2à3´D¸³L°>ÐBÜ)¨#Ó.Ð.à/°¨yÐ9ˆCÜ% cÓ*Ð *á ä—‘  w°¸¸D×<MÑ<MÐ8NÓOðˆDIô#Ÿ™¨°¸¸GÒ<PÀtÇyÁyÓQÐRˆDIr!có—y)Nr )r©Úposs  r"Ú    load_seekzDdsImageFile.load_seekås€Ø r!N)ÚreturnÚNone)rÁÚintrÃrÄ)rrrÚformatÚformat_descriptionr¿rÂr r!r"r{r{Ks„Ø €FØ-ÐóTSôl r!r{có—eZdZdZdd„Zy)Ú DdsRgbDecoderTc    ó—|j€J‚|j\}}g}g}|D]V}d}|dk7r(||dzz    |dzz|k(r|dz }||dzz    |dzz|k(rŒ|j|«|j||z    «ŒXt«}|dz}    |jj
|jj zt|«z}
t|«|
kr|tj|jj|    «d«} t|«D]0\} }| |z} |tt| || z    || z dz««z }Œ2t|«|
krŒ||j|«y)NrrrÚlittleéÿ)éÿÿÿÿr)ÚfdÚargsÚappendÚ    bytearrayÚstateÚxsizeÚysizerœrÅÚ
from_bytesr–Ú    enumerater Ú
set_as_raw)r©Úbufferr¸r¼Ú mask_offsetsÚ mask_totalsÚmaskr½ÚdataÚ    bytecountÚ dest_lengthÚvalueÚiÚ masked_values              r"ÚdecodezDdsRgbDecoder.decodeìsw€Øw‰wÐ"Ð"Ð"ØŸ)™)‰ˆ%ðˆ àˆ Øò    /ˆD؈FؐqŠyؘv¨™zÑ*¨v¸©zÑ:¸dÒBؘa‘KFð˜v¨™zÑ*¨v¸©zÑ:¸dÓBà × Ñ  Ô 'Ø × Ñ ˜t v™~Õ .ð     /ô‹{ˆØ ‘Mˆ    Ø—j‘j×&Ñ&¨¯©×)9Ñ)9Ñ9¼CÀ»JÑFˆ ܐ$‹i˜+Ò%Ü—N‘N 4§7¡7§<¡<°    Ó#:¸HÓEˆEÜ$ UÓ+ò ‘4Ø$ t™| àœÜ˜,¨,°q©/Ñ9¸[ȹ^ÑKÈsÑRÓSóñ‘ð ô$‹i˜+Ó%ð     ‰˜ÔØr!N)rØz$bytes | Image.SupportsArrayInterfacerÃztuple[int, int])rrrÚ    _pulls_fdrâr r!r"rÉrÉés „Ø€Iôr!rÉc óä—|jdvrd|j›d}t|«‚tjtjztj
ztj z}t|j««dz}|jjd«}|r d}|tjz}|jdzdz}gd    ¢}    tj}
|d
k(rtj } d } n¿|d k(rtj"} d } n¦|dk(rtj$} d} ntj&} |dk(rd } t(j*} nd|dk(rd} t(j,} nK|dk(r/d} t(j.} |jdk7r$d}t|«‚d|›}t|«‚d}|tj0z}|j|zdzdz}|jddk(}|jddk(r(tj2}
|j} |rgd¢}    n\gd¢}    nWtj4}
|jddd…} gd¢}    |r/|j7«\}}}}t9j:d ||||f«}|r|
tj<z}
|    j?|rd!nd«tj@} |jCtEtF«tIjJd"d#||jL|j|dd«ztIjJd$gd%¢­ŽztIjJd&d'|
| |«ztIjJd&g|    ¢­ŽztIjJd(tNjPdddd«z«| tj&k(r)|jCtIjJd( dddd)««tSjT||tSjV|d*|jXzd| «g«y)+N)r;r‚r†r‡zcannot write mode z as DDSrr¦r’r?r)rrrrri)rrk)rrm)r?rŒrrŠ)r@r;z#only RGB mode can be written as BC5zcannot write pixel format r“rBrÍÚArr†)rÌrÌrÌ)ì~ræræ)iÿiÿrÌr‚ræz<7Ir~Ú11I) rrrrrrrrrrrrr5z<5Irr€)-r¥r›rrrrrrœÚgetbandsÚ encoderinfoÚgetrr°r4r9r+rirkrmrnr>rúrýrrr<r;ÚsplitrÚmerger7rÐr±ÚwriteÚo32Ú    DDS_MAGICr˜Úpackr¯r$r&r    Ú_saver¢r )Úimr•Úfilenamerªr®r¸r¦Ú
codec_namer²Ú    rgba_maskÚ pixel_flagsr·rÏr¾ÚalphaÚrÚgÚbÚas                   r"rñrñ si€Ø    ‡wwÐ0Ñ0Ø" 2§7¡7 )¨7Ð3ˆÜc‹lÐä I‰IœŸ ™ Ñ #¤d§j¡jÑ 0´4×3CÑ3CÑ C€Eܐ2—;‘;“=Ó! AÑ%€HØ—>‘>×%Ñ% nÓ5€LâØˆ
Ø ”—‘Ñ ˆØ—‘˜A‘ Ñ"ˆÚ ˆ    Ü—k‘kˆ Ø ˜6Ò !Ü—[‘[ˆFØŠDØ ˜VÒ #Ü—[‘[ˆFØŠDØ ˜VÒ #Ü—[‘[ˆFØŠDä—[‘[ˆFؘuÒ$ؐÜ)×6Ñ6’ Ø Ò&ؐÜ)×6Ñ6’ Ø Ò&ؐÜ)×6Ñ6 Ø—7‘7˜eÓ#Ø?CÜ! #›,Ð&à2°<°.ÐAÜ˜c“lÐ"àˆ
Ø ”—‘шؗ‘˜HÑ$ qÑ(¨QÑ.ˆà—‘˜‘ ˜sÑ"ˆØ 7‰71‰:˜Ò ÜŸ.™.ˆKØ—7‘7ˆDÙÚ@‘    â@‘    äŸ(™(ˆKØ—7‘7™4˜R˜4‘=ˆDÚ<ˆIáØŸX™X›Z‘
1a˜Ü—[‘[ ¨!¨Q°°1¨Ó6Ù Ø œ4×+Ñ+Ñ +ˆKØ×Ñ¡u™°!Ô4ä—‘ˆØ‡HHÜ ŒI‹Ü
+‰+Ø Ø Ø Ø I‰IØ H‰HØ Ø Ø ó    
ñ
    
ô +‰+eÐ
*˜yÒ
*ñ     +ô +‰+e˜R ¨f°hÓ
?ñ     @ô +‰+eÐ
(˜iÒ
(ñ    )ô +‰+eœWŸ_™_¨a°°A°qÓ
9ñ    :ôð$”—‘ÒØ
‰ä K‰K˜˜{¨A¨q°!°QÓ 7ô    
ô‡OOB˜œYŸ_™_¨Z¸À"Ç'Á'Ñ9IÈ1ÈdÓSÐTÕUr!có$—|jd«S)NsDDS )Ú
startswith)Úprefixs r"r”r”is€Ø × Ñ ˜WÓ %Ð%r!r…z.dds)ròz Image.Imager•z    IO[bytes]róz str | bytesrÃrÄ)rþÚbytesrÃÚbool){Ú__doc__Ú
__future__rrr˜ÚsysÚenumrrÚtypingrÚrr    r
Ú_binaryr rer r rîrïrr$r)r4r>r+ÚmodulesrÚmoduleÚitemÚnameÚsetattrrßÚitem1Úitem2Úitem3r9Ú
DDS_FOURCCr;ÚDDS_RGBr7ÚDDS_RGBAr<Ú DDS_LUMINANCEÚDDS_LUMINANCEAr8Ú    DDS_ALPHAr:ÚDDS_PAL8rrrrÚDDS_HEADER_FLAGS_TEXTURErÚDDS_HEADER_FLAGS_MIPMAPrÚDDS_HEADER_FLAGS_VOLUMErÚDDS_HEADER_FLAGS_PITCHrÚDDS_HEADER_FLAGS_LINEARSIZEÚ
DDS_HEIGHTÚ    DDS_WIDTHr&ÚDDS_SURFACE_FLAGS_TEXTUREr%r'ÚDDS_SURFACE_FLAGS_MIPMAPÚDDS_SURFACE_FLAGS_CUBEMAPr+r,ÚDDS_CUBEMAP_POSITIVEXr-ÚDDS_CUBEMAP_NEGATIVEXr.ÚDDS_CUBEMAP_POSITIVEYr/ÚDDS_CUBEMAP_NEGATIVEYr0ÚDDS_CUBEMAP_POSITIVEZr1ÚDDS_CUBEMAP_NEGATIVEZriÚ DXT1_FOURCCrkÚ DXT3_FOURCCrmÚ DXT5_FOURCCrÌÚDXGI_FORMAT_R8G8B8A8_TYPELESSrÍÚDXGI_FORMAT_R8G8B8A8_UNORMrÎÚDXGI_FORMAT_R8G8B8A8_UNORM_SRGBrÚDXGI_FORMAT_BC5_TYPELESSrÚDXGI_FORMAT_BC5_UNORMrÚDXGI_FORMAT_BC5_SNORMrÚDXGI_FORMAT_BC6H_UF16rÚDXGI_FORMAT_BC6H_SF16rÚDXGI_FORMAT_BC7_TYPELESSrÚDXGI_FORMAT_BC7_UNORMrÚDXGI_FORMAT_BC7_UNORM_SRGBr{Ú    PyDecoderrÉrñr”Ú register_openrÆÚregister_decoderÚ register_saveÚregister_extensionr r!r"ú<module>r:sðñ
õ#ã    Û Û
ß!Ýç,Ñ,Ý!ÝÝ!ð €    ôˆ7ôôˆgôô ˆwôôˆ7ôôy2'ôy2ôxI ˆWôI ðZ
‰XÑ    €Ø ò5€DØ 9‰9Ð  Ð Ð  Ù ˆFe˜DŸI™I˜;Ð'¨¯©Õ4ð5ðò:€EØ :‰:Ð !Ð!Ð !Ù ˆFh˜uŸz™z˜lÐ+¨U¯[©[Õ9ð:ðò;€EØ :‰:Ð !Ð!Ð !Ù ˆFi §
¡
˜|Ð,¨e¯k©kÕ:ð;ðò7€EØ :‰:Ð !Ð!Ð !Ù ˆFe˜EŸJ™J˜<Ð(¨%¯+©+Õ6ð7ð[‰[€
Ø
(‰(€Ø 8‰8d×&Ñ&Ñ &€Ø—‘€ Ø—‘ $×"2Ñ"2Ñ2€Ø J‰J€    Ø × Ñ €àŸ9™9 t§{¡{Ñ2°T·Z±ZÑ?À$×BRÑBRÑRÐØ×*Ñ*ÐØŸ*™*ÐØŸ™ÐØ"Ÿo™oÐà [‰[€
Ø J‰J€    à#ŸO™OÐØ"Ÿ?™?¨W¯^©^Ñ;ÐØ#ŸO™OÐà ×(Ñ(¨8×+EÑ+EÑEÐØ ×(Ñ(¨8×+EÑ+EÑEÐØ ×(Ñ(¨8×+EÑ+EÑEÐØ ×(Ñ(¨8×+EÑ+EÑEÐØ ×(Ñ(¨8×+EÑ+EÑEÐØ ×(Ñ(¨8×+EÑ+EÑEÐàk‰k€ ؏k‰k€ ؏k‰k€ à +× =Ñ =ÐØ(×7Ñ7ÐØ"-×"AÑ"AÐØ&×3Ñ3ÐØ#×-Ñ-ÐØ#×-Ñ-ÐØ#×-Ñ-ÐØ#×-Ñ-ÐØ&×3Ñ3ÐØ#×-Ñ-ÐØ(×7Ñ7Ðô[ 9×&Ñ&ô[ ô| I×'Ñ'ô óFZVóz&ð€×ѐL×'Ñ'¨°wÔ?Ø€×ѐy -Ô0Ø€×ѐL×'Ñ'¨Ô/Ø€×ј×,Ñ,¨fÕ5r!