os/persistentdata/persistentstorage/store/TSTRM/t_storucmp.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// Test program for the Standard Unicode Compression Scheme; does nothing in the narrow builds.
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
#include <s32mem.h>
sl@0
    19
#include <s32ucmp.h>
sl@0
    20
#include <e32test.h>
sl@0
    21
sl@0
    22
#ifdef _UNICODE
sl@0
    23
sl@0
    24
const TInt KTestCleanupStack=0x20;
sl@0
    25
CTrapCleanup* TheTrapCleanup;
sl@0
    26
RTest test(_L("t_storucmp"));
sl@0
    27
sl@0
    28
static const TUint16 UnicodeData[] =
sl@0
    29
{
sl@0
    30
0xFEFF, 0x45, 0x6E, 0x67, 0x6C, 0x69, 0x73, 0x68, 0x3A, 0x20, 0x4A, 0x61, 0x63, 0x6B, 0x64, 0x61,  // .English: Jackda
sl@0
    31
0x77, 0x73, 0x20, 0x6C, 0x6F, 0x76, 0x65, 0x20, 0x6D, 0x79, 0x20, 0x62, 0x69, 0x67, 0x20, 0x73,  // ws love my big s
sl@0
    32
0x70, 0x68, 0x69, 0x6E, 0x78, 0x20, 0x6F, 0x66, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x7A, 0x2E,  // phinx of quartz.
sl@0
    33
0x20, 0x50, 0x61, 0x63, 0x6B, 0x20, 0x6D, 0x79, 0x20, 0x62, 0x6F, 0x78, 0x20, 0x77, 0x69, 0x74,  //  Pack my box wit
sl@0
    34
0x68, 0x20, 0x66, 0x69, 0x76, 0x65, 0x20, 0x64, 0x6F, 0x7A, 0x65, 0x6E, 0x20, 0x6C, 0x69, 0x71,  // h five dozen liq
sl@0
    35
0x75, 0x6F, 0x72, 0x20, 0x6A, 0x75, 0x67, 0x73, 0x2E, 0x6, 0x6, 0x47, 0x65, 0x72, 0x6D, 0x61,  // uor jugs...Germa
sl@0
    36
0x6E, 0x3A, 0x20, 0x44, 0x61, 0xDF, 0x20, 0x43, 0x2B, 0x2B, 0x20, 0x73, 0x69, 0x63, 0x68, 0x20,  // n: Daß C++ sich
sl@0
    37
0x73, 0x6F, 0x20, 0x73, 0x74, 0x61, 0x72, 0x6B, 0x20, 0x76, 0x65, 0x72, 0x62, 0x72, 0x65, 0x69,  // so stark verbrei
sl@0
    38
0x74, 0x65, 0x74, 0x20, 0x68, 0x61, 0x74, 0x2C, 0x20, 0x6D, 0x61, 0x67, 0x20, 0x76, 0x6F, 0x72,  // tet hat, mag vor
sl@0
    39
0x20, 0x61, 0x6C, 0x6C, 0x65, 0x6E, 0x20, 0x44, 0x69, 0x6E, 0x67, 0x65, 0x6E, 0x20, 0x7A, 0x77,  //  allen Dingen zw
sl@0
    40
0x65, 0x69, 0x20, 0x47, 0x72, 0xFC, 0x6E, 0x64, 0x65, 0x20, 0x68, 0x61, 0x62, 0x65, 0x6E, 0x3A,  // ei Gründe haben:
sl@0
    41
0x6, 0x44, 0x69, 0x65, 0x20, 0x6F, 0x62, 0x6A, 0x65, 0x6B, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x6E,  // .Die objektorien
sl@0
    42
0x74, 0x69, 0x65, 0x72, 0x74, 0x65, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69,  // tierte Programmi
sl@0
    43
0x65, 0x72, 0x75, 0x6E, 0x67, 0x20, 0x69, 0x73, 0x74, 0x20, 0x73, 0x69, 0x63, 0x68, 0x65, 0x72,  // erung ist sicher
sl@0
    44
0x20, 0x65, 0x69, 0x6E, 0x65, 0x20, 0x61, 0x75, 0x73, 0x67, 0x65, 0x7A, 0x65, 0x69, 0x63, 0x68,  //  eine ausgezeich
sl@0
    45
0x6E, 0x65, 0x74, 0x65, 0x20, 0x41, 0x6C, 0x74, 0x65, 0x72, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65,  // nete Alternative
sl@0
    46
0x6, 0x7A, 0x75, 0x20, 0x64, 0x65, 0x6E, 0x20, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6F,  // .zu den traditio
sl@0
    47
0x6E, 0x65, 0x6C, 0x6C, 0x65, 0x6E, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69,  // nellen Programmi
sl@0
    48
0x65, 0x72, 0x74, 0x65, 0x63, 0x68, 0x6E, 0x69, 0x6B, 0x65, 0x6E, 0x2C, 0x20, 0x6D, 0xF6, 0x67,  // ertechniken, mög
sl@0
    49
0x6C, 0x69, 0x63, 0x68, 0x65, 0x72, 0x77, 0x65, 0x69, 0x73, 0x65, 0x20, 0x66, 0xFC, 0x72, 0x20,  // licherweise für
sl@0
    50
0x67, 0x72, 0x6F, 0xDF, 0x65, 0x20, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2D, 0x50,  // große Software-P
sl@0
    51
0x72, 0x6F, 0x6A, 0x65, 0x6B, 0x74, 0x65, 0x6, 0x67, 0x65, 0x67, 0x65, 0x6E, 0x77, 0xE4, 0x72,  // rojekte.gegenwär
sl@0
    52
0x74, 0x69, 0x67, 0x20, 0x64, 0x69, 0x65, 0x20, 0x65, 0x69, 0x6E, 0x7A, 0x69, 0x67, 0x65, 0x20,  // tig die einzige
sl@0
    53
0x4D, 0xF6, 0x67, 0x6C, 0x69, 0x63, 0x68, 0x6B, 0x65, 0x69, 0x74, 0x2C, 0x20, 0x64, 0x69, 0x65,  // Möglichkeit, die
sl@0
    54
0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x20, 0x73, 0x6F, 0x77, 0x6F, 0x68,  //  Programme sowoh
sl@0
    55
0x6C, 0x20, 0x65, 0x66, 0x66, 0x65, 0x6B, 0x74, 0x69, 0x76, 0x20, 0x73, 0x63, 0x68, 0x72, 0x65,  // l effektiv schre
sl@0
    56
0x69, 0x62, 0x65, 0x6E, 0x20, 0x61, 0x6C, 0x73, 0x20, 0x61, 0x75, 0x63, 0x68, 0x20, 0x77, 0x61,  // iben als auch wa
sl@0
    57
0x72, 0x74, 0x65, 0x6E, 0x6, 0x7A, 0x75, 0x20, 0x6B, 0xF6, 0x6E, 0x6E, 0x65, 0x6E, 0x20, 0x28,  // rten.zu können (
sl@0
    58
0x75, 0x6E, 0x64, 0x20, 0x6F, 0x62, 0x6A, 0x65, 0x6B, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x6E, 0x74,  // und objektorient
sl@0
    59
0x69, 0x65, 0x72, 0x74, 0x65, 0x20, 0x56, 0x6F, 0x72, 0x67, 0x65, 0x68, 0x65, 0x6E, 0x73, 0x77,  // ierte Vorgehensw
sl@0
    60
0x65, 0x69, 0x73, 0x65, 0x6E, 0x20, 0x73, 0x69, 0x6E, 0x64, 0x20, 0x61, 0x75, 0x63, 0x68, 0x20,  // eisen sind auch
sl@0
    61
0x69, 0x6E, 0x20, 0x76, 0x69, 0x65, 0x6C, 0x65, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x65, 0x72, 0x65,  // in vielen andere
sl@0
    62
0x6E, 0x6, 0x57, 0x69, 0x73, 0x73, 0x65, 0x6E, 0x73, 0x63, 0x68, 0x61, 0x66, 0x74, 0x73, 0x62,  // n.Wissenschaftsb
sl@0
    63
0x65, 0x72, 0x65, 0x69, 0x63, 0x68, 0x65, 0x6E, 0x20, 0x65, 0x72, 0x66, 0x6F, 0x6C, 0x67, 0x72,  // ereichen erfolgr
sl@0
    64
0x65, 0x69, 0x63, 0x68, 0x29, 0x2E, 0x20, 0x5A, 0x75, 0x6D, 0x20, 0x61, 0x6E, 0x64, 0x65, 0x72,  // eich). Zum ander
sl@0
    65
0x65, 0x6E, 0x20, 0x65, 0x6E, 0x74, 0x68, 0xE4, 0x6C, 0x74, 0x20, 0x43, 0x2B, 0x2B, 0x20, 0x64,  // en enthält C++ d
sl@0
    66
0x65, 0x6E, 0x20, 0x6B, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x6E, 0x6, 0x53, 0x70,  // en kompletten.Sp
sl@0
    67
0x72, 0x61, 0x63, 0x68, 0x75, 0x6D, 0x66, 0x61, 0x6E, 0x67, 0x20, 0x76, 0x6F, 0x6E, 0x20, 0x43,  // rachumfang von C
sl@0
    68
0x2C, 0x20, 0x73, 0x6F, 0x20, 0x64, 0x61, 0xDF, 0x20, 0x66, 0xFC, 0x72, 0x20, 0x64, 0x69, 0x65,  // , so daß für die
sl@0
    69
0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, 0x65, 0x72, 0x65, 0x72, 0x20, 0x65,  //  Programmierer e
sl@0
    70
0x69, 0x6E, 0x20, 0x22, 0x67, 0x6C, 0x65, 0x69, 0x74, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x20, 0xDC,  // in "gleitender Ü
sl@0
    71
0x62, 0x65, 0x72, 0x67, 0x61, 0x6E, 0x67, 0x22, 0x20, 0x6D, 0xF6, 0x67, 0x6C, 0x69, 0x63, 0x68,  // bergang" möglich
sl@0
    72
0x20, 0x69, 0x73, 0x74, 0x6, 0x75, 0x6E, 0x64, 0x20, 0x61, 0x6C, 0x6C, 0x65, 0x20, 0x43, 0x2D,  //  ist.und alle C-
sl@0
    73
0x52, 0x6F, 0x75, 0x74, 0x69, 0x6E, 0x65, 0x6E, 0x20, 0x75, 0x6E, 0x64, 0x20, 0x43, 0x2D, 0x42,  // Routinen und C-B
sl@0
    74
0x69, 0x62, 0x6C, 0x69, 0x6F, 0x74, 0x68, 0x65, 0x6B, 0x65, 0x6E, 0x20, 0x77, 0x65, 0x69, 0x74,  // ibliotheken weit
sl@0
    75
0x65, 0x72, 0x20, 0x76, 0x65, 0x72, 0x77, 0x65, 0x6E, 0x64, 0x65, 0x74, 0x20, 0x77, 0x65, 0x72,  // er verwendet wer
sl@0
    76
0x64, 0x65, 0x6E, 0x20, 0x6B, 0xF6, 0x6E, 0x6E, 0x65, 0x6E, 0x2E, 0x6, 0x6, 0x53, 0x77, 0x65,  // den können...Swe
sl@0
    77
0x64, 0x69, 0x73, 0x68, 0x3A, 0x20, 0x4A, 0x61, 0x76, 0x61, 0x20, 0xE4, 0x72, 0x20, 0x75, 0x74,  // dish: Java är ut
sl@0
    78
0x76, 0x65, 0x63, 0x6B, 0x6C, 0x61, 0x64, 0x20, 0x61, 0x76, 0x20, 0x53, 0x75, 0x6E, 0x2E, 0x20,  // vecklad av Sun.
sl@0
    79
0x46, 0x72, 0xE5, 0x6E, 0x20, 0x62, 0xF6, 0x72, 0x6A, 0x61, 0x6E, 0x20, 0x76, 0x61, 0x72, 0x20,  // Från början var
sl@0
    80
0x64, 0x65, 0x74, 0x20, 0x74, 0xE4, 0x6E, 0x6B, 0x74, 0x20, 0x61, 0x74, 0x74, 0x20, 0x73, 0x70,  // det tänkt att sp
sl@0
    81
0x72, 0xE5, 0x6B, 0x65, 0x74, 0x20, 0x73, 0x6B, 0x75, 0x6C, 0x6C, 0x65, 0x20, 0x61, 0x6E, 0x76,  // råket skulle anv
sl@0
    82
0xE4, 0x6E, 0x64, 0x61, 0x73, 0x20, 0x69, 0x6E, 0x6F, 0x6D, 0x20, 0x65, 0x6C, 0x65, 0x6B, 0x74,  // ändas inom elekt
sl@0
    83
0x72, 0x6F, 0x6E, 0x69, 0x6B, 0x20, 0x74, 0x69, 0x6C, 0x6C, 0x6, 0x74, 0x20, 0x65, 0x78, 0x20,  // ronik till.t ex
sl@0
    84
0x62, 0x72, 0xF6, 0x64, 0x72, 0x6F, 0x73, 0x74, 0x61, 0x72, 0x20, 0x65, 0x6C, 0x6C, 0x65, 0x72,  // brödrostar eller
sl@0
    85
0x20, 0x74, 0x76, 0xE4, 0x74, 0x74, 0x6D, 0x61, 0x73, 0x6B, 0x69, 0x6E, 0x65, 0x72, 0x2E, 0x20,  //  tvättmaskiner.
sl@0
    86
0x55, 0x74, 0x76, 0x65, 0x63, 0x6B, 0x6C, 0x61, 0x72, 0x6E, 0x61, 0x20, 0x69, 0x6E, 0x73, 0xE5,  // Utvecklarna inså
sl@0
    87
0x67, 0x20, 0x73, 0x6E, 0x61, 0x62, 0x62, 0x74, 0x20, 0x61, 0x74, 0x74, 0x20, 0x64, 0x65, 0x74,  // g snabbt att det
sl@0
    88
0x20, 0x6B, 0x72, 0xE4, 0x76, 0x64, 0x65, 0x73, 0x20, 0x65, 0x74, 0x74, 0x20, 0x70, 0x6C, 0x61,  //  krävdes ett pla
sl@0
    89
0x74, 0x74, 0x66, 0x6F, 0x72, 0x6D, 0x73, 0x6F, 0x62, 0x65, 0x72, 0x6F, 0x65, 0x6E, 0x64, 0x65,  // ttformsoberoende
sl@0
    90
0x6, 0x73, 0x70, 0x72, 0xE5, 0x6B, 0x20, 0x66, 0xF6, 0x72, 0x20, 0x61, 0x74, 0x74, 0x20, 0x6B,  // .språk för att k
sl@0
    91
0x75, 0x6E, 0x6E, 0x61, 0x20, 0x74, 0x69, 0x6C, 0x6C, 0x67, 0x6F, 0x64, 0x6F, 0x73, 0x65, 0x20,  // unna tillgodose
sl@0
    92
0x64, 0x65, 0x20, 0x6F, 0x6C, 0x69, 0x6B, 0x61, 0x20, 0x62, 0x65, 0x68, 0x6F, 0x76, 0x65, 0x6E,  // de olika behoven
sl@0
    93
0x20, 0x70, 0xE5, 0x20, 0x65, 0x6C, 0x65, 0x6B, 0x74, 0x72, 0x6F, 0x6E, 0x69, 0x6B, 0x6D, 0x61,  //  på elektronikma
sl@0
    94
0x72, 0x6B, 0x6E, 0x61, 0x64, 0x65, 0x6E, 0x2E, 0x20, 0x4A, 0x61, 0x76, 0x61, 0x73, 0x20, 0x73,  // rknaden. Javas s
sl@0
    95
0x6B, 0x61, 0x70, 0x61, 0x72, 0x65, 0x20, 0x4A, 0x61, 0x6D, 0x65, 0x73, 0x20, 0x47, 0x6F, 0x73,  // kapare James Gos
sl@0
    96
0x6C, 0x69, 0x6E, 0x67, 0x6, 0x62, 0xF6, 0x72, 0x6A, 0x61, 0x64, 0x65, 0x20, 0x61, 0x72, 0x62,  // ling.började arb
sl@0
    97
0x65, 0x74, 0x61, 0x20, 0x75, 0x74, 0x69, 0x66, 0x72, 0xE5, 0x6E, 0x20, 0x43, 0x2B, 0x2B, 0x20,  // eta utifrån C++
sl@0
    98
0x6B, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x61, 0x74, 0x69, 0x6F, 0x72, 0x6E, 0x2E, 0x20, 0x45, 0x66,  // kompilatiorn. Ef
sl@0
    99
0x74, 0x65, 0x72, 0x20, 0x65, 0x6E, 0x20, 0x74, 0x69, 0x64, 0x20, 0x69, 0x6E, 0x73, 0xE5, 0x67,  // ter en tid insåg
sl@0
   100
0x20, 0x68, 0x61, 0x6E, 0x20, 0x61, 0x74, 0x74, 0x20, 0x64, 0x65, 0x74, 0x6, 0x62, 0xE4, 0x73,  //  han att det.bäs
sl@0
   101
0x74, 0x61, 0x20, 0x76, 0x6F, 0x72, 0x65, 0x20, 0x61, 0x74, 0x74, 0x20, 0x73, 0x6B, 0x61, 0x70,  // ta vore att skap
sl@0
   102
0x61, 0x20, 0x65, 0x74, 0x74, 0x20, 0x6E, 0x79, 0x74, 0x74, 0x20, 0x73, 0x70, 0x72, 0xE5, 0x6B,  // a ett nytt språk
sl@0
   103
0x20, 0x73, 0x6F, 0x6D, 0x20, 0x76, 0x61, 0x72, 0x20, 0x6E, 0xE4, 0x72, 0x61, 0x20, 0x62, 0x65,  //  som var nära be
sl@0
   104
0x73, 0x6C, 0xE4, 0x6B, 0x74, 0x61, 0x74, 0x20, 0x6D, 0x65, 0x64, 0x20, 0x43, 0x2B, 0x2B, 0x2E,  // släktat med C++.
sl@0
   105
0x20, 0x44, 0x65, 0x74, 0x20, 0x66, 0xF6, 0x72, 0x73, 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x6E,  //  Det första namn
sl@0
   106
0x65, 0x74, 0x20, 0x73, 0x6F, 0x6D, 0x20, 0x74, 0x65, 0x73, 0x74, 0x61, 0x64, 0x65, 0x73, 0x20,  // et som testades
sl@0
   107
0x66, 0xF6, 0x72, 0x6, 0x70, 0x61, 0x74, 0x65, 0x6E, 0x74, 0x20, 0x76, 0x61, 0x72, 0x20, 0x4F,  // för.patent var O
sl@0
   108
0x61, 0x6B, 0x2C, 0x20, 0x64, 0x65, 0x74, 0x74, 0x61, 0x20, 0x6D, 0x69, 0x73, 0x73, 0x6C, 0x79,  // ak, detta missly
sl@0
   109
0x63, 0x6B, 0x61, 0x64, 0x65, 0x73, 0x20, 0x2D, 0x20, 0x6F, 0x63, 0x68, 0x20, 0x64, 0x65, 0x74,  // ckades - och det
sl@0
   110
0x20, 0x6E, 0x79, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x6E, 0x65, 0x74, 0x20, 0x62, 0x6C, 0x65, 0x76,  //  nya namnet blev
sl@0
   111
0x20, 0x4A, 0x61, 0x76, 0x61, 0x2E, 0x6, 0x53, 0x70, 0x72, 0xE5, 0x6B, 0x65, 0x74, 0x20, 0x69,  //  Java..Språket i
sl@0
   112
0x6E, 0x74, 0x72, 0x6F, 0x64, 0x75, 0x63, 0x65, 0x72, 0x61, 0x64, 0x65, 0x73, 0x20, 0x69, 0x20,  // ntroducerades i
sl@0
   113
0x31, 0x39, 0x39, 0x35, 0x2E, 0x20, 0x53, 0x70, 0x72, 0xE5, 0x6B, 0x65, 0x74, 0x73, 0x20, 0x66,  // 1995. Språkets f
sl@0
   114
0x72, 0x61, 0x6D, 0x67, 0xE5, 0x6E, 0x67, 0x20, 0x62, 0x65, 0x72, 0x6F, 0x72, 0x20, 0x6D, 0x79,  // ramgång beror my
sl@0
   115
0x63, 0x6B, 0x65, 0x74, 0x20, 0x70, 0xE5, 0x20, 0x61, 0x74, 0x74, 0x20, 0x64, 0x65, 0x74, 0x20,  // cket på att det
sl@0
   116
0xE4, 0x72, 0x6, 0x70, 0x6C, 0x61, 0x74, 0x74, 0x66, 0x6F, 0x72, 0x6D, 0x73, 0x6F, 0x62, 0x65,  // är.plattformsobe
sl@0
   117
0x72, 0x6F, 0x65, 0x6E, 0x64, 0x65, 0x2E, 0x20, 0x4A, 0x61, 0x76, 0x61, 0x20, 0x6B, 0x61, 0x6E,  // roende. Java kan
sl@0
   118
0x20, 0x62, 0x65, 0x73, 0x6B, 0x72, 0x69, 0x76, 0x61, 0x73, 0x20, 0x73, 0x6F, 0x6D, 0x20, 0x65,  //  beskrivas som e
sl@0
   119
0x6E, 0x6B, 0x65, 0x6C, 0x74, 0x2C, 0x20, 0x6F, 0x62, 0x6A, 0x65, 0x6B, 0x74, 0x6F, 0x72, 0x69,  // nkelt, objektori
sl@0
   120
0x65, 0x6E, 0x74, 0x65, 0x72, 0x61, 0x74, 0x2C, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,  // enterat, distrib
sl@0
   121
0x75, 0x65, 0x72, 0x61, 0x74, 0x2C, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74,  // uerat, interpret
sl@0
   122
0x65, 0x72, 0x61, 0x6E, 0x64, 0x65, 0x2C, 0x6, 0x72, 0x6F, 0x62, 0x75, 0x73, 0x74, 0x2C, 0x20,  // erande,.robust,
sl@0
   123
0x73, 0xE4, 0x6B, 0x65, 0x72, 0x74, 0x2C, 0x20, 0x70, 0x6C, 0x61, 0x74, 0x74, 0x66, 0x6F, 0x72,  // säkert, plattfor
sl@0
   124
0x6D, 0x73, 0x6F, 0x62, 0x65, 0x72, 0x6F, 0x65, 0x6E, 0x64, 0x65, 0x2C, 0x20, 0x70, 0x6F, 0x72,  // msoberoende, por
sl@0
   125
0x74, 0x61, 0x62, 0x65, 0x6C, 0x74, 0x20, 0x6F, 0x63, 0x68, 0x20, 0x64, 0x79, 0x6E, 0x61, 0x6D,  // tabelt och dynam
sl@0
   126
0x69, 0x73, 0x6B, 0x74, 0x20, 0x73, 0x70, 0x72, 0xE5, 0x6B, 0x2E, 0x6, 0x6, 0x52, 0x75, 0x73,  // iskt språk...Rus
sl@0
   127
0x73, 0x69, 0x61, 0x6E, 0x3A, 0x20, 0x415, 0x432, 0x440, 0x43E, 0x43F, 0x430, 0x2C, 0x20, 0x41F, 0x440,  // sian: ......, ..
sl@0
   128
0x43E, 0x433, 0x440, 0x430, 0x43C, 0x43C, 0x43D, 0x43E, 0x435, 0x20, 0x43E, 0x431, 0x435, 0x441, 0x43F, 0x435,
sl@0
   129
0x447, 0x435, 0x43D, 0x438, 0x435, 0x20, 0x2B, 0x20, 0x418, 0x43D, 0x442, 0x435, 0x440, 0x43D, 0x435, 0x442,  // ..... + ........
sl@0
   130
0x3A, 0x6, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x432, 0x20, 0x433, 0x43B, 0x43E, 0x431,  // :.Unicode . ....
sl@0
   131
0x430, 0x43B, 0x44C, 0x43D, 0x44B, 0x445, 0x20, 0x43C, 0x430, 0x441, 0x448, 0x442, 0x430, 0x431, 0x430, 0x445,
sl@0
   132
0x20, 0x20, 0x6, 0x417, 0x430, 0x440, 0x435, 0x433, 0x438, 0x441, 0x442, 0x440, 0x438, 0x440, 0x443, 0x439,
sl@0
   133
0x442, 0x435, 0x441, 0x44C, 0x20, 0x441, 0x435, 0x439, 0x447, 0x430, 0x441, 0x20, 0x43D, 0x430, 0x20, 0x414,
sl@0
   134
0x435, 0x441, 0x44F, 0x442, 0x443, 0x44E, 0x20, 0x41C, 0x435, 0x436, 0x434, 0x443, 0x43D, 0x430, 0x440, 0x43E,
sl@0
   135
0x434, 0x43D, 0x443, 0x44E, 0x20, 0x41A, 0x43E, 0x43D, 0x444, 0x435, 0x440, 0x435, 0x43D, 0x446, 0x438, 0x44E,
sl@0
   136
0x20, 0x43F, 0x43E, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2C, 0x20, 0x43A, 0x43E, 0x442,  //  .. Unicode, ...
sl@0
   137
0x43E, 0x440, 0x430, 0x44F, 0x6, 0x441, 0x43E, 0x441, 0x442, 0x43E, 0x438, 0x442, 0x441, 0x44F, 0x20, 0x31,  // .............. 1
sl@0
   138
0x30, 0x2D, 0x31, 0x32, 0x20, 0x43C, 0x430, 0x440, 0x442, 0x430, 0x20, 0x31, 0x39, 0x39, 0x37, 0x20,  // 0-12 ..... 1997
sl@0
   139
0x433, 0x43E, 0x434, 0x430, 0x20, 0x432, 0x20, 0x41C, 0x430, 0x439, 0x43D, 0x446, 0x435, 0x20, 0x432, 0x20,
sl@0
   140
0x413, 0x435, 0x440, 0x43C, 0x430, 0x43D, 0x438, 0x438, 0x2E, 0x20, 0x41A, 0x43E, 0x43D, 0x444, 0x435, 0x440,  // ......... ......
sl@0
   141
0x435, 0x43D, 0x446, 0x438, 0x44F, 0x20, 0x441, 0x43E, 0x431, 0x435, 0x440, 0x435, 0x442, 0x20, 0x448, 0x438,
sl@0
   142
0x440, 0x43E, 0x43A, 0x438, 0x439, 0x20, 0x43A, 0x440, 0x443, 0x433, 0x6, 0x44D, 0x43A, 0x441, 0x43F, 0x435,
sl@0
   143
0x440, 0x442, 0x43E, 0x432, 0x20, 0x43F, 0x43E, 0x20, 0x432, 0x43E, 0x43F, 0x440, 0x43E, 0x441, 0x430, 0x43C,
sl@0
   144
0x20, 0x433, 0x43B, 0x43E, 0x431, 0x430, 0x43B, 0x44C, 0x43D, 0x43E, 0x433, 0x43E, 0x20, 0x418, 0x43D, 0x442,
sl@0
   145
0x435, 0x440, 0x43D, 0x435, 0x442, 0x430, 0x20, 0x438, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65,  // ...... . Unicode
sl@0
   146
0x2C, 0x20, 0x43B, 0x43E, 0x43A, 0x430, 0x43B, 0x438, 0x437, 0x430, 0x446, 0x438, 0x438, 0x20, 0x438, 0x20,  // , ........... .
sl@0
   147
0x438, 0x43D, 0x442, 0x435, 0x440, 0x43D, 0x430, 0x446, 0x438, 0x43E, 0x43D, 0x430, 0x43B, 0x438, 0x437, 0x430,
sl@0
   148
0x446, 0x438, 0x438, 0x2C, 0x6, 0x432, 0x43E, 0x43F, 0x43B, 0x43E, 0x449, 0x435, 0x43D, 0x438, 0x44E, 0x20,  // ...,...........
sl@0
   149
0x438, 0x20, 0x43F, 0x440, 0x438, 0x43C, 0x435, 0x43D, 0x435, 0x43D, 0x438, 0x44E, 0x20, 0x55, 0x6E, 0x69,  // . .......... Uni
sl@0
   150
0x63, 0x6F, 0x64, 0x65, 0x20, 0x432, 0x20, 0x440, 0x430, 0x437, 0x43B, 0x438, 0x447, 0x43D, 0x44B, 0x445,  // code . .........
sl@0
   151
0x20, 0x43E, 0x43F, 0x435, 0x440, 0x430, 0x446, 0x438, 0x43E, 0x43D, 0x43D, 0x44B, 0x445, 0x20, 0x441, 0x438,
sl@0
   152
0x441, 0x442, 0x435, 0x43C, 0x430, 0x445, 0x20, 0x438, 0x20, 0x43F, 0x440, 0x43E, 0x433, 0x440, 0x430, 0x43C,
sl@0
   153
0x43C, 0x43D, 0x44B, 0x445, 0x6, 0x43F, 0x440, 0x438, 0x43B, 0x43E, 0x436, 0x435, 0x43D, 0x438, 0x44F, 0x445,
sl@0
   154
0x2C, 0x20, 0x448, 0x440, 0x438, 0x444, 0x442, 0x430, 0x445, 0x2C, 0x20, 0x432, 0x435, 0x440, 0x441, 0x442,  // , ......., .....
sl@0
   155
0x43A, 0x435, 0x20, 0x438, 0x20, 0x43C, 0x43D, 0x43E, 0x433, 0x43E, 0x44F, 0x437, 0x44B, 0x447, 0x43D, 0x44B,
sl@0
   156
0x445, 0x20, 0x43A, 0x43E, 0x43C, 0x43F, 0x44C, 0x44E, 0x442, 0x435, 0x440, 0x43D, 0x44B, 0x445, 0x20, 0x441,
sl@0
   157
0x438, 0x441, 0x442, 0x435, 0x43C, 0x430, 0x445, 0x2E, 0x20, 0x20, 0x6, 0x41A, 0x43E, 0x433, 0x434, 0x430,  // ........  ......
sl@0
   158
0x20, 0x43C, 0x438, 0x440, 0x20, 0x436, 0x435, 0x43B, 0x430, 0x435, 0x442, 0x20, 0x43E, 0x431, 0x449, 0x430,
sl@0
   159
0x442, 0x44C, 0x441, 0x44F, 0x2C, 0x20, 0x43E, 0x43D, 0x20, 0x43E, 0x431, 0x449, 0x430, 0x435, 0x442, 0x441,  // ...., .. .......
sl@0
   160
0x44F, 0x20, 0x43D, 0x430, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x20, 0x6, 0x6,  // . .. Unicode  ..
sl@0
   161
0x41, 0x72, 0x61, 0x62, 0x69, 0x63, 0x3A, 0x20, 0x623, 0x648, 0x631, 0x648, 0x628, 0x627, 0x2C, 0x20,  // Arabic: ......,
sl@0
   162
0x628, 0x631, 0x645, 0x62C, 0x64A, 0x627, 0x62A, 0x20, 0x627, 0x644, 0x62D, 0x627, 0x633, 0x648, 0x628, 0x20,
sl@0
   163
0x2B, 0x20, 0x627, 0x646, 0x62A, 0x631, 0x646, 0x64A, 0x62A, 0x20, 0x3A, 0x6, 0x62A, 0x635, 0x628, 0x62D,  // + ....... :.....
sl@0
   164
0x20, 0x639, 0x627, 0x644, 0x645, 0x64A, 0x627, 0x20, 0x645, 0x639, 0x20, 0x64A, 0x648, 0x646, 0x64A, 0x643,
sl@0
   165
0x648, 0x62F, 0x20, 0x20, 0x6, 0x62A, 0x633, 0x62C, 0x651, 0x644, 0x20, 0x627, 0x644, 0x622, 0x646, 0x20,
sl@0
   166
0x644, 0x62D, 0x636, 0x648, 0x631, 0x20, 0x627, 0x644, 0x645, 0x624, 0x62A, 0x645, 0x631, 0x20, 0x627, 0x644,
sl@0
   167
0x62F, 0x648, 0x644, 0x64A, 0x20, 0x627, 0x644, 0x639, 0x627, 0x634, 0x631, 0x20, 0x644, 0x64A, 0x648, 0x646,
sl@0
   168
0x64A, 0x643, 0x648, 0x62F, 0x2C, 0x20, 0x627, 0x644, 0x630, 0x64A, 0x20, 0x633, 0x64A, 0x639, 0x642, 0x62F,  // ...., .... .....
sl@0
   169
0x20, 0x641, 0x64A, 0x20, 0x31, 0x30, 0x2D, 0x31, 0x32, 0x6, 0x622, 0x630, 0x627, 0x631, 0x20, 0x31,  //  .. 10-12..... 1
sl@0
   170
0x39, 0x39, 0x37, 0x20, 0x628, 0x645, 0x62F, 0x64A, 0x646, 0x629, 0x20, 0x645, 0x627, 0x64A, 0x646, 0x62A,  // 997 ...... .....
sl@0
   171
0x633, 0x2C, 0x20, 0x623, 0x644, 0x645, 0x627, 0x646, 0x64A, 0x627, 0x2E, 0x20, 0x648, 0x633, 0x64A, 0x62C,  // ., ........ ....
sl@0
   172
0x645, 0x639, 0x20, 0x627, 0x644, 0x645, 0x624, 0x62A, 0x645, 0x631, 0x20, 0x628, 0x64A, 0x646, 0x20, 0x62E,
sl@0
   173
0x628, 0x631, 0x627, 0x621, 0x20, 0x645, 0x646, 0x20, 0x643, 0x627, 0x641, 0x629, 0x20, 0x642, 0x637, 0x627,
sl@0
   174
0x639, 0x627, 0x62A, 0x6, 0x627, 0x644, 0x635, 0x646, 0x627, 0x639, 0x629, 0x20, 0x639, 0x644, 0x649, 0x20,
sl@0
   175
0x627, 0x644, 0x634, 0x628, 0x643, 0x629, 0x20, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645, 0x64A, 0x629, 0x20,
sl@0
   176
0x627, 0x646, 0x62A, 0x631, 0x646, 0x64A, 0x62A, 0x20, 0x648, 0x64A, 0x648, 0x646, 0x64A, 0x643, 0x648, 0x62F,
sl@0
   177
0x2C, 0x20, 0x62D, 0x64A, 0x62B, 0x20, 0x633, 0x62A, 0x62A, 0x645, 0x2C, 0x20, 0x639, 0x644, 0x649, 0x20,  // , ... ...., ...
sl@0
   178
0x627, 0x644, 0x635, 0x639, 0x64A, 0x62F, 0x64A, 0x646, 0x6, 0x627, 0x644, 0x62F, 0x648, 0x644, 0x64A, 0x20,
sl@0
   179
0x648, 0x627, 0x644, 0x645, 0x62D, 0x644, 0x64A, 0x20, 0x639, 0x644, 0x649, 0x20, 0x62D, 0x62F, 0x20, 0x633,
sl@0
   180
0x648, 0x627, 0x621, 0x20, 0x645, 0x646, 0x627, 0x642, 0x634, 0x629, 0x20, 0x633, 0x628, 0x644, 0x20, 0x627,
sl@0
   181
0x633, 0x62A, 0x62E, 0x62F, 0x627, 0x645, 0x20, 0x64A, 0x648, 0x646, 0x643, 0x648, 0x62F, 0x20, 0x641, 0x64A,
sl@0
   182
0x20, 0x627, 0x644, 0x646, 0x638, 0x645, 0x20, 0x627, 0x644, 0x642, 0x627, 0x626, 0x645, 0x629, 0x6, 0x648,
sl@0
   183
0x641, 0x64A, 0x645, 0x627, 0x20, 0x64A, 0x62E, 0x635, 0x20, 0x627, 0x644, 0x62A, 0x637, 0x628, 0x64A, 0x642,
sl@0
   184
0x627, 0x62A, 0x20, 0x627, 0x644, 0x62D, 0x627, 0x633, 0x648, 0x628, 0x64A, 0x629, 0x2C, 0x20, 0x627, 0x644,  // .. ........., ..
sl@0
   185
0x62E, 0x637, 0x648, 0x637, 0x2C, 0x20, 0x62A, 0x635, 0x645, 0x64A, 0x645, 0x20, 0x627, 0x644, 0x646, 0x635,  // ...., ..... ....
sl@0
   186
0x648, 0x635, 0x20, 0x648, 0x627, 0x644, 0x62D, 0x648, 0x633, 0x628, 0x629, 0x20, 0x645, 0x62A, 0x639, 0x62F,
sl@0
   187
0x62F, 0x629, 0x20, 0x627, 0x644, 0x644, 0x63A, 0x627, 0x62A, 0x2E, 0x20, 0x20, 0x6, 0x639, 0x646, 0x62F,  // .. .......  ....
sl@0
   188
0x645, 0x627, 0x20, 0x64A, 0x631, 0x64A, 0x62F, 0x20, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645, 0x20, 0x623,
sl@0
   189
0x646, 0x20, 0x64A, 0x62A, 0x643, 0x644, 0x651, 0x645, 0x2C, 0x20, 0x641, 0x647, 0x648, 0x20, 0x64A, 0x62A,  // . ......, ... ..
sl@0
   190
0x62D, 0x62F, 0x651, 0x62B, 0x20, 0x628, 0x644, 0x63A, 0x629, 0x20, 0x64A, 0x648, 0x646, 0x64A, 0x643, 0x648,
sl@0
   191
0x62F, 0x2E, 0x20, 0x20, 0x6, 0x6, 0x43, 0x68, 0x69, 0x6E, 0x65, 0x73, 0x65, 0x20, 0x28, 0x73,  // ..  ..Chinese (s
sl@0
   192
0x69, 0x6D, 0x70, 0x6C, 0x69, 0x66, 0x69, 0x65, 0x64, 0x29, 0x3B, 0x20, 0x6B27, 0x6D32, 0xFF0C, 0x8F6F,  // implified); ....
sl@0
   193
0x4EF6, 0xFF0B, 0x4E92, 0x8054, 0x7F51, 0x6, 0x7528, 0x7EDF, 0x4E00, 0x7801, 0x20, 0x28, 0x55, 0x6E, 0x69, 0x63,  // .......... (Unic
sl@0
   194
0x6F, 0x64, 0x65, 0x29, 0x20, 0x8D70, 0x904D, 0x4E16, 0x754C, 0x20, 0x20, 0x6, 0x5C06, 0x4E8E, 0x31, 0x39,  // ode) ....  ...19
sl@0
   195
0x39, 0x37, 0x5E74, 0x20, 0x33, 0x20, 0x6708, 0x31, 0x30, 0x65E5, 0xFF0D, 0x31, 0x32, 0x65E5, 0x5728, 0x5FB7,  // 97. 3 .10..12...
sl@0
   196
0x56FD, 0x20, 0x4D, 0x61, 0x69, 0x6E, 0x7A, 0x20, 0x5E02, 0x4E3E, 0x884C, 0x7684, 0x7B2C, 0x5341, 0x5C4A, 0x7EDF,  // . Mainz ........
sl@0
   197
0x4E00, 0x7801, 0x56FD, 0x9645, 0x7814, 0x8BA8, 0x4F1A, 0x73B0, 0x5728, 0x5F00, 0x59CB, 0x6CE8, 0x518C, 0x3002, 0x6, 0x672C,
sl@0
   198
0x6B21, 0x4F1A, 0x8BAE, 0x5C06, 0x6C47, 0x96C6, 0x5404, 0x65B9, 0x9762, 0x7684, 0x4E13, 0x5BB6, 0x3002, 0x6D89, 0x53CA, 0x7684,
sl@0
   199
0x9886, 0x57DF, 0x5305, 0x62EC, 0xFF1A, 0x56FD, 0x9645, 0x4E92, 0x8054, 0x7F51, 0x548C, 0x7EDF, 0x4E00, 0x7801, 0xFF0C, 0x56FD,
sl@0
   200
0x9645, 0x5316, 0x548C, 0x672C, 0x5730, 0x5316, 0xFF0C, 0x6, 0x7EDF, 0x4E00, 0x7801, 0x5728, 0x64CD, 0x4F5C, 0x7CFB, 0x7EDF,
sl@0
   201
0x548C, 0x5E94, 0x7528, 0x8F6F, 0x4EF6, 0x4E2D, 0x7684, 0x5B9E, 0x73B0, 0xFF0C, 0x5B57, 0x578B, 0xFF0C, 0x6587, 0x672C, 0x683C,
sl@0
   202
0x5F0F, 0x4EE5, 0x53CA, 0x591A, 0x6587, 0x79CD, 0x8BA1, 0x7B97, 0x7B49, 0x3002, 0x20, 0x20, 0x6, 0x5F53, 0x4E16, 0x754C,
sl@0
   203
0x9700, 0x8981, 0x6C9F, 0x901A, 0x65F6, 0xFF0C, 0x8BF7, 0x7528, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0xFF01,  // ........Unicode.
sl@0
   204
0x20, 0x20, 0x6, 0x6, 0x43, 0x68, 0x69, 0x6E, 0x65, 0x73, 0x65, 0x20, 0x28, 0x74, 0x72, 0x61,  //   ..Chinese (tra
sl@0
   205
0x64, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x6C, 0x29, 0x20, 0x6B50, 0x6D32, 0xFF0C, 0x8EDF, 0x9AD4, 0x53CA,  // ditional) ......
sl@0
   206
0x7DB2, 0x969B, 0x7DB2, 0x8DEF, 0xFF1A, 0x6, 0x8B93, 0x7D71, 0x4E00, 0x78BC, 0xFF08, 0x55, 0x6E, 0x69, 0x63, 0x6F,  // ...........Unico
sl@0
   207
0x64, 0x65, 0xFF09, 0x9818, 0x4F60, 0x9032, 0x5165, 0x5168, 0x4E16, 0x754C, 0x20, 0x20, 0x6, 0x4F60, 0x73FE, 0x5728,  // de........  ....
sl@0
   208
0x5C31, 0x61C9, 0x5831, 0x540D, 0x5C07, 0x5728, 0xFF11, 0xFF19, 0xFF19, 0xFF17, 0x5E74, 0xFF13, 0x6708, 0xFF11, 0xFF10, 0x81F3,
sl@0
   209
0xFF11, 0xFF12, 0x65E5, 0x65BC, 0x5FB7, 0x570B, 0x7F8E, 0x59FF, 0x57CE, 0xFF08, 0x4D, 0x61, 0x69, 0x6E, 0x7A, 0xFF09,  // ..........Mainz.
sl@0
   210
0x6, 0x53EC, 0x958B, 0x7684, 0x7B2C, 0x5341, 0x5C46, 0x570B, 0x969B, 0x7D71, 0x4E00, 0x78BC, 0x7814, 0x8A0E, 0x6703, 0x3002,
sl@0
   211
0x672C, 0x6B21, 0x7814, 0x8A0E, 0x6703, 0x5C07, 0x9080, 0x8ACB, 0x591A, 0x4F4D, 0x696D, 0x754C, 0x5C08, 0x5BB6, 0x7814, 0x8A0E,
sl@0
   212
0x95DC, 0x65BC, 0x5168, 0x7403, 0x7DB2, 0x969B, 0x7DB2, 0x8DEF, 0x53CA, 0x7D71, 0x4E00, 0x78BC, 0x767C, 0x5C55, 0x3001, 0x6,
sl@0
   213
0x570B, 0x969B, 0x5316, 0x53CA, 0x672C, 0x571F, 0x5316, 0x3001, 0x652F, 0x63F4, 0x7D71, 0x4E00, 0x78BC, 0x7684, 0x4F5C, 0x696D,
sl@0
   214
0x7CFB, 0x7D71, 0x53CA, 0x61C9, 0x7528, 0x7A0B, 0x5F0F, 0x3001, 0x5B57, 0x578B, 0x3001, 0x6587, 0x5B57, 0x6392, 0x7248, 0x3001,
sl@0
   215
0x96FB, 0x8166, 0x591A, 0x570B, 0x8A9E, 0x6587, 0x5316, 0x7B49, 0x591A, 0x9805, 0x8AB2, 0x984C, 0x3002, 0x20, 0x20, 0x6,
sl@0
   216
0x7576, 0x4E16, 0x754C, 0x9700, 0x8981, 0x6E9D, 0x901A, 0x6642, 0xFF0C, 0x8ACB, 0x7528, 0x7D71, 0x4E00, 0x78BC, 0xFF08, 0x55,  // ...............U
sl@0
   217
0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0xFF09, 0x20, 0x20, 0x6, 0x6, 0x47, 0x65, 0x6F, 0x72, 0x67,  // nicode.  ..Georg
sl@0
   218
0x69, 0x61, 0x6E, 0x3A, 0x20, 0x10D4, 0x10D5, 0x10E0, 0x10DD, 0x10DE, 0x10D0, 0x2C, 0x20, 0x10DE, 0x10E0, 0x10DD,  // ian: ......, ...
sl@0
   219
0x10D2, 0x10E0, 0x10D0, 0x10DB, 0x10E3, 0x10DA, 0x10D8, 0x20, 0x10E3, 0x10D6, 0x10E0, 0x10E3, 0x10DC, 0x10D5, 0x10D4, 0x10DA,
sl@0
   220
0x10E7, 0x10DD, 0x10E4, 0x10D0, 0x20, 0x2B, 0x20, 0x10D8, 0x10DC, 0x10E2, 0x10D4, 0x10E0, 0x10DC, 0x10D4, 0x10E2, 0x10D8,  // .... + .........
sl@0
   221
0x3A, 0x6, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x20, 0x10DB, 0x10D7, 0x10D4, 0x10DA,  // :.Unicode-. ....
sl@0
   222
0x10E1, 0x20, 0x10DB, 0x10E1, 0x10DD, 0x10E4, 0x10DA, 0x10D8, 0x10DD, 0x10E8, 0x10D8, 0x20, 0x20, 0x6, 0x10D2, 0x10D7,
sl@0
   223
0x10EE, 0x10DD, 0x10D5, 0x10D7, 0x20, 0x10D0, 0x10EE, 0x10DA, 0x10D0, 0x10D5, 0x10D4, 0x20, 0x10D2, 0x10D0, 0x10D8, 0x10D0,
sl@0
   224
0x10E0, 0x10DD, 0x10D7, 0x20, 0x10E0, 0x10D4, 0x10D2, 0x10D8, 0x10E1, 0x10E2, 0x10E0, 0x10D0, 0x10EA, 0x10D8, 0x10D0, 0x20,
sl@0
   225
0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x10E1, 0x20, 0x10DB, 0x10D4, 0x10D0, 0x10D7, 0x10D4,  // Unicode-.. .....
sl@0
   226
0x6, 0x10E1, 0x10D0, 0x10D4, 0x10E0, 0x10D7, 0x10D0, 0x10E8, 0x10DD, 0x10E0, 0x10D8, 0x10E1, 0x10DD, 0x20, 0x10D9, 0x10DD,
sl@0
   227
0x10DC, 0x10E4, 0x10D4, 0x10E0, 0x10D4, 0x10DC, 0x10EA, 0x10D8, 0x10D0, 0x10D6, 0x10D4, 0x20, 0x10D3, 0x10D0, 0x10E1, 0x10D0,
sl@0
   228
0x10E1, 0x10EC, 0x10E0, 0x10D4, 0x10D1, 0x10D0, 0x10D3, 0x2C, 0x20, 0x10E0, 0x10DD, 0x10DB, 0x10D4, 0x10DA, 0x10D8, 0x10EA,  // ......., .......
sl@0
   229
0x6, 0x10D2, 0x10D0, 0x10D8, 0x10DB, 0x10D0, 0x10E0, 0x10D7, 0x10D4, 0x10D1, 0x10D0, 0x20, 0x31, 0x30, 0x2D, 0x31,  // ........... 10-1
sl@0
   230
0x32, 0x20, 0x10DB, 0x10D0, 0x10E0, 0x10E2, 0x10E1, 0x2C, 0x20, 0x10E5, 0x2E, 0x20, 0x10DB, 0x10D0, 0x10D8, 0x10DC,  // 2 ....., .. ....
sl@0
   231
0x10EA, 0x10E8, 0x10D8, 0x2C, 0x20, 0x10D2, 0x10D4, 0x10E0, 0x10DB, 0x10D0, 0x10DC, 0x10D8, 0x10D0, 0x10E8, 0x10D8, 0x2E,  // ..., ...........
sl@0
   232
0x6, 0x10D9, 0x10DD, 0x10DC, 0x10E4, 0x10D4, 0x10E0, 0x10D4, 0x10DC, 0x10EA, 0x10D8, 0x10D0, 0x20, 0x10E8, 0x10D4, 0x10F0,
sl@0
   233
0x10D9, 0x10E0, 0x10D4, 0x10D1, 0x10E1, 0x20, 0x10D4, 0x10E0, 0x10D7, 0x10D0, 0x10D3, 0x20, 0x10DB, 0x10E1, 0x10DD, 0x10E4,
sl@0
   234
0x10DA, 0x10D8, 0x10DD, 0x10E1, 0x20, 0x10D4, 0x10E5, 0x10E1, 0x10DE, 0x10D4, 0x10E0, 0x10E2, 0x10D4, 0x10D1, 0x10E1, 0x20,
sl@0
   235
0x10D8, 0x10E1, 0x10D4, 0x10D7, 0x6, 0x10D3, 0x10D0, 0x10E0, 0x10D2, 0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x20, 0x10E0, 0x10DD,
sl@0
   236
0x10D2, 0x10DD, 0x10E0, 0x10D8, 0x10EA, 0x10D0, 0x10D0, 0x20, 0x10D8, 0x10DC, 0x10E2, 0x10D4, 0x10E0, 0x10DC, 0x10D4, 0x10E2,
sl@0
   237
0x10D8, 0x20, 0x10D3, 0x10D0, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x2C, 0x6,  // . .. Unicode-.,.
sl@0
   238
0x10D8, 0x10DC, 0x10E2, 0x10D4, 0x10E0, 0x10DC, 0x10D0, 0x10EA, 0x10D8, 0x10DD, 0x10DC, 0x10D0, 0x10DA, 0x10D8, 0x10D6, 0x10D0,
sl@0
   239
0x10EA, 0x10D8, 0x10D0, 0x20, 0x10D3, 0x10D0, 0x20, 0x10DA, 0x10DD, 0x10D9, 0x10D0, 0x10DA, 0x10D8, 0x10D6, 0x10D0, 0x10EA,
sl@0
   240
0x10D8, 0x10D0, 0x2C, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x10E1, 0x6, 0x10D2,  // .., Unicode-....
sl@0
   241
0x10D0, 0x10DB, 0x10DD, 0x10E7, 0x10D4, 0x10DC, 0x10D4, 0x10D1, 0x10D0, 0x20, 0x10DD, 0x10DE, 0x10D4, 0x10E0, 0x10D0, 0x10EA,
sl@0
   242
0x10D8, 0x10E3, 0x10DA, 0x20, 0x10E1, 0x10D8, 0x10E1, 0x10E2, 0x10D4, 0x10DB, 0x10D4, 0x10D1, 0x10E1, 0x10D0, 0x2C, 0x20,  // ... ..........,
sl@0
   243
0x10D3, 0x10D0, 0x20, 0x10D2, 0x10D0, 0x10DB, 0x10DD, 0x10E7, 0x10D4, 0x10DC, 0x10D4, 0x10D1, 0x10D8, 0x10D7, 0x6, 0x10DE,
sl@0
   244
0x10E0, 0x10DD, 0x10D2, 0x10E0, 0x10D0, 0x10DB, 0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x2C, 0x20, 0x10E8, 0x10E0, 0x10D8, 0x10E4,  // .........., ....
sl@0
   245
0x10E2, 0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x2C, 0x20, 0x10E2, 0x10D4, 0x10E5, 0x10E1, 0x10E2, 0x10D4, 0x10D1, 0x10D8, 0x10E1,  // ....., .........
sl@0
   246
0x20, 0x10D3, 0x10D0, 0x10DB, 0x10E3, 0x10E8, 0x10D0, 0x10D5, 0x10D4, 0x10D1, 0x10D0, 0x10E1, 0x10D0, 0x20, 0x10D3, 0x10D0,
sl@0
   247
0x6, 0x10DB, 0x10E0, 0x10D0, 0x10D5, 0x10D0, 0x10DA, 0x10D4, 0x10DC, 0x10DD, 0x10D5, 0x10D0, 0x10DC, 0x20, 0x10D9, 0x10DD,
sl@0
   248
0x10DB, 0x10DE, 0x10D8, 0x10E3, 0x10E2, 0x10D4, 0x10E0, 0x10E3, 0x10DA, 0x20, 0x10E1, 0x10D8, 0x10E1, 0x10E2, 0x10D4, 0x10DB,
sl@0
   249
0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x2E, 0x20, 0x20, 0x6, 0x10E0, 0x10DD, 0x10D3, 0x10D4, 0x10E1, 0x10D0, 0x10EA, 0x20,  // .....  ........
sl@0
   250
0x10DB, 0x10E1, 0x10DD, 0x10E4, 0x10DA, 0x10D8, 0x10DD, 0x10E1, 0x20, 0x10E3, 0x10E0, 0x10D7, 0x10D8, 0x10E0, 0x10D7, 0x10DD,
sl@0
   251
0x10D1, 0x10D0, 0x20, 0x10E1, 0x10E3, 0x10E0, 0x10E1, 0x2C, 0x20, 0x10D8, 0x10D2, 0x10D8, 0x20, 0x55, 0x6E, 0x69,  // .. ...., ... Uni
sl@0
   252
0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x10E1, 0x20, 0x10D4, 0x10DC, 0x10D0, 0x10D6, 0x10D4, 0x6, 0x10DA, 0x10D0,  // code-.. ........
sl@0
   253
0x10DE, 0x10D0, 0x10E0, 0x10D0, 0x10D9, 0x10DD, 0x10D1, 0x10E1, 0x20, 0x20, 0x6, 0x6
sl@0
   254
}; // phew!
sl@0
   255
