[xiph-commits] r6856 - in trunk/oggdsf: . build/oggcodecs

illiminable at dactyl.lonelymoon.com illiminable
Fri Jun 25 13:54:22 PDT 2004


sln/oggdsf_all src/lib/codecs/cmml
src/lib/codecs/cmml/dsfCMMLDecoder src/lib/codecs/cmml/libCMMLTags
src/lib/codecs/cmml/libWinCMMLParse
src/lib/codecs/theora/filters/dsfTheoraDecoder
src/lib/core/directshow/dsfSubtitleVMR9
Message-ID: <20040625205422.760219AAAB at dactyl.lonelymoon.com>

Author: illiminable
Date: Fri Jun 25 13:54:22 2004
New Revision: 6856

Added:
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.h
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecoder.def
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/ReadMe.txt
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.cpp
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.cpp
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.vcproj
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.cpp
trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.h
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.cpp
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.h
Modified:
trunk/oggdsf/AUTHORS
trunk/oggdsf/COPYRIGHTS
trunk/oggdsf/README
trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp
trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/ReadMe.txt
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.cpp
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.h
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.vcproj
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.cpp
trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h
trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp
trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h
trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h
trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj
Log:
* Basic annodex demuxer added
* Subtitle VMR9 renderer properly renders text.
* CMML pass through filter included.
* Multi stream muxing filter fixed
* Tweaked CMML container classes
* CMML parser library based on MSXML included
* PRobably lots of other stuff... it's been a while.

Modified: trunk/oggdsf/AUTHORS
===================================================================
--- trunk/oggdsf/AUTHORS	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/AUTHORS	2004-06-25 09:10:28 UTC (rev 6856)
@@ -97,4 +97,4 @@
==============================================================
*** libtheora
xiph.org contributors (No authors file present)
-==============================================================
+==============================================================
\ No newline at end of file

Modified: trunk/oggdsf/COPYRIGHTS
===================================================================
--- trunk/oggdsf/COPYRIGHTS	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/COPYRIGHTS	2004-06-25 09:10:28 UTC (rev 6856)
@@ -183,4 +183,4 @@
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------
+------------------------------------------------------------------------
\ No newline at end of file

Modified: trunk/oggdsf/README
===================================================================
--- trunk/oggdsf/README	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/README	2004-06-25 09:10:28 UTC (rev 6856)
@@ -6,10 +6,8 @@

In order to build these...

-
You need visual studio 2002 or 2003. There are no VC6 files.