sl@0
   256
const TInt UnicodeDataSize = sizeof(UnicodeData) / sizeof(UnicodeData[0]);
sl@0
   257
sl@0
   258
static TBuf8<UnicodeDataSize * 2> CompressedData;
sl@0
   259
static TBuf16<UnicodeDataSize * 2> ExpandedData;
sl@0
   260
sl@0
   261
static void PerformTestL(const TUint16* aData,TInt aDataSize,
sl@0
   262
						TBool aCompStreamOutput,TBool aCompStreamInput,TBool aCompBreak,
sl@0
   263
						TBool aExpStreamOutput,TBool aExpStreamInput,TBool aExpBreak)
sl@0
   264
	{
sl@0
   265
	test.Printf(_L("compress %d words from %s to %s in %s\n"),aDataSize,
sl@0
   266
				aCompStreamInput ? _S("stream") : _S("buffer"),
sl@0
   267
				aCompStreamOutput ? _S("stream") : _S("buffer"),
sl@0
   268
				aCompBreak ? _S("two sections") : _S("one section"));
sl@0
   269
sl@0
   270
	// Compress
sl@0
   271
	TPtrC8 comp_input((const TUint8*)aData,aDataSize * 2);
sl@0
   272
	RDesReadStream comp_input_stream(comp_input);
sl@0
   273
	TMemoryStreamUnicodeSource comp_input_stream_source(comp_input_stream);
sl@0
   274
	TMemoryUnicodeSource comp_input_memory_source(aData);
sl@0
   275
	MUnicodeSource& comp_source = aCompStreamInput ? (MUnicodeSource&)comp_input_stream_source : (MUnicodeSource&)comp_input_memory_source;
sl@0
   276
	int comp_output_bytes = aCompBreak ? aDataSize / 3 : KMaxTInt;
sl@0
   277
	int in1 = 0, in2 = 0, out1 = 0, out2 = 0, out3 = 0;
sl@0
   278
	TUnicodeCompressor compressor;
sl@0
   279
	if (aCompStreamOutput)
sl@0
   280
		{
sl@0
   281
		RDesWriteStream comp_output_stream(CompressedData);
sl@0
   282
		compressor.CompressL(comp_output_stream,comp_source,comp_output_bytes,aDataSize,&out1,&in1);
sl@0
   283
		if (aCompBreak)
sl@0
   284
			compressor.CompressL(comp_output_stream,comp_source,KMaxTInt,aDataSize - in1,&out2,&in2);
sl@0
   285
		compressor.FlushL(comp_output_stream,KMaxTInt,out3);
sl@0
   286
		}
sl@0
   287
	else
sl@0
   288
		{
sl@0
   289
		TUint8* p = (TUint8*)CompressedData.Ptr();
sl@0
   290
		compressor.CompressL(p,comp_source,comp_output_bytes,aDataSize,&out1,&in1);
sl@0
   291
		if (aCompBreak)
sl@0
   292
			compressor.CompressL(p + out1,comp_source,KMaxTInt,aDataSize - in1,&out2,&in2);
sl@0
   293
		compressor.FlushL(p + out1 + out2,KMaxTInt,out3);
sl@0
   294
		}
sl@0
   295
	int compressed_size = out1 + out2 + out3;
sl@0
   296
	CompressedData.SetLength(compressed_size);
sl@0
   297
sl@0
   298
	// Expand
sl@0
   299
	test.Printf(_L("expand %d bytes from %s to %s in %s\n"),compressed_size,
sl@0
   300
				aExpStreamInput ? _S("stream") : _S("buffer"),
sl@0
   301
				aExpStreamOutput ? _S("stream") : _S("buffer"),
sl@0
   302
				aExpBreak ? _S("two sections") : _S("one section"));
sl@0
   303
	TPtr8 exp_output((TUint8*)ExpandedData.Ptr(),aDataSize * 2);
sl@0
   304
	RDesWriteStream exp_output_stream(exp_output);
sl@0
   305
	TMemoryStreamUnicodeSink exp_output_stream_sink(exp_output_stream);
sl@0
   306
	TMemoryUnicodeSink exp_output_memory_sink((TUint16*)ExpandedData.Ptr());
sl@0
   307
	MUnicodeSink& exp_sink = aExpStreamOutput ? (MUnicodeSink&)exp_output_stream_sink : (MUnicodeSink&)exp_output_memory_sink;
sl@0
   308
	int exp_input_bytes = aExpBreak ? compressed_size / 3 : compressed_size;
sl@0
   309
	TUnicodeExpander expander;
sl@0
   310
	in1 = in2 = out1 = out2 = out3 = 0;
sl@0
   311
	if (aExpStreamInput)
sl@0
   312
		{
sl@0
   313
		RDesReadStream exp_input_stream1(CompressedData);
sl@0
   314
		(void)expander.ExpandedSizeL(exp_input_stream1, CompressedData.Length() );
sl@0
   315
		RDesReadStream exp_input_stream(CompressedData);
sl@0
   316
		TRAPD(r, expander.ExpandL(exp_sink,exp_input_stream,KMaxTInt,exp_input_bytes,&out1,&in1));
sl@0
   317
		test(r==KErrNone);
sl@0
   318
		if (aExpBreak)
sl@0
   319
			expander.ExpandL(exp_sink,exp_input_stream,KMaxTInt,compressed_size - exp_input_bytes,&out2,&in2);
sl@0
   320
		expander.FlushL(exp_sink,KMaxTInt,out3);
sl@0
   321
		}
sl@0
   322
	else
sl@0
   323
		{
sl@0
   324
		const TUint8* p = CompressedData.Ptr();
sl@0
   325
		expander.ExpandL(exp_sink,p,KMaxTInt,exp_input_bytes,&out1,&in1);
sl@0
   326
		if (aExpBreak)
sl@0
   327
			expander.ExpandL(exp_sink,p + in1,KMaxTInt,compressed_size - exp_input_bytes,&out2,&in2);
sl@0
   328
		expander.FlushL(exp_sink,KMaxTInt,out3);
sl@0
   329
		}
sl@0
   330
	int expanded_size = out1 + out2 + out3;
sl@0
   331
	ExpandedData.SetLength(expanded_size);
sl@0
   332
sl@0
   333
	// Compare original data with data that was compressed then expanded.
sl@0
   334
	TPtrC16 original_data(aData,aDataSize);
sl@0
   335
	test(ExpandedData == original_data);
sl@0
   336
	}
sl@0
   337
sl@0
   338
static const TUint16 UnicodeData2[] =
sl@0
   339
	{
sl@0
   340
	0x61, 0x62, 0x62, 0x2029
sl@0
   341
	};
sl@0
   342
const TInt UnicodeData2Size = sizeof(UnicodeData2) / sizeof(UnicodeData2[0]);
sl@0
   343
sl@0
   344
/**
sl@0
   345
@SYMTestCaseID          SYSLIB-STORE-CT-1218
sl@0
   346
@SYMTestCaseDesc	    Tests for the defect number EDNATHE-4JYFYQ
sl@0
   347
@SYMTestPriority 	    High
sl@0
   348
@SYMTestActions  	    Compress and expand with a flush.Check for the integrity of the expanded data with the original data
sl@0
   349
@SYMTestExpectedResults Test must not fail
sl@0
   350
@SYMREQ                 REQ0000
sl@0
   351
*/
sl@0
   352
static void TestFlushL()
sl@0
   353
	{
sl@0
   354
	test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-CT-1218 "));
sl@0
   355
	test.Printf(_L("compress into too small buffer then flush (defect EDNATHE-4JYFYQ)\n"));
sl@0
   356
sl@0
   357
	// Compress
sl@0
   358
	TMemoryUnicodeSource comp_source(UnicodeData2);
sl@0
   359
	int bytes_needed = TUnicodeCompressor::CompressedSizeL(comp_source,UnicodeData2Size);
sl@0
   360
	TUnicodeCompressor compressor;
sl@0
   361
	TUint8* p = (TUint8*)CompressedData.Ptr();
sl@0
   362
	int out1, out2;
sl@0
   363
	comp_source = TMemoryUnicodeSource(UnicodeData2); // reinitialise comp_source; pointer changed by CompressedSizeL
sl@0
   364
	compressor.CompressL(p,comp_source,bytes_needed - 1,UnicodeData2Size,&out1);
sl@0
   365
	compressor.FlushL(p + out1,KMaxTInt,out2);
sl@0
   366
	int compressed_size = out1 + out2;
sl@0
   367
	CompressedData.SetLength(compressed_size);
sl@0
   368
sl@0
   369
	// Expand
sl@0
   370
	TMemoryUnicodeSink exp_sink((TUint16*)ExpandedData.Ptr());
sl@0
   371
	TUnicodeExpander expander;
sl@0
   372
	const TUint8* q = CompressedData.Ptr();
sl@0
   373
	expander.ExpandL(exp_sink,q,KMaxTInt,compressed_size,&out1);
sl@0
   374
	expander.FlushL(exp_sink,KMaxTInt,out2);
sl@0
   375
	int expanded_size = out1 + out2;
sl@0
   376
	ExpandedData.SetLength(expanded_size);
sl@0
   377
sl@0
   378
	// Compare original data with data that was compressed then expanded.
sl@0
   379
	TPtrC16 original_data(UnicodeData2,UnicodeData2Size);
sl@0
   380
	test(ExpandedData == original_data);
sl@0
   381
	}