-
You need NASM for FLAC to build. (lifes easier if it's at C:\NASM)
you'll have to play around with that yourself... it's a real pain !
Also the vcproj files have hidden settings that don't show up

Modified: trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
===================================================================
--- trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-06-25 09:10:28 UTC (rev 6856)
@@ -15,12 +15,24 @@
{
"Entry"
{
+        "MsmKey" = "8:_02E7D9728C8944F1BD021329177F5140"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\CMML\\LIBCMMLTAGS\\DEBUG\\LIBCMMLTAGS.DLL"
+        }
+        "Entry"
+        {
"MsmKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\OOOGGDUMP\\RELEASE\\OOOGGDUMP.EXE"
}
"Entry"
{
+        "MsmKey" = "8:_14E3067B71584FB5A245A2DA9D65D139"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\CMML\\LIBWINCMMLPARSE\\DEBUG\\LIBWINCMMLPARSE.DLL"
+        }
+        "Entry"
+        {
"MsmKey" = "8:_1ED42AE022EB477985E46FA18A63F9A5"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:G:\\DEV\\OGGDSF\\AUTHORS"
@@ -33,6 +45,12 @@
}
"Entry"
{
+        "MsmKey" = "8:_3593176E38AC1AC05CC9DB1224E63E5F"
+        "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\CMML\\DSFCMMLDECODER\\DEBUG\\LIBCMMLTAGS.DLL"
+        }
+        "Entry"
+        {
"MsmKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\TOOLS\\OOOGGSTAT\\RELEASE\\OOOGGSTAT.EXE"
@@ -70,18 +88,42 @@
"Entry"
{
"MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
-        "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "OwnerKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
}
"Entry"
{
"MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_14E3067B71584FB5A245A2DA9D65D139"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_02E7D9728C8944F1BD021329177F5140"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
"OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
}
"Entry"
{
"MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
"OwnerKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
}
@@ -135,12 +177,24 @@
}
"Entry"
{
+        "MsmKey" = "8:_5A8B344642EDF62A751438F4BCDA896B"
+        "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\CMML\\DSFCMMLDECODER\\DEBUG\\LIBWINCMMLPARSE.DLL"
+        }
+        "Entry"
+        {
"MsmKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOOGGSEEK\\RELEASE\\LIBOOOGGSEEK.DLL"
}
"Entry"
{
+        "MsmKey" = "8:_65015192414F476999A68339F89BEA57"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\CMML\\DSFCMMLDECODER\\DEBUG\\DSFCMMLDECODER.DLL"
+        }
+        "Entry"
+        {
"MsmKey" = "8:_65EFE52655DF4119A626446C8F593760"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACTAUDIOENCODER\\RELEASE\\DSFABSTRACTAUDIOENCODER.DLL"
@@ -202,24 +256,30 @@
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
-        "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "OwnerKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
-        "OwnerKey" = "8:_AFF84F5FBA224F8A8D4BB3ACA539DC8B"
+        "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
-        "OwnerKey" = "8:_7508A3C0459B47439D67D2C7249DD169"
+        "OwnerKey" = "8:_14E3067B71584FB5A245A2DA9D65D139"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_02E7D9728C8944F1BD021329177F5140"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
"OwnerKey" = "8:_FD547F0196C24DFBB9CAFCCEC06561BC"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
@@ -256,12 +316,24 @@
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_AFF84F5FBA224F8A8D4BB3ACA539DC8B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
"OwnerKey" = "8:_A5AAB8CB90C548F1820BC101A765616C"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
"OwnerKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
@@ -280,6 +352,12 @@
"Entry"
{
"MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_7508A3C0459B47439D67D2C7249DD169"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
"OwnerKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
"MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
}
@@ -357,6 +435,12 @@
}
"Entry"
{
+        "MsmKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CORE\\DIRECTSHOW\\DSFSUBTITLEVMR9\\DEBUG\\DSFSUBTITLEVMR9.DLL"
+        }
+        "Entry"
+        {
"MsmKey" = "8:_D9BE90D398094F15B881B22369C3A231"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:G:\\DEV\\OGGDSF\\VERSIONS"
@@ -489,9 +573,30 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
+            "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_3593176E38AC1AC05CC9DB1224E63E5F"
+            {
+            "Signature" = "8:200000009e12d9d9d14ac401a629ae31e04ac4019c5b1772d24ac4010000000000c0020000000000000000006c006900620043004d004d004c0054006100670073002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c004900420043004d004d007e0031002e0044004c004c0000000000"
+            "SourcePath" = "8:libCMMLTags.dll"
+            "TargetName" = "8:libCMMLTags.dll"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:TRUE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
"{54DA9790-1474-11D3-8E00-00C04F6837D0}:_57E27F72FF7790C3FF18D6AB1F49D444"
{
-            "Signature" = "8:2000000080dd2a10d295c1010a34accfe346c40180dd2a10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+            "Signature" = "8:2000000080dd2a10d295c10194b29aa1da4ac40180dd2a10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
"SourcePath" = "8:MSVCP70D.dll"
"TargetName" = "8:MSVCP70D.dll"
"Tag" = "8:"
@@ -510,6 +615,27 @@
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
+            "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_5A8B344642EDF62A751438F4BCDA896B"
+            {
+            "Signature" = "8:2000000052d7ddd9d14ac401a629ae31e04ac4013cdb9f74d24ac401000000000000010000000000000000006c0069006200570069006e0043004d004d004c00500061007200730065002e0064006c006c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c0049004200570049004e007e0031002e0044004c004c0000000000"
+            "SourcePath" = "8:libWinCMMLParse.dll"
+            "TargetName" = "8:libWinCMMLParse.dll"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:TRUE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
"{54DA9790-1474-11D3-8E00-00C04F6837D0}:_81A3CDB604B64763884C387192BE6771"
{
"SourcePath" = "8:..\\..\\COPYRIGHTS"
@@ -532,7 +658,7 @@
}
"{54DA9790-1474-11D3-8E00-00C04F6837D0}:_9A2ADE669A100D71F9E0B3753CDA677A"
{
-            "Signature" = "8:20000000803a49fed195c1014848a0cfe346c401803a49fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+            "Signature" = "8:20000000803a49fed195c10194b29aa1da4ac401803a49fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
"SourcePath" = "8:MSVCR70D.dll"
"TargetName" = "8:MSVCR70D.dll"
"Tag" = "8:"
@@ -553,7 +679,7 @@
}
"{54DA9790-1474-11D3-8E00-00C04F6837D0}:_B2784574F1B848EABBE013669B46808C"
{
-            "Signature" = "8:20000000eede0c6d813ac4019405b5fbdf46c401e4970532e046c401000000000080030000000000000000006c006900620046004c00410043002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+            "Signature" = "8:20000000eede0c6d813ac401da909543e24ac4012212a547e24ac401000000000080030000000000000000006c006900620046004c00410043002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
"SourcePath" = "8:libFLAC.dll"
"TargetName" = "8:libFLAC.dll"
"Tag" = "8:"
@@ -830,6 +956,35 @@
}
"ProjectOutput"
{
+            "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_02E7D9728C8944F1BD021329177F5140"
+            {
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\cmml\\libCMMLTags\\Debug\\libCMMLTags.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectCanonicalName" = "8:..\\..\\src\\lib\\codecs\\cmml\\libCMMLTags\\libCMMLTags.vcproj"
+            "OutputProjectGuid" = "8:{AD38DCC6-B431-4B32-8569-74F3376EF2DA}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_0A1E63E5852E4F759F1A27E8F097727B"
{
"SourcePath" = "8:..\\..\\src\\tools\\OOOggDump\\Debug\\OOOggDump.exe"
@@ -859,6 +1014,35 @@
{
}
}
+            "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_14E3067B71584FB5A245A2DA9D65D139"
+            {
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\cmml\\libWinCMMLParse\\Debug\\libWinCMMLParse.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectCanonicalName" = "8:..\\..\\src\\lib\\codecs\\cmml\\libWinCMMLParse\\libWinCMMLParse.vcproj"
+            "OutputProjectGuid" = "8:{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_3C7C3E6B832E481C8A36701A33FF3721"
{
"SourcePath" = "8:..\\..\\src\\tools\\OOOggStat\\Debug\\OOOggStat.exe"
@@ -1062,6 +1246,35 @@
{
}
}
+            "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_65015192414F476999A68339F89BEA57"
+            {
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\cmml\\dsfcmmldecoder\\debug\\dsfCMMLDecoder.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:4"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectCanonicalName" = "8:..\\..\\src\\lib\\codecs\\cmml\\dsfCMMLDecoder\\dsfCMMLDecoder.vcproj"
+            "OutputProjectGuid" = "8:{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_65EFE52655DF4119A626446C8F593760"
{
"SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractAudioEncoder\\Debug\\dsfAbstractAudioEncoder.dll"
@@ -1151,7 +1364,7 @@
}
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_7508A3C0459B47439D67D2C7249DD169"
{
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libogg\\win32\\dynamic_debug\\ogg_d.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libogg\\win32\\Dynamic_Debug\\ogg_d.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1325,7 +1538,7 @@
}
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_AFF84F5FBA224F8A8D4BB3ACA539DC8B"
{
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\libs\\libvorbis\\win32\\vorbis_dynamic_debug\\vorbis_d.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\libs\\libvorbis\\win32\\Vorbis_Dynamic_Debug\\vorbis_d.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1352,6 +1565,35 @@
{
}
}
+            "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_D2048C8B212841C88E42F6ADDCA8B0A2"
+            {
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfSubtitleVMR9\\Debug\\dsfSubtitleVMR9.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:4"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectCanonicalName" = "8:..\\..\\src\\lib\\core\\directshow\\dsfSubtitleVMR9\\dsfSubtitleVMR9.vcproj"
+            "OutputProjectGuid" = "8:{88532BA9-1EED-421F-84BF-88A7A87FB2D3}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_DB60960DC12343B89500B86D5AB10D02"
{
"SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\libs\\libflac\\obj\\debug\\bin\\libFLAC++.dll"
@@ -1532,7 +1774,7 @@
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:oggcodecs"
"ProductCode" = "8:{778DA93A-8AE4-4AD8-BF3E-43DA8AC06994}"
-        "PackageCode" = "8:{B66F81F8-03A2-4599-86F0-6816729B962C}"
+        "PackageCode" = "8:{16122CD2-DEE5-469E-963A-49A846EA2B53}"
"UpgradeCode" = "8:{1A644FEB-7597-4FAB-AADE-C2C7C64C5984}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"

Modified: trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
===================================================================
--- trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-06-25 09:10:28 UTC (rev 6856)
@@ -63,6 +63,10 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libWinCMMLParse", "..\..\src\lib\codecs\cmml\libWinCMMLParse\libWinCMMLParse.vcproj", "{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testCMML", "..\..\src\tests\testCMML\testCMML.vcproj", "{6C1AD4AE-7675-4CD0-AE70-897C628AA219}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfCMMLDecoder", "..\..\src\lib\codecs\cmml\dsfCMMLDecoder\dsfCMMLDecoder.vcproj", "{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}"
+EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
ConfigName.0 = Debug
@@ -73,60 +77,60 @@
EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
{9A14F6AC-BC6E-401A-A300-07369BD6C5FE}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}.0 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
{BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}.1 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}.2 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{4906E533-2864-4840-ABC1-00CD844623EB}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}.2 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{4906E533-2864-4840-ABC1-00CD844623EB}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
{4906E533-2864-4840-ABC1-00CD844623EB}.1 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{4906E533-2864-4840-ABC1-00CD844623EB}.2 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{4906E533-2864-4840-ABC1-00CD844623EB}.2 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
{A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}.1 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}.2 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{AE32588D-2807-4796-9E68-C9104817BC1A}.0 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{AE32588D-2807-4796-9E68-C9104817BC1A}.1 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{AE32588D-2807-4796-9E68-C9104817BC1A}.2 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{AE32588D-2807-4796-9E68-C9104817BC1A}.3 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}.2 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{AE32588D-2807-4796-9E68-C9104817BC1A}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{AE32588D-2807-4796-9E68-C9104817BC1A}.1 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{AE32588D-2807-4796-9E68-C9104817BC1A}.2 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{AE32588D-2807-4796-9E68-C9104817BC1A}.3 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
{2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}.1 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}.2 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}.2 = {223ACC19-608E-4E1B-A054-067F0CACB272}
{6B548F29-04A2-4F61-946F-72B86B4845DA}.0 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.1 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.0 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.1 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.2 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.3 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.4 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.3 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}.4 = {223ACC19-608E-4E1B-A054-067F0CACB272}
{95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}.0 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.1 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.1 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.2 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.3 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.4 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}.0 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.3 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}.4 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}.0 = {6D653C6F-8722-4B10-9C3A-CB7094DD159F}
{AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}.1 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}.2 = {6D653C6F-8722-4B10-9C3A-CB7094DD159F}
-		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.1 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}.2 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.0 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.1 = {A882A968-3013-4A27-B653-E18CF5C791FE}
{D74A626E-C8CB-4787-913E-2E637FC04F2B}.2 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.3 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.4 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.1 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.3 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{D74A626E-C8CB-4787-913E-2E637FC04F2B}.4 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.1 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.2 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.3 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.4 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.1 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.3 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3FB9B20E-790A-402F-A02C-B0FBDC5938E3}.4 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.1 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
{419E0701-9C9A-4671-B3B6-79FA206DEE25}.2 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.3 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.4 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.3 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{419E0701-9C9A-4671-B3B6-79FA206DEE25}.4 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
{2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}.0 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{6B20BD7A-644B-4087-9CAC-71B2D68D0231}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{6B20BD7A-644B-4087-9CAC-71B2D68D0231}.1 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.0 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
-		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.1 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{6B20BD7A-644B-4087-9CAC-71B2D68D0231}.0 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{6B20BD7A-644B-4087-9CAC-71B2D68D0231}.1 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.1 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.2 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.3 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.4 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.3 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{11CBDFD6-0D73-40C0-95DF-997C5FD873F2}.4 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
{73D3CA81-3BDC-42F1-8456-76224F6B337C}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.0 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.1 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
@@ -143,177 +147,279 @@
{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.12 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.13 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.14 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.15 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.16 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.17 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.18 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.19 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.20 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.21 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.22 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.23 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.24 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.25 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.26 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.27 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.28 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.29 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.30 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.31 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.32 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.33 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.34 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.35 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.36 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.37 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.38 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.39 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.40 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.41 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.42 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.43 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.44 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.45 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.46 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.47 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.48 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.49 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.50 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.51 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.52 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.53 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.54 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.55 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.56 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.57 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.58 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.59 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.60 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.61 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.62 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.63 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.64 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.65 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.66 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.67 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.68 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.69 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.70 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.71 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.72 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.73 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.74 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.75 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.76 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.77 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.78 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.79 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.80 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.81 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.82 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.83 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.84 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.85 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.86 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.87 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.88 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.89 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.90 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.91 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.92 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.93 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.94 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.95 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.96 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.97 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.98 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.99 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.100 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.101 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.102 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.103 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.104 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.105 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.106 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.107 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.108 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.109 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.110 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.111 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.112 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.113 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.114 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.115 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.116 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.117 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.118 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.119 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.120 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.121 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.122 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.123 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.124 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.125 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.126 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.127 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.128 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.129 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.130 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.131 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.132 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.133 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.134 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.135 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.136 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.137 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.138 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.139 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.140 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.141 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.142 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.143 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.144 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.145 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.146 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.147 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.148 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.149 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.150 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.151 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.152 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.153 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.154 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.155 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.156 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.157 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.158 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.159 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.160 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.161 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.162 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.163 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.164 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.165 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.166 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.167 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.168 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.169 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.170 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.171 = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.172 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.173 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.174 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.175 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.176 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.177 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.178 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
-		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.179 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.15 = {F9F22B14-22FE-4651-81B8-5AE267A6B189}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.16 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.17 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.18 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.19 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.20 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.21 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.22 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.23 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.24 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.25 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.26 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.27 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.28 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.29 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.30 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.31 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.32 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.33 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.34 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.35 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.36 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.37 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.38 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.39 = {F9F22B14-22FE-4651-81B8-5AE267A6B189}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.40 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.41 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.42 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.43 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.44 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.45 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.46 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.47 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.48 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.49 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.50 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.51 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.52 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.53 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.54 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.55 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.56 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.57 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.58 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.59 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.60 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.61 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.62 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.63 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.64 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.65 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.66 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.67 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.68 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.69 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.70 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.71 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.72 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.73 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.74 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.75 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.76 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.77 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.78 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.79 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.80 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.81 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.82 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.83 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.84 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.85 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.86 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.87 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.88 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.89 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.90 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.91 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.92 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.93 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.94 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.95 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.96 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.97 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.98 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.99 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.100 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.101 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.102 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.103 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.104 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.105 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.106 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.107 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.108 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.109 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.110 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.111 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.112 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.113 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.114 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.115 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.116 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.117 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.118 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.119 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.120 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.121 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.122 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.123 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.124 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.125 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.126 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.127 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.128 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.129 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.130 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.131 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.132 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.133 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.134 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.135 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.136 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.137 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.138 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.139 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.140 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.141 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.142 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.143 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.144 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.145 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.146 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.147 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.148 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.149 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.150 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.151 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.152 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.153 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.154 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.155 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.156 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.157 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.158 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.159 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.160 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.161 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.162 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.163 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.164 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.165 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.166 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.167 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.168 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.169 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.170 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.171 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.172 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.173 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.174 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.175 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.176 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.177 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.178 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.179 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.180 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.181 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.182 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.183 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.184 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.185 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.186 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.187 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.188 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.189 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.190 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.191 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.192 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.193 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.194 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.195 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.196 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.197 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.198 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.199 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.200 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.201 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.202 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.203 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.204 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.205 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.206 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.207 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.208 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.209 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.210 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.211 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.212 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.213 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.214 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.215 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.216 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.217 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.218 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.219 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.220 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.221 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.222 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.223 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.224 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.225 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.226 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.227 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.228 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.229 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.230 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.231 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.232 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.233 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.234 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.235 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.236 = {F9F22B14-22FE-4651-81B8-5AE267A6B189}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.237 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.238 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.239 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.240 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.241 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.242 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.243 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.244 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.245 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.246 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.247 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.248 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.249 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.250 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.251 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.252 = {D74A626E-C8CB-4787-913E-2E637FC04F2B}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.253 = {C2B7DBC0-5AB3-46F5-90E9-05EF1B230AE2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.254 = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.255 = {2394BCBD-BAE8-443F-A65C-6BFDDD42D7CA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.256 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.257 = {6B548F29-04A2-4F61-946F-72B86B4845DA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.258 = {95720FE9-89D5-4DCD-9A75-EE73BDF58AB2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.259 = {A882A968-3013-4A27-B653-E18CF5C791FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.260 = {F9F22B14-22FE-4651-81B8-5AE267A6B189}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.261 = {419E0701-9C9A-4671-B3B6-79FA206DEE25}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.262 = {DE1073F1-71D6-477E-A7C1-6E4F0AACCBF4}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.263 = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.264 = {FB373486-0E6E-4BB6-8BF2-1F92EACA1468}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.265 = {BE48BAC3-F0DE-47AA-8192-C2A52798E0E5}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.266 = {A3BFBA6A-9B45-44C3-8FB0-A16FA2D9E487}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.267 = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.268 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.269 = {223ACC19-608E-4E1B-A054-067F0CACB272}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.270 = {2EBA839A-CE6E-406E-9A43-CC6FB25A78CB}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.271 = {11CBDFD6-0D73-40C0-95DF-997C5FD873F2}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.272 = {6B20BD7A-644B-4087-9CAC-71B2D68D0231}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.273 = {3FB9B20E-790A-402F-A02C-B0FBDC5938E3}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.274 = {48CFEC13-E2BC-412F-8ECA-29090C7193B6}
+		{3214DF66-3E46-4E44-BF9D-BC7502B88C29}.275 = {73D3CA81-3BDC-42F1-8456-76224F6B337C}
{48CFEC13-E2BC-412F-8ECA-29090C7193B6}.0 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.0 = {AE32588D-2807-4796-9E68-C9104817BC1A}
-		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.1 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.0 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.1 = {223ACC19-608E-4E1B-A054-067F0CACB272}
{F9F22B14-22FE-4651-81B8-5AE267A6B189}.2 = {A882A968-3013-4A27-B653-E18CF5C791FE}
-		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.3 = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.4 = {9A14F6AC-BC6E-401A-A300-07369BD6C5FE}
+		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.3 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{F9F22B14-22FE-4651-81B8-5AE267A6B189}.4 = {AE32588D-2807-4796-9E68-C9104817BC1A}
+		{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}.0 = {AD38DCC6-B431-4B32-8569-74F3376EF2DA}
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.0 = {23BAAF7B-AEC3-4812-AA91-7E5061E83A39}
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.1 = {AD38DCC6-B431-4B32-8569-74F3376EF2DA}
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.0 = {AD38DCC6-B431-4B32-8569-74F3376EF2DA}
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.1 = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.2 = {23BAAF7B-AEC3-4812-AA91-7E5061E83A39}
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{FB373486-0E6E-4BB6-8BF2-1F92EACA1468}.Debug.ActiveCfg = Debug|Win32
@@ -636,6 +742,26 @@
{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}.Release.Build.0 = Release|Win32
{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}.Release Unicode.ActiveCfg = Release|Win32
{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}.Release Unicode.Build.0 = Release|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Debug.ActiveCfg = Debug|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Debug.Build.0 = Debug|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Debug Unicode.ActiveCfg = Debug|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Debug Unicode.Build.0 = Debug|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.MakeFile.ActiveCfg = Release|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.MakeFile.Build.0 = Release|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Release.ActiveCfg = Release|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Release.Build.0 = Release|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Release Unicode.ActiveCfg = Release|Win32
+		{6C1AD4AE-7675-4CD0-AE70-897C628AA219}.Release Unicode.Build.0 = Release|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Debug.ActiveCfg = Debug|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Debug.Build.0 = Debug|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Debug Unicode.ActiveCfg = Debug|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Debug Unicode.Build.0 = Debug|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.MakeFile.ActiveCfg = Release|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.MakeFile.Build.0 = Release|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Release.ActiveCfg = Release|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Release.Build.0 = Release|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Release Unicode.ActiveCfg = Release|Win32
+		{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}.Release Unicode.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,222 @@
+#include "StdAfx.h"
+#include "cmmldecodefilter.h"
+
+//COM Factory Template
+CFactoryTemplate g_Templates[] =
+{
+    {
+		L"CMML Decode Filter",					// Name
+	    &CLSID_CMMLDecodeFilter,				// CLSID
+	    CMMLDecodeFilter::CreateInstance,		// Method to create an instance of Speex Decoder
+        NULL,									// Initialization function
+        NULL									// Set-up information (for filters)
+    }
+
+};
+
+// Generic way of determining the number of items in the template
+int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
+
+//-----------------------------------------------------------
+CMMLDecodeFilter::CMMLDecodeFilter(void)
+	:	CTransformFilter(NAME("CMML Decoder"), NULL, CLSID_CMMLDecodeFilter)
+
+	,	mCMMLParser(NULL)
+	,	mSeenHead(false)
+	,	mHeadTag(NULL)
+{
+	mCMMLParser = new CMMLParser;
+	debugLog.open("C:\\Temp\\cmmlfilter.log", ios_base::out);
+	debugLog<<"*** Log Begins ***"<<endl;
+}
+
+CMMLDecodeFilter::~CMMLDecodeFilter(void)
+{
+	debugLog<<"*** Log Ends ***"<<endl;
+	debugLog.close();
+	delete mCMMLParser;
+}
+
+CUnknown* WINAPI CMMLDecodeFilter::CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr)
+{
+	//This routine is the COM implementation to create a new Filter
+	CMMLDecodeFilter *pNewObject = new CMMLDecodeFilter();
+    if (pNewObject == NULL) {
+        *pHr = E_OUTOFMEMORY;
+    }
+	return pNewObject;
+}
+
+HRESULT CMMLDecodeFilter::CheckInputType(const CMediaType* inInputMediaType) {
+	if (	(inInputMediaType->majortype == MEDIATYPE_Text)	&&
+			(inInputMediaType->subtype == MEDIASUBTYPE_CMML) &&
+			(inInputMediaType->formattype == FORMAT_CMML) ){
+
+		debugLog<<"Input Type Accepted"<<endl;
+		return S_OK;
+	} else {
+		return VFW_E_TYPE_NOT_ACCEPTED;
+	}
+}
+HRESULT CMMLDecodeFilter::CheckTransform(const CMediaType* inInputMediaType, const CMediaType* inOutputMediaType) {
+	if (	(inInputMediaType->majortype == MEDIATYPE_Text)	&&
+			(inInputMediaType->subtype == MEDIASUBTYPE_CMML) &&
+			(inInputMediaType->formattype == FORMAT_CMML) &&
+			(inOutputMediaType->majortype == MEDIATYPE_Text) &&
+			(inOutputMediaType->subtype == MEDIASUBTYPE_SubtitleVMR9) ){
+
+		debugLog << "Transform Accepted"<<endl;
+		return S_OK;
+	} else {
+		return VFW_E_TYPE_NOT_ACCEPTED;
+	}
+
+}
+HRESULT CMMLDecodeFilter::DecideBufferSize(IMemAllocator* inAllocator, ALLOCATOR_PROPERTIES* inPropertyRequest) {
+	//FIX::: Abstract this out properly
+
+	HRESULT locHR = S_OK;
+
+	ALLOCATOR_PROPERTIES locReqAlloc;
+	ALLOCATOR_PROPERTIES locActualAlloc;
+
+	const unsigned long MIN_BUFFER_SIZE = 1024;
+	const unsigned long DEFAULT_BUFFER_SIZE = 4096;
+	const unsigned long MIN_NUM_BUFFERS = 3;
+	const unsigned long DEFAULT_NUM_BUFFERS = 5;
+
+
+
+
+	if (inPropertyRequest->cbAlign <= 0) {
+		locReqAlloc.cbAlign = 1;
+	} else {
+		locReqAlloc.cbAlign = inPropertyRequest->cbAlign;
+	}
+
+
+	if (inPropertyRequest->cbBuffer < MIN_BUFFER_SIZE) {
+		locReqAlloc.cbBuffer = DEFAULT_BUFFER_SIZE;
+	} else {
+		locReqAlloc.cbBuffer = inPropertyRequest->cbBuffer;
+	}
+
+
+	if (inPropertyRequest->cbPrefix < 0) {
+			locReqAlloc.cbPrefix = 0;
+	} else {
+		locReqAlloc.cbPrefix = inPropertyRequest->cbPrefix;
+	}
+
+
+	if (inPropertyRequest->cBuffers < MIN_NUM_BUFFERS) {
+		locReqAlloc.cBuffers = DEFAULT_NUM_BUFFERS;
+	} else {
+		locReqAlloc.cBuffers = inPropertyRequest->cBuffers;
+	}
+
+
+	locHR = inAllocator->SetProperties(&locReqAlloc, &locActualAlloc);
+
+	if (locHR != S_OK) {
+		return locHR;
+	}
+
+	locHR = inAllocator->Commit();
+
+	return locHR;
+}
+HRESULT CMMLDecodeFilter::GetMediaType(int inPosition, CMediaType* outMediaType) {
+	if (inPosition < 0) {
+		return E_INVALIDARG;
+	} else if (inPosition == 0) {
+		outMediaType->majortype = MEDIATYPE_Text;
+		outMediaType->subtype = MEDIASUBTYPE_SubtitleVMR9;
+		return S_OK;
+	} else {
+		return VFW_S_NO_MORE_ITEMS;
+	}
+}
+HRESULT CMMLDecodeFilter::Transform(IMediaSample* inSample, IMediaSample* outSample) {
+	unsigned long locSize = inSample->GetActualDataLength();
+	char* locCMML = NULL;
+	BYTE* locInBuff = NULL;
+	BYTE* locOutBuff = NULL;
+	HRESULT locHR = S_FALSE;
+	wstring locWCMML;
+	char* locText = NULL;
+	string locTextStr;
+	unsigned long locTextSize = 0;
+
+	debugLog<<"Transform : Input Sample Size = "<<locSize<<endl;
+	if (locSize > 0) {
+		locCMML = new char[locSize+1];
+		locCMML[locSize] = '\0';
+
+		locHR = inSample->GetPointer(&locInBuff);
+		memcpy((void*)locCMML, (const void*) locInBuff, locSize);
+		debugLog<<"           : Sample Text = "<<locCMML<<endl<<endl;
+		locWCMML = toWStr(locCMML);
+		if (mSeenHead == false) {
+			debugLog << "           : Processing a head tag"<<endl;
+			//Head tag... needs error checks
+			mSeenHead = true;
+			mHeadTag = new C_HeadTag;
+			bool locParseOK = mCMMLParser->parseHeadTag(locWCMML, mHeadTag);
+			if (locParseOK) {
+				debugLog<<"          : Parse OK"<<endl;
+
+				locHR = outSample->GetPointer(&locOutBuff);
+				locTextSize = mHeadTag->title()->text().size();
+				locTextStr = mHeadTag->title()->text();
+
+				debugLog<<"            : Title Text = "<<locTextStr<<endl;
+				memcpy((void*)locOutBuff, (const void*) locTextStr.c_str(), locTextSize);
+				locOutBuff[locTextSize] = '\0';
+				outSample->SetActualDataLength(locTextSize + 1);
+			} else {
+				debugLog<<"          : Parse FAILED"<<endl;
+			}
+
+		} else {
+			//Clip Tag... needs error checks
+			debugLog << "           : Processing a clip tag"<<endl;
+			C_ClipTag locClipTag;
+			bool locParseOK = mCMMLParser->parseClipTag(locWCMML, &locClipTag);
+			if (locParseOK) {
+				debugLog<<"          : Parse OK"<<endl;
+
+
+				locHR = outSample->GetPointer(&locOutBuff);
+				locTextSize = locClipTag.anchor()->text().size();
+				locTextStr = locClipTag.anchor()->text();
+				memcpy((void*)locOutBuff, (const void*) locTextStr.c_str(), locTextSize);
+
+				debugLog << "               : Clip Text = "<<locTextStr<<endl;
+				locOutBuff[locTextSize] = '\0';
+				outSample->SetActualDataLength(locTextSize + 1);
+			} else {
+				debugLog<<"          : Parse FAILED"<<endl;
+			}
+		}
+
+		delete locCMML;
+		return S_OK;
+
+	} else {
+		//This is dumb !!
+		return S_OK;
+	}
+}
+
+wstring CMMLDecodeFilter::toWStr(string inString) {
+	wstring retVal;
+
+	//LPCWSTR retPtr = new wchar_t[retVal.length() + 1];
+	for (std::string::const_iterator i = inString.begin(); i != inString.end(); i++) {
+		retVal.append(1, *i);
+	}
+
+
+	return retVal;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecodeFilter.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,35 @@
+#pragma once
+#include "cmmldecoderdllstuff.h"
+#include <string>
+#include <fstream>
+#include "libWinCMMLParse.h"
+#include "CMMLParser.h"
+#include "libCMMLTags.h"
+using namespace std;
+class CMMLDecodeFilter
+	:	public CTransformFilter
+{
+public:
+	CMMLDecodeFilter(void);
+	virtual ~CMMLDecodeFilter(void);
+	//COM Creator Function
+	DECLARE_IUNKNOWN
+	static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
+
+	//Implement the Tranform filter interface
+	HRESULT CMMLDecodeFilter::CheckInputType(const CMediaType* inInputMediaType);
+	HRESULT CMMLDecodeFilter::CheckTransform(const CMediaType* inInputMediaType, const CMediaType* inOutputMediaType);
+	HRESULT CMMLDecodeFilter::DecideBufferSize(IMemAllocator* inAllocator, ALLOCATOR_PROPERTIES* inPropertyRequest);
+	HRESULT CMMLDecodeFilter::GetMediaType(int inPosition, CMediaType* outMediaType);
+	HRESULT CMMLDecodeFilter::Transform(IMediaSample* inSample, IMediaSample* outSample);
+
+protected:
+	wstring toWStr(string inString);
+	CMMLParser* mCMMLParser;
+	bool mSeenHead;
+	C_HeadTag* mHeadTag;
+
+	fstream debugLog;
+
+
+};
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecoder.def
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecoder.def	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/CMMLDecoder.def	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,7 @@
+LIBRARY	dsfCMMLDecoder
+EXPORTS
+	DllMain				PRIVATE
+    DllGetClassObject   PRIVATE
+    DllCanUnloadNow     PRIVATE
+    DllRegisterServer   PRIVATE
+    DllUnregisterServer PRIVATE

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/ReadMe.txt
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/ReadMe.txt	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/ReadMe.txt	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,40 @@
+========================================================================
+    DYNAMIC LINK LIBRARY : dsfCMMLDecoder Project Overview
+========================================================================
+
+AppWizard has created this dsfCMMLDecoder DLL for you.
+This file contains a summary of what you will find in each of the files that
+make up your dsfCMMLDecoder application.
+
+
+dsfCMMLDecoder.vcproj
+    This is the main project file for VC++ projects generated using an Application Wizard.
+    It contains information about the version of Visual C++ that generated the file, and
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+dsfCMMLDecoder.cpp
+    This is the main DLL source file.
+
+	When created, this DLL does not export any symbols. As a result, it
+	will not produce a .lib file when it is built. If you wish this project
+	to be a project dependency of some other project, you will either need to
+	add code to export some symbols from the DLL so that an export library
+	will be produced, or you can set the Ignore Input Library property to Yes
+	on the General propert page of the Linker folder in the project's Property
+	Pages dialog box.
+
+/////////////////////////////////////////////////////////////////////////////
+Other standard files:
+
+StdAfx.h, StdAfx.cpp
+    These files are used to build a precompiled header (PCH) file
+    named dsfCMMLDecoder.pch and a precompiled types file named StdAfx.obj.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" comments to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,69 @@
+#include "StdAfx.h"
+#include "cmmldecoderdllstuff.h"
+
+extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);
+BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
+{
+    return DllEntryPoint((HINSTANCE)(hModule), dwReason, lpReserved);
+}
+
+
+
+//The folowing two functions do the registration and deregistration of the dll and it's contained com objects.
+STDAPI DllRegisterServer()
+{
+
+
+    HRESULT hr;
+    IFilterMapper2* locFilterMapper = NULL;
+
+    hr = AMovieDllRegisterServer2(TRUE);
+
+
+
+
+    hr = CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER, IID_IFilterMapper2, (void **)&locFilterMapper);
+
+
+	hr = locFilterMapper->RegisterFilter(
+		CLSID_CMMLDecodeFilter,						// Filter CLSID.
+		L"CMML Decode Filter",							// Filter name.
+        NULL,										// Device moniker.
+        &CLSID_LegacyAmFilterCategory,				// Direct Show general category
+        L"CMML Decode Filter",							// Instance data. ???????
+        &CMMLDecodeFilterReg								// Pointer to filter information.
+    );
+
+    locFilterMapper->Release();
+
+    return hr;
+
+}
+
+STDAPI DllUnregisterServer()
+{
+   HRESULT hr;
+    IFilterMapper2* locFilterMapper = NULL;
+
+    hr = AMovieDllRegisterServer2(FALSE);
+	if (FAILED(hr)) {
+
+        return hr;
+	}
+
+    hr = CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
+            IID_IFilterMapper2, (void **)&locFilterMapper);
+
+	if (FAILED(hr)) {
+        return hr;
+	}
+
+
+    hr = locFilterMapper->UnregisterFilter(&CLSID_LegacyAmFilterCategory, L"CMML Decode Filter", CLSID_CMMLDecodeFilter);
+
+
+	//
+    locFilterMapper->Release();
+    return hr;
+
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/cmmldecoderdllstuff.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,75 @@
+#pragma once
+#include <streams.h>
+#include <pullpin.h>
+#include <initguid.h>
+
+// {966D76B4-7D2F-4f01-B840-94E425D2214F}
+DEFINE_GUID(MEDIASUBTYPE_SubtitleVMR9,
+0x966d76b4, 0x7d2f, 0x4f01, 0xb8, 0x40, 0x94, 0xe4, 0x25, 0xd2, 0x21, 0x4f);
+
+// {53696C76-6961-40b2-B136-436F6E726164}
+DEFINE_GUID(FORMAT_CMML,
+0x53696c76, 0x6961, 0x40b2, 0xb1, 0x36, 0x43, 0x6f, 0x6e, 0x72, 0x61, 0x64);
+
+
+// {5A656E74-6172-6F26-B79C-D6416E647282}
+DEFINE_GUID(MEDIASUBTYPE_CMML,
+0x5a656e74, 0x6172, 0x6f26, 0xb7, 0x9c, 0xd6, 0x41, 0x6e, 0x64, 0x72, 0x82);
+
+// {BF1121D1-8739-45e1-BCD8-90B828F643AB}
+DEFINE_GUID(CLSID_CMMLDecodeFilter,
+0xbf1121d1, 0x8739, 0x45e1, 0xbc, 0xd8, 0x90, 0xb8, 0x28, 0xf6, 0x43, 0xab);
+
+//This structure defines the type of input we accept on the input pin... Stream/Annodex
+
+const REGPINTYPES CMMLDecodeOutputTypes = {
+    &MEDIATYPE_Text,
+	&MEDIASUBTYPE_SubtitleVMR9
+};
+
+const REGPINTYPES CMMLDecodeInputTypes = {
+	&MEDIATYPE_Text,
+	&MEDIASUBTYPE_CMML
+};
+const REGFILTERPINS CMMLDecodePinReg[] = {
+	{
+    L"CMML Input",						//Name (obsoleted)
+	FALSE,								//Renders from this pin ?? Not sure about this.
+	FALSE,								//Not an output pin
+	FALSE,								//Cannot have zero instances of this pin
+	FALSE,								//Cannot have more than one instance of this pin
+	NULL,								//Connects to filter (obsoleted)
+	NULL,								//Connects to pin (obsoleted)
+	1,									//upport two media type
+	&CMMLDecodeInputTypes				//Pointer to media type (Audio/Vorbis or Audio/Speex)
+	} ,
+
+	{
+	L"Subtitle VMR9 Output",			//Name (obsoleted)
+	FALSE,								//Renders from this pin ?? Not sure about this.
+	TRUE,								//Is an output pin
+	FALSE,								//Cannot have zero instances of this pin
+	FALSE,								//Cannot have more than one instance of this pin
+	NULL,								//Connects to filter (obsoleted)
+	NULL,								//Connects to pin (obsoleted)
+	1,									//Only support one media type
+	&CMMLDecodeOutputTypes				//Pointer to media type (Audio/PCM)
+
+	}
+};
+
+
+
+const REGFILTER2 CMMLDecodeFilterReg = {
+		1,
+		MERIT_NORMAL,
+		2,
+        CMMLDecodePinReg
+
+};
+
+
+struct sCMMLFormatBlock {
+	__int64 granuleNumerator;
+	__int64 granuleDenominator;
+};
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,12 @@
+// dsfCMMLDecoder.cpp : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+BOOL APIENTRY DllMain( HANDLE hModule,
+                       DWORD  ul_reason_for_call,
+                       LPVOID lpReserved
+					 )
+{
+    return TRUE;
+}
+

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.vcproj	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/dsfCMMLDecoder.vcproj	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.00"
+	Name="dsfCMMLDecoder"
+	ProjectGUID="{6B269BA6-6A18-41EF-A82C-03B6B5D4BCA7}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="2"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\libCMMLTags;..\libWinCMMLParse"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DSFCMMLDECODER_EXPORTS"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="Strmbasd.lib Msvcrtd.lib Winmm.lib Strmiids.lib  Quartz.lib"
+				OutputFile="$(OutDir)/dsfCMMLDecoder.dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug&quot;"
+				ModuleDefinitionFile="CMMLDecoder.def"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/dsfCMMLDecoder.pdb"
+				SubSystem="2"
+				ImportLibrary="$(OutDir)/dsfCMMLDecoder.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="2"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\libCMMLTags;..\libWinCMMLParse"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFCMMLDECODER_EXPORTS"
+				StringPooling="TRUE"
+				RuntimeLibrary="0"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="Strmbase.lib Msvcrt.lib Winmm.lib Strmiids.lib  Quartz.lib"
+				OutputFile="$(OutDir)/dsfCMMLDecoder.dll"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Release&quot;"
+				ModuleDefinitionFile="CMMLDecoder.def"
+				GenerateDebugInformation="TRUE"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				ImportLibrary="$(OutDir)/dsfCMMLDecoder.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+	</Configurations>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
+			<File
+				RelativePath="CMMLDecodeFilter.cpp">
+			</File>
+			<File
+				RelativePath="CMMLDecoder.def">
+			</File>
+			<File
+				RelativePath="cmmldecoderdllstuff.cpp">
+			</File>
+			<File
+				RelativePath="stdafx.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc">
+			<File
+				RelativePath="CMMLDecodeFilter.h">
+			</File>
+			<File
+				RelativePath="cmmldecoderdllstuff.h">
+			</File>
+			<File
+				RelativePath="stdafx.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+		</Filter>
+		<File
+			RelativePath="ReadMe.txt">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// dsfCMMLDecoder.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file

Added: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLDecoder/stdafx.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,12 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+// Windows Header Files:
+#include <windows.h>
+
+// TODO: reference additional headers your program requires here

Modified: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -92,7 +92,9 @@
}

void C_ClipTag::setStart(string inStart) {
-	mStart = inStart;
+	if (inStart != "") {
+		mStart = inStart;
+	}
}
void C_ClipTag::setEnd(string inEnd) {
mEnd = inEnd;
@@ -131,7 +133,9 @@
}

//track Element
-	retStr += makeElement("track", mTrack);
+	if (mTrack != "") {
+		retStr += makeElement("track", mTrack);
+	}

//TO DO::: Sort out what to do about start and end
retStr += makeElement("start", mStart);

Modified: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj	2004-06-25 09:10:28 UTC (rev 6856)
@@ -26,7 +26,8 @@
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
-				DebugInformationFormat="4"/>
+				DebugInformationFormat="4"
+				CallingConvention="2"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
@@ -65,6 +66,7 @@
Optimization="3"
GlobalOptimizations="TRUE"
InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="TRUE"
OmitFramePointers="TRUE"
OptimizeForProcessor="2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBCMMLTAGS_EXPORTS"
@@ -74,7 +76,8 @@
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
-				DebugInformationFormat="3"/>
+				DebugInformationFormat="3"
+				CallingConvention="2"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool

Added: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,398 @@
+#include "StdAfx.h"
+#include "cmmlparser.h"
+
+CMMLParser::CMMLParser(void)
+{
+	HRESULT hr;
+	hr = CoInitialize(NULL);
+}
+
+CMMLParser::~CMMLParser(void)
+{
+}
+
+
+
+
+bool CMMLParser::setupXMLHandles(wstring inText, MSXML2::IXMLDOMDocument** outDoc) {
+
+	HRESULT locHR = S_FALSE;
+	// Check the return value, hr...
+	locHR = CoCreateInstance(__uuidof(DOMDocument30), NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)outDoc);
+	// Check the return value, hr...
+
+	// Check the return value.
+
+	BSTR locClipStr = SysAllocString(inText.c_str());
+	VARIANT_BOOL locBool;
+	locHR = (*outDoc)->loadXML(locClipStr, &locBool);
+
+
+	//Should free string ??
+	SysFreeString(locClipStr);
+	if (locHR == S_OK) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+
+
+MSXML2::IXMLDOMNode* CMMLParser::getNamedNode(wstring inXPath, MSXML2::IXMLDOMDocument* inDoc) {
+	BSTR locQuery = SysAllocString(inXPath.c_str());
+	HRESULT locHR = S_FALSE;
+	MSXML2::IXMLDOMNode* retNode = NULL;
+
+	locHR = inDoc->selectSingleNode(locQuery, &retNode);
+
+    SysFreeString(locQuery);
+	return retNode;
+}
+
+wstring CMMLParser::getNamedAttribValue(wstring inAttribName, MSXML2::IXMLDOMNamedNodeMap* inAttribMap) {
+	BSTR locAttribName = SysAllocString(inAttribName.c_str());
+	MSXML2::IXMLDOMNode* locAttribNode = NULL;
+	wstring retStr = L"";
+	HRESULT locHR = S_FALSE;
+	locHR = inAttribMap->getNamedItem(locAttribName, &locAttribNode);
+	BSTR locBStr = NULL;
+
+	if (locHR == S_OK) {
+		locHR =  locAttribNode->get_text(&locBStr);
+		retStr = locBStr;
+	} else {
+		//Not found... what to do !
+	}
+
+	//Cleanup
+	if (locAttribNode != NULL) locAttribNode->Release();
+	SysFreeString(locBStr);
+	SysFreeString(locAttribName);
+
+	return retStr;
+}
+
+bool CMMLParser::parseClipTag(MSXML2::IXMLDOMNode* inClipNode, C_ClipTag* outClip) {
+	MSXML2::IXMLDOMNamedNodeMap*	locAttribMap		= NULL;
+	MSXML2::IXMLDOMNode*			locNode				= NULL;
+	MSXML2::IXMLDOMNodeList*		locChildNodes		= NULL;
+	HRESULT							locHR				= S_FALSE;
+	wstring							locNodeName;
+	BSTR							locBStr				= NULL;
+	long							locNumNodes			= 0;
+
+	//---------------Attributes-----------------
+	//Get the attributes
+	locHR = inClipNode->get_attributes(&locAttribMap);
+
+	//Other attributes are missing.
+	outClip->setId(toNarrowStr(getNamedAttribValue(L"id", locAttribMap)));
+	outClip->setStart(toNarrowStr(getNamedAttribValue(L"start", locAttribMap)));
+	outClip->setStart(toNarrowStr(getNamedAttribValue(L"end", locAttribMap)));
+	//------------------------------------------
+
+	//--------------Child Nodes-----------------
+	locHR = inClipNode->get_childNodes(&locChildNodes);
+	locHR = locChildNodes->get_length(&locNumNodes);
+
+	for (int i = 0; i < locNumNodes; i++) {
+
+		locHR = locChildNodes->get_item(i, &locNode);
+		locHR = locNode->get_nodeName(&locBStr);
+		locNodeName = locBStr;
+
+		if (locNodeName == L"a") {
+
+			C_AnchorTag* locAnchor = new C_AnchorTag;
+			parseAnchorTag(locNode, locAnchor);
+			outClip->setAnchor(locAnchor);
+
+		} else if(locNodeName == L"desc") {
+
+			C_DescTag* locDesc = new C_DescTag;
+			parseDescTag(locNode, locDesc);
+			outClip->setDesc(locDesc);
+
+		} else if (locNodeName == L"img") {
+
+			C_ImageTag* locImage = new C_ImageTag;
+			parseImageTag(locNode, locImage);
+			outClip->setImage(locImage);
+
+		} else if (locNodeName == L"meta") {
+
+			C_MetaTag* locMeta = new C_MetaTag;
+			parseMetaTag(locNode, locMeta);
+			outClip->metaList()->addTag(locMeta);
+
+		} else {
+			//Dunno !
+		}
+
+
+	}
+
+	SysFreeString(locBStr);
+	if (locAttribMap != NULL)					locAttribMap->Release();
+	if (locNode != NULL)						locNode->Release();
+	if (locChildNodes != NULL)					locChildNodes->Release();
+	return true;
+}
+
+bool CMMLParser::parseHeadTag(MSXML2::IXMLDOMNode* inHeadNode, C_HeadTag* outHead) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	MSXML2::IXMLDOMNodeList* locChildNodes = NULL;
+	MSXML2::IXMLDOMNode* locNode = NULL;
+	HRESULT locHR = S_FALSE;
+	long locNumNodes = 0;
+	BSTR locBStr = NULL;
+	wstring locNodeName;
+	//---------------Attributes-----------------
+	//No attributes for now
+	//------------------------------------------
+
+	//--------------Child Nodes-----------------
+	locHR = inHeadNode->get_childNodes(&locChildNodes);
+	locHR = locChildNodes->get_length(&locNumNodes);
+	for (int i = 0; i < locNumNodes; i++) {
+		locHR = locChildNodes->get_item(i, &locNode);
+		locHR = locNode->get_nodeName(&locBStr);
+		locNodeName = locBStr;
+		if (locNodeName == L"title") {
+			C_TitleTag* locTitle = new C_TitleTag;
+			parseTitleTag(locNode, locTitle);
+			outHead->setTitle(locTitle);
+
+		} else if(locNodeName == L"meta") {
+			C_MetaTag* locMeta = new C_MetaTag;
+			parseMetaTag(locNode, locMeta);
+			outHead->metaList()->addTag(locMeta);
+
+		} else {
+			//Dunno !
+		}
+	}
+
+	SysFreeString(locBStr);
+	if (locAttribMap != NULL)					locAttribMap->Release();
+	if (locNode != NULL)						locNode->Release();
+	if (locChildNodes != NULL)					locChildNodes->Release();
+	return true;
+}
+
+bool CMMLParser::parseStreamTag(MSXML2::IXMLDOMNode* inStreamNode, C_StreamTag* outStream) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	MSXML2::IXMLDOMNode* locNode = NULL;
+	MSXML2::IXMLDOMNodeList* locChildNodes = NULL;
+	HRESULT locHR = S_FALSE;
+	long locNumNodes = 0;
+	BSTR locBStr = NULL;
+	wstring locNodeName;
+	//---------------Attributes-----------------
+	//Get the attributes
+	locHR = inStreamNode->get_attributes(&locAttribMap);
+
+	//Other attributes are missing.
+	outStream->setTimebase(toNarrowStr(getNamedAttribValue(L"timebase", locAttribMap)));
+	//------------------------------------------
+
+	//--------------Child Nodes-----------------
+	locHR = inStreamNode->get_childNodes(&locChildNodes);
+	locHR = locChildNodes->get_length(&locNumNodes);
+	for (int i = 0; i < locNumNodes; i++) {
+		locHR = locChildNodes->get_item(i, &locNode);
+		locHR = locNode->get_nodeName(&locBStr);
+		locNodeName = locBStr;
+		if(locNodeName == L"import") {
+			C_ImportTag* locImport = new C_ImportTag;
+			parseImportTag(locNode, locImport);
+			outStream->importList()->addTag(locImport);
+
+		} else {
+			//Dunno !
+		}
+	}
+
+	SysFreeString(locBStr);
+	if (locAttribMap != NULL)					locAttribMap->Release();
+	if (locNode != NULL)						locNode->Release();
+	if (locChildNodes != NULL)					locChildNodes->Release();
+	return true;
+}
+
+bool CMMLParser::parseImportTag(MSXML2::IXMLDOMNode* inImportNode, C_ImportTag* outImport) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	//MSXML2::IXMLDOMNode* locImportNode = NULL;
+	HRESULT locHR = S_FALSE;
+
+	//---------------Attributes-----------------
+	locHR = inImportNode->get_attributes(&locAttribMap);
+	outImport->setId(toNarrowStr(getNamedAttribValue(L"id", locAttribMap)));
+	outImport->setContentType(toNarrowStr(getNamedAttribValue(L"contenttype", locAttribMap)));
+	outImport->setSrc(toNarrowStr(getNamedAttribValue(L"src", locAttribMap)));
+	outImport->setStart(toNarrowStr(getNamedAttribValue(L"start", locAttribMap)));
+	outImport->setEnd(toNarrowStr(getNamedAttribValue(L"end", locAttribMap)));
+	outImport->setTitle(toNarrowStr(getNamedAttribValue(L"title", locAttribMap)));
+	outImport->setGranuleRate(toNarrowStr(getNamedAttribValue(L"granulerate", locAttribMap)));
+	//------------------------------------------
+	return true;
+}
+
+bool CMMLParser::parseImageTag(MSXML2::IXMLDOMNode* inImageNode, C_ImageTag* outImage) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	MSXML2::IXMLDOMNode* locImageNode = NULL;
+	HRESULT locHR = S_FALSE;
+
+	//---------------Attributes-----------------
+	locHR = inImageNode->get_attributes(&locAttribMap);
+	outImage->setSrc(toNarrowStr(getNamedAttribValue(L"src", locAttribMap)));
+	return true;
+}
+/*
+bool CMMLParser::parseMetaTag(MSXML2::IXMLDOMNode* inMetaNode, C_MetaTag* outMeta) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	MSXML2::IXMLDOMNode* locMetaNode = NULL;
+	HRESULT locHR = S_FALSE;
+
+	//---------------Attributes-----------------
+	locHR = inMetaNode->get_attributes(&locAttribMap);
+
+}
+*/
+
+bool CMMLParser::parseMetaTag(MSXML2::IXMLDOMNode* inMetaNode, C_MetaTag* outMeta) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	MSXML2::IXMLDOMNode* locMetaNode = NULL;
+	HRESULT locHR = S_FALSE;
+
+	//---------------Attributes-----------------
+	locHR = inMetaNode->get_attributes(&locAttribMap);
+	outMeta->setName(toNarrowStr(getNamedAttribValue(L"name", locAttribMap)));
+	outMeta->setContent(toNarrowStr(getNamedAttribValue(L"content", locAttribMap)));
+	outMeta->setScheme(toNarrowStr(getNamedAttribValue(L"scheme", locAttribMap)));
+	//------------------------------------------
+	return true;
+}
+
+string CMMLParser::toNarrowStr(wstring inString) {
+	string retVal;
+
+
+	for (std::wstring::const_iterator i = inString.begin(); i != inString.end(); i++) {
+		retVal.append(1, *i);
+	}
+
+	return retVal;
+}
+
+bool CMMLParser::parseAnchorTag(MSXML2::IXMLDOMNode* inAnchorNode, C_AnchorTag* outAnchor) {
+	MSXML2::IXMLDOMNamedNodeMap*		locAttribMap	= NULL;
+	MSXML2::IXMLDOMNode*				locAnchorNode	= NULL;
+	HRESULT								locHR			= S_FALSE;
+	BSTR								locBStr			= NULL;
+	wstring								locAnchorText;
+
+	//---------------Attributes-----------------
+	locHR = inAnchorNode->get_attributes(&locAttribMap);
+	outAnchor->setHref(toNarrowStr(getNamedAttribValue(L"href", locAttribMap)));
+	//------------------------------------------
+	//Anchor text
+
+	inAnchorNode->get_text(&locBStr);
+	locAnchorText = locBStr;
+	outAnchor->setText(toNarrowStr(locAnchorText));
+
+	//Cleanup
+	SysFreeString(locBStr);
+    if (locAttribMap != NULL)					locAttribMap->Release();
+	if (locAnchorNode != NULL)					locAnchorNode->Release();
+	return true;
+}
+
+bool CMMLParser::parseTitleTag(MSXML2::IXMLDOMNode* inTitleNode, C_TitleTag* outTitle) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	BSTR locBStr = NULL;
+	wstring locTitleText;
+	HRESULT locHR = S_FALSE;
+
+	//---------------Attributes-----------------
+	//locHR = inTitleNode->get_attributes(&locAttribMap);
+	//None for now.
+	//------------------------------------------
+	inTitleNode->get_text(&locBStr);
+	locTitleText = locBStr;
+	outTitle->setText(toNarrowStr(locTitleText));
+
+	SysFreeString(locBStr);
+	if (locAttribMap != NULL)					locAttribMap->Release();
+	return true;
+
+}
+
+bool CMMLParser::parseDescTag(MSXML2::IXMLDOMNode* inDescNode, C_DescTag* outDesc) {
+	MSXML2::IXMLDOMNamedNodeMap* locAttribMap = NULL;
+	//MSXML2::IXMLDOMNode* locDescNode = NULL;
+	BSTR locBStr = NULL;
+	wstring locDescText;
+	HRESULT locHR = S_FALSE;
+
+	//---------------Attributes-----------------
+	//locHR = inDescNode->get_attributes(&locAttribMap);
+	//None for now.
+	//------------------------------------------
+	inDescNode->get_text(&locBStr);
+	locDescText = locBStr;
+	outDesc->setText(toNarrowStr(locDescText));
+
+	SysFreeString(locBStr);
+	if (locAttribMap != NULL)					locAttribMap->Release();
+	return true;
+
+}
+bool CMMLParser::parseClipTag(wstring inClipText, C_ClipTag* outClip) {
+	HRESULT locHR = S_FALSE;
+	MSXML2::IXMLDOMDocument* locXMLClipFrag = NULL;
+	MSXML2::IXMLDOMNode* locClipNode  = NULL;
+
+	bool locSetupOK = setupXMLHandles(inClipText, &locXMLClipFrag);
+	//Validate
+	if (locSetupOK) {
+		//locXMLClipFrag->selectSingleNode(locBStr, &locClipNode);
+		locClipNode = getNamedNode(L"clip", locXMLClipFrag);
+		//Check return
+
+		//Now we have a node representing the clip tag and it's children.
+
+		bool retVal = parseClipTag(locClipNode, outClip);
+
+		if (locXMLClipFrag != NULL)					locXMLClipFrag->Release();
+		if (locClipNode != NULL)					locClipNode->Release();
+
+		return retVal;
+	} else {
+		return false;
+	}
+}
+
+bool CMMLParser::parseHeadTag(wstring inHeadText, C_HeadTag* outHead) {
+	HRESULT locHR = S_FALSE;
+	MSXML2::IXMLDOMDocument* locXMLHeadFrag = NULL;
+	MSXML2::IXMLDOMNode* locHeadNode  = NULL;
+
+	setupXMLHandles(inHeadText, &locXMLHeadFrag);
+	//Validate
+
+	//locXMLClipFrag->selectSingleNode(locBStr, &locClipNode);
+	locHeadNode = getNamedNode(L"head", locXMLHeadFrag);
+	//Check return
+
+	//Now we have a node representing the clip tag and it's children.
+
+	bool retVal = parseHeadTag(locHeadNode, outHead);
+
+	if (locXMLHeadFrag != NULL)					locXMLHeadFrag->Release();
+	if (locHeadNode != NULL)					locHeadNode->Release();
+
+	return retVal;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/CMMLParser.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -0,0 +1,44 @@
+#pragma once
+#include <string>
+#include "libCMMLTags.h"
+#import <msxml3.dll> raw_interfaces_only
+using namespace MSXML2;
+#include <msxml.h>
+using namespace std;
+class LIBWINCMMLPARSE_API CMMLParser
+{
+public:
+	CMMLParser(void);
+	~CMMLParser(void);
+
+	bool setupXMLHandles(wstring inText, MSXML2::IXMLDOMDocument** outDoc);
+	//C_CMMLTag* genericParseTag(string inCMMLText);
+	//bool parseCMMLDoc(string inCMMLDocText, C_CMMLDoc* outDoc);
+	bool parseClipTag(wstring inClipText, C_ClipTag* outClip);
+	bool parseHeadTag(wstring inHeadText, C_HeadTag* outHead);
+
+	bool parseHeadTag(MSXML2::IXMLDOMNode* inHeadNode, C_HeadTag* outHead);
+	bool parseAnchorTag(MSXML2::IXMLDOMNode* inAnchorNode, C_AnchorTag* outAnchor);
+	bool parseStreamTag(MSXML2::IXMLDOMNode* inStreamNode, C_StreamTag* outStream);
+	bool parseImportTag(MSXML2::IXMLDOMNode* inImportNode, C_ImportTag* outImport);
+	bool parseTitleTag(MSXML2::IXMLDOMNode* inTitleNode, C_TitleTag* outTitle);
+	bool parseClipTag(MSXML2::IXMLDOMNode* inClipNode, C_ClipTag* outClip);
+	bool parseImageTag(MSXML2::IXMLDOMNode* inImageNode, C_ImageTag* outImage);
+	bool parseMetaTag(MSXML2::IXMLDOMNode* inMetaNode, C_MetaTag* outMeta);
+	bool parseDescTag(MSXML2::IXMLDOMNode* inDescNode, C_DescTag* outDesc);
+
+
+
+protected:
+	wstring getNamedAttribValue(wstring inAttribName, MSXML2::IXMLDOMNamedNodeMap* inAttribMap);
+	MSXML2::IXMLDOMNode* getNamedNode(wstring inXPath, MSXML2::IXMLDOMDocument* inDoc);
+	string toNarrowStr(wstring inString);
+	//void createTagMap();
+	//unsigned long hashFunction(string inTagName);
+
+
+	//typedef map<unsigned long, string> tTagMap;
+	//tTagMap mTagMap;
+	//tTagMap::value_type mTagValue;
+
+};

Modified: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/ReadMe.txt
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/ReadMe.txt	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/ReadMe.txt	2004-06-25 09:10:28 UTC (rev 6856)
@@ -1,32 +1,32 @@
-========================================================================
-    DYNAMIC LINK LIBRARY : libWinCMMLParse Project Overview
-========================================================================
-
-AppWizard has created this libWinCMMLParse DLL for you.
-This file contains a summary of what you will find in each of the files that
-make up your libWinCMMLParse application.
-
-
-libWinCMMLParse.vcproj
-    This is the main project file for VC++ projects generated using an Application Wizard.
-    It contains information about the version of Visual C++ that generated the file, and
-    information about the platforms, configurations, and project features selected with the
-    Application Wizard.
-
-libWinCMMLParse.cpp
-    This is the main DLL source file.
-
-/////////////////////////////////////////////////////////////////////////////
-Other standard files:
-
-StdAfx.h, StdAfx.cpp
-    These files are used to build a precompiled header (PCH) file
-    named libWinCMMLParse.pch and a precompiled types file named StdAfx.obj.
-
-/////////////////////////////////////////////////////////////////////////////
-Other notes:
-
-AppWizard uses "TODO:" comments to indicate parts of the source code you
-should add to or customize.
-
-/////////////////////////////////////////////////////////////////////////////
+========================================================================
+    DYNAMIC LINK LIBRARY : libWinCMMLParse Project Overview
+========================================================================
+
+AppWizard has created this libWinCMMLParse DLL for you.
+This file contains a summary of what you will find in each of the files that
+make up your libWinCMMLParse application.
+
+
+libWinCMMLParse.vcproj
+    This is the main project file for VC++ projects generated using an Application Wizard.
+    It contains information about the version of Visual C++ that generated the file, and
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+libWinCMMLParse.cpp
+    This is the main DLL source file.
+
+/////////////////////////////////////////////////////////////////////////////
+Other standard files:
+
+StdAfx.h, StdAfx.cpp
+    These files are used to build a precompiled header (PCH) file
+    named libWinCMMLParse.pch and a precompiled types file named StdAfx.obj.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" comments to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////

Modified: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -1,36 +1,21 @@
-// libWinCMMLParse.cpp : Defines the entry point for the DLL application.
-//
-
-#include "stdafx.h"
-#include "libWinCMMLParse.h"
-BOOL APIENTRY DllMain( HANDLE hModule,
-                       DWORD  ul_reason_for_call,
-                       LPVOID lpReserved
-					 )
-{
-	switch (ul_reason_for_call)
-	{
-	case DLL_PROCESS_ATTACH:
-	case DLL_THREAD_ATTACH:
-	case DLL_THREAD_DETACH:
-	case DLL_PROCESS_DETACH:
-		break;
-	}
-    return TRUE;
-}
-
-// This is an example of an exported variable
-LIBWINCMMLPARSE_API int nlibWinCMMLParse=0;
-
-// This is an example of an exported function.
-LIBWINCMMLPARSE_API int fnlibWinCMMLParse(void)
-{
-	return 42;
-}
-
-// This is the constructor of a class that has been exported.
-// see libWinCMMLParse.h for the class definition
-ClibWinCMMLParse::ClibWinCMMLParse()
-{
-	return;
-}
+// libWinCMMLParse.cpp : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+#include "libWinCMMLParse.h"
+BOOL APIENTRY DllMain( HANDLE hModule,
+                       DWORD  ul_reason_for_call,
+                       LPVOID lpReserved
+					 )
+{
+	switch (ul_reason_for_call)
+	{
+	case DLL_PROCESS_ATTACH:
+	case DLL_THREAD_ATTACH:
+	case DLL_THREAD_DETACH:
+	case DLL_PROCESS_DETACH:
+		break;
+	}
+    return TRUE;
+}
+

Modified: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -1,22 +1,12 @@
-// The following ifdef block is the standard way of creating macros which make exporting
-// from a DLL simpler. All files within this DLL are compiled with the LIBWINCMMLPARSE_EXPORTS
-// symbol defined on the command line. this symbol should not be defined on any project
-// that uses this DLL. This way any other project whose source files include this file see
-// LIBWINCMMLPARSE_API functions as being imported from a DLL, whereas this DLL sees symbols
-// defined with this macro as being exported.
-#ifdef LIBWINCMMLPARSE_EXPORTS
-#define LIBWINCMMLPARSE_API __declspec(dllexport)
-#else
-#define LIBWINCMMLPARSE_API __declspec(dllimport)
-#endif
-
-// This class is exported from the libWinCMMLParse.dll
-class LIBWINCMMLPARSE_API ClibWinCMMLParse {
-public:
-	ClibWinCMMLParse(void);
-	// TODO: add your methods here.
-};
-
-extern LIBWINCMMLPARSE_API int nlibWinCMMLParse;
-
-LIBWINCMMLPARSE_API int fnlibWinCMMLParse(void);
+// TODO: reference additional headers your program requires here
+// The following ifdef block is the standard way of creating macros which make exporting
+// from a DLL simpler. All files within this DLL are compiled with the LIBWINCMMLPARSE_EXPORTS
+// symbol defined on the command line. this symbol should not be defined on any project
+// that uses this DLL. This way any other project whose source files include this file see
+// LIBWINCMMLPARSE_API functions as being imported from a DLL, whereas this DLL sees symbols
+// defined with this macro as being exported.
+#ifdef LIBWINCMMLPARSE_EXPORTS
+#define LIBWINCMMLPARSE_API __declspec(dllexport)
+#else
+#define LIBWINCMMLPARSE_API __declspec(dllimport)
+#endif

Modified: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.vcproj	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/libWinCMMLParse.vcproj	2004-06-25 09:10:28 UTC (rev 6856)
@@ -1,146 +1,162 @@
-<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="7.00"
-	Name="libWinCMMLParse"
-	ProjectGUID="{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}"
-	Keyword="Win32Proj">
-	<Platforms>
-		<Platform
-			Name="Win32"/>
-	</Platforms>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="Debug"
-			IntermediateDirectory="Debug"
-			ConfigurationType="2"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBWINCMMLPARSE_EXPORTS"
-				MinimalRebuild="TRUE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				UsePrecompiledHeader="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="TRUE"
-				DebugInformationFormat="4"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/libWinCMMLParse.dll"
-				LinkIncremental="2"
-				GenerateDebugInformation="TRUE"
-				ProgramDatabaseFile="$(OutDir)/libWinCMMLParse.pdb"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/libWinCMMLParse.lib"
-				TargetMachine="1"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCWebDeploymentTool"/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="Release"
-			IntermediateDirectory="Release"
-			ConfigurationType="2"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				OmitFramePointers="TRUE"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBWINCMMLPARSE_EXPORTS"
-				StringPooling="TRUE"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="TRUE"
-				UsePrecompiledHeader="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="TRUE"
-				DebugInformationFormat="3"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/libWinCMMLParse.dll"
-				LinkIncremental="1"
-				GenerateDebugInformation="TRUE"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/libWinCMMLParse.lib"
-				TargetMachine="1"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCWebDeploymentTool"/>
-		</Configuration>
-	</Configurations>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
-			<File
-				RelativePath="libWinCMMLParse.cpp">
-			</File>
-			<File
-				RelativePath="stdafx.cpp">
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc">
-			<File
-				RelativePath="libWinCMMLParse.h">
-			</File>
-			<File
-				RelativePath="stdafx.h">
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
-		</Filter>
-		<File
-			RelativePath="ReadMe.txt">
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.00"
+	Name="libWinCMMLParse"
+	ProjectGUID="{23BAAF7B-AEC3-4812-AA91-7E5061E83A39}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="2"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\libCMMLTags"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBWINCMMLPARSE_EXPORTS"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="$(OutDir)/libWinCMMLParse.dll"
+				LinkIncremental="2"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/libWinCMMLParse.pdb"
+				SubSystem="2"
+				ImportLibrary="$(OutDir)/libWinCMMLParse.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="2"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="3"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="TRUE"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				OptimizeForProcessor="2"
+				AdditionalIncludeDirectories="..\libCMMLTags"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBWINCMMLPARSE_EXPORTS"
+				StringPooling="TRUE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="3"
+				WarningLevel="4"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="$(OutDir)/libWinCMMLParse.dll"
+				LinkIncremental="1"
+				GenerateDebugInformation="TRUE"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				OptimizeForWindows98="1"
+				ImportLibrary="$(OutDir)/libWinCMMLParse.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+	</Configurations>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
+			<File
+				RelativePath="CMMLParser.cpp">
+			</File>
+			<File
+				RelativePath="libWinCMMLParse.cpp">
+			</File>
+			<File
+				RelativePath="stdafx.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc">
+			<File
+				RelativePath="CMMLParser.h">
+			</File>
+			<File
+				RelativePath="libWinCMMLParse.h">
+			</File>
+			<File
+				RelativePath="stdafx.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+		</Filter>
+		<File
+			RelativePath="ReadMe.txt">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Modified: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -1,8 +1,8 @@
-// stdafx.cpp : source file that includes just the standard includes
-// libWinCMMLParse.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
+// stdafx.cpp : source file that includes just the standard includes
+// libWinCMMLParse.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file

Modified: trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/cmml/libWinCMMLParse/stdafx.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -1,12 +1,12 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#pragma once
-
-#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
-// Windows Header Files:
-#include <windows.h>
-
-// TODO: reference additional headers your program requires here
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+// Windows Header Files:
+#include <windows.h>
+
+#include "libWinCMMLParse.h"

Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -90,4 +90,82 @@

inFormatBuffer->dwBitErrorRate=0;
return true;
+}
+
+STDMETHODIMP TheoraDecodeOutputPin::Render(IPin* inOutputPin, IGraphBuilder* inGraphBuilder) {
+	if (inOutputPin == NULL || inGraphBuilder == NULL) {
+		return E_POINTER;
+	}
+
+
+    IBaseFilter* locRenderer = NULL;
+
+    // Create the VMR9
+	//FIX::: Probably should check if it's already in the graph.
+	//  Also should let it connect to other VMR's
+    HRESULT locHR = CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void **)&locRenderer);
+    if (locHR != S_OK) {
+        return locHR;
+    }
+
+    //Add the VMR9 to the graph
+    locHR = inGraphBuilder->AddFilter(locRenderer, L"Video Mixing Renderer");
+    if (locHR != S_OK) {
+        locRenderer->Release();
+        return locHR;
+    }
+
+    IEnumPins* locEnumPins;
+    IPin* locRendererInputPin = NULL;
+    locHR = locRenderer->EnumPins(&locEnumPins);
+
+    if (SUCCEEDED(locHR)) {
+        if (S_OK != locEnumPins->Next(1, &locRendererInputPin, 0)) {
+            locHR = E_UNEXPECTED;
+        }
+    }
+
+    if (SUCCEEDED(locHR)) {
+        // CConnect VMR9 to the output of the theora decoder
+		CMediaType* locMediaType = new CMediaType;
+		FillMediaType(locMediaType);
+        locHR = inGraphBuilder->ConnectDirect(inOutputPin, locRendererInputPin, locMediaType);
+        locRendererInputPin->Release();
+    }
+    if (FAILED(locHR))
+    {
+        // Could not connect to the VMR9 renderer. Remove it from the graph.
+        inGraphBuilder->RemoveFilter(locRenderer);
+    }
+    locRenderer->Release();
+    return locHR;
+
+
+}
+STDMETHODIMP TheoraDecodeOutputPin::Backout(IPin* inOutputPin, IGraphBuilder* inGraphBuilder) {
+   //HRESULT locHR = S_OK;
+   // if (m_Connected != NULL) // Pointer to the pin we're connected to.
+   // {
+   //     // Find the filter that owns the pin connected to us.
+   //     FILTER_INFO fi;
+   //     hr = m_Connected->QueryFilterInfo(&fi);
+   //     if (SUCCEEDED(hr))
+   //     {
+   //         if (fi.pFilter != NULL)
+   //         {
+   //             //  Disconnect the pins.
+   //             pGraph->Disconnect(m_Connected);
+   //             pGraph->Disconnect(pPin);
+   //             // Remove the filter from the graph.
+   //             pGraph->RemoveFilter(fi.pFilter);
+   //             fi.pFilter->Release();
+   //         }
+   //         else
+   //         {
+   //             hr = E_UNEXPECTED;
+   //         }
+   //     }
+   // }
+   // return hr;
+	return S_OK;
}
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -36,8 +36,9 @@