sl@0
   382
sl@0
   383
void DoDEF113513L()
sl@0
   384
	{
sl@0
   385
	// Compress
sl@0
   386
	TBuf<2> unicodeBuf;
sl@0
   387
sl@0
   388
	// To switch to iUnicodeMode = 1
sl@0
   389
	// Condition 1:
sl@0
   390
	//		DynamicWindowOffsetIndex(aCode)
sl@0
   391
	//		if (aCode < 0x0080)
sl@0
   392
	//      if (aCode >= 0x3400 && aCode <= 0xDFFF)
sl@0
   393
	//			return KErrNotFound;
sl@0
   394
	// Condition 2:
sl@0
   395
	//		if (aCode >= iStaticWindow[i] && aCode < iStaticWindow[i] + 128)
sl@0
   396
	// HandleUByteL conditions
sl@0
   397
	// aByte <= 0xDF || aByte >= 0xF3
sl@0
   398
	// aByte == UQU
sl@0
   399
	// aByte >= UC0 && aByte <= UC0 + 7
sl@0
   400
	// aByte >= UD0 && aByte <= UD0 + 7
sl@0
   401
	// aByte == UDX / 0xF1
sl@0
   402
	unicodeBuf.Append(0xDFFE);
sl@0
   403
	unicodeBuf.Append(0xDFFE);
sl@0
   404
sl@0
   405
	TBuf8<20> compBuf;
sl@0
   406
	RDesWriteStream strm1(compBuf);
sl@0
   407
	strm1 << unicodeBuf;
sl@0
   408
sl@0
   409
	strm1.CommitL();
sl@0
   410
	strm1.Close();
sl@0
   411
	//Corrupt the compressed data
sl@0
   412
	compBuf[2] = 0xF2;
sl@0
   413
	compBuf[3] = 0xF2;
sl@0
   414
sl@0
   415
sl@0
   416
	// Decompress
sl@0
   417
	TBuf<20> resBuf;
sl@0
   418
	RDesReadStream strm2(compBuf);
sl@0
   419
	strm2 >> resBuf;//Should not panic here!
sl@0
   420
	strm2.Close();
sl@0
   421
sl@0
   422
 	}
sl@0
   423
sl@0
   424
 /**
sl@0
   425
 @SYMTestCaseID			SYSLIB-STORE-UT-4004
sl@0
   426
 @SYMTestCaseDesc		Test for DEF113513: "TUnicodeCompressor/Expander function should not panic unnecessary".
sl@0
   427
 						1) The test writes a unicode string to a stream, with a descriptor used as a stream store.
sl@0
   428
 						2) The test uses the overloaded "<<" operator, so the string will be compressed during the internalization.
sl@0
   429
 						3) Then the test corrupts the stream store (the descriptor) and attempts to externalize the string.
sl@0
   430
 						4) If the defect is fixed. the ">>" operator should not panic the test application.
sl@0
   431
 @SYMTestPriority		Medium
sl@0
   432
 @SYMTestActions		Test for DEF113513: "TUnicodeCompressor/Expander function should not panic unnecessary".
sl@0
   433
 @SYMTestExpectedResults The test must not fail or panic
sl@0
   434
 @SYMDEF
sl@0
   435
 */
sl@0
   436
 void DEF113513()
sl@0
   437
 	{
sl@0
   438
 	TRAPD(err, DoDEF113513L());
sl@0
   439
 	test(err == KErrCorrupt);
sl@0
   440
 	}
sl@0
   441