class TheoraDecodeFilter;
-class TheoraDecodeOutputPin :
-	public AbstractVideoDecodeOutputPin
+class TheoraDecodeOutputPin
+	:	public AbstractVideoDecodeOutputPin
+	,	public IStreamBuilder
{
public:
friend class TheoraDecodeInputPin;
@@ -49,7 +50,13 @@

STDMETHODIMP Notify(IBaseFilter *pSelf, Quality q);

+	//Implements IStreamBuilder to force the pin to connect to VMR9
+	STDMETHODIMP Render(IPin* inOutputPin, IGraphBuilder* inGraphBuilder);
+	STDMETHODIMP Backout(IPin* inOutputPin, IGraphBuilder* inGraphBuilder);

+
+
+




Modified: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp	2004-06-25 09:10:28 UTC (rev 6856)
@@ -32,6 +32,7 @@
:	CBaseRenderer(CLSID_SubtitleVMR9Filter, NAME("Subtitle VMR9 Filter") ,NULL,&mHR)
,	mBitmapMixer(NULL)
,	mVideoWindow(NULL)
+	,	mWindowLess(NULL)
{
//mOutputPin = new SubtitleVMR9OutputPin(this, m_pLock, NAME("SubtitleVMR9OutputPin"), L"Subtitle Out");
}
@@ -54,7 +55,7 @@
HRESULT SubtitleVMR9Filter::CheckMediaType(const CMediaType* inMediaType) {
return S_OK;
}
-HRESULT SubtitleVMR9Filter::DoRenderSample(IMediaSample *pMediaSample) {
+HRESULT SubtitleVMR9Filter::DoRenderSample(IMediaSample* inMediaSample) {
static int c = 0;
const int hm = 50;
if (mBitmapMixer == NULL) {
@@ -66,12 +67,14 @@
HRESULT locHR = locFilterGraph->FindFilterByName(L"Video Mixing Renderer 9", &locVMR9);
if (locVMR9 != NULL) {
HRESULT locHR = locVMR9->QueryInterface(IID_IVMRMixerBitmap9, (void**)&mBitmapMixer);
-			//locHR = locVMR9->QueryInterface(IID_IVideoWindow, (void**)&mVideoWindow);
+			locHR = locVMR9->QueryInterface(IID_IVMRWindowlessControl9, (void**)&mWindowLess);
+
+			locHR = locVMR9->QueryInterface(IID_IVideoWindow, (void**)&mVideoWindow);
} else {
return S_OK;
}
} else {
-		c++;
+		/*c++;
string x;
switch ((c / hm) % 4) {
case 0:
@@ -93,6 +96,19 @@
break;
default:
break;
+
+
+		}*/
+
+		if (inMediaSample->GetActualDataLength() > 0) {
+			char* locStr = NULL;
+			BYTE* locBuff = NULL;
+			inMediaSample->GetPointer(&locBuff);
+			locStr = new char[inMediaSample->GetActualDataLength()];
+			memcpy((void*)locStr, (const void*) locBuff, inMediaSample->GetActualDataLength());
+			string x = locStr;
+			SetSubtitle(x);
+			delete locStr;
}


@@ -210,7 +226,12 @@
HRESULT hr;

// Read the default video size
-    //hr = pWC->GetNativeVideoSize(&cx, &cy, NULL, NULL);
+	if (mWindowLess != NULL) {
+		hr = mWindowLess->GetNativeVideoSize(&cx, &cy, NULL, NULL);
+	} else {
+		mVideoWindow->get_Width(&cx);
+		mVideoWindow->get_Height(&cy);
+	}
//if (FAILED(hr))
//{
//    Msg(TEXT("GetNativeVideoSize FAILED!  hr=0x%x\r\n"), hr);
@@ -285,9 +306,9 @@

bmpInfo.rDest.left  = 0.0f + X_EDGE_BUFFER;
bmpInfo.rDest.right = 1.0f - X_EDGE_BUFFER;
-    //bmpInfo.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;
+    bmpInfo.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;
//bmpInfo.rDest.top = (float)(200.0f - bm.bmHeight) / (float)200.0f - Y_EDGE_BUFFER;
-	bmpInfo.rDest.top = 0.8f;//(float)(200.0f - bm.bmHeight) / (float)200.0f - Y_EDGE_BUFFER;
+	//bmpInfo.rDest.top = 0.8f;//(float)(200.0f - bm.bmHeight) / (float)200.0f - Y_EDGE_BUFFER;
bmpInfo.rDest.bottom = 1.0f - Y_EDGE_BUFFER;
bmpInfo.rSrc = rcText;


Modified: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -6,7 +6,7 @@
#include <string>
using namespace std;

-#define TRANSPARENCY_VALUE   (0.5f)
+#define TRANSPARENCY_VALUE   (0.8f)

#define PURE_WHITE          RGB(255,255,255)
#define ALMOST_WHITE        RGB(250,250,250)
@@ -50,5 +50,6 @@
virtual HRESULT SetSubtitle(string inSubtitle);
IVideoWindow* mVideoWindow;
IVMRMixerBitmap9* mBitmapMixer;
+	IVMRWindowlessControl9* mWindowLess;
VMR9AlphaBitmap mAlphaBitmap;
};

Modified: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h	2004-06-25 09:10:28 UTC (rev 6856)
@@ -6,7 +6,7 @@
#include <string>
using namespace std;

-#define TRANSPARENCY_VALUE   (0.5f)
+#define TRANSPARENCY_VALUE   (0.8f)

#define PURE_WHITE          RGB(255,255,255)
#define ALMOST_WHITE        RGB(250,250,250)
@@ -17,7 +17,7 @@
#define DEFAULT_FONT_NAME   TEXT("Impact\0")
#define DEFAULT_FONT_STYLE  TEXT("Regular\0")
#define DEFAULT_FONT_SIZE   12
-#define DEFAULT_FONT_COLOR  RGB(255,0,0)
+#define DEFAULT_FONT_COLOR  RGB(250,250,250)
#define MAX_FONT_SIZE		25



Modified: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj	2004-06-25 08:46:03 UTC (rev 6855)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj	2004-06-25 09:10:28 UTC (rev 6856)
@@ -63,12 +63,16 @@
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
-			CharacterSet="2">
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
+				Optimization="3"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
+				OptimizeForProcessor="2"
AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;&quot;C:\DXSDK\Samples\C++\DirectShow\VMR9\Inc\&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFSUBTITLEVMR9_EXPORTS"
StringPooling="TRUE"



More information about the commits mailing list