sl@0
   442
sl@0
   443
/**
sl@0
   444
@SYMTestCaseID          SYSLIB-STORE-CT-1217
sl@0
   445
@SYMTestCaseDesc	    Standard Unicode compression scheme test
sl@0
   446
@SYMTestPriority 	    High
sl@0
   447
@SYMTestActions  	    Attempt for compressing and expanding the data.Test for the integrity of expanded data with the original data.
sl@0
   448
@SYMTestExpectedResults Test must not fail
sl@0
   449
@SYMREQ                 REQ0000
sl@0
   450
*/
sl@0
   451
static void PerformTestsL()
sl@0
   452
	{
sl@0
   453
	const TUint16* data = NULL;
sl@0
   454
	int data_size = 0;
sl@0
   455
	int i;
sl@0
   456
sl@0
   457
	test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-CT-1217 "));
sl@0
   458
sl@0
   459
	// Iterate over all possible values of the 6 Boolean parameters to PerformTest, varying the start and size of the data
sl@0
   460
	for (i = 0; i < 64; i++)
sl@0
   461
		{
sl@0
   462
		int start = (9753 * (i % 7)) % UnicodeDataSize;
sl@0
   463
		data = UnicodeData + start;
sl@0
   464
		data_size = UnicodeDataSize - start;
sl@0
   465
sl@0
   466
		PerformTestL(data,data_size,i & 32,i & 16,i & 8,i & 4,i & 2,i & 1);
sl@0
   467
		}
sl@0
   468
sl@0
   469
	// Do everything again with zero and small amounts of data.
sl@0
   470
	for (i = 0; i < 64; i++)
sl@0
   471
		{
sl@0
   472
		int start = (7953 * (i % 7)) % UnicodeDataSize;
sl@0
   473
		data = UnicodeData + start;
sl@0
   474
		data_size = i % 9;
sl@0
   475
sl@0
   476
		PerformTestL(data,data_size,i & 32,i & 16,i & 8,i & 4,i & 2,i & 1);
sl@0
   477
		}
sl@0
   478
sl@0
   479
	// Do tests added in response to defects.
sl@0
   480
	TestFlushL();
sl@0
   481
	}
sl@0
   482
sl@0
   483
static void SetupCleanup()
sl@0
   484
    {
sl@0
   485
	TheTrapCleanup = CTrapCleanup::New();
sl@0
   486
	test(TheTrapCleanup != NULL);
sl@0
   487
	TRAPD(r,\
sl@0
   488
		{\
sl@0
   489
		for (TInt i = KTestCleanupStack;i>0;i--)\
sl@0
   490
			CleanupStack::PushL((TAny*)1);\
sl@0
   491
		test(r == KErrNone);\
sl@0
   492
		CleanupStack::Pop(KTestCleanupStack);\
sl@0
   493
		});
sl@0
   494
	test(r == KErrNone);
sl@0
   495
	}
sl@0
   496
sl@0
   497
sl@0
   498
void DoPDEF112374L()
sl@0
   499
	{
sl@0
   500
	// Compress
sl@0
   501
	_LIT(KTestStr, "0123456789");
sl@0
   502
	TBuf8<20> compBuf;
sl@0
   503
	RDesWriteStream strm1(compBuf);
sl@0
   504
	strm1 << KTestStr;
sl@0
   505
	strm1.CommitL();
sl@0
   506
	strm1.Close();
sl@0
   507
	//Corrupt the compressed data
sl@0
   508
	compBuf[0] = 0x0C;
sl@0
   509
	compBuf[1] = 0x0C;
sl@0
   510
	// Decompress
sl@0
   511
	TBuf<20> resBuf;
sl@0
   512
	RDesReadStream strm2(compBuf);
sl@0
   513
	strm2 >> resBuf;//Should not panic here!
sl@0
   514
	strm2.Close();
sl@0
   515
	}
sl@0
   516
sl@0
   517
/**
sl@0
   518
@SYMTestCaseID			SYSLIB-STORE-UT-4001
sl@0
   519
@SYMTestCaseDesc		Test for PDEF112374: "LIBmm54818 Remove/re-insert SIM, DUT reboot incorrectly and crash detected".
sl@0
   520
						1) The test writes a unicode string to a stream, with a descriptor used as a stream store.
sl@0
   521
						2) The test uses the overloaded "<<" operator, so the string will be compressed during the internalization.
sl@0
   522
						3) Then the test corrupts the stream store (the descriptor) and attempts to externalize the string.
sl@0
   523
						4) If the defect is fixed. the ">>" operator should not panic the test application.
sl@0
   524
@SYMTestPriority		Medium
sl@0
   525
@SYMTestActions			Test for PDEF112374: "LIBmm54818 Remove/re-insert SIM, DUT reboot incorrectly and crash detected".
sl@0
   526
@SYMTestExpectedResults The test must not fail or panic
sl@0
   527
@SYMDEF					PDEF112374
sl@0
   528
*/
sl@0
   529
void PDEF112374()
sl@0
   530
	{
sl@0
   531
	TRAPD(err, DoPDEF112374L())
sl@0
   532
	test(err == KErrCorrupt);
sl@0
   533
	}
sl@0
   534
sl@0
   535
#endif
sl@0
   536
sl@0
   537
TInt E32Main()
sl@0
   538
    {
sl@0
   539
#ifdef _UNICODE
sl@0
   540
	test.Title();
sl@0
   541
	SetupCleanup();
sl@0
   542
	__UHEAP_MARK;
sl@0
   543
	test.Start(_L("test the Standard Compression Scheme for Unicode"));
sl@0
   544
	TRAPD(err, PerformTestsL());
sl@0
   545
	test(err == KErrNone);
sl@0
   546
	test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-UT-4001 PDEF112374: LIBmm54818 Remove/re-insert SIM, DUT reboot incorrectly and crash detected "));
sl@0
   547
	PDEF112374();
sl@0
   548
sl@0
   549
	test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-UT-4004 DEF113513: TUnicodeCompressor/Expander function should not panic unnecessary "));
sl@0
   550
	DEF113513();
sl@0
   551
sl@0
   552
sl@0
   553
test.End();
sl@0
   554
	__UHEAP_MARKEND;
sl@0
   555
	delete TheTrapCleanup;
sl@0
   556
	test.Close();
sl@0
   557
#endif
sl@0
   558
	return 0;
sl@0
   559
    }