aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/X11
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-07-21 12:31:09 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-08-25 10:06:49 +0200
commitc350873c7c977efe5210484f04160be45f84ba7e (patch)
tree717d33eb315f4def1307d65108d14715696cd5cf /nx-X11/lib/X11
parent1472e7e37838f17b7ed948fa206e8c3434a9d346 (diff)
downloadnx-libs-c350873c7c977efe5210484f04160be45f84ba7e.tar.gz
nx-libs-c350873c7c977efe5210484f04160be45f84ba7e.tar.bz2
nx-libs-c350873c7c977efe5210484f04160be45f84ba7e.zip
Convert nx-X11/lib/ build flow from imake to autotools.
Diffstat (limited to 'nx-X11/lib/X11')
-rw-r--r--nx-X11/lib/X11/.gitignore1
-rw-r--r--nx-X11/lib/X11/AddDIC.c149
-rw-r--r--nx-X11/lib/X11/AddSF.c145
-rw-r--r--nx-X11/lib/X11/AllCells.c68
-rw-r--r--nx-X11/lib/X11/AllPlanes.c74
-rw-r--r--nx-X11/lib/X11/AllowEv.c51
-rw-r--r--nx-X11/lib/X11/AuDispose.c49
-rw-r--r--nx-X11/lib/X11/AuFileName.c73
-rw-r--r--nx-X11/lib/X11/AuGetBest.c136
-rw-r--r--nx-X11/lib/X11/AuRead.c135
-rw-r--r--nx-X11/lib/X11/AutoRep.c50
-rw-r--r--nx-X11/lib/X11/Backgnd.c49
-rw-r--r--nx-X11/lib/X11/BdrWidth.c53
-rw-r--r--nx-X11/lib/X11/Bell.c46
-rw-r--r--nx-X11/lib/X11/Border.c49
-rw-r--r--nx-X11/lib/X11/CCC.c285
-rw-r--r--nx-X11/lib/X11/ChAccCon.c59
-rw-r--r--nx-X11/lib/X11/ChActPGb.c49
-rw-r--r--nx-X11/lib/X11/ChClMode.c46
-rw-r--r--nx-X11/lib/X11/ChCmap.c49
-rw-r--r--nx-X11/lib/X11/ChGC.c52
-rw-r--r--nx-X11/lib/X11/ChKeyCon.c83
-rw-r--r--nx-X11/lib/X11/ChPntCon.c55
-rw-r--r--nx-X11/lib/X11/ChProp.c99
-rw-r--r--nx-X11/lib/X11/ChSaveSet.c63
-rw-r--r--nx-X11/lib/X11/ChWAttrs.c57
-rw-r--r--nx-X11/lib/X11/ChWindow.c54
-rw-r--r--nx-X11/lib/X11/ChkIfEv.c138
-rw-r--r--nx-X11/lib/X11/ChkMaskEv.c90
-rw-r--r--nx-X11/lib/X11/ChkTypEv.c81
-rw-r--r--nx-X11/lib/X11/ChkTypWEv.c83
-rw-r--r--nx-X11/lib/X11/ChkWinEv.c91
-rw-r--r--nx-X11/lib/X11/CirWin.c48
-rw-r--r--nx-X11/lib/X11/CirWinDn.c47
-rw-r--r--nx-X11/lib/X11/CirWinUp.c47
-rw-r--r--nx-X11/lib/X11/ClDisplay.c82
-rw-r--r--nx-X11/lib/X11/Clear.c49
-rw-r--r--nx-X11/lib/X11/ClearArea.c56
-rw-r--r--nx-X11/lib/X11/Cmap.h12
-rw-r--r--nx-X11/lib/X11/ConfWind.c58
-rw-r--r--nx-X11/lib/X11/ConnDis.c1479
-rw-r--r--nx-X11/lib/X11/Context.c302
-rw-r--r--nx-X11/lib/X11/ConvSel.c53
-rw-r--r--nx-X11/lib/X11/CopyArea.c64
-rw-r--r--nx-X11/lib/X11/CopyCmap.c64
-rw-r--r--nx-X11/lib/X11/CopyGC.c138
-rw-r--r--nx-X11/lib/X11/CopyPlane.c66
-rw-r--r--nx-X11/lib/X11/Cr.h29
-rw-r--r--nx-X11/lib/X11/CrBFData.c80
-rw-r--r--nx-X11/lib/X11/CrCmap.c59
-rw-r--r--nx-X11/lib/X11/CrCursor.c79
-rw-r--r--nx-X11/lib/X11/CrGC.c345
-rw-r--r--nx-X11/lib/X11/CrGlCur.c225
-rw-r--r--nx-X11/lib/X11/CrPFBData.c89
-rw-r--r--nx-X11/lib/X11/CrPixmap.c65
-rw-r--r--nx-X11/lib/X11/CrWindow.c69
-rw-r--r--nx-X11/lib/X11/Cursor.c53
-rw-r--r--nx-X11/lib/X11/Cv.h189
-rw-r--r--nx-X11/lib/X11/CvColW.c141
-rw-r--r--nx-X11/lib/X11/CvCols.c1030
-rw-r--r--nx-X11/lib/X11/DefCursor.c49
-rw-r--r--nx-X11/lib/X11/DelProp.c47
-rw-r--r--nx-X11/lib/X11/Depths.c62
-rw-r--r--nx-X11/lib/X11/DestSubs.c45
-rw-r--r--nx-X11/lib/X11/DestWind.c45
-rw-r--r--nx-X11/lib/X11/DisName.c64
-rw-r--r--nx-X11/lib/X11/DrArc.c73
-rw-r--r--nx-X11/lib/X11/DrArcs.c57
-rw-r--r--nx-X11/lib/X11/DrLine.c85
-rw-r--r--nx-X11/lib/X11/DrLines.c57
-rw-r--r--nx-X11/lib/X11/DrPoint.c82
-rw-r--r--nx-X11/lib/X11/DrPoints.c85
-rw-r--r--nx-X11/lib/X11/DrRect.c84
-rw-r--r--nx-X11/lib/X11/DrRects.c65
-rw-r--r--nx-X11/lib/X11/DrSegs.c66
-rw-r--r--nx-X11/lib/X11/ErrDes.c212
-rw-r--r--nx-X11/lib/X11/ErrHndlr.c86
-rw-r--r--nx-X11/lib/X11/EvToWire.c406
-rw-r--r--nx-X11/lib/X11/FSSaver.c60
-rw-r--r--nx-X11/lib/X11/FSWrap.c262
-rw-r--r--nx-X11/lib/X11/FetchName.c95
-rw-r--r--nx-X11/lib/X11/FillArc.c86
-rw-r--r--nx-X11/lib/X11/FillArcs.c67
-rw-r--r--nx-X11/lib/X11/FillPoly.c64
-rw-r--r--nx-X11/lib/X11/FillRct.c82
-rw-r--r--nx-X11/lib/X11/FillRcts.c66
-rw-r--r--nx-X11/lib/X11/FilterEv.c106
-rw-r--r--nx-X11/lib/X11/Flush.c42
-rw-r--r--nx-X11/lib/X11/Font.c708
-rw-r--r--nx-X11/lib/X11/FontInfo.c227
-rw-r--r--nx-X11/lib/X11/FontNames.c137
-rw-r--r--nx-X11/lib/X11/FreeCmap.c52
-rw-r--r--nx-X11/lib/X11/FreeCols.c57
-rw-r--r--nx-X11/lib/X11/FreeCurs.c44
-rw-r--r--nx-X11/lib/X11/FreeEData.c45
-rw-r--r--nx-X11/lib/X11/FreeEventData.c42
-rw-r--r--nx-X11/lib/X11/FreeGC.c50
-rw-r--r--nx-X11/lib/X11/FreePix.c44
-rw-r--r--nx-X11/lib/X11/GCMisc.c110
-rw-r--r--nx-X11/lib/X11/Geom.c89
-rw-r--r--nx-X11/lib/X11/GetAtomNm.c189
-rw-r--r--nx-X11/lib/X11/GetColor.c111
-rw-r--r--nx-X11/lib/X11/GetDflt.c223
-rw-r--r--nx-X11/lib/X11/GetEventData.c42
-rw-r--r--nx-X11/lib/X11/GetFPath.c99
-rw-r--r--nx-X11/lib/X11/GetFProp.c52
-rw-r--r--nx-X11/lib/X11/GetGCVals.c128
-rw-r--r--nx-X11/lib/X11/GetGeom.c63
-rw-r--r--nx-X11/lib/X11/GetHColor.c58
-rw-r--r--nx-X11/lib/X11/GetHints.c338
-rw-r--r--nx-X11/lib/X11/GetIFocus.c49
-rw-r--r--nx-X11/lib/X11/GetImage.c143
-rw-r--r--nx-X11/lib/X11/GetKCnt.c55
-rw-r--r--nx-X11/lib/X11/GetMoEv.c81
-rw-r--r--nx-X11/lib/X11/GetNrmHint.c127
-rw-r--r--nx-X11/lib/X11/GetPCnt.c52
-rw-r--r--nx-X11/lib/X11/GetPntMap.c132
-rw-r--r--nx-X11/lib/X11/GetProp.c146
-rw-r--r--nx-X11/lib/X11/GetRGBCMap.c134
-rw-r--r--nx-X11/lib/X11/GetSOwner.c45
-rw-r--r--nx-X11/lib/X11/GetSSaver.c56
-rw-r--r--nx-X11/lib/X11/GetStCmap.c117
-rw-r--r--nx-X11/lib/X11/GetTxtProp.c113
-rw-r--r--nx-X11/lib/X11/GetWAttrs.c155
-rw-r--r--nx-X11/lib/X11/GetWMCMapW.c87
-rw-r--r--nx-X11/lib/X11/GetWMProto.c87
-rw-r--r--nx-X11/lib/X11/GrButton.c60
-rw-r--r--nx-X11/lib/X11/GrKey.c58
-rw-r--r--nx-X11/lib/X11/GrKeybd.c58
-rw-r--r--nx-X11/lib/X11/GrPointer.c64
-rw-r--r--nx-X11/lib/X11/GrServer.c42
-rw-r--r--nx-X11/lib/X11/HVC.c625
-rw-r--r--nx-X11/lib/X11/HVCGcC.c149
-rw-r--r--nx-X11/lib/X11/HVCGcV.c201
-rw-r--r--nx-X11/lib/X11/HVCGcVC.c262
-rw-r--r--nx-X11/lib/X11/HVCMnV.c163
-rw-r--r--nx-X11/lib/X11/HVCMxC.c243
-rw-r--r--nx-X11/lib/X11/HVCMxV.c247
-rw-r--r--nx-X11/lib/X11/HVCMxVC.c235
-rw-r--r--nx-X11/lib/X11/HVCMxVs.c161
-rw-r--r--nx-X11/lib/X11/HVCWpAj.c114
-rw-r--r--nx-X11/lib/X11/Host.c144
-rw-r--r--nx-X11/lib/X11/ICWrap.c432
-rw-r--r--nx-X11/lib/X11/IMWrap.c204
-rw-r--r--nx-X11/lib/X11/Iconify.c89
-rw-r--r--nx-X11/lib/X11/IdOfPr.c106
-rw-r--r--nx-X11/lib/X11/IfEvent.c79
-rw-r--r--nx-X11/lib/X11/ImText.c101
-rw-r--r--nx-X11/lib/X11/ImText16.c103
-rw-r--r--nx-X11/lib/X11/ImUtil.c1013
-rw-r--r--nx-X11/lib/X11/ImUtil.h31
-rw-r--r--nx-X11/lib/X11/Imakefile1132
-rw-r--r--nx-X11/lib/X11/InitExt.c409
-rw-r--r--nx-X11/lib/X11/InsCmap.c44
-rw-r--r--nx-X11/lib/X11/IntAtom.c297
-rw-r--r--nx-X11/lib/X11/Key.h20
-rw-r--r--nx-X11/lib/X11/KeyBind.c1005
-rw-r--r--nx-X11/lib/X11/KeysymStr.c146
-rw-r--r--nx-X11/lib/X11/KillCl.c44
-rw-r--r--nx-X11/lib/X11/LRGB.c1841
-rw-r--r--nx-X11/lib/X11/Lab.c431
-rw-r--r--nx-X11/lib/X11/LabGcC.c127
-rw-r--r--nx-X11/lib/X11/LabGcL.c174
-rw-r--r--nx-X11/lib/X11/LabGcLC.c223
-rw-r--r--nx-X11/lib/X11/LabMnL.c216
-rw-r--r--nx-X11/lib/X11/LabMxC.c203
-rw-r--r--nx-X11/lib/X11/LabMxL.c216
-rw-r--r--nx-X11/lib/X11/LabMxLC.c218
-rw-r--r--nx-X11/lib/X11/LabWpAj.c97
-rw-r--r--nx-X11/lib/X11/LiHosts.c157
-rw-r--r--nx-X11/lib/X11/LiICmaps.c71
-rw-r--r--nx-X11/lib/X11/LiProps.c69
-rw-r--r--nx-X11/lib/X11/ListExt.c109
-rw-r--r--nx-X11/lib/X11/LoadFont.c55
-rw-r--r--nx-X11/lib/X11/LockDis.c84
-rw-r--r--nx-X11/lib/X11/LookupCol.c104
-rw-r--r--nx-X11/lib/X11/LowerWin.c49
-rw-r--r--nx-X11/lib/X11/Luv.c401
-rw-r--r--nx-X11/lib/X11/LuvGcC.c127
-rw-r--r--nx-X11/lib/X11/LuvGcL.c174
-rw-r--r--nx-X11/lib/X11/LuvGcLC.c223
-rw-r--r--nx-X11/lib/X11/LuvMnL.c216
-rw-r--r--nx-X11/lib/X11/LuvMxC.c204
-rw-r--r--nx-X11/lib/X11/LuvMxL.c216
-rw-r--r--nx-X11/lib/X11/LuvMxLC.c218
-rw-r--r--nx-X11/lib/X11/LuvWpAj.c96
-rw-r--r--nx-X11/lib/X11/Macros.c303
-rw-r--r--nx-X11/lib/X11/MapRaised.c51
-rw-r--r--nx-X11/lib/X11/MapSubs.c43
-rw-r--r--nx-X11/lib/X11/MapWindow.c44
-rw-r--r--nx-X11/lib/X11/MaskEvent.c86
-rw-r--r--nx-X11/lib/X11/Misc.c66
-rw-r--r--nx-X11/lib/X11/ModMap.c184
-rw-r--r--nx-X11/lib/X11/MoveWin.c56
-rw-r--r--nx-X11/lib/X11/NextEvent.c64
-rw-r--r--nx-X11/lib/X11/OCWrap.c140
-rw-r--r--nx-X11/lib/X11/OMWrap.c129
-rw-r--r--nx-X11/lib/X11/OfCCC.c162
-rw-r--r--nx-X11/lib/X11/OpenDis.c990
-rw-r--r--nx-X11/lib/X11/ParseCmd.c225
-rw-r--r--nx-X11/lib/X11/ParseCol.c138
-rw-r--r--nx-X11/lib/X11/ParseGeom.c162
-rw-r--r--nx-X11/lib/X11/PeekEvent.c61
-rw-r--r--nx-X11/lib/X11/PeekIfEv.c84
-rw-r--r--nx-X11/lib/X11/Pending.c69
-rw-r--r--nx-X11/lib/X11/PixFormats.c62
-rw-r--r--nx-X11/lib/X11/PmapBgnd.c48
-rw-r--r--nx-X11/lib/X11/PmapBord.c48
-rw-r--r--nx-X11/lib/X11/PolyReg.c635
-rw-r--r--nx-X11/lib/X11/PolyTxt.c234
-rw-r--r--nx-X11/lib/X11/PolyTxt16.c245
-rw-r--r--nx-X11/lib/X11/PrOfId.c97
-rw-r--r--nx-X11/lib/X11/PropAlloc.c69
-rw-r--r--nx-X11/lib/X11/PutBEvent.c87
-rw-r--r--nx-X11/lib/X11/PutImage.c1030
-rw-r--r--nx-X11/lib/X11/QBlack.c84
-rw-r--r--nx-X11/lib/X11/QBlue.c84
-rw-r--r--nx-X11/lib/X11/QGreen.c84
-rw-r--r--nx-X11/lib/X11/QRed.c84
-rw-r--r--nx-X11/lib/X11/QWhite.c84
-rw-r--r--nx-X11/lib/X11/QuBest.c61
-rw-r--r--nx-X11/lib/X11/QuCol.c78
-rw-r--r--nx-X11/lib/X11/QuColor.c61
-rw-r--r--nx-X11/lib/X11/QuColors.c99
-rw-r--r--nx-X11/lib/X11/QuCols.c78
-rw-r--r--nx-X11/lib/X11/QuCurShp.c60
-rw-r--r--nx-X11/lib/X11/QuExt.c56
-rw-r--r--nx-X11/lib/X11/QuKeybd.c53
-rw-r--r--nx-X11/lib/X11/QuPntr.c65
-rw-r--r--nx-X11/lib/X11/QuStipShp.c60
-rw-r--r--nx-X11/lib/X11/QuTextE16.c81
-rw-r--r--nx-X11/lib/X11/QuTextExt.c80
-rw-r--r--nx-X11/lib/X11/QuTileShp.c61
-rw-r--r--nx-X11/lib/X11/QuTree.c72
-rw-r--r--nx-X11/lib/X11/Quarks.c408
-rw-r--r--nx-X11/lib/X11/RaiseWin.c49
-rw-r--r--nx-X11/lib/X11/RdBitF.c258
-rw-r--r--nx-X11/lib/X11/RecolorC.c54
-rw-r--r--nx-X11/lib/X11/ReconfWM.c142
-rw-r--r--nx-X11/lib/X11/ReconfWin.c81
-rw-r--r--nx-X11/lib/X11/Region.c1605
-rw-r--r--nx-X11/lib/X11/RegstFlt.c155
-rw-r--r--nx-X11/lib/X11/RepWindow.c52
-rw-r--r--nx-X11/lib/X11/RestackWs.c61
-rw-r--r--nx-X11/lib/X11/RotProp.c63
-rw-r--r--nx-X11/lib/X11/ScrResStr.c54
-rw-r--r--nx-X11/lib/X11/SelInput.c49
-rw-r--r--nx-X11/lib/X11/SendEvent.c76
-rw-r--r--nx-X11/lib/X11/SetBack.c46
-rw-r--r--nx-X11/lib/X11/SetCCC.c138
-rw-r--r--nx-X11/lib/X11/SetCRects.c81
-rw-r--r--nx-X11/lib/X11/SetClMask.c47
-rw-r--r--nx-X11/lib/X11/SetClOrig.c53
-rw-r--r--nx-X11/lib/X11/SetDashes.c55
-rw-r--r--nx-X11/lib/X11/SetFPath.c77
-rw-r--r--nx-X11/lib/X11/SetFont.c47
-rw-r--r--nx-X11/lib/X11/SetFore.c46
-rw-r--r--nx-X11/lib/X11/SetFunc.c46
-rw-r--r--nx-X11/lib/X11/SetGetCols.c301
-rw-r--r--nx-X11/lib/X11/SetHints.c319
-rw-r--r--nx-X11/lib/X11/SetIFocus.c50
-rw-r--r--nx-X11/lib/X11/SetLStyle.c63
-rw-r--r--nx-X11/lib/X11/SetLocale.c188
-rw-r--r--nx-X11/lib/X11/SetNrmHint.c127
-rw-r--r--nx-X11/lib/X11/SetPMask.c46
-rw-r--r--nx-X11/lib/X11/SetPntMap.c77
-rw-r--r--nx-X11/lib/X11/SetRGBCMap.c100
-rw-r--r--nx-X11/lib/X11/SetSOwner.c49
-rw-r--r--nx-X11/lib/X11/SetSSaver.c53
-rw-r--r--nx-X11/lib/X11/SetStCmap.c95
-rw-r--r--nx-X11/lib/X11/SetState.c64
-rw-r--r--nx-X11/lib/X11/SetStip.c46
-rw-r--r--nx-X11/lib/X11/SetTSOrig.c53
-rw-r--r--nx-X11/lib/X11/SetTile.c46
-rw-r--r--nx-X11/lib/X11/SetTxtProp.c93
-rw-r--r--nx-X11/lib/X11/SetWMCMapW.c74
-rw-r--r--nx-X11/lib/X11/SetWMProto.c74
-rw-r--r--nx-X11/lib/X11/StBytes.c107
-rw-r--r--nx-X11/lib/X11/StCol.c82
-rw-r--r--nx-X11/lib/X11/StColor.c58
-rw-r--r--nx-X11/lib/X11/StColors.c65
-rw-r--r--nx-X11/lib/X11/StCols.c112
-rw-r--r--nx-X11/lib/X11/StNColor.c87
-rw-r--r--nx-X11/lib/X11/StName.c53
-rw-r--r--nx-X11/lib/X11/StrKeysym.c181
-rw-r--r--nx-X11/lib/X11/StrToText.c90
-rw-r--r--nx-X11/lib/X11/Sync.c60
-rw-r--r--nx-X11/lib/X11/Synchro.c79
-rw-r--r--nx-X11/lib/X11/Text.c139
-rw-r--r--nx-X11/lib/X11/Text16.c129
-rw-r--r--nx-X11/lib/X11/TextExt.c234
-rw-r--r--nx-X11/lib/X11/TextExt16.c210
-rw-r--r--nx-X11/lib/X11/TextToStr.c118
-rw-r--r--nx-X11/lib/X11/TrCoords.c64
-rw-r--r--nx-X11/lib/X11/UIThrStubs.c157
-rw-r--r--nx-X11/lib/X11/UNDEFINED.c131
-rw-r--r--nx-X11/lib/X11/UndefCurs.c49
-rw-r--r--nx-X11/lib/X11/UngrabBut.c49
-rw-r--r--nx-X11/lib/X11/UngrabKbd.c45
-rw-r--r--nx-X11/lib/X11/UngrabKey.c52
-rw-r--r--nx-X11/lib/X11/UngrabPtr.c44
-rw-r--r--nx-X11/lib/X11/UngrabSvr.c44
-rw-r--r--nx-X11/lib/X11/UninsCmap.c44
-rw-r--r--nx-X11/lib/X11/UnldFont.c45
-rw-r--r--nx-X11/lib/X11/UnmapSubs.c44
-rw-r--r--nx-X11/lib/X11/UnmapWin.c45
-rw-r--r--nx-X11/lib/X11/VisUtil.c252
-rw-r--r--nx-X11/lib/X11/WMGeom.c183
-rw-r--r--nx-X11/lib/X11/WMProps.c139
-rw-r--r--nx-X11/lib/X11/WarpPtr.c60
-rw-r--r--nx-X11/lib/X11/WinEvent.c90
-rw-r--r--nx-X11/lib/X11/Window.c140
-rw-r--r--nx-X11/lib/X11/Withdraw.c84
-rw-r--r--nx-X11/lib/X11/WrBitF.c153
-rw-r--r--nx-X11/lib/X11/XErrorDB1022
-rw-r--r--nx-X11/lib/X11/XKB.c771
-rw-r--r--nx-X11/lib/X11/XKBAlloc.c495
-rw-r--r--nx-X11/lib/X11/XKBBell.c179
-rw-r--r--nx-X11/lib/X11/XKBBind.c784
-rw-r--r--nx-X11/lib/X11/XKBCompat.c252
-rw-r--r--nx-X11/lib/X11/XKBCtrls.c351
-rw-r--r--nx-X11/lib/X11/XKBCvt.c341
-rw-r--r--nx-X11/lib/X11/XKBExtDev.c843
-rw-r--r--nx-X11/lib/X11/XKBGAlloc.c994
-rw-r--r--nx-X11/lib/X11/XKBGeom.c724
-rw-r--r--nx-X11/lib/X11/XKBGetByName.c226
-rw-r--r--nx-X11/lib/X11/XKBGetMap.c882
-rw-r--r--nx-X11/lib/X11/XKBList.c256
-rw-r--r--nx-X11/lib/X11/XKBMAlloc.c1016
-rw-r--r--nx-X11/lib/X11/XKBMisc.c1021
-rw-r--r--nx-X11/lib/X11/XKBNames.c879
-rw-r--r--nx-X11/lib/X11/XKBRdBuf.c203
-rw-r--r--nx-X11/lib/X11/XKBSetGeom.c478
-rw-r--r--nx-X11/lib/X11/XKBSetMap.c598
-rw-r--r--nx-X11/lib/X11/XKBUse.c814
-rw-r--r--nx-X11/lib/X11/XKBleds.c338
-rw-r--r--nx-X11/lib/X11/XKBlib.h1150
-rw-r--r--nx-X11/lib/X11/XKBlibint.h337
-rw-r--r--nx-X11/lib/X11/XRGB.c242
-rw-r--r--nx-X11/lib/X11/XYZ.c203
-rw-r--r--nx-X11/lib/X11/Xatomtype.h133
-rw-r--r--nx-X11/lib/X11/Xcms.h816
-rw-r--r--nx-X11/lib/X11/Xcms.txt44
-rw-r--r--nx-X11/lib/X11/Xcmsint.h260
-rw-r--r--nx-X11/lib/X11/XimImSw.h46
-rw-r--r--nx-X11/lib/X11/XimProto.h226
-rw-r--r--nx-X11/lib/X11/XimThai.h110
-rw-r--r--nx-X11/lib/X11/XimTrInt.h85
-rw-r--r--nx-X11/lib/X11/XimTrX.h85
-rw-r--r--nx-X11/lib/X11/XimTrans.h136
-rw-r--r--nx-X11/lib/X11/Ximint.h995
-rw-r--r--nx-X11/lib/X11/XimintL.h106
-rw-r--r--nx-X11/lib/X11/XimintP.h310
-rw-r--r--nx-X11/lib/X11/Xintatom.h33
-rw-r--r--nx-X11/lib/X11/Xintconn.h38
-rw-r--r--nx-X11/lib/X11/XlcGeneric.h162
-rw-r--r--nx-X11/lib/X11/XlcPubI.h298
-rw-r--r--nx-X11/lib/X11/XlcPublic.h324
-rw-r--r--nx-X11/lib/X11/Xlcint.h964
-rw-r--r--nx-X11/lib/X11/Xlib.h4036
-rw-r--r--nx-X11/lib/X11/XlibAsync.c182
-rw-r--r--nx-X11/lib/X11/XlibConf.h7
-rw-r--r--nx-X11/lib/X11/XlibInt.c4199
-rw-r--r--nx-X11/lib/X11/Xlibint.h1361
-rw-r--r--nx-X11/lib/X11/Xlocale.h38
-rw-r--r--nx-X11/lib/X11/XomGeneric.h316
-rw-r--r--nx-X11/lib/X11/Xprivate.h30
-rw-r--r--nx-X11/lib/X11/Xregion.h191
-rw-r--r--nx-X11/lib/X11/Xresinternal.h18
-rw-r--r--nx-X11/lib/X11/Xresource.h359
-rw-r--r--nx-X11/lib/X11/Xrm.c2651
-rw-r--r--nx-X11/lib/X11/Xutil.h839
-rw-r--r--nx-X11/lib/X11/cmsAllCol.c74
-rw-r--r--nx-X11/lib/X11/cmsAllNCol.c198
-rw-r--r--nx-X11/lib/X11/cmsCmap.c492
-rw-r--r--nx-X11/lib/X11/cmsColNm.c1050
-rw-r--r--nx-X11/lib/X11/cmsGlobls.c126
-rw-r--r--nx-X11/lib/X11/cmsInt.c411
-rw-r--r--nx-X11/lib/X11/cmsLkCol.c193
-rw-r--r--nx-X11/lib/X11/cmsMath.c140
-rw-r--r--nx-X11/lib/X11/cmsProp.c153
-rw-r--r--nx-X11/lib/X11/cmsTrig.c578
-rw-r--r--nx-X11/lib/X11/cursorfont.h112
-rw-r--r--nx-X11/lib/X11/evtomask.c74
-rw-r--r--nx-X11/lib/X11/globals.c108
-rw-r--r--nx-X11/lib/X11/imCallbk.c747
-rw-r--r--nx-X11/lib/X11/imConv.c356
-rw-r--r--nx-X11/lib/X11/imDefFlt.c413
-rw-r--r--nx-X11/lib/X11/imDefIc.c1576
-rw-r--r--nx-X11/lib/X11/imDefIm.c2042
-rw-r--r--nx-X11/lib/X11/imDefLkup.c1178
-rw-r--r--nx-X11/lib/X11/imDispch.c104
-rw-r--r--nx-X11/lib/X11/imEvToWire.c788
-rw-r--r--nx-X11/lib/X11/imExten.c576
-rw-r--r--nx-X11/lib/X11/imImSw.c55
-rw-r--r--nx-X11/lib/X11/imInsClbk.c288
-rw-r--r--nx-X11/lib/X11/imInt.c260
-rw-r--r--nx-X11/lib/X11/imKStoUCS.c322
-rw-r--r--nx-X11/lib/X11/imLcFlt.c157
-rw-r--r--nx-X11/lib/X11/imLcGIc.c47
-rw-r--r--nx-X11/lib/X11/imLcIc.c199
-rw-r--r--nx-X11/lib/X11/imLcIm.c711
-rw-r--r--nx-X11/lib/X11/imLcLkup.c417
-rw-r--r--nx-X11/lib/X11/imLcPrs.c741
-rw-r--r--nx-X11/lib/X11/imLcSIc.c54
-rw-r--r--nx-X11/lib/X11/imRm.c3212
-rw-r--r--nx-X11/lib/X11/imRmAttr.c1514
-rw-r--r--nx-X11/lib/X11/imThaiFlt.c1421
-rw-r--r--nx-X11/lib/X11/imThaiIc.c229
-rw-r--r--nx-X11/lib/X11/imThaiIm.c235
-rw-r--r--nx-X11/lib/X11/imTrX.c518
-rw-r--r--nx-X11/lib/X11/imTrans.c321
-rw-r--r--nx-X11/lib/X11/imTransR.c306
-rw-r--r--nx-X11/lib/X11/lcCT.c1303
-rw-r--r--nx-X11/lib/X11/lcCharSet.c225
-rw-r--r--nx-X11/lib/X11/lcConv.c339
-rw-r--r--nx-X11/lib/X11/lcDB.c1327
-rw-r--r--nx-X11/lib/X11/lcDefConv.c806
-rw-r--r--nx-X11/lib/X11/lcFile.c711
-rw-r--r--nx-X11/lib/X11/lcGenConv.c3112
-rw-r--r--nx-X11/lib/X11/lcGeneric.c1171
-rw-r--r--nx-X11/lib/X11/lcInit.c168
-rw-r--r--nx-X11/lib/X11/lcPrTxt.c289
-rw-r--r--nx-X11/lib/X11/lcPubWrap.c98
-rw-r--r--nx-X11/lib/X11/lcPublic.c311
-rw-r--r--nx-X11/lib/X11/lcRM.c224
-rw-r--r--nx-X11/lib/X11/lcStd.c358
-rw-r--r--nx-X11/lib/X11/lcTxtPr.c254
-rw-r--r--nx-X11/lib/X11/lcUTF8.c2389
-rw-r--r--nx-X11/lib/X11/lcUTF8Load.c70
-rw-r--r--nx-X11/lib/X11/lcUniConv/armscii_8.h97
-rw-r--r--nx-X11/lib/X11/lcUniConv/big5.h4141
-rw-r--r--nx-X11/lib/X11/lcUniConv/big5_emacs.h163
-rw-r--r--nx-X11/lib/X11/lcUniConv/big5hkscs.h6252
-rw-r--r--nx-X11/lib/X11/lcUniConv/cp1133.h91
-rw-r--r--nx-X11/lib/X11/lcUniConv/cp1251.h112
-rw-r--r--nx-X11/lib/X11/lcUniConv/cp1255.h120
-rw-r--r--nx-X11/lib/X11/lcUniConv/cp1256.h134
-rw-r--r--nx-X11/lib/X11/lcUniConv/gb2312.h2552
-rw-r--r--nx-X11/lib/X11/lcUniConv/gbk.h6200
-rw-r--r--nx-X11/lib/X11/lcUniConv/georgian_academy.h87
-rw-r--r--nx-X11/lib/X11/lcUniConv/georgian_ps.h104
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_1.h22
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_10.h87
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_11.h77
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_13.h90
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_14.h108
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_15.h62
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_16.h97
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_2.h93
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_3.h99
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_4.h93
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_5.h76
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_6.h79
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_7.h87
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_8.h88
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_9.h66
-rw-r--r--nx-X11/lib/X11/lcUniConv/iso8859_9e.h102
-rw-r--r--nx-X11/lib/X11/lcUniConv/jisx0201.h47
-rw-r--r--nx-X11/lib/X11/lcUniConv/jisx0208.h2396
-rw-r--r--nx-X11/lib/X11/lcUniConv/jisx0212.h2163
-rw-r--r--nx-X11/lib/X11/lcUniConv/koi8_c.h102
-rw-r--r--nx-X11/lib/X11/lcUniConv/koi8_r.h134
-rw-r--r--nx-X11/lib/X11/lcUniConv/koi8_u.h142
-rw-r--r--nx-X11/lib/X11/lcUniConv/ksc5601.h3002
-rw-r--r--nx-X11/lib/X11/lcUniConv/mulelao.h77
-rw-r--r--nx-X11/lib/X11/lcUniConv/tatar_cyr.h122
-rw-r--r--nx-X11/lib/X11/lcUniConv/tcvn.h133
-rw-r--r--nx-X11/lib/X11/lcUniConv/tis620.h77
-rw-r--r--nx-X11/lib/X11/lcUniConv/ucs2be.h31
-rw-r--r--nx-X11/lib/X11/lcUniConv/utf8.h109
-rw-r--r--nx-X11/lib/X11/lcUniConv/viscii.h122
-rw-r--r--nx-X11/lib/X11/lcUtil.c86
-rw-r--r--nx-X11/lib/X11/lcWrap.c648
-rw-r--r--nx-X11/lib/X11/locking.c625
-rw-r--r--nx-X11/lib/X11/locking.h156
-rw-r--r--nx-X11/lib/X11/mbWMProps.c69
-rw-r--r--nx-X11/lib/X11/mbWrap.c161
-rw-r--r--nx-X11/lib/X11/omDefault.c449
-rw-r--r--nx-X11/lib/X11/omGeneric.c2100
-rw-r--r--nx-X11/lib/X11/omImText.c86
-rw-r--r--nx-X11/lib/X11/omText.c370
-rw-r--r--nx-X11/lib/X11/omTextEsc.c300
-rw-r--r--nx-X11/lib/X11/omTextExt.c135
-rw-r--r--nx-X11/lib/X11/omTextPer.c202
-rw-r--r--nx-X11/lib/X11/omXChar.c404
-rw-r--r--nx-X11/lib/X11/pathmax.h81
-rw-r--r--nx-X11/lib/X11/poly.h294
-rw-r--r--nx-X11/lib/X11/utf8WMProps.c91
-rw-r--r--nx-X11/lib/X11/utf8Wrap.c183
-rw-r--r--nx-X11/lib/X11/util/makekeys.c317
-rw-r--r--nx-X11/lib/X11/utlist.h116
-rw-r--r--nx-X11/lib/X11/uvY.c423
-rw-r--r--nx-X11/lib/X11/wcWrap.c161
-rw-r--r--nx-X11/lib/X11/x11_trans.c30
-rw-r--r--nx-X11/lib/X11/xim_trans.c30
-rw-r--r--nx-X11/lib/X11/xyY.c395
497 files changed, 0 insertions, 153839 deletions
diff --git a/nx-X11/lib/X11/.gitignore b/nx-X11/lib/X11/.gitignore
deleted file mode 100644
index 8215e21de..000000000
--- a/nx-X11/lib/X11/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-ks_tables.h \ No newline at end of file
diff --git a/nx-X11/lib/X11/AddDIC.c b/nx-X11/lib/X11/AddDIC.c
deleted file mode 100644
index ecc6650ab..000000000
--- a/nx-X11/lib/X11/AddDIC.c
+++ /dev/null
@@ -1,149 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsAddDIC.c
- *
- * DESCRIPTION
- * Source for XcmsAddColorSpace
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/*
- * DEFINES
- */
-#define NextUnregDiCsID(lastid) \
- (XCMS_UNREG_ID(lastid) ? ++lastid : XCMS_FIRST_UNREG_DI_ID)
-#define MAX(x,y) ((x) < (y) ? (y) : (x))
-
-
-/*
- * NAME
- * XcmsAddColorSpace - Add a Device-Independent Color Space
- *
- * SYNOPSIS
- */
-Status
-XcmsAddColorSpace(XcmsColorSpace *pCS)
-/*
- * DESCRIPTION
- * DI Color Spaces are managed on a global basis.
- * This means that with exception of the provided DI color spaces:
- * CIEXYZ, CIExyY, CIELab, CIEuvY, CIELuv, and TekHVC
- * DI color spaces may have different XcmsColorFormat IDs between
- * clients. So, you must be careful when using XcmsColor
- * structures between clients! Use the routines XcmsFormatOfPrefix()
- * and XcmsPrefixOfFormat() appropriately.
- *
- * RETURNS
- * XcmsSuccess if succeeded, otherwise XcmsFailure
- */
-{
- XcmsColorSpace **papColorSpaces;
- XcmsColorSpace *ptmpCS;
- XcmsColorFormat lastID = 0;
-
- if ((pCS->id = _XcmsRegFormatOfPrefix(pCS->prefix)) != 0) {
- if (XCMS_DD_ID(pCS->id)) {
- /* This is a Device-Dependent Color Space */
- return(XcmsFailure);
- }
- /*
- * REGISTERED DI Color Space
- * then see if the color space has already been added to the
- * system:
- * a. If the same ID/prefix and same XcmsColorSpec is found,
- * then its a duplicate, so return success.
- * b. If same ID/prefix but different XcmsColorSpec is
- * found, then add the color space to the front of the
- * list using the same ID. This allows one to override
- * an existing DI Color Space.
- * c. Otherwise none found so just add the color space.
- */
- if ((papColorSpaces = _XcmsDIColorSpaces) != NULL) {
- while ((ptmpCS = *papColorSpaces++) != NULL) {
- if (pCS->id == ptmpCS->id) {
- if (pCS == ptmpCS) {
- /* a. duplicate*/
- return(XcmsSuccess);
- }
- /* b. same ID/prefix but different XcmsColorSpace */
- break;
- }
- }
- }
- /* c. None found */
- } else {
- /*
- * UNREGISTERED DI Color Space
- * then see if the color space has already been added to the
- * system:
- * a. If same prefix and XcmsColorSpec, then
- * its a duplicate ... return success.
- * b. If same prefix but different XcmsColorSpec, then
- * add the color space to the front of the list using
- * the same ID. This allows one to override an existing
- * DI Color Space.
- * c. Otherwise none found so, add the color space using the
- * next unregistered ID for the connection.
- */
- if ((papColorSpaces = _XcmsDIColorSpaces) != NULL) {
- while ((ptmpCS = *papColorSpaces++) != NULL) {
- lastID = MAX(lastID, ptmpCS->id);
- if (strcmp(pCS->prefix, ptmpCS->prefix) == 0) {
- if (pCS == ptmpCS) {
- /* a. duplicate */
- return(XcmsSuccess);
- }
- /* b. same prefix but different XcmsColorSpec */
- pCS->id = ptmpCS->id;
- goto AddColorSpace;
- }
- }
- }
- /* c. None found */
- pCS->id = NextUnregDiCsID(lastID);
- }
-
-
-AddColorSpace:
- if ((papColorSpaces = (XcmsColorSpace **)
- _XcmsPushPointerArray((XPointer *)_XcmsDIColorSpaces,
- (XPointer)pCS,
- (XPointer *)_XcmsDIColorSpacesInit)) == NULL) {
- return(XcmsFailure);
- }
- _XcmsDIColorSpaces = papColorSpaces;
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/AddSF.c b/nx-X11/lib/X11/AddSF.c
deleted file mode 100644
index 2e244e73b..000000000
--- a/nx-X11/lib/X11/AddSF.c
+++ /dev/null
@@ -1,145 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsAddSF.c
- *
- * DESCRIPTION
- * Source for XcmsAddFunctionSet
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define NextUnregDdCsID(lastid) \
- (XCMS_UNREG_ID(lastid) ? ++lastid : XCMS_FIRST_UNREG_DD_ID)
-#define MIN(x,y) ((x) > (y) ? (y) : (x))
-
-
-/*
- * NAME
- * XcmsAddFunctionSet - Add an Screen Color Characterization
- * Function Set
- *
- * SYNOPSIS
- */
-Status
-XcmsAddFunctionSet(XcmsFunctionSet *pNewFS)
-/*
- * DESCRIPTION
- * Additional Screen Color Characterization Function Sets are
- * managed on a global basis. This means that with exception
- * of the provided DD color spaces:
- * RGB and RGBi
- * DD color spaces may have different XcmsColorFormat IDs between
- * clients. So, you must be careful when using XcmsColorFormat
- * across clients! Use the routines XcmsFormatOfPrefix()
- * and XcmsPrefixOfFormat() appropriately.
- *
- * RETURNS
- * XcmsSuccess if succeeded, otherwise XcmsFailure
- *
- * CAVEATS
- * Additional Screen Color Characterization Function Sets
- * should be added prior to any use of the routine
- * XcmsCreateCCC(). If not, XcmsCCC structures created
- * prior to the call of this routines will not have had
- * a chance to initialize using the added Screen Color
- * Characterization Function Set.
- */
-{
- XcmsFunctionSet **papSCCFuncSets = _XcmsSCCFuncSets;
- XcmsColorSpace **papNewCSs;
- XcmsColorSpace *pNewCS, **paptmpCS;
- XcmsColorFormat lastID = 0;
-
-
- if (papSCCFuncSets != NULL) {
- if ((papNewCSs = pNewFS->DDColorSpaces) == NULL) {
- /*
- * Error, new Screen Color Characterization Function Set
- * missing color spaces
- */
- return(XcmsFailure);
- }
- while ((pNewCS = *papNewCSs++) != NULL) {
- if ((pNewCS->id = _XcmsRegFormatOfPrefix(pNewCS->prefix)) != 0) {
- if (XCMS_DI_ID(pNewCS->id)) {
- /* This is a Device-Independent Color Space */
- return(XcmsFailure);
- }
- /*
- * REGISTERED DD Color Space
- * therefore use the registered ID.
- */
- } else {
- /*
- * UNREGISTERED DD Color Space
- * then see if the color space is already in
- * _XcmsDDColorSpaces.
- * a. If same prefix, then use the same ID.
- * b. Otherwise, use a new ID.
- */
- for (paptmpCS = _XcmsDDColorSpaces; *paptmpCS != NULL;
- paptmpCS++){
- lastID = MIN(lastID, (*paptmpCS)->id);
- if (strcmp(pNewCS->prefix, (*paptmpCS)->prefix) == 0) {
- pNewCS->id = (*paptmpCS)->id;
- break;
- }
- }
- if (pNewCS->id == 0) {
- /* still haven't found one */
- pNewCS->id = NextUnregDdCsID(lastID);
- if ((paptmpCS = (XcmsColorSpace **)_XcmsPushPointerArray(
- (XPointer *) _XcmsDDColorSpaces,
- (XPointer) pNewCS,
- (XPointer *) _XcmsDDColorSpacesInit)) == NULL) {
- return(XcmsFailure);
- }
- _XcmsDDColorSpaces = paptmpCS;
- }
- }
- }
- }
- if ((papSCCFuncSets = (XcmsFunctionSet **)
- _XcmsPushPointerArray((XPointer *) _XcmsSCCFuncSets,
- (XPointer) pNewFS,
- (XPointer *)_XcmsSCCFuncSetsInit)) == NULL) {
- return(XcmsFailure);
- }
- _XcmsSCCFuncSets = papSCCFuncSets;
-
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/AllCells.c b/nx-X11/lib/X11/AllCells.c
deleted file mode 100644
index 6e97e1181..000000000
--- a/nx-X11/lib/X11/AllCells.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XAllocColorCells(
- register Display *dpy,
- Colormap cmap,
- Bool contig,
- unsigned long *masks, /* LISTofCARD32 */ /* RETURN */
- unsigned int nplanes, /* CARD16 */
- unsigned long *pixels, /* LISTofCARD32 */ /* RETURN */
- unsigned int ncolors) /* CARD16 */
-{
-
- Status status;
- xAllocColorCellsReply rep;
- register xAllocColorCellsReq *req;
- LockDisplay(dpy);
- GetReq(AllocColorCells, req);
-
- req->cmap = cmap;
- req->colors = ncolors;
- req->planes = nplanes;
- req->contiguous = contig;
-
- status = _XReply(dpy, (xReply *)&rep, 0, xFalse);
-
- if (status) {
- if ((rep.nPixels > ncolors) || (rep.nMasks > nplanes)) {
- _XEatDataWords(dpy, rep.length);
- status = 0; /* Failure */
- } else {
- _XRead32 (dpy, (long *) pixels, 4L * (long) (rep.nPixels));
- _XRead32 (dpy, (long *) masks, 4L * (long) (rep.nMasks));
- }
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return(status);
-}
diff --git a/nx-X11/lib/X11/AllPlanes.c b/nx-X11/lib/X11/AllPlanes.c
deleted file mode 100644
index b2e245387..000000000
--- a/nx-X11/lib/X11/AllPlanes.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XAllocColorPlanes(
- register Display *dpy,
- Colormap cmap,
- Bool contig,
- unsigned long *pixels, /* LISTofCARD32 */ /* RETURN */
- int ncolors,
- int nreds,
- int ngreens,
- int nblues,
- unsigned long *rmask,
- unsigned long *gmask,
- unsigned long *bmask) /* CARD32 */ /* RETURN */
-{
- xAllocColorPlanesReply rep;
- Status status;
- register xAllocColorPlanesReq *req;
-
- LockDisplay(dpy);
- GetReq(AllocColorPlanes,req);
-
- req->cmap = cmap;
- req->colors = ncolors;
- req->red = nreds;
- req->green = ngreens;
- req->blue = nblues;
- req->contiguous = contig;
-
- status = _XReply(dpy, (xReply *)&rep, 0, xFalse);
-
-
- if (status) {
- *rmask = rep.redMask;
- *gmask = rep.greenMask;
- *bmask = rep.blueMask;
-
- /* sizeof(CARD32) = 4 */
- _XRead32 (dpy, (long *) pixels, (long)(ncolors * 4));
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return(status);
-}
diff --git a/nx-X11/lib/X11/AllowEv.c b/nx-X11/lib/X11/AllowEv.c
deleted file mode 100644
index 4a17e7b2d..000000000
--- a/nx-X11/lib/X11/AllowEv.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XAllowEvents(
- register Display *dpy,
- int mode,
- Time time)
-
-{
- register xAllowEventsReq *req;
-
- LockDisplay(dpy);
- GetReq(AllowEvents,req);
- req->mode = mode;
- req->time = time;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-
-
diff --git a/nx-X11/lib/X11/AuDispose.c b/nx-X11/lib/X11/AuDispose.c
deleted file mode 100644
index bb890201d..000000000
--- a/nx-X11/lib/X11/AuDispose.c
+++ /dev/null
@@ -1,49 +0,0 @@
-
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xauth.h>
-#include <stdlib.h>
-
-void
-XauDisposeAuth (auth)
-Xauth *auth;
-{
- if (auth) {
- if (auth->address) (void) free (auth->address);
- if (auth->number) (void) free (auth->number);
- if (auth->name) (void) free (auth->name);
- if (auth->data) {
- (void) bzero (auth->data, auth->data_length);
- (void) free (auth->data);
- }
- free ((char *) auth);
- }
- return;
-}
diff --git a/nx-X11/lib/X11/AuFileName.c b/nx-X11/lib/X11/AuFileName.c
deleted file mode 100644
index 6c4fb7dc3..000000000
--- a/nx-X11/lib/X11/AuFileName.c
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xauth.h>
-#include <nx-X11/Xos.h>
-#include <stdlib.h>
-
-char *
-XauFileName ()
-{
- char *slashDotXauthority = "/.Xauthority";
- char *name;
- static char *buf;
- static int bsize;
-#ifdef WIN32
- char dir[128];
-#endif
- int size;
-
- if ((name = getenv ("XAUTHORITY")))
- return name;
- name = getenv ("HOME");
- if (!name) {
-#ifdef WIN32
- (void) strcpy (dir, "/users/");
- if ((name = getenv("USERNAME"))) {
- (void) strcat (dir, name);
- name = dir;
- }
- if (!name)
-#endif
- return 0;
- }
- size = strlen (name) + strlen(&slashDotXauthority[1]) + 2;
- if (size > bsize) {
- if (buf)
- free (buf);
- buf = malloc ((unsigned) size);
- if (!buf)
- return 0;
- bsize = size;
- }
- strcpy (buf, name);
- strcat (buf, slashDotXauthority + (name[1] == '\0' ? 1 : 0));
- return buf;
-}
diff --git a/nx-X11/lib/X11/AuGetBest.c b/nx-X11/lib/X11/AuGetBest.c
deleted file mode 100644
index 2518805cc..000000000
--- a/nx-X11/lib/X11/AuGetBest.c
+++ /dev/null
@@ -1,136 +0,0 @@
-
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xauth.h>
-#include <nx-X11/Xos.h>
-#ifdef XTHREADS
-#include <nx-X11/Xthreads.h>
-#endif
-
-static int
-binaryEqual (_Xconst char *a, _Xconst char *b, int len)
-{
- while (len--)
- if (*a++ != *b++)
- return 0;
- return 1;
-}
-
-Xauth *
-XauGetBestAuthByAddr (
-#if NeedWidePrototypes
- unsigned int family,
- unsigned int address_length,
-#else
- unsigned short family,
- unsigned short address_length,
-#endif
- _Xconst char* address,
-#if NeedWidePrototypes
- unsigned int number_length,
-#else
- unsigned short number_length,
-#endif
- _Xconst char* number,
- int types_length,
- char** types,
- _Xconst int* type_lengths)
-{
- FILE *auth_file;
- char *auth_name;
- Xauth *entry;
- Xauth *best;
- int best_type;
- int type;
-
- auth_name = XauFileName ();
- if (!auth_name)
- return 0;
- if (access (auth_name, R_OK) != 0) /* checks REAL id */
- return 0;
- auth_file = fopen (auth_name, "rb");
- if (!auth_file)
- return 0;
-
- best = 0;
- best_type = types_length;
- for (;;) {
- entry = XauReadAuth (auth_file);
- if (!entry)
- break;
- /*
- * Match when:
- * either family or entry->family are FamilyWild or
- * family and entry->family are the same and
- * address and entry->address are the same
- * and
- * either number or entry->number are empty or
- * number and entry->number are the same
- * and
- * either name or entry->name are empty or
- * name and entry->name are the same
- */
-
- if ((family == FamilyWild || entry->family == FamilyWild ||
- (entry->family == family &&
- ((address_length == entry->address_length &&
- binaryEqual (entry->address, address, (int)address_length))
- ))) &&
- (number_length == 0 || entry->number_length == 0 ||
- (number_length == entry->number_length &&
- binaryEqual (entry->number, number, (int)number_length))))
- {
- if (best_type == 0)
- {
- best = entry;
- break;
- }
- for (type = 0; type < best_type; type++)
- if (type_lengths[type] == entry->name_length &&
- !(strncmp (types[type], entry->name, entry->name_length)))
- {
- break;
- }
- if (type < best_type)
- {
- if (best)
- XauDisposeAuth (best);
- best = entry;
- best_type = type;
- if (type == 0)
- break;
- continue;
- }
- }
- XauDisposeAuth (entry);
- }
- (void) fclose (auth_file);
- return best;
-}
diff --git a/nx-X11/lib/X11/AuRead.c b/nx-X11/lib/X11/AuRead.c
deleted file mode 100644
index 61814792d..000000000
--- a/nx-X11/lib/X11/AuRead.c
+++ /dev/null
@@ -1,135 +0,0 @@
-
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xauth.h>
-#include <stdlib.h>
-#include <errno.h>
-
-static int
-read_short (unsigned short *shortp, FILE *file)
-{
- unsigned char file_short[2];
-
- /*
- * Added a check on EINTR to prevent the fread() call to be
- * interrupted by any signal not blocked by OsBlockSignals().
- */
-
- for (;;) {
- if (fread ((char *) file_short, (int) sizeof (file_short), 1, file) != 1) {
- if (errno == EINTR && ferror (file)) {
- perror ("Reading from auth file");
- clearerr (file);
- continue;
- }
- return 0;
- }
- break;
- }
- *shortp = file_short[0] * 256 + file_short[1];
- return 1;
-}
-
-static int
-read_counted_string (unsigned short *countp, char **stringp, FILE *file)
-{
- unsigned short len;
- char *data;
-
- if (read_short (&len, file) == 0)
- return 0;
- if (len == 0) {
- data = 0;
- } else {
- data = malloc ((unsigned) len);
- if (!data)
- return 0;
- for (;;)
- {
- if (fread (data, (int) sizeof (char), (int) len, file) != len)
- {
- if (errno == EINTR && ferror (file))
- {
- perror ("Reading from auth file");
- clearerr (file);
- continue;
- }
- bzero (data, len);
- free (data);
- return 0;
- }
- break;
- }
- }
- *stringp = data;
- *countp = len;
- return 1;
-}
-
-Xauth *
-XauReadAuth (auth_file)
-FILE *auth_file;
-{
- Xauth local;
- Xauth *ret;
-
- if (read_short (&local.family, auth_file) == 0)
- return 0;
- if (read_counted_string (&local.address_length, &local.address, auth_file) == 0)
- return 0;
- if (read_counted_string (&local.number_length, &local.number, auth_file) == 0) {
- if (local.address) free (local.address);
- return 0;
- }
- if (read_counted_string (&local.name_length, &local.name, auth_file) == 0) {
- if (local.address) free (local.address);
- if (local.number) free (local.number);
- return 0;
- }
- if (read_counted_string (&local.data_length, &local.data, auth_file) == 0) {
- if (local.address) free (local.address);
- if (local.number) free (local.number);
- if (local.name) free (local.name);
- return 0;
- }
- ret = (Xauth *) malloc (sizeof (Xauth));
- if (!ret) {
- if (local.address) free (local.address);
- if (local.number) free (local.number);
- if (local.name) free (local.name);
- if (local.data) {
- bzero (local.data, local.data_length);
- free (local.data);
- }
- return 0;
- }
- *ret = local;
- return ret;
-}
diff --git a/nx-X11/lib/X11/AutoRep.c b/nx-X11/lib/X11/AutoRep.c
deleted file mode 100644
index 66b4097a8..000000000
--- a/nx-X11/lib/X11/AutoRep.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-
-Copyright 1985, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XAutoRepeatOn (register Display *dpy)
-{
- XKeyboardControl values;
- values.auto_repeat_mode = AutoRepeatModeOn;
- XChangeKeyboardControl (dpy, KBAutoRepeatMode, &values);
- return 1;
-}
-
-int
-XAutoRepeatOff (register Display *dpy)
-{
- XKeyboardControl values;
- values.auto_repeat_mode = AutoRepeatModeOff;
- XChangeKeyboardControl (dpy, KBAutoRepeatMode, &values);
- return 1;
-}
-
-
diff --git a/nx-X11/lib/X11/Backgnd.c b/nx-X11/lib/X11/Backgnd.c
deleted file mode 100644
index bf7d75f8f..000000000
--- a/nx-X11/lib/X11/Backgnd.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetWindowBackground(
- register Display *dpy,
- Window w,
- unsigned long pixel)
-{
- register xChangeWindowAttributesReq *req;
-
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWBackPixel;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), pixel);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/BdrWidth.c b/nx-X11/lib/X11/BdrWidth.c
deleted file mode 100644
index 5da8ce772..000000000
--- a/nx-X11/lib/X11/BdrWidth.c
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/*
-
-Copyright 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetWindowBorderWidth(
- Display *dpy,
- Window w,
- unsigned int width)
-{
- unsigned long lwidth = width; /* must be CARD32 */
-
- register xConfigureWindowReq *req;
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 4, req);
- req->window = w;
- req->mask = CWBorderWidth;
- OneDataCard32 (dpy, NEXTPTR(req,xConfigureWindowReq), lwidth);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/Bell.c b/nx-X11/lib/X11/Bell.c
deleted file mode 100644
index 7da8772cf..000000000
--- a/nx-X11/lib/X11/Bell.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XBell(
- register Display *dpy,
- int percent)
-{
- register xBellReq *req;
-
- LockDisplay(dpy);
- GetReq(Bell,req);
- req->percent = percent;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/Border.c b/nx-X11/lib/X11/Border.c
deleted file mode 100644
index 133043a5b..000000000
--- a/nx-X11/lib/X11/Border.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetWindowBorder(
- register Display *dpy,
- Window w,
- unsigned long pixel)
-{
- register xChangeWindowAttributesReq *req;
-
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWBorderPixel;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), pixel);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/CCC.c b/nx-X11/lib/X11/CCC.c
deleted file mode 100644
index de6d6318a..000000000
--- a/nx-X11/lib/X11/CCC.c
+++ /dev/null
@@ -1,285 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsCCC.c - Color Conversion Context Routines
- *
- * DESCRIPTION
- * Routines to create, access, and free Color Conversion
- * Context structures.
- *
- *
- */
-
-/*
-
-Copyright 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCreateCCC
- *
- * SYNOPSIS
- */
-
-XcmsCCC
-XcmsCreateCCC(
- Display *dpy,
- int screenNumber,
- Visual *visual,
- XcmsColor *clientWhitePt,
- XcmsCompressionProc gamutCompProc,
- XPointer gamutCompClientData,
- XcmsWhiteAdjustProc whitePtAdjProc,
- XPointer whitePtAdjClientData)
-/*
- * DESCRIPTION
- * Given a Display, Screen, Visual, etc., this routine creates
- * an appropriate Color Conversion Context.
- *
- * RETURNS
- * Returns NULL if failed; otherwise address of the newly
- * created XcmsCCC.
- *
- */
-{
- XcmsCCC pDefaultCCC = XcmsDefaultCCC(dpy, screenNumber);
- XcmsCCC newccc;
- XcmsIntensityMap *pIMap;
- XcmsPerScrnInfo *pNewScrnInfo;
-
- if (pDefaultCCC == NULL ||
- !(newccc = Xcalloc(1, sizeof(XcmsCCCRec)))) {
- return(NULL);
- }
-
- /*
- * Should inherit the following as result of a memmove():
- * dpy
- * screenNumber
- * pPerScrnInfo
- */
- memcpy((char *)newccc, (char *)pDefaultCCC, sizeof(XcmsCCCRec));
- if (clientWhitePt) {
- memcpy((char *)&newccc->clientWhitePt, (char *)clientWhitePt,
- sizeof(XcmsColor));
- }
- if (gamutCompProc) {
- newccc->gamutCompProc = gamutCompProc;
- }
- if (gamutCompClientData) {
- newccc->gamutCompClientData = gamutCompClientData;
- }
- if (whitePtAdjProc) {
- newccc->whitePtAdjProc = whitePtAdjProc;
- }
- if (whitePtAdjClientData) {
- newccc->whitePtAdjClientData = whitePtAdjClientData;
- }
-
- /*
- * Now check our list of per-Visual Intensity tables.
- * If one exists replace the pPerScrnInfo.
- */
- if ((pIMap = _XcmsGetIntensityMap(dpy, visual)) != NULL) {
- if (!(pNewScrnInfo = Xcalloc(1, sizeof(XcmsPerScrnInfo)))) {
- Xfree(newccc);
- return(NULL);
- }
- memcpy((char *)pNewScrnInfo, (char *)newccc->pPerScrnInfo,
- sizeof(XcmsPerScrnInfo));
- pNewScrnInfo->screenData = pIMap->screenData;
- newccc->pPerScrnInfo = pNewScrnInfo;
- }
-
- /*
- * Set visual component
- */
- newccc->visual = visual;
-
- return(newccc);
-}
-
-
-/*
- * NAME
- * XcmsDefaultCCC
- *
- * SYNOPSIS
- */
-XcmsCCC
-XcmsDefaultCCC(
- Display *dpy,
- int screenNumber)
-/*
- * DESCRIPTION
- * Given a Display and Screen, this routine creates
- * returns the Screen's default Color Conversion Context.
- * Note that a Screen's default CCC is built with the
- * screen default visual.
- *
- * RETURNS
- * Returns NULL if failed; otherwise address of the
- * XcmsCCC for the Screen's default CCC.
- *
- */
-{
- XcmsCCC ccc;
-
-
- if ((screenNumber < 0) || (screenNumber >= ScreenCount(dpy))) {
- return((XcmsCCC)NULL);
- }
-
- /*
- * Check if the XcmsCCC's for each screen has been created
- */
- if ((XcmsCCC)dpy->cms.defaultCCCs == NULL) {
- if (!_XcmsInitDefaultCCCs(dpy)) {
- return((XcmsCCC)NULL);
- }
- }
-
- ccc = (XcmsCCC)dpy->cms.defaultCCCs + screenNumber;
-
- if (!ccc->pPerScrnInfo) {
- /*
- * Need to create the XcmsPerScrnInfo structure. The
- * _XcmsInitScrnInfo routine will create the XcmsPerScrnInfo
- * structure as well as initialize its functionSet and pScreenData
- * components.
- */
- if (!_XcmsInitScrnInfo(dpy, screenNumber)) {
- return((XcmsCCC)NULL);
- }
- return(ccc);
- } else {
- /*
- * If ccc->pPerScrnInfo->state == XcmsInitSuccess,
- * then the pPerScrnInfo component has already been initialized
- * therefore, just return ccc.
- * If ccc->pPerScrnInfo->state == XcmsInitFailure,
- * then this means that we already attempted to initialize
- * the pPerScrnInfo component but failed therefore stuffing
- * the pPerScrnInfo component with defaults. Just return ccc.
- * If ccc->pPerScrnInfo->state == XcmsInitNone,
- * then attempt to initialize the pPerScrnInfo component.
- */
- switch (ccc->pPerScrnInfo->state) {
- case XcmsInitFailure :
- /* fall through */
- case XcmsInitSuccess :
- return(ccc);
- case XcmsInitNone :
- /* XcmsPerScreenInfo has not been initialized */
- if (!_XcmsInitScrnInfo(dpy, screenNumber)) {
- return((XcmsCCC)NULL);
- }
- return(ccc);
- default :
- return((XcmsCCC)NULL);
- }
- }
-}
-
-
-/*
- * NAME
- * XcmsFreeCCC
- *
- * SYNOPSIS
- */
-void
-XcmsFreeCCC(XcmsCCC ccc)
-/*
- * DESCRIPTION
- * Frees memory associated with a Color Conversion Context
- * that was created with XcmsCreateCCC().
- *
- * RETURNS
- * void
- *
- */
-{
- if (ccc->dpy->cms.defaultCCCs &&
- ccc == ((XcmsCCC)ccc->dpy->cms.defaultCCCs) + ccc->screenNumber) {
- /* do not allow clients to free DefaultCCC's */
- return;
- }
-
- /*
- * Note that XcmsPerScrnInfo sub-structures are freed here only if
- * they are for visuals that have per-Visual intensity tables.
- * Otherwise the XcmsPerScrnInfo structure is being shared!
- * For the latter, there is only one allocated per Screen and it just
- * so happens * that we place its initial reference is placed in the
- * default CCC. The routine _XcmsFreeDefaultCCCs frees them.
- */
- if (_XcmsGetIntensityMap(ccc->dpy, ccc->visual) != NULL) {
- Xfree(ccc->pPerScrnInfo);
- }
-
- Xfree(ccc);
-}
diff --git a/nx-X11/lib/X11/ChAccCon.c b/nx-X11/lib/X11/ChAccCon.c
deleted file mode 100644
index f8d099668..000000000
--- a/nx-X11/lib/X11/ChAccCon.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XEnableAccessControl(register Display *dpy)
-{
- return XSetAccessControl(dpy, EnableAccess);
-}
-
-int
-XDisableAccessControl(register Display *dpy)
-{
- return XSetAccessControl(dpy, DisableAccess);
-}
-
-int
-XSetAccessControl(
- register Display *dpy,
- int mode)
-
-{
- register xSetAccessControlReq *req;
-
- LockDisplay(dpy);
- GetReq(SetAccessControl, req);
- req->mode = mode;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ChActPGb.c b/nx-X11/lib/X11/ChActPGb.c
deleted file mode 100644
index bebef2b01..000000000
--- a/nx-X11/lib/X11/ChActPGb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XChangeActivePointerGrab(
- register Display *dpy,
- unsigned int event_mask, /* CARD16 */
- Cursor curs,
- Time time)
-{
- register xChangeActivePointerGrabReq *req;
-
- LockDisplay(dpy);
- GetReq(ChangeActivePointerGrab, req);
- req->eventMask = event_mask;
- req->cursor = curs;
- req->time = time;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/ChClMode.c b/nx-X11/lib/X11/ChClMode.c
deleted file mode 100644
index 5250a80bc..000000000
--- a/nx-X11/lib/X11/ChClMode.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetCloseDownMode(
- register Display *dpy,
- int mode)
-{
- register xSetCloseDownModeReq *req;
-
- LockDisplay(dpy);
- GetReq(SetCloseDownMode, req);
- req->mode = mode;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ChCmap.c b/nx-X11/lib/X11/ChCmap.c
deleted file mode 100644
index d9372cdf3..000000000
--- a/nx-X11/lib/X11/ChCmap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetWindowColormap(
- register Display *dpy,
- Window w,
- Colormap colormap)
-{
- register xChangeWindowAttributesReq *req;
-
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWColormap;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), colormap);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ChGC.c b/nx-X11/lib/X11/ChGC.c
deleted file mode 100644
index 8f677dc3a..000000000
--- a/nx-X11/lib/X11/ChGC.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Cr.h"
-
-int
-XChangeGC (
- register Display *dpy,
- GC gc,
- unsigned long valuemask,
- XGCValues *values)
-{
- LockDisplay(dpy);
-
- valuemask &= (1L << (GCLastBit + 1)) - 1;
- if (valuemask) _XUpdateGCCache (gc, valuemask, values);
-
- /* if any Resource ID changed, must flush */
- if (gc->dirty & (GCFont | GCTile | GCStipple))
- _XFlushGCCache(dpy, gc);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ChKeyCon.c b/nx-X11/lib/X11/ChKeyCon.c
deleted file mode 100644
index bcf522340..000000000
--- a/nx-X11/lib/X11/ChKeyCon.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XChangeKeyboardControl(
- register Display *dpy,
- unsigned long mask,
- XKeyboardControl *value_list)
-{
- unsigned long values[8];
- register unsigned long *value = values;
- long nvalues;
- register xChangeKeyboardControlReq *req;
-
- LockDisplay(dpy);
- GetReq(ChangeKeyboardControl, req);
- req->mask = mask;
-
- if (mask & KBKeyClickPercent)
- *value++ = value_list->key_click_percent;
-
- if (mask & KBBellPercent)
- *value++ = value_list->bell_percent;
-
- if (mask & KBBellPitch)
- *value++ = value_list->bell_pitch;
-
- if (mask & KBBellDuration)
- *value++ = value_list->bell_duration;
-
- if (mask & KBLed)
- *value++ = value_list->led;
-
- if (mask & KBLedMode)
- *value++ = value_list->led_mode;
-
- if (mask & KBKey)
- *value++ = value_list->key;
-
- if (mask & KBAutoRepeatMode)
- *value++ = value_list->auto_repeat_mode;
-
-
- req->length += (nvalues = value - values);
-
- /* note: Data is a macro that uses its arguments multiple
- times, so "nvalues" is changed in a separate assignment
- statement */
-
- nvalues <<= 2;
- Data32 (dpy, (long *) values, nvalues);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
diff --git a/nx-X11/lib/X11/ChPntCon.c b/nx-X11/lib/X11/ChPntCon.c
deleted file mode 100644
index c177c0045..000000000
--- a/nx-X11/lib/X11/ChPntCon.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XChangePointerControl(
- register Display *dpy,
- Bool do_acc,
- Bool do_thresh,
- int acc_numerator,
- int acc_denominator,
- int threshold)
-
-{
- register xChangePointerControlReq *req;
-
- LockDisplay(dpy);
- GetReq(ChangePointerControl, req);
- req->doAccel = do_acc;
- req->doThresh = do_thresh;
- req->accelNum = acc_numerator;
- req->accelDenum = acc_denominator;
- req->threshold = threshold;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ChProp.c b/nx-X11/lib/X11/ChProp.c
deleted file mode 100644
index 190a224f8..000000000
--- a/nx-X11/lib/X11/ChProp.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XChangeProperty (
- register Display *dpy,
- Window w,
- Atom property,
- Atom type,
- int format, /* 8, 16, or 32 */
- int mode, /* PropModeReplace, PropModePrepend, PropModeAppend */
- _Xconst unsigned char *data,
- int nelements)
- {
- register xChangePropertyReq *req;
- register long len;
-
- LockDisplay(dpy);
- GetReq (ChangeProperty, req);
- req->window = w;
- req->property = property;
- req->type = type;
- req->mode = mode;
- if (nelements < 0) {
- req->nUnits = 0;
- req->format = 0; /* ask for garbage, get garbage */
- } else {
- req->nUnits = nelements;
- req->format = format;
- }
-
- switch (req->format) {
- case 8:
- len = ((long)nelements + 3)>>2;
- if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
- SetReqLen(req, len, len);
- Data (dpy, (_Xconst char *)data, nelements);
- } /* else force BadLength */
- break;
-
- case 16:
- len = ((long)nelements + 1)>>1;
- if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
- SetReqLen(req, len, len);
- len = (long)nelements << 1;
- Data16 (dpy, (_Xconst short *) data, len);
- } /* else force BadLength */
- break;
-
- case 32:
- len = nelements;
- if (dpy->bigreq_size || req->length + len <= (unsigned) 65535) {
- SetReqLen(req, len, len);
- len = (long)nelements << 2;
- Data32 (dpy, (_Xconst long *) data, len);
- } /* else force BadLength */
- break;
-
- default:
- /* BadValue will be generated */ ;
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
-
-
-
-
-
diff --git a/nx-X11/lib/X11/ChSaveSet.c b/nx-X11/lib/X11/ChSaveSet.c
deleted file mode 100644
index 068b042d2..000000000
--- a/nx-X11/lib/X11/ChSaveSet.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XChangeSaveSet(
- register Display *dpy,
- Window win,
- int mode)
-{
- register xChangeSaveSetReq *req;
-
- LockDisplay(dpy);
- GetReq(ChangeSaveSet, req);
- req->window = win;
- req->mode = mode;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XAddToSaveSet(
- register Display *dpy,
- Window win)
-{
- return XChangeSaveSet(dpy,win,SetModeInsert);
-}
-
-int
-XRemoveFromSaveSet (
- register Display *dpy,
- Window win)
-{
- return XChangeSaveSet(dpy,win,SetModeDelete);
-}
diff --git a/nx-X11/lib/X11/ChWAttrs.c b/nx-X11/lib/X11/ChWAttrs.c
deleted file mode 100644
index 25cbcbd05..000000000
--- a/nx-X11/lib/X11/ChWAttrs.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define AllMaskBits (CWBackPixmap|CWBackPixel|CWBorderPixmap|\
- CWBorderPixel|CWBitGravity|CWWinGravity|\
- CWBackingStore|CWBackingPlanes|CWBackingPixel|\
- CWOverrideRedirect|CWSaveUnder|CWEventMask|\
- CWDontPropagate|CWColormap|CWCursor)
-
-int
-XChangeWindowAttributes (
- register Display *dpy,
- Window w,
- unsigned long valuemask,
- XSetWindowAttributes *attributes)
-{
- register xChangeWindowAttributesReq *req;
-
- LockDisplay(dpy);
- GetReq(ChangeWindowAttributes,req);
- req->window = w;
- valuemask &= AllMaskBits;
- if ((req->valueMask = valuemask))
- _XProcessWindowAttributes (dpy, req, valuemask, attributes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ChWindow.c b/nx-X11/lib/X11/ChWindow.c
deleted file mode 100644
index 89a81e12a..000000000
--- a/nx-X11/lib/X11/ChWindow.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XResizeWindow(
- register Display *dpy,
- Window w,
- unsigned int width,
- unsigned int height)
-{
- register xConfigureWindowReq *req;
-
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 8, req); /* 2 4-byte quantities */
-
- req->window = w;
- req->mask = CWWidth | CWHeight;
- {
- CARD32 *valuePtr = (CARD32 *) NEXTPTR(req,xConfigureWindowReq);
- *valuePtr++ = width;
- *valuePtr = height;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/ChkIfEv.c b/nx-X11/lib/X11/ChkIfEv.c
deleted file mode 100644
index 313e4395c..000000000
--- a/nx-X11/lib/X11/ChkIfEv.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Check existing events in queue to find if any match. If so, return.
- * If not, flush buffer and see if any more events are readable. If one
- * matches, return. If all else fails, tell the user no events found.
- */
-
-Bool XCheckIfEvent (
- register Display *dpy,
- register XEvent *event, /* XEvent to be filled in. */
- Bool (*predicate)(
- Display* /* display */,
- XEvent* /* event */,
- char* /* arg */
- ), /* function to call */
- char *arg)
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
- int n; /* time through count */
-
- LockDisplay(dpy);
- prev = NULL;
- for (n = 3; --n >= 0;) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if(qelt->qserial_num > qe_serial
- && (*predicate)(dpy, &qelt->event, arg)) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- _XStoreEventCookie(dpy, event);
- UnlockDisplay(dpy);
- return True;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- switch (n) {
- case 2:
- _XEventsQueued(dpy, QueuedAfterReading);
- break;
- case 1:
- _XFlush(dpy);
- break;
- }
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
- }
- UnlockDisplay(dpy);
- return False;
-}
-
-#ifdef NX_TRANS_SOCKET
-
-/*
- * This is just like XCheckIfEvent() but doesn't
- * flush the output buffer if it can't read new
- * events.
- */
-
-Bool XCheckIfEventNoFlush (
- register Display *dpy,
- register XEvent *event, /* XEvent to be filled in. */
- Bool (*predicate)(
- Display* /* display */,
- XEvent* /* event */,
- char* /* arg */
- ), /* function to call */
- char *arg)
-
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
- int n; /* time through count */
-
- LockDisplay(dpy);
- prev = NULL;
- for (n = 2; --n >= 0;) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if(qelt->qserial_num > qe_serial
- && (*predicate)(dpy, &qelt->event, arg)) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- _XStoreEventCookie(dpy, event);
- UnlockDisplay(dpy);
- return True;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- switch (n) {
- case 1:
- _XEventsQueued(dpy, QueuedAfterReading);
- break;
- }
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
- }
- UnlockDisplay(dpy);
- return False;
-}
-
-#endif
diff --git a/nx-X11/lib/X11/ChkMaskEv.c b/nx-X11/lib/X11/ChkMaskEv.c
deleted file mode 100644
index 78928e079..000000000
--- a/nx-X11/lib/X11/ChkMaskEv.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-extern long const _Xevent_to_mask[];
-
-#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
-#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
- Button4MotionMask|Button5MotionMask)
-
-/*
- * Check existing events in queue to find if any match. If so, return.
- * If not, flush buffer and see if any more events are readable. If one
- * matches, return. If all else fails, tell the user no events found.
- */
-
-Bool XCheckMaskEvent (
- register Display *dpy,
- long mask, /* Selected event mask. */
- register XEvent *event) /* XEvent to be filled in. */
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
- int n; /* time through count */
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- prev = NULL;
- for (n = 3; --n >= 0;) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if ((qelt->event.type < GenericEvent) &&
- (_Xevent_to_mask[qelt->event.type] & mask) &&
- ((qelt->event.type != MotionNotify) ||
- (mask & AllPointers) ||
- (mask & AllButtons & qelt->event.xmotion.state))) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- UnlockDisplay(dpy);
- return True;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- switch (n) {
- case 2:
- _XEventsQueued(dpy, QueuedAfterReading);
- break;
- case 1:
- _XFlush(dpy);
- break;
- }
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
- }
- UnlockDisplay(dpy);
- return False;
-}
diff --git a/nx-X11/lib/X11/ChkTypEv.c b/nx-X11/lib/X11/ChkTypEv.c
deleted file mode 100644
index 2e9bcdd0a..000000000
--- a/nx-X11/lib/X11/ChkTypEv.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Check existing events in queue to find if any match. If so, return.
- * If not, flush buffer and see if any more events are readable. If one
- * matches, return. If all else fails, tell the user no events found.
- */
-
-Bool XCheckTypedEvent (
- register Display *dpy,
- int type, /* Selected event type. */
- register XEvent *event) /* XEvent to be filled in. */
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
- int n; /* time through count */
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- prev = NULL;
- for (n = 3; --n >= 0;) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if (qelt->event.type == type) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- _XStoreEventCookie(dpy, event);
- UnlockDisplay(dpy);
- return True;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- switch (n) {
- case 2:
- _XEventsQueued(dpy, QueuedAfterReading);
- break;
- case 1:
- _XFlush(dpy);
- break;
- }
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
- }
- UnlockDisplay(dpy);
- return False;
-}
diff --git a/nx-X11/lib/X11/ChkTypWEv.c b/nx-X11/lib/X11/ChkTypWEv.c
deleted file mode 100644
index 2f247be26..000000000
--- a/nx-X11/lib/X11/ChkTypWEv.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Check existing events in queue to find if any match. If so, return.
- * If not, flush buffer and see if any more events are readable. If one
- * matches, return. If all else fails, tell the user no events found.
- */
-
-Bool XCheckTypedWindowEvent (
- register Display *dpy,
- Window w, /* Selected window. */
- int type, /* Selected event type. */
- register XEvent *event) /* XEvent to be filled in. */
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
- int n; /* time through count */
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- prev = NULL;
- for (n = 3; --n >= 0;) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if ((qelt->event.xany.window == w) &&
- (qelt->event.type == type)) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- _XStoreEventCookie(dpy, event);
- UnlockDisplay(dpy);
- return True;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- switch (n) {
- case 2:
- _XEventsQueued(dpy, QueuedAfterReading);
- break;
- case 1:
- _XFlush(dpy);
- break;
- }
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
- }
- UnlockDisplay(dpy);
- return False;
-}
diff --git a/nx-X11/lib/X11/ChkWinEv.c b/nx-X11/lib/X11/ChkWinEv.c
deleted file mode 100644
index 9fb7db06a..000000000
--- a/nx-X11/lib/X11/ChkWinEv.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-extern long const _Xevent_to_mask[];
-#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
-#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
- Button4MotionMask|Button5MotionMask)
-
-/*
- * Check existing events in queue to find if any match. If so, return.
- * If not, flush buffer and see if any more events are readable. If one
- * matches, return. If all else fails, tell the user no events found.
- */
-
-Bool XCheckWindowEvent (
- register Display *dpy,
- Window w, /* Selected window. */
- long mask, /* Selected event mask. */
- register XEvent *event) /* XEvent to be filled in. */
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
- int n; /* time through count */
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- prev = NULL;
- for (n = 3; --n >= 0;) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if ((qelt->event.xany.window == w) &&
- (qelt->event.type < GenericEvent) &&
- (_Xevent_to_mask[qelt->event.type] & mask) &&
- ((qelt->event.type != MotionNotify) ||
- (mask & AllPointers) ||
- (mask & AllButtons & qelt->event.xmotion.state))) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- UnlockDisplay(dpy);
- return True;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- switch (n) {
- case 2:
- _XEventsQueued(dpy, QueuedAfterReading);
- break;
- case 1:
- _XFlush(dpy);
- break;
- }
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
- }
- UnlockDisplay(dpy);
- return False;
-}
diff --git a/nx-X11/lib/X11/CirWin.c b/nx-X11/lib/X11/CirWin.c
deleted file mode 100644
index e37a42ade..000000000
--- a/nx-X11/lib/X11/CirWin.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XCirculateSubwindows(
- register Display *dpy,
- Window w,
- int direction)
-{
- register xCirculateWindowReq *req;
-
- LockDisplay(dpy);
- GetReq(CirculateWindow, req);
- req->window = w;
- req->direction = direction;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/CirWinDn.c b/nx-X11/lib/X11/CirWinDn.c
deleted file mode 100644
index f2b54852b..000000000
--- a/nx-X11/lib/X11/CirWinDn.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XCirculateSubwindowsDown(
- register Display *dpy,
- Window w)
-{
- register xCirculateWindowReq *req;
-
- LockDisplay(dpy);
- GetReq(CirculateWindow, req);
- req->window = w;
- req->direction = LowerHighest;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/CirWinUp.c b/nx-X11/lib/X11/CirWinUp.c
deleted file mode 100644
index be9f094cd..000000000
--- a/nx-X11/lib/X11/CirWinUp.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XCirculateSubwindowsUp(
- register Display *dpy,
- Window w)
-{
- register xCirculateWindowReq *req;
-
- LockDisplay(dpy);
- GetReq(CirculateWindow, req);
- req->window = w;
- req->direction = RaiseLowest;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ClDisplay.c b/nx-X11/lib/X11/ClDisplay.c
deleted file mode 100644
index 898fc9144..000000000
--- a/nx-X11/lib/X11/ClDisplay.c
+++ /dev/null
@@ -1,82 +0,0 @@
-
-/*
-
-Copyright 1985, 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#if USE_XCB
-#include "Xxcbint.h"
-#else /* !USE_XCB */
-#include <nx-X11/Xtrans/Xtrans.h>
-#endif /* USE_XCB */
-#include "Xlib.h"
-#include "Xlibint.h"
-#include "Xintconn.h"
-
-/*
- * XCloseDisplay - XSync the connection to the X Server, close the connection,
- * and free all associated storage. Extension close procs should only free
- * memory and must be careful about the types of requests they generate.
- */
-
-int
-XCloseDisplay (
- register Display *dpy)
-{
- register _XExtension *ext;
- register int i;
-
- if (!(dpy->flags & XlibDisplayClosing))
- {
- dpy->flags |= XlibDisplayClosing;
- for (i = 0; i < dpy->nscreens; i++) {
- register Screen *sp = &dpy->screens[i];
- XFreeGC (dpy, sp->default_gc);
- }
- if (dpy->cursor_font != None) {
- XUnloadFont (dpy, dpy->cursor_font);
- }
- XSync(dpy, 1); /* throw away pending events, catch errors */
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next) {
- if (ext->close_display)
- (*ext->close_display)(dpy, &ext->codes);
- }
- /* if the closes generated more protocol, sync them up */
- if (dpy->request != dpy->last_request_read)
- XSync(dpy, 1);
- }
-#if USE_XCB
- xcb_disconnect(dpy->xcb->connection);
-#else /* !USE_XCB */
- _XDisconnectDisplay(dpy->trans_conn);
-#endif /* USE_XCB */
- _XFreeDisplayStructure (dpy);
- return 0;
-}
diff --git a/nx-X11/lib/X11/Clear.c b/nx-X11/lib/X11/Clear.c
deleted file mode 100644
index 63dc64045..000000000
--- a/nx-X11/lib/X11/Clear.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XClearWindow(
- register Display *dpy,
- Window w)
-{
- register xClearAreaReq *req;
-
- LockDisplay(dpy);
- GetReq(ClearArea, req);
- req->window = w;
- req->x = req->y = req->width = req->height = 0;
- /* these values mean "clear the entire window" */
- req->exposures = xFalse;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ClearArea.c b/nx-X11/lib/X11/ClearArea.c
deleted file mode 100644
index 41fd17c80..000000000
--- a/nx-X11/lib/X11/ClearArea.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XClearArea (
- register Display *dpy,
- Window w,
- int x,
- int y,
- unsigned int width,
- unsigned int height,
- Bool exposures)
-{
- register xClearAreaReq *req;
-
- LockDisplay(dpy);
- GetReq(ClearArea, req);
- req->window = w;
- req->x = x;
- req->y = y;
- req->width = width;
- req->height = height;
- req->exposures = exposures;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/Cmap.h b/nx-X11/lib/X11/Cmap.h
deleted file mode 100644
index db2de5697..000000000
--- a/nx-X11/lib/X11/Cmap.h
+++ /dev/null
@@ -1,12 +0,0 @@
-
-#ifndef _CMAP_H_
-#define _CMAP_H_
-
-#include <nx-X11/Xlib.h>
-
-extern void
-_XcmsDeleteCmapRec(
- Display *dpy,
- Colormap cmap);
-
-#endif /* _CMAP_H_ */
diff --git a/nx-X11/lib/X11/ConfWind.c b/nx-X11/lib/X11/ConfWind.c
deleted file mode 100644
index eefce4dd5..000000000
--- a/nx-X11/lib/X11/ConfWind.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XMoveResizeWindow(
- register Display *dpy,
- Window w,
- int x,
- int y,
- unsigned int width,
- unsigned int height)
-{
- register xConfigureWindowReq *req;
-
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 16, req);
- req->window = w;
- req->mask = CWX | CWY | CWWidth | CWHeight;
- {
- register CARD32 *valuePtr =
- (CARD32 *) NEXTPTR(req,xConfigureWindowReq);
- *valuePtr++ = x;
- *valuePtr++ = y;
- *valuePtr++ = width;
- *valuePtr = height;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/ConnDis.c b/nx-X11/lib/X11/ConnDis.c
deleted file mode 100644
index dfc0227fe..000000000
--- a/nx-X11/lib/X11/ConnDis.c
+++ /dev/null
@@ -1,1479 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* nx-X11, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/*
- * This file contains operating system dependencies.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xtrans/Xtrans.h>
-#include <nx-X11/Xauth.h>
-#ifdef HASXDMAUTH
-#include <X11/Xdmcp.h>
-#endif
-#include <stdio.h>
-#include <ctype.h>
-#include <unistd.h>
-
-#if !defined(WIN32)
-#include <sys/socket.h>
-#else
-#include <nx-X11/Xwindows.h>
-#endif
-
-#ifndef X_CONNECTION_RETRIES /* number retries on ECONNREFUSED */
-#define X_CONNECTION_RETRIES 5
-#endif
-
-#include "Xintconn.h"
-
-/* prototypes */
-static void GetAuthorization(
- XtransConnInfo trans_conn,
- int family,
- char *saddr,
- int saddrlen,
- int idisplay,
- char **auth_namep,
- int *auth_namelenp,
- char **auth_datap,
- int *auth_datalenp);
-
-/* functions */
-static char *copystring (const char *src, int len)
-{
- char *dst = Xmalloc (len + 1);
-
- if (dst) {
- strncpy (dst, src, len);
- dst[len] = '\0';
- }
-
- return dst;
-}
-
-#define Xstrdup(s) copystring(s, strlen(s))
-
-#ifdef TCPCONN
-# define TCP_TRANS "tcp"
-#endif
-#ifdef UNIXCONN
-# define UNIX_TRANS "unix"
-#endif
-#if defined(LOCALCONN) || defined(UNIXCONN)
-# define LOCAL_TRANS "local"
-#endif
-
-/* FIXME: This should be handled through Makefile/configure logic. See configure.ac in upstream libX11 */
-
-#ifdef UNIXCONN
-# ifdef TCPCONN
-# define LOCAL_TRANSPORT_LIST LOCAL_TRANS,UNIX_TRANS,TCP_TRANS
-# else
-# define LOCAL_TRANSPORT_LIST LOCAL_TRANS,UNIX_TRANS
-# endif
-#else
-# ifdef TCPCONN
-# define LOCAL_TRANSPORT_LIST TCP_TRANS
-# else
-# define LOCAL_TRANSPORT_LIST
-# endif
-#endif
-
-
-
-
-/*
- * Attempts to connect to server, given display name. Returns file descriptor
- * (network socket) or -1 if connection fails. Display names may be of the
- * following format:
- *
- * [protocol/] [hostname] : [:] displaynumber [.screennumber]
- *
- * A string with exactly two colons seperating hostname from the
- * display indicates a (now unsupported) DECnet style name. Colons in
- * the hostname may occur if an IPv6 numeric address is used as the
- * hostname. An IPv6 numeric address may also end in a double colon,
- * so three colons in a row indicates an IPv6 address ending in ::
- * followed by :display. To make it easier for people to read, an
- * IPv6 numeric address hostname may be surrounded by [ ] in a similar
- * fashion to the IPv6 numeric address URL syntax defined by IETF RFC
- * 2732.
- *
- * If no hostname and no protocol is specified, the string is interpreted
- * as the most efficient local connection to a server on the same machine.
- * This is usually:
- *
- * o shared memory
- * o local stream
- * o UNIX domain socket
- * o TCP to local host
- *
- * This function will eventually call the X Transport Interface functions
- * which expects the hostname in the format:
- *
- * [protocol/] [hostname] : [:] displaynumber
- *
- */
-XtransConnInfo
-_X11TransConnectDisplay (
- char *display_name,
- char **fullnamep, /* RETURN */
- int *dpynump, /* RETURN */
- int *screenp, /* RETURN */
- char **auth_namep, /* RETURN */
- int *auth_namelenp, /* RETURN */
- char **auth_datap, /* RETURN */
- int *auth_datalenp) /* RETURN */
-{
- int family;
- int saddrlen;
- Xtransaddr *saddr;
- char *lastp, *lastc, *p; /* char pointers */
- char *pprotocol = NULL; /* start of protocol name */
- char *phostname = NULL; /* start of host of display */
- char *pdpynum = NULL; /* start of dpynum of display */
- char *pscrnum = NULL; /* start of screen of display */
- int idisplay = 0; /* required display number */
- int iscreen = 0; /* optional screen number */
- /* int (*connfunc)(); */ /* method to create connection */
- int len, hostlen; /* length tmp variable */
- int retry; /* retry counter */
- char addrbuf[128]; /* final address passed to
- X Transport Interface */
- char* address = addrbuf;
- XtransConnInfo trans_conn = NULL; /* transport connection object */
- int connect_stat;
-#if defined(LOCALCONN) || defined(UNIXCONN) || defined(TCPCONN)
- Bool reset_hostname = False; /* Reset hostname? */
- char *original_hostname = NULL;
- int local_transport_index = -1;
- const char *local_transport[] = { LOCAL_TRANSPORT_LIST, NULL };
-#endif
-
- p = display_name;
-
- saddrlen = 0; /* set so that we can clear later */
- saddr = NULL;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Called with display_name [%s].\n", display_name);
-#endif
-
-#ifdef NX_TRANS_SOCKET
-
- /*
- * Check if user selected the "nx"
- * protocol or an "nx" hostname.
- */
-
- if (!strncasecmp(p, "nx/", 3) || !strcasecmp(p, "nx") ||
- !strncasecmp(p, "nx:", 3) || !strncasecmp(p, "nx,", 3))
- {
- if (*(display_name + 2) == '/')
- {
- p += 3;
- }
-
- pprotocol = copystring ("nx", 2);
-
- if (!pprotocol) goto bad;
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_X11TransConnectDisplay: Forced protocol to [%s].\n", pprotocol);
-#endif
-
- }
- else
- {
-
-#endif
-
- /*
- * Step 0, find the protocol. This is delimited by the optional
- * slash ('/').
- */
- for (lastp = p; *p && *p != ':' && *p != '/'; p++) ;
- if (!*p) return NULL; /* must have a colon */
-
- if (p != lastp && *p != ':') { /* protocol given? */
- pprotocol = copystring (lastp, p - lastp);
- if (!pprotocol) goto bad; /* no memory */
- p++; /* skip the '/' */
- } else
- p = display_name; /* reset the pointer in
- case no protocol was given */
-#ifdef NX_TRANS_SOCKET
-
- } /* End of step 0. */
-
- /*
- * Check if user specified the "nx" protocol or
- * hostname is "nx" or in the form "nx,...".
- */
-
- if (pprotocol && !strcasecmp(pprotocol, "nx"))
- {
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_X11TransConnectDisplay: Checking hostname [%s].\n", p);
-#endif
-
- /*
- * Options can include a "display=" tuple so
- * need to scan right to left.
- */
-
- lastp = p;
- lastc = NULL;
-
- for (; *p; p++)
- if (*p == ':')
- lastc = p;
-
- /*
- * Don't complain if no screen was provided.
- */
-
- if (lastc)
- {
- phostname = copystring (lastp, lastc - lastp);
-
- p = lastc;
- }
- else
- {
- phostname = copystring (lastp, strlen(lastp));
- }
-
- if (!phostname) goto bad;
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_X11TransConnectDisplay: Forced hostname [%s].\n", phostname);
-#endif
-
- }
- else
- {
-
-#endif
-
- /*
- * Step 1, find the hostname. This is delimited by either one colon,
- * or two colons in the case of DECnet (DECnet Phase V allows a single
- * colon in the hostname). (See note above regarding IPv6 numeric
- * addresses with triple colons or [] brackets.)
- * FIXME: we do not support DECnet anymore, so maybe remove these checks?
- */
-
- lastp = p;
- lastc = NULL;
- for (; *p; p++)
- if (*p == ':')
- lastc = p;
-
- if (!lastc) return NULL; /* must have a colon */
-
- if ((lastp != lastc) && (*(lastc - 1) == ':')
-#if defined(IPv6) && defined(AF_INET6)
- && ( ((lastc - 1) == lastp) || (*(lastc - 2) != ':'))
-#endif
- ) {
- /* DECnet display specified */
-
- goto bad;
- }
- else
- hostlen = lastc - lastp;
-
- if (hostlen > 0) { /* hostname given? */
- phostname = copystring (lastp, hostlen);
- if (!phostname) goto bad; /* no memory */
- }
-
- p = lastc;
-
-#if defined(LOCALCONN) || defined(UNIXCONN) || defined(TCPCONN)
- /* check if phostname == localnodename AND protocol not specified */
- if (!pprotocol && phostname) {
- char localhostname[256];
-
- if ((_XGetHostname (localhostname, sizeof localhostname) > 0)
- && (strcmp(phostname, localhostname) == 0)) {
- original_hostname = phostname;
- phostname = NULL;
- reset_hostname = True;
- }
- }
-#endif
-
-#ifdef NX_TRANS_SOCKET
-
- } /* End of step 1. */
-
- /*
- * Check if no display was specified. In this case
- * search the "port=n" option in NX host string.
- */
-
- if (*p)
- {
-
-#endif
-
-
- /*
- * Step 2, find the display number. This field is required and is
- * delimited either by a nul or a period, depending on whether or not
- * a screen number is present.
- */
-
- for (lastp = ++p; *p && isascii(*p) && isdigit(*p); p++) ;
- if ((p == lastp) || /* required field */
- (*p != '\0' && *p != '.') || /* invalid non-digit terminator */
- !(pdpynum = copystring (lastp, p - lastp))) /* no memory */
- goto bad;
- idisplay = atoi (pdpynum);
-
-#ifdef NX_TRANS_SOCKET
-
- }
- else
- {
- char *host = NULL;
- char *name = NULL;
- char *value = NULL;
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_X11TransConnectDisplay: Searching port in port [%s].\n", phostname);
-#endif
-
- if (!strncasecmp(phostname, "nx,", 3))
- {
- host = copystring(phostname + 3, strlen(phostname) - 3);
- }
-
- if (!host) goto bad;
-
- idisplay = -1;
-
- name = strtok(host, "=");
-
- while (name)
- {
- value = strtok(NULL, ",");
-
- if (value == NULL || strstr(value, "=") != NULL ||
- strstr(name, ",") != NULL || strlen(value) >= 128)
- {
- Xfree(host);
-
- goto bad;
- }
- else if (strcasecmp(name, "port") == 0)
- {
- idisplay = atoi(value);
-
- pdpynum = copystring(value, strlen(value));
-
- if (!pdpynum) goto bad;
-
- break;
- }
-
- name = strtok(NULL, "=");
- }
-
- Xfree(host);
-
- if (idisplay == -1)
- {
- goto bad;
- }
-
- } /* End of step 2. */
-
-#endif
-
-
- /*
- * Step 3, find the screen number. This field is optional. It is
- * present only if the display number was followed by a period (which
- * we've already verified is the only non-nul character).
- */
-
- if (*p) {
- for (lastp = ++p; *p && isascii(*p) && isdigit (*p); p++) ;
- if (p != lastp) {
- if (*p || /* non-digits */
- !(pscrnum = copystring (lastp, p - lastp))) /* no memory */
- goto bad;
- iscreen = atoi (lastp);
- }
- }
-
- /*
- * At this point, we know the following information:
- *
- * pprotocol protocol string or NULL
- * phostname hostname string or NULL
- * idisplay display number
- * iscreen screen number
- *
- * We can now decide which transport to use based on the ConnectionFlags
- * build parameter the hostname string. If phostname is NULL or equals
- * the string "local", then choose the best transport. If phostname
- * is "unix", then choose BSD UNIX domain sockets (if configured).
- */
-
-#ifdef NX_TRANS_SOCKET
-
- /*
- * If user selected the "nx" protocol
- * force "local" transport.
- */
-
- if (pprotocol && !strcasecmp(pprotocol, "nx"))
- {
- pprotocol = copystring ("local", 5);
-
- if (!pprotocol) goto bad;
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_X11TransConnectDisplay: Converted protocol to [%s].\n", pprotocol);
-#endif
-
- }
-
-#endif
-
-#if defined(TCPCONN) || defined(UNIXCONN) || defined(LOCALCONN) || defined(MNX_TCPCONN)
- if (!pprotocol) {
-#if defined(UNIXCONN)
- if (phostname && (strcmp (phostname, "unix") == 0)) {
- Xfree(pprotocol);
- pprotocol = copystring ("unix", 4);
- } else
-#endif
-#ifdef HAVE_LAUNCHD
- if (phostname && phostname[0]=='/') {
- pprotocol = copystring ("local", 5);
- }
-#endif
- if (!phostname)
- {
- if (local_transport[0] != NULL) {
- pprotocol = Xstrdup(local_transport[0]);
- local_transport_index = 0;
- }
- }
-
- if (!pprotocol) { /* if still not found one, tcp is our last resort */
- pprotocol = copystring ("tcp", 3);
- }
- }
-#endif
-
-
- connect:
- /*
- * This seems kind of backwards, but we need to put the protocol,
- * host, and port back together to pass to _X11TransOpenCOTSClient().
- */
-
- {
- int olen = 3 + (pprotocol ? strlen(pprotocol) : 0) +
- (phostname ? strlen(phostname) : 0) +
- (pdpynum ? strlen(pdpynum) : 0);
- if (olen > sizeof addrbuf) address = Xmalloc (olen);
- }
- if (!address) goto bad;
-
- sprintf(address,"%s/%s:%d",
- pprotocol ? pprotocol : "",
- phostname ? phostname : "",
- idisplay );
-
- /*
- * Make the connection, also need to get the auth address info for
- * the connection. Do retries in case server host has hit its
- * backlog (which, unfortunately, isn't distinguishable from there not
- * being a server listening at all, which is why we have to not retry
- * too many times).
- */
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Entering connection loop.\n");
-#endif
- for(retry=X_CONNECTION_RETRIES; retry>=0; retry-- )
- {
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransOpenCOTSClient(address) with address [%s].\n", address);
-#endif
- if ( (trans_conn = _X11TransOpenCOTSClient(address)) == NULL )
- {
- break;
- }
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConnect(trans_conn,address).\n");
-#endif
- if ((connect_stat = _X11TransConnect(trans_conn,address)) < 0 )
- {
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransClose(trans_conn).\n");
-#endif
- _X11TransClose(trans_conn);
- trans_conn = NULL;
-
- if (connect_stat == TRANS_TRY_CONNECT_AGAIN)
- continue;
- else
- break;
- }
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr).\n");
-#endif
- _X11TransGetPeerAddr(trans_conn, &family, &saddrlen, &saddr);
-
- /*
- * The family is given in a socket format (ie AF_INET). This
- * will convert it to the format used by the authorization and
- * X protocol (ie FamilyInternet).
- */
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Going to call _X11TransConvertAddress(&family, &saddrlen, &saddr).\n");
-#endif
- if( _X11TransConvertAddress(&family, &saddrlen, &saddr) < 0 )
- {
- _X11TransClose(trans_conn);
- trans_conn = NULL;
- if (saddr)
- {
- free ((char *) saddr);
- saddr = NULL;
- }
- continue;
- }
-
- break;
- }
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "_X11TransConnectDisplay: Out of connection loop.\n");
-#endif
- if (address != addrbuf) Xfree (address);
- address = addrbuf;
-
- if( trans_conn == NULL )
- goto bad;
-
- /*
- * Set close-on-exec so that programs that fork() doesn't get confused.
- */
-
- _X11TransSetOption(trans_conn,TRANS_CLOSEONEXEC,1);
-
- /*
- * Build the expanded display name:
- *
- * [host] : [:] dpy . scr \0
- */
-#if defined(LOCALCONN) || defined(TCPCONN) || defined(UNIXCONN)
- /*
- * If we computed the host name, get rid of it so that
- * XDisplayString() and XDisplayName() agree.
- */
- if (reset_hostname && (phostname != original_hostname)) {
- Xfree (phostname);
- phostname = original_hostname;
- original_hostname = NULL;
- }
-#endif
- len = ((phostname ? strlen(phostname) : 0) + 1 +
- strlen(pdpynum) + 1 + (pscrnum ? strlen(pscrnum) : 1) + 1);
- *fullnamep = (char *) Xmalloc (len);
- if (!*fullnamep) goto bad;
-
-#ifdef HAVE_LAUNCHD
- if (phostname && strlen(phostname) > 11 && !strncmp(phostname, "/tmp/launch", 11))
- sprintf (*fullnamep, "%s%s%d",
- (phostname ? phostname : ""),
- ":",
- idisplay);
- else
-#endif
- sprintf (*fullnamep, "%s%s%d.%d",
- (phostname ? phostname : ""),
- ":",
- idisplay, iscreen);
-
- *dpynump = idisplay;
- *screenp = iscreen;
- if (pprotocol) Xfree (pprotocol);
- if (phostname) Xfree (phostname);
- if (pdpynum) Xfree (pdpynum);
- if (pscrnum) Xfree (pscrnum);
-#if defined(LOCALCONN) || defined(UNIXCONN) || defined(TCPCONN)
- if (original_hostname) Xfree (original_hostname);
-#endif
-
- GetAuthorization(trans_conn, family, (char *) saddr, saddrlen, idisplay,
- auth_namep, auth_namelenp, auth_datap, auth_datalenp);
- return trans_conn;
-
-
- /*
- * error return; make sure everything is cleaned up.
- */
- bad:
- if (trans_conn) (void)_X11TransClose(trans_conn);
- if (saddr) free ((char *) saddr);
- if (pprotocol) Xfree (pprotocol);
- if (phostname) Xfree (phostname);
- if (address && address != addrbuf) { Xfree(address); address = addrbuf; }
-
-#if defined(LOCALCONN) || defined(UNIXCONN) || defined(TCPCONN)
- /* If connecting to the local machine, and we failed, try again with
- * the next transport type available, if there is one.
- */
- if (local_transport_index >= 0) {
- if (local_transport[++local_transport_index] != NULL) {
- pprotocol = Xstrdup(local_transport[local_transport_index]);
-#ifdef TCPCONN
- if (strcmp(pprotocol, "tcp") == 0) {
- if (original_hostname != NULL) {
- phostname = original_hostname;
- original_hostname = NULL;
- } else {
- phostname = copystring("localhost", 9);
- }
- } else
-#endif /* TCPCONN */
- {
- if ((phostname != NULL) && (original_hostname == NULL)) {
- original_hostname = phostname;
- }
- phostname = NULL;
- }
- goto connect;
- }
- }
-
- /* No more to try, we've failed all available local transports */
- if (original_hostname) Xfree(original_hostname);
-#endif /* LOCALCONN || UNIXCONN || TCPCONN */
-
- if (pdpynum) Xfree (pdpynum);
- if (pscrnum) Xfree (pscrnum);
- return NULL;
-
-}
-
-/*
- * This is gross, but we need it for compatiblity.
- * The test suite relies on the following interface.
- *
- */
-
-int _XConnectDisplay (
- char *display_name,
- char **fullnamep, /* RETURN */
- int *dpynump, /* RETURN */
- int *screenp, /* RETURN */
- char **auth_namep, /* RETURN */
- int *auth_namelenp, /* RETURN */
- char **auth_datap, /* RETURN */
- int *auth_datalenp) /* RETURN */
-{
- XtransConnInfo trans_conn;
-
- trans_conn = _X11TransConnectDisplay (
- display_name, fullnamep, dpynump, screenp,
- auth_namep, auth_namelenp, auth_datap, auth_datalenp);
-
- if (trans_conn)
- {
- int fd = _X11TransGetConnectionNumber (trans_conn);
- _X11TransFreeConnInfo (trans_conn);
- return (fd);
- }
- else
- return (-1);
-}
-
-
-/*****************************************************************************
- * *
- * Connection Utility Routines *
- * *
- *****************************************************************************/
-
-/*
- * Disconnect from server.
- */
-
-int _XDisconnectDisplay (XtransConnInfo trans_conn)
-{
- _X11TransDisconnect(trans_conn);
- _X11TransClose(trans_conn);
- return 0;
-}
-
-
-
-Bool
-_XSendClientPrefix(
- Display *dpy,
- xConnClientPrefix *client, /* contains count for auth_* */
- char *auth_proto, char *auth_string, /* NOT null-terminated */
- xConnSetupPrefix *prefix) /* prefix information */
-{
- int auth_length = client->nbytesAuthProto;
- int auth_strlen = client->nbytesAuthString;
- static char padbuf[3]; /* for padding to 4x bytes */
- int pad;
- struct iovec iovarray[5], *iov = iovarray;
- int niov = 0;
- int len = 0;
-
-#define add_to_iov(b,l) \
- { iov->iov_base = (b); iov->iov_len = (l); iov++, niov++; len += (l); }
-
- add_to_iov ((caddr_t) client, SIZEOF(xConnClientPrefix));
-
- /*
- * write authorization protocol name and data
- */
- if (auth_length > 0) {
- add_to_iov (auth_proto, auth_length);
- pad = -auth_length & 3; /* pad auth_length to a multiple of 4 */
- if (pad) add_to_iov (padbuf, pad);
- }
- if (auth_strlen > 0) {
- add_to_iov (auth_string, auth_strlen);
- pad = -auth_strlen & 3; /* pad auth_strlen to a multiple of 4 */
- if (pad) add_to_iov (padbuf, pad);
- }
-
-#undef add_to_iov
-
- len -= _X11TransWritev (dpy->trans_conn, iovarray, niov);
-
- /*
- * Set the connection non-blocking since we use select() to block.
- */
-
- _X11TransSetOption(dpy->trans_conn, TRANS_NONBLOCKING, 1);
-
- if (len != 0)
- return -1;
-#ifdef NX_TRANS_SOCKET
- if (_NXDisplayWriteFunction != NULL) {
- (*_NXDisplayWriteFunction)(dpy, len);
- }
-#ifdef NX_TRANS_CHANGE
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
-#endif
-#endif
-
-#ifdef K5AUTH
- if (auth_length == 14 &&
- !strncmp(auth_proto, "MIT-KERBEROS-5", 14))
- {
- return k5_clientauth(dpy, prefix);
- } else
-#endif
- return 0;
-}
-
-
-
-#ifdef SECURE_RPC
-#include <rpc/rpc.h>
-#ifdef ultrix
-#include <time.h>
-#include <rpc/auth_des.h>
-#endif
-#endif
-
-#ifdef HASXDMAUTH
-#include <time.h>
-#define Time_t time_t
-#endif
-
-/*
- * First, a routine for setting authorization data
- */
-static int xauth_namelen = 0;
-static char *xauth_name = NULL; /* NULL means use default mechanism */
-static int xauth_datalen = 0;
-static char *xauth_data = NULL; /* NULL means get default data */
-
-/*
- * This is a list of the authorization names which Xlib currently supports.
- * Xau will choose the file entry which matches the earliest entry in this
- * array, allowing us to prioritize these in terms of the most secure first
- */
-
-static char *default_xauth_names[] = {
-#ifdef K5AUTH
- "MIT-KERBEROS-5",
-#endif
-#ifdef SECURE_RPC
- "SUN-DES-1",
-#endif
-#ifdef HASXDMAUTH
- "XDM-AUTHORIZATION-1",
-#endif
- "MIT-MAGIC-COOKIE-1"
-};
-
-static _Xconst int default_xauth_lengths[] = {
-#ifdef K5AUTH
- 14, /* strlen ("MIT-KERBEROS-5") */
-#endif
-#ifdef SECURE_RPC
- 9, /* strlen ("SUN-DES-1") */
-#endif
-#ifdef HASXDMAUTH
- 19, /* strlen ("XDM-AUTHORIZATION-1") */
-#endif
- 18 /* strlen ("MIT-MAGIC-COOKIE-1") */
-};
-
-#define NUM_DEFAULT_AUTH (sizeof (default_xauth_names) / sizeof (default_xauth_names[0]))
-
-static char **xauth_names = default_xauth_names;
-static _Xconst int *xauth_lengths = default_xauth_lengths;
-
-static int xauth_names_length = NUM_DEFAULT_AUTH;
-
-void XSetAuthorization (
- char *name, int namelen, /* *len are lengths of name and data */
- char *data, int datalen) /* name/data are NULL or arbitrary array of bytes */
-{
- char *tmpname, *tmpdata;
-
- _XLockMutex(_Xglobal_lock);
- if (xauth_name) Xfree (xauth_name); /* free any existing data */
- if (xauth_data) Xfree (xauth_data);
-
- xauth_name = xauth_data = NULL; /* mark it no longer valid */
- xauth_namelen = xauth_datalen = 0;
- _XUnlockMutex(_Xglobal_lock);
-
- if (namelen < 0) namelen = 0; /* check for bogus inputs */
- if (datalen < 0) datalen = 0; /* maybe should return? */
-
- if (namelen > 0) { /* try to allocate space */
- tmpname = Xmalloc ((unsigned) namelen);
- if (!tmpname) return;
- memcpy (tmpname, name, namelen);
- } else {
- tmpname = NULL;
- }
-
- if (datalen > 0) {
- tmpdata = Xmalloc ((unsigned) datalen);
- if (!tmpdata) {
- if (tmpname) (void) Xfree (tmpname);
- return;
- }
- memcpy (tmpdata, data, datalen);
- } else {
- tmpdata = NULL;
- }
-
- _XLockMutex(_Xglobal_lock);
- xauth_name = tmpname; /* and store the suckers */
- xauth_namelen = namelen;
- if (tmpname)
- {
- xauth_names = &xauth_name;
- xauth_lengths = &xauth_namelen;
- xauth_names_length = 1;
- }
- else
- {
- xauth_names = default_xauth_names;
- xauth_lengths = default_xauth_lengths;
- xauth_names_length = NUM_DEFAULT_AUTH;
- }
- xauth_data = tmpdata;
- xauth_datalen = datalen;
- _XUnlockMutex(_Xglobal_lock);
- return;
-}
-
-#ifdef SECURE_RPC
-/*
- * Create a credential that we can send to the X server.
- */
-static int
-auth_ezencode(
- char *servername,
- int window,
- char *cred_out,
- int *len)
-{
- AUTH *a;
- XDR xdr;
-
-#if defined(SVR4) && defined(sun)
- a = authdes_seccreate(servername, window, NULL, NULL);
-#else
- a = (AUTH *)authdes_create(servername, window, NULL, NULL);
-#endif
- if (a == (AUTH *)NULL) {
- perror("auth_create");
- return 0;
- }
- xdrmem_create(&xdr, cred_out, *len, XDR_ENCODE);
- if (AUTH_MARSHALL(a, &xdr) == FALSE) {
- perror("auth_marshall");
- AUTH_DESTROY(a);
- return 0;
- }
- *len = xdr_getpos(&xdr);
- AUTH_DESTROY(a);
- return 1;
-}
-#endif
-
-#ifdef K5AUTH
-#include <com_err.h>
-
-extern krb5_flags krb5_kdc_default_options;
-
-/*
- * k5_clientauth
- *
- * Returns non-zero if the setup prefix has been read,
- * so we can tell XOpenDisplay to not bother looking for it by
- * itself.
- */
-static int k5_clientauth(dpy, sprefix)
- Display *dpy;
- xConnSetupPrefix *sprefix;
-{
- krb5_error_code retval;
- xReq prefix;
- char *buf;
- CARD16 plen, tlen;
- krb5_data kbuf;
- krb5_ccache cc;
- krb5_creds creds;
- krb5_principal cprinc, sprinc;
- krb5_ap_rep_enc_part *repl;
-
- krb5_init_ets();
- /*
- * stage 0: get encoded principal and tgt from server
- */
- _XRead(dpy, (char *)&prefix, sz_xReq);
- if (prefix.reqType != 2 && prefix.reqType != 3)
- /* not an auth packet... so deal */
- if (prefix.reqType == 0 || prefix.reqType == 1)
- {
- memcpy((char *)sprefix, (char *)&prefix, sz_xReq);
- _XRead(dpy, (char *)sprefix + sz_xReq,
- sz_xConnSetupPrefix - sz_xReq); /* ewww... gross */
- return 1;
- }
- else
- {
- fprintf(stderr,
- "Xlib: Krb5 stage 0: got illegal connection setup success code %d\n",
- prefix.reqType);
- return -1;
- }
- if (prefix.data != 0)
- {
- fprintf(stderr, "Xlib: got out of sequence (%d) packet in Krb5 auth\n",
- prefix.data);
- return -1;
- }
- buf = (char *)malloc((prefix.length << 2) - sz_xReq);
- if (buf == NULL) /* malloc failed. Run away! */
- {
- fprintf(stderr, "Xlib: malloc bombed in Krb5 auth\n");
- return -1;
- }
- tlen = (prefix.length << 2) - sz_xReq;
- _XRead(dpy, buf, tlen);
- if (prefix.reqType == 2 && tlen < 6)
- {
- fprintf(stderr, "Xlib: Krb5 stage 0 reply from server too short\n");
- free(buf);
- return -1;
- }
- if (prefix.reqType == 2)
- {
- plen = *(CARD16 *)buf;
- kbuf.data = buf + 2;
- kbuf.length = (plen > tlen) ? tlen : plen;
- }
- else
- {
- kbuf.data = buf;
- kbuf.length = tlen;
- }
- if (XauKrb5Decode(kbuf, &sprinc))
- {
- free(buf);
- fprintf(stderr, "Xlib: XauKrb5Decode bombed\n");
- return -1;
- }
- if (prefix.reqType == 3) /* do some special stuff here */
- {
- char *sname, *hostname = NULL;
-
- sname = (char *)malloc(krb5_princ_component(sprinc, 0)->length + 1);
- if (sname == NULL)
- {
- free(buf);
- krb5_free_principal(sprinc);
- fprintf(stderr, "Xlib: malloc bombed in Krb5 auth\n");
- return -1;
- }
- memcpy(sname, krb5_princ_component(sprinc, 0)->data,
- krb5_princ_component(sprinc, 0)->length);
- sname[krb5_princ_component(sprinc, 0)->length] = '\0';
- krb5_free_principal(sprinc);
- if (dpy->display_name[0] != ':') /* hunt for a hostname */
- {
- char *t;
-
- if ((hostname = (char *)malloc(strlen(dpy->display_name)))
- == NULL)
- {
- free(buf);
- free(sname);
- fprintf(stderr, "Xlib: malloc bombed in Krb5 auth\n");
- return -1;
- }
- strcpy(hostname, dpy->display_name);
- t = strchr(hostname, ':');
- if (t == NULL)
- {
- free(buf);
- free(sname);
- free(hostname);
- fprintf(stderr,
- "Xlib: shouldn't get here! malformed display name.");
- return -1;
- }
- if ((t - hostname + 1 < strlen(hostname)) && t[1] == ':')
- t++;
- *t = '\0'; /* truncate the dpy number out */
- }
- retval = krb5_sname_to_principal(hostname, sname,
- KRB5_NT_SRV_HST, &sprinc);
- free(sname);
- if (hostname)
- free(hostname);
- if (retval)
- {
- free(buf);
- fprintf(stderr, "Xlib: krb5_sname_to_principal failed: %s\n",
- error_message(retval));
- return -1;
- }
- }
- if (retval = krb5_cc_default(&cc))
- {
- free(buf);
- krb5_free_principal(sprinc);
- fprintf(stderr, "Xlib: krb5_cc_default failed: %s\n",
- error_message(retval));
- return -1;
- }
- if (retval = krb5_cc_get_principal(cc, &cprinc))
- {
- free(buf);
- krb5_free_principal(sprinc);
- fprintf(stderr, "Xlib: cannot get Kerberos principal from \"%s\": %s\n",
- krb5_cc_default_name(), error_message(retval));
- return -1;
- }
- bzero((char *)&creds, sizeof(creds));
- creds.server = sprinc;
- creds.client = cprinc;
- if (prefix.reqType == 2)
- {
- creds.second_ticket.length = tlen - plen - 2;
- creds.second_ticket.data = buf + 2 + plen;
- retval = krb5_get_credentials(KRB5_GC_USER_USER |
- krb5_kdc_default_options,
- cc, &creds);
- }
- else
- retval = krb5_get_credentials(krb5_kdc_default_options,
- cc, &creds);
- if (retval)
- {
- free(buf);
- krb5_free_cred_contents(&creds);
- fprintf(stderr, "Xlib: cannot get Kerberos credentials: %s\n",
- error_message(retval));
- return -1;
- }
- /*
- * now format the ap_req to send to the server
- */
- if (prefix.reqType == 2)
- retval = krb5_mk_req_extended(AP_OPTS_USE_SESSION_KEY |
- AP_OPTS_MUTUAL_REQUIRED, NULL,
- 0, 0, NULL, cc,
- &creds, NULL, &kbuf);
- else
- retval = krb5_mk_req_extended(AP_OPTS_MUTUAL_REQUIRED, NULL,
- 0, 0, NULL, cc, &creds, NULL,
- &kbuf);
- free(buf);
- if (retval) /* Some manner of Kerberos lossage */
- {
- krb5_free_cred_contents(&creds);
- fprintf(stderr, "Xlib: krb5_mk_req_extended failed: %s\n",
- error_message(retval));
- return -1;
- }
- prefix.reqType = 1;
- prefix.data = 0;
- prefix.length = (kbuf.length + sz_xReq + 3) >> 2;
- /*
- * stage 1: send ap_req to server
- */
- _XSend(dpy, (char *)&prefix, sz_xReq);
- _XSend(dpy, (char *)kbuf.data, kbuf.length);
- free(kbuf.data);
- /*
- * stage 2: get ap_rep from server to mutually authenticate
- */
- _XRead(dpy, (char *)&prefix, sz_xReq);
- if (prefix.reqType != 2)
- if (prefix.reqType == 0 || prefix.reqType == 1)
- {
- memcpy((char *)sprefix, (char *)&prefix, sz_xReq);
- _XRead(dpy, (char *)sprefix + sz_xReq,
- sz_xConnSetupPrefix - sz_xReq);
- return 1;
- }
- else
- {
- fprintf(stderr,
- "Xlib: Krb5 stage 2: got illegal connection setup success code %d\n",
- prefix.reqType);
- return -1;
- }
- if (prefix.data != 2)
- return -1;
- kbuf.length = (prefix.length << 2) - sz_xReq;
- kbuf.data = (char *)malloc(kbuf.length);
- if (kbuf.data == NULL)
- {
- fprintf(stderr, "Xlib: malloc bombed in Krb5 auth\n");
- return -1;
- }
- _XRead(dpy, (char *)kbuf.data, kbuf.length);
- retval = krb5_rd_rep(&kbuf, &creds.keyblock, &repl);
- if (retval)
- {
- free(kbuf.data);
- fprintf(stderr, "Xlib: krb5_rd_rep failed: %s\n",
- error_message(retval));
- return -1;
- }
- free(kbuf.data);
- /*
- * stage 3: send a short ack to the server and return
- */
- prefix.reqType = 3;
- prefix.data = 0;
- prefix.length = sz_xReq >> 2;
- _XSend(dpy, (char *)&prefix, sz_xReq);
- return 0;
-}
-#endif /* K5AUTH */
-
-static void
-GetAuthorization(
- XtransConnInfo trans_conn,
- int family,
- char *saddr,
- int saddrlen,
- int idisplay,
- char **auth_namep, /* RETURN */
- int *auth_namelenp, /* RETURN */
- char **auth_datap, /* RETURN */
- int *auth_datalenp) /* RETURN */
-{
-#ifdef SECURE_RPC
- char rpc_cred[MAX_AUTH_BYTES];
-#endif
-#ifdef HASXDMAUTH
- unsigned char xdmcp_data[192/8];
-#endif
- char *auth_name;
- int auth_namelen;
- unsigned char *auth_data;
- int auth_datalen;
- Xauth *authptr = NULL;
-
-/*
- * Look up the authorization protocol name and data if necessary.
- */
- if (xauth_name && xauth_data) {
- auth_namelen = xauth_namelen;
- auth_name = xauth_name;
- auth_datalen = xauth_datalen;
- auth_data = (unsigned char *) xauth_data;
- } else {
- char dpynumbuf[40]; /* big enough to hold 2^64 and more */
- (void) sprintf (dpynumbuf, "%d", idisplay);
-
- authptr = XauGetBestAuthByAddr ((unsigned short) family,
- (unsigned short) saddrlen,
- saddr,
- (unsigned short) strlen (dpynumbuf),
- dpynumbuf,
- xauth_names_length,
- xauth_names,
- xauth_lengths);
- if (authptr) {
- auth_namelen = authptr->name_length;
- auth_name = (char *)authptr->name;
- auth_datalen = authptr->data_length;
- auth_data = (unsigned char *) authptr->data;
- } else {
- auth_namelen = 0;
- auth_name = NULL;
- auth_datalen = 0;
- auth_data = NULL;
- }
- }
-#ifdef HASXDMAUTH
- /*
- * build XDM-AUTHORIZATION-1 data
- */
- if (auth_namelen == 19 && !strncmp (auth_name, "XDM-AUTHORIZATION-1", 19))
- {
- int i, j;
- Time_t now;
- int family, addrlen;
- Xtransaddr *addr = NULL;
-
- for (j = 0; j < 8; j++)
- xdmcp_data[j] = auth_data[j];
-
- _X11TransGetMyAddr(trans_conn, &family, &addrlen, &addr);
-
- switch( family )
- {
-#ifdef AF_INET
- case AF_INET:
- {
- /*
- * addr will contain a sockaddr_in with all
- * of the members already in network byte order.
- */
-
- for(i=4; i<8; i++) /* do sin_addr */
- xdmcp_data[j++] = ((char *)addr)[i];
- for(i=2; i<4; i++) /* do sin_port */
- xdmcp_data[j++] = ((char *)addr)[i];
- break;
- }
-#endif /* AF_INET */
-#if defined(IPv6) && defined(AF_INET6)
- case AF_INET6:
- /* XXX This should probably never happen */
- {
- unsigned char ipv4mappedprefix[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };
-
- /* In the case of v4 mapped addresses send the v4
- part of the address - addr is already in network byte order */
- if (memcmp((char*)addr+8, ipv4mappedprefix, 12) == 0) {
- for (i = 20 ; i < 24; i++)
- xdmcp_data[j++] = ((char *)addr)[i];
-
- /* Port number */
- for (i=2; i<4; i++)
- xdmcp_data[j++] = ((char *)addr)[i];
- } else {
- /* Fake data to keep the data aligned. Otherwise the
- the server will bail about incorrect timing data */
- for (i = 0; i < 6; i++) {
- xdmcp_data[j++] = 0;
- }
- }
- break;
- }
-#endif /* AF_INET6 */
-#ifdef AF_UNIX
- case AF_UNIX:
- {
- /*
- * We don't use the sockaddr_un for this encoding.
- * Instead, we create a sockaddr_in filled with
- * a decreasing counter for the address, and the
- * pid for the port.
- */
-
- static unsigned long unix_addr = 0xFFFFFFFF;
- unsigned long the_addr;
- unsigned short the_port;
- unsigned long the_utime;
- struct timeval tp;
-
- X_GETTIMEOFDAY(&tp);
- _XLockMutex(_Xglobal_lock);
- the_addr = unix_addr--;
- _XUnlockMutex(_Xglobal_lock);
- the_utime = (unsigned long) tp.tv_usec;
- the_port = getpid ();
-
- xdmcp_data[j++] = (the_utime >> 24) & 0xFF;
- xdmcp_data[j++] = (the_utime >> 16) & 0xFF;
- xdmcp_data[j++] = ((the_utime >> 8) & 0xF0)
- | ((the_addr >> 8) & 0x0F);
- xdmcp_data[j++] = (the_addr >> 0) & 0xFF;
- xdmcp_data[j++] = (the_port >> 8) & 0xFF;
- xdmcp_data[j++] = (the_port >> 0) & 0xFF;
- break;
- }
-#endif /* AF_UNIX */
- default:
- /*
- * Need to return some kind of errro status here.
- * maybe a NULL auth??
- */
- break;
- } /* switch */
-
- if (addr)
- free ((char *) addr);
-
- time (&now);
- xdmcp_data[j++] = (now >> 24) & 0xFF;
- xdmcp_data[j++] = (now >> 16) & 0xFF;
- xdmcp_data[j++] = (now >> 8) & 0xFF;
- xdmcp_data[j++] = (now >> 0) & 0xFF;
- while (j < 192 / 8)
- xdmcp_data[j++] = 0;
- _XLockMutex(_Xglobal_lock);
- /* this function might use static data, hence the lock around it */
- XdmcpWrap (xdmcp_data, auth_data + 8,
- xdmcp_data, j);
- _XUnlockMutex(_Xglobal_lock);
- auth_data = xdmcp_data;
- auth_datalen = j;
- }
-#endif /* HASXDMAUTH */
-#ifdef SECURE_RPC
- /*
- * The SUN-DES-1 authorization protocol uses the
- * "secure RPC" mechanism in SunOS 4.0+.
- */
- if (auth_namelen == 9 && !strncmp(auth_name, "SUN-DES-1", 9)) {
- char servernetname[MAXNETNAMELEN + 1];
-
- /*
- * Copy over the server's netname from the authorization
- * data field filled in by XauGetAuthByAddr().
- */
- if (auth_datalen > MAXNETNAMELEN) {
- auth_datalen = 0;
- auth_data = NULL;
- } else {
- memcpy(servernetname, auth_data, auth_datalen);
- servernetname[auth_datalen] = '\0';
-
- auth_datalen = sizeof (rpc_cred);
- if (auth_ezencode(servernetname, 100, rpc_cred,
- &auth_datalen))
- auth_data = (unsigned char *) rpc_cred;
- else {
- auth_datalen = 0;
- auth_data = NULL;
- }
- }
- }
-#endif
- if (saddr) free ((char *) saddr);
- if ((*auth_namelenp = auth_namelen))
- {
- if ((*auth_namep = Xmalloc(auth_namelen)))
- memcpy(*auth_namep, auth_name, auth_namelen);
- else
- *auth_namelenp = 0;
- }
- else
- *auth_namep = NULL;
- if ((*auth_datalenp = auth_datalen))
- {
- if ((*auth_datap = Xmalloc(auth_datalen)))
- memcpy(*auth_datap, auth_data, auth_datalen);
- else
- *auth_datalenp = 0;
- }
- else
- *auth_datap = NULL;
- if (authptr) XauDisposeAuth (authptr);
-}
diff --git a/nx-X11/lib/X11/Context.c b/nx-X11/lib/X11/Context.c
deleted file mode 100644
index 8a078713a..000000000
--- a/nx-X11/lib/X11/Context.c
+++ /dev/null
@@ -1,302 +0,0 @@
-
-/***********************************************************
-Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-/*
-
-Copyright 1987, 1988, 1990, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/* This module implements a simple sparse array.
-
- XSaveContext(a,b,c,d) will store d in position (a,b,c) of the array.
- XFindContext(a,b,c,&d) will set d to be the value in position (a,b,c).
- XDeleteContext(a,b,c) will delete the entry in (a,b,c).
-
- a is a display id, b is a resource id, and c is a Context. d is just an
- XPointer. This code will work with any range of parameters, but is geared
- to be most efficient with very few (one or two) different a's.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-#ifdef XTHREADS
-#include "locking.h"
-#endif
-
-#define INITHASHMASK 63 /* Number of entries originally in the hash table. */
-
-typedef struct _TableEntryRec { /* Stores one entry. */
- XID rid;
- XContext context;
- XPointer data;
- struct _TableEntryRec *next;
-} TableEntryRec, *TableEntry;
-
-typedef struct _XContextDB { /* Stores hash table for one display. */
- TableEntry *table; /* Pointer to array of hash entries. */
- int mask; /* Current size of hash table minus 1. */
- int numentries; /* Number of entries currently in table. */
-#ifdef XTHREADS
- LockInfoRec linfo;
-#endif
-} DBRec, *DB;
-
-#ifdef MOTIFBC
-static DB NullDB = (DB)0;
-#endif
-
-/* Given an XID and a context, returns a value between 0 and HashSize-1.
- Currently, this requires that HashSize be a power of 2.
-*/
-
-#define Hash(db,rid,context) \
- (db)->table[(((rid) << 1) + context) & (db)->mask]
-
-/* Resize the given db */
-
-static void ResizeTable(DB db)
-{
- TableEntry *otable;
- register TableEntry entry, next, *pold, *head;
- register int i, j;
-
- otable = db->table;
- for (i = INITHASHMASK+1; (i + i) < db->numentries; )
- i += i;
- db->table = Xcalloc(i, sizeof(TableEntry));
- if (!db->table) {
- db->table = otable;
- return;
- }
- j = db->mask + 1;
- db->mask = i - 1;
- for (pold = otable ; --j >= 0; pold++) {
- for (entry = *pold; entry; entry = next) {
- next = entry->next;
- head = &Hash(db, entry->rid, entry->context);
- entry->next = *head;
- *head = entry;
- }
- }
- Xfree(otable);
-}
-
-static void _XFreeContextDB(Display *display)
-{
- register DB db;
- register int i;
- register TableEntry *pentry, entry, next;
-
- db = display->context_db;
- if (db) {
- for (i = db->mask + 1, pentry = db->table ; --i >= 0; pentry++) {
- for (entry = *pentry; entry; entry = next) {
- next = entry->next;
- Xfree(entry);
- }
- }
- Xfree(db->table);
- _XFreeMutex(&db->linfo);
- Xfree(db);
- }
-}
-
-/* Public routines. */
-
-/* Save the given value of data to correspond with the keys XID and context.
- Returns nonzero error code if an error has occured, 0 otherwise.
- Possible errors are Out-of-memory.
-*/
-
-int XSaveContext(
- Display *display,
- register XID rid,
- register XContext context,
- _Xconst char* data)
-{
- DB *pdb;
- register DB db;
- TableEntry *head;
- register TableEntry entry;
-
-#ifdef MOTIFBC
- if (!display) {
- pdb = &NullDB;
- db = *pdb;
- } else
-#endif
- {
- LockDisplay(display);
- pdb = &display->context_db;
- db = *pdb;
- UnlockDisplay(display);
- }
- if (!db) {
- db = Xmalloc(sizeof(DBRec));
- if (!db)
- return XCNOMEM;
- db->mask = INITHASHMASK;
- db->table = Xcalloc(db->mask + 1, sizeof(TableEntry));
- if (!db->table) {
- Xfree(db);
- return XCNOMEM;
- }
- db->numentries = 0;
- _XCreateMutex(&db->linfo);
-#ifdef MOTIFBC
- if (!display) *pdb = db; else
-#endif
- {
- LockDisplay(display);
- *pdb = db;
- display->free_funcs->context_db = _XFreeContextDB;
- UnlockDisplay(display);
- }
- }
- _XLockMutex(&db->linfo);
- head = &Hash(db, rid, context);
- _XUnlockMutex(&db->linfo);
- for (entry = *head; entry; entry = entry->next) {
- if (entry->rid == rid && entry->context == context) {
- entry->data = (XPointer)data;
- return 0;
- }
- }
- entry = Xmalloc(sizeof(TableEntryRec));
- if (!entry)
- return XCNOMEM;
- entry->rid = rid;
- entry->context = context;
- entry->data = (XPointer)data;
- entry->next = *head;
- *head = entry;
- _XLockMutex(&db->linfo);
- db->numentries++;
- if (db->numentries > (db->mask << 2))
- ResizeTable(db);
- _XUnlockMutex(&db->linfo);
- return 0;
-}
-
-
-
-/* Given an XID and context, returns the associated data. Note that data
- here is a pointer since it is a return value. Returns nonzero error code
- if an error has occured, 0 otherwise. Possible errors are Entry-not-found.
-*/
-
-int XFindContext(Display *display, XID rid, XContext context, XPointer *data)
-{
- register DB db;
- register TableEntry entry;
-
-#ifdef MOTIFBC
- if (!display) db = NullDB; else
-#endif
- {
- LockDisplay(display);
- db = display->context_db;
- UnlockDisplay(display);
- }
- if (!db)
- return XCNOENT;
- _XLockMutex(&db->linfo);
- for (entry = Hash(db, rid, context); entry; entry = entry->next)
- {
- if (entry->rid == rid && entry->context == context) {
- *data = (XPointer)entry->data;
- _XUnlockMutex(&db->linfo);
- return 0;
- }
- }
- _XUnlockMutex(&db->linfo);
- return XCNOENT;
-}
-
-
-
-/* Deletes the entry for the given XID and context from the datastructure.
- This returns the same thing that FindContext would have returned if called
- with the same arguments.
-*/
-
-int XDeleteContext(Display *display, XID rid, XContext context)
-{
- register DB db;
- register TableEntry entry, *prev;
-
-#ifdef MOTIFBC
- if (!display) db = NullDB; else
-#endif
- {
- LockDisplay(display);
- db = display->context_db;
- UnlockDisplay(display);
- }
- if (!db)
- return XCNOENT;
- _XLockMutex(&db->linfo);
- for (prev = &Hash(db, rid, context);
- (entry = *prev);
- prev = &entry->next) {
- if (entry->rid == rid && entry->context == context) {
- *prev = entry->next;
- Xfree(entry);
- db->numentries--;
- if (db->numentries < db->mask && db->mask > INITHASHMASK)
- ResizeTable(db);
- _XUnlockMutex(&db->linfo);
- return 0;
- }
- }
- _XUnlockMutex(&db->linfo);
- return XCNOENT;
-}
diff --git a/nx-X11/lib/X11/ConvSel.c b/nx-X11/lib/X11/ConvSel.c
deleted file mode 100644
index fb6e8e338..000000000
--- a/nx-X11/lib/X11/ConvSel.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1986,1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XConvertSelection(
- register Display *dpy,
- Atom selection,
- Atom target,
- Atom property,
- Window requestor,
- Time time)
-{
- register xConvertSelectionReq *req;
-
- LockDisplay(dpy);
- GetReq(ConvertSelection, req);
- req->selection = selection;
- req->target = target;
- req->property = property;
- req->requestor = requestor;
- req->time = time;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/CopyArea.c b/nx-X11/lib/X11/CopyArea.c
deleted file mode 100644
index 582582120..000000000
--- a/nx-X11/lib/X11/CopyArea.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XCopyArea(
- register Display *dpy,
- Drawable src_drawable,
- Drawable dst_drawable,
- GC gc,
- int src_x,
- int src_y,
- unsigned int width,
- unsigned int height,
- int dst_x,
- int dst_y)
-
-{
- register xCopyAreaReq *req;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq(CopyArea, req);
- req->srcDrawable = src_drawable;
- req->dstDrawable = dst_drawable;
- req->gc = gc->gid;
- req->srcX = src_x;
- req->srcY = src_y;
- req->dstX = dst_x;
- req->dstY = dst_y;
- req->width = width;
- req->height = height;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/CopyCmap.c b/nx-X11/lib/X11/CopyCmap.c
deleted file mode 100644
index 5444550cd..000000000
--- a/nx-X11/lib/X11/CopyCmap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#else
-#define XCMS 1
-#endif
-#include "Xlibint.h"
-
-#if XCMS
-#include "Xcmsint.h"
-
-/* cmsCmap.c */
-extern XcmsCmapRec * _XcmsCopyCmapRecAndFree(Display *dpy,
- Colormap src_cmap,
- Colormap copy_cmap);
-#endif
-
-Colormap XCopyColormapAndFree(
- register Display *dpy,
- Colormap src_cmap)
-{
- Colormap mid;
- register xCopyColormapAndFreeReq *req;
-
- LockDisplay(dpy);
- GetReq(CopyColormapAndFree, req);
-
- mid = req->mid = XAllocID(dpy);
- req->srcCmap = src_cmap;
-
- UnlockDisplay(dpy);
- SyncHandle();
-
-#if XCMS
- _XcmsCopyCmapRecAndFree(dpy, src_cmap, mid);
-#endif
-
- return(mid);
-}
diff --git a/nx-X11/lib/X11/CopyGC.c b/nx-X11/lib/X11/CopyGC.c
deleted file mode 100644
index 9c71249cf..000000000
--- a/nx-X11/lib/X11/CopyGC.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XCopyGC (
- register Display *dpy,
- GC srcGC,
- unsigned long mask, /* which ones to set initially */
- GC destGC)
-{
- register XGCValues *destgv = &destGC->values,
- *srcgv = &srcGC->values;
- register xCopyGCReq *req;
- register _XExtension *ext;
-
- LockDisplay(dpy);
-
- mask &= (1L << (GCLastBit + 1)) - 1;
- /* if some of the source values to be copied are "dirty", flush them
- out before sending the CopyGC request. */
- if (srcGC->dirty & mask)
- _XFlushGCCache(dpy, srcGC);
-
- /* mark the copied values "not dirty" in the destination. */
- destGC->dirty &= ~mask;
-
- GetReq(CopyGC, req);
- req->srcGC = srcGC->gid;
- req->dstGC = destGC->gid;
- req->mask = mask;
-
- if (mask & GCFunction)
- destgv->function = srcgv->function;
-
- if (mask & GCPlaneMask)
- destgv->plane_mask = srcgv->plane_mask;
-
- if (mask & GCForeground)
- destgv->foreground = srcgv->foreground;
-
- if (mask & GCBackground)
- destgv->background = srcgv->background;
-
- if (mask & GCLineWidth)
- destgv->line_width = srcgv->line_width;
-
- if (mask & GCLineStyle)
- destgv->line_style = srcgv->line_style;
-
- if (mask & GCCapStyle)
- destgv->cap_style = srcgv->cap_style;
-
- if (mask & GCJoinStyle)
- destgv->join_style = srcgv->join_style;
-
- if (mask & GCFillStyle)
- destgv->fill_style = srcgv->fill_style;
-
- if (mask & GCFillRule)
- destgv->fill_rule = srcgv->fill_rule;
-
- if (mask & GCArcMode)
- destgv->arc_mode = srcgv->arc_mode;
-
- if (mask & GCTile)
- destgv->tile = srcgv->tile;
-
- if (mask & GCStipple)
- destgv->stipple = srcgv->stipple;
-
- if (mask & GCTileStipXOrigin)
- destgv->ts_x_origin = srcgv->ts_x_origin;
-
- if (mask & GCTileStipYOrigin)
- destgv->ts_y_origin = srcgv->ts_y_origin;
-
- if (mask & GCFont)
- destgv->font = srcgv->font;
-
- if (mask & GCSubwindowMode)
- destgv->subwindow_mode = srcgv->subwindow_mode;
-
- if (mask & GCGraphicsExposures)
- destgv->graphics_exposures = srcgv->graphics_exposures;
-
- if (mask & GCClipXOrigin)
- destgv->clip_x_origin = srcgv->clip_x_origin;
-
- if (mask & GCClipYOrigin)
- destgv->clip_y_origin = srcgv->clip_y_origin;
-
- if (mask & GCClipMask) {
- destGC->rects = srcGC->rects;
- destgv->clip_mask = srcgv->clip_mask;
- }
-
- if (mask & GCDashOffset)
- destgv->dash_offset = srcgv->dash_offset;
-
- if (mask & GCDashList) {
- destGC->dashes = srcGC->dashes;
- destgv->dashes = srcgv->dashes;
- }
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->copy_GC) (*ext->copy_GC)(dpy, destGC, &ext->codes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
diff --git a/nx-X11/lib/X11/CopyPlane.c b/nx-X11/lib/X11/CopyPlane.c
deleted file mode 100644
index 818687687..000000000
--- a/nx-X11/lib/X11/CopyPlane.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XCopyPlane(
- register Display *dpy,
- Drawable src_drawable,
- Drawable dst_drawable,
- GC gc,
- int src_x,
- int src_y,
- unsigned int width,
- unsigned int height,
- int dst_x,
- int dst_y,
- unsigned long bit_plane)
-
-{
- register xCopyPlaneReq *req;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq(CopyPlane, req);
- req->srcDrawable = src_drawable;
- req->dstDrawable = dst_drawable;
- req->gc = gc->gid;
- req->srcX = src_x;
- req->srcY = src_y;
- req->dstX = dst_x;
- req->dstY = dst_y;
- req->width = width;
- req->height = height;
- req->bitPlane = bit_plane;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/Cr.h b/nx-X11/lib/X11/Cr.h
deleted file mode 100644
index e71d86d1c..000000000
--- a/nx-X11/lib/X11/Cr.h
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef _CR_H_
-#define _CR_H_
-
-#include <nx-X11/Xlib.h>
-
-extern int _XUpdateGCCache(
- register GC gc,
- register unsigned long mask,
- register XGCValues *attr);
-extern void _XNoticeCreateBitmap(
- Display *dpy,
- Pixmap pid,
- unsigned int width,
- unsigned int height);
-extern void _XNoticePutBitmap(
- Display *dpy,
- Drawable draw,
- XImage *image);
-extern Cursor _XTryShapeBitmapCursor(
- Display *dpy,
- Pixmap source,
- Pixmap mask,
- XColor *foreground,
- XColor *background,
- unsigned int x,
- unsigned int y);
-
-#endif /* _CR_H_ */
diff --git a/nx-X11/lib/X11/CrBFData.c b/nx-X11/lib/X11/CrBFData.c
deleted file mode 100644
index 6708a9b91..000000000
--- a/nx-X11/lib/X11/CrBFData.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlib.h"
-
-/*
- * XCreateBitmapFromData: Routine to make a pixmap of depth 1 from user
- * supplied data.
- * D is any drawable on the same screen that the pixmap will be used in.
- * Data is a pointer to the bit data, and
- * width & height give the size in bits of the pixmap.
- *
- * The following format is assumed for data:
- *
- * format=XYPixmap
- * bit_order=LSBFirst
- * byte_order=LSBFirst
- * padding=8
- * bitmap_unit=8
- * xoffset=0
- * no extra bytes per line
- */
-Pixmap XCreateBitmapFromData(
- Display *display,
- Drawable d,
- _Xconst char *data,
- unsigned int width,
- unsigned int height)
-{
- Pixmap pix = XCreatePixmap(display, d, width, height, 1);
- GC gc = XCreateGC(display, pix, (unsigned long) 0, (XGCValues *) 0);
- if (gc == NULL) {
- XFreePixmap(display, pix);
- return (Pixmap) None;
- } else {
- XImage ximage = {
- .height = height,
- .width = width,
- .depth = 1,
- .bits_per_pixel = 1,
- .xoffset = 0,
- .format = XYPixmap,
- .data = (char *) data,
- .byte_order = LSBFirst,
- .bitmap_unit = 8,
- .bitmap_bit_order = LSBFirst,
- .bitmap_pad = 8,
- .bytes_per_line = (width + 7) / 8,
- };
- XPutImage(display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
- XFreeGC(display, gc);
- return(pix);
- }
-}
diff --git a/nx-X11/lib/X11/CrCmap.c b/nx-X11/lib/X11/CrCmap.c
deleted file mode 100644
index 9904c7dda..000000000
--- a/nx-X11/lib/X11/CrCmap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-
-Colormap XCreateColormap(
- register Display *dpy,
- Window w,
- Visual *visual,
- int alloc)
-{
- register xCreateColormapReq *req;
- Colormap mid;
-
- LockDisplay(dpy);
- GetReq(CreateColormap, req);
- req->window = w;
- mid = req->mid = XAllocID(dpy);
- req->alloc = alloc;
- if (visual == CopyFromParent) req->visual = CopyFromParent;
- else req->visual = visual->visualid;
-
- UnlockDisplay(dpy);
- SyncHandle();
-
-#ifdef XCMS
- _XcmsAddCmapRec(dpy, mid, w, visual);
-#endif
-
- return(mid);
-}
diff --git a/nx-X11/lib/X11/CrCursor.c b/nx-X11/lib/X11/CrCursor.c
deleted file mode 100644
index c8c174e5f..000000000
--- a/nx-X11/lib/X11/CrCursor.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#ifdef USE_DYNAMIC_XCURSOR
-Cursor
-_XTryShapeBitmapCursor (Display *dpy,
- Pixmap source,
- Pixmap mask,
- XColor *foreground,
- XColor *background,
- unsigned int x,
- unsigned int y);
-#endif
-
-Cursor XCreatePixmapCursor(
- register Display *dpy,
- Pixmap source,
- Pixmap mask,
- XColor *foreground,
- XColor *background,
- unsigned int x,
- unsigned int y)
-
-{
- register xCreateCursorReq *req;
- Cursor cid;
-
-#ifdef USE_DYNAMIC_XCURSOR
- cid = _XTryShapeBitmapCursor (dpy, source, mask,
- foreground, background, x, y);
- if (cid)
- return cid;
-#endif
- LockDisplay(dpy);
- GetReq(CreateCursor, req);
- req->cid = cid = XAllocID(dpy);
- req->source = source;
- req->mask = mask;
- req->foreRed = foreground->red;
- req->foreGreen = foreground->green;
- req->foreBlue = foreground->blue;
- req->backRed = background->red;
- req->backGreen = background->green;
- req->backBlue = background->blue;
- req->x = x;
- req->y = y;
- UnlockDisplay(dpy);
- SyncHandle();
- return (cid);
-}
-
diff --git a/nx-X11/lib/X11/CrGC.c b/nx-X11/lib/X11/CrGC.c
deleted file mode 100644
index 2d5f17c00..000000000
--- a/nx-X11/lib/X11/CrGC.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Cr.h"
-
-static XGCValues const initial_GC = {
- GXcopy, /* function */
- AllPlanes, /* plane_mask */
- 0L, /* foreground */
- 1L, /* background */
- 0, /* line_width */
- LineSolid, /* line_style */
- CapButt, /* cap_style */
- JoinMiter, /* join_style */
- FillSolid, /* fill_style */
- EvenOddRule,/* fill_rule */
- ArcPieSlice,/* arc_mode */
- (Pixmap)~0L,/* tile, impossible (unknown) resource */
- (Pixmap)~0L,/* stipple, impossible (unknown) resource */
- 0, /* ts_x_origin */
- 0, /* ts_y_origin */
- (Font)~0L, /* font, impossible (unknown) resource */
- ClipByChildren, /* subwindow_mode */
- True, /* graphics_exposures */
- 0, /* clip_x_origin */
- 0, /* clip_y_origin */
- None, /* clip_mask */
- 0, /* dash_offset */
- 4 /* dashes (list [4,4]) */
-};
-
-static void _XGenerateGCList(
- register Display *dpy,
- GC gc,
- xReq *req);
-
-GC XCreateGC (
- register Display *dpy,
- Drawable d, /* Window or Pixmap for which depth matches */
- unsigned long valuemask, /* which ones to set initially */
- XGCValues *values) /* the values themselves */
-{
- register GC gc;
- register xCreateGCReq *req;
- register _XExtension *ext;
-
- LockDisplay(dpy);
- if ((gc = Xmalloc (sizeof(struct _XGC))) == NULL) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (NULL);
- }
- gc->rects = 0;
- gc->dashes = 0;
- gc->ext_data = NULL;
- gc->values = initial_GC;
- gc->dirty = 0L;
-
- valuemask &= (1L << (GCLastBit + 1)) - 1;
- if (valuemask) _XUpdateGCCache (gc, valuemask, values);
-
- GetReq(CreateGC, req);
- req->drawable = d;
- req->gc = gc->gid = XAllocID(dpy);
-
- if ((req->mask = gc->dirty))
- _XGenerateGCList (dpy, gc, (xReq *) req);
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->create_GC) (*ext->create_GC)(dpy, gc, &ext->codes);
- gc->dirty = 0L; /* allow extensions to see dirty bits */
- UnlockDisplay(dpy);
- SyncHandle();
- return (gc);
- }
-
-/*
- * GenerateGCList looks at the GC dirty bits, and appends all the required
- * long words to the request being generated.
- */
-
-static void
-_XGenerateGCList (
- register Display *dpy,
- GC gc,
- xReq *req)
- {
- unsigned long values[32];
- register unsigned long *value = values;
- long nvalues;
- register XGCValues *gv = &gc->values;
- register unsigned long dirty = gc->dirty;
-
- /*
- * Note: The order of these tests are critical; the order must be the
- * same as the GC mask bits in the word.
- */
- if (dirty & GCFunction) *value++ = gv->function;
- if (dirty & GCPlaneMask) *value++ = gv->plane_mask;
- if (dirty & GCForeground) *value++ = gv->foreground;
- if (dirty & GCBackground) *value++ = gv->background;
- if (dirty & GCLineWidth) *value++ = gv->line_width;
- if (dirty & GCLineStyle) *value++ = gv->line_style;
- if (dirty & GCCapStyle) *value++ = gv->cap_style;
- if (dirty & GCJoinStyle) *value++ = gv->join_style;
- if (dirty & GCFillStyle) *value++ = gv->fill_style;
- if (dirty & GCFillRule) *value++ = gv->fill_rule;
- if (dirty & GCTile) *value++ = gv->tile;
- if (dirty & GCStipple) *value++ = gv->stipple;
- if (dirty & GCTileStipXOrigin) *value++ = gv->ts_x_origin;
- if (dirty & GCTileStipYOrigin) *value++ = gv->ts_y_origin;
- if (dirty & GCFont) *value++ = gv->font;
- if (dirty & GCSubwindowMode) *value++ = gv->subwindow_mode;
- if (dirty & GCGraphicsExposures) *value++ = gv->graphics_exposures;
- if (dirty & GCClipXOrigin) *value++ = gv->clip_x_origin;
- if (dirty & GCClipYOrigin) *value++ = gv->clip_y_origin;
- if (dirty & GCClipMask) *value++ = gv->clip_mask;
- if (dirty & GCDashOffset) *value++ = gv->dash_offset;
- if (dirty & GCDashList) *value++ = gv->dashes;
- if (dirty & GCArcMode) *value++ = gv->arc_mode;
-
- req->length += (nvalues = value - values);
-
- /*
- * note: Data is a macro that uses its arguments multiple
- * times, so "nvalues" is changed in a separate assignment
- * statement
- */
-
- nvalues <<= 2;
- Data32 (dpy, (long *) values, nvalues);
-
- }
-
-
-int
-_XUpdateGCCache (
- register GC gc,
- register unsigned long mask,
- register XGCValues *attr)
-{
- register XGCValues *gv = &gc->values;
-
- if (mask & GCFunction)
- if (gv->function != attr->function) {
- gv->function = attr->function;
- gc->dirty |= GCFunction;
- }
-
- if (mask & GCPlaneMask)
- if (gv->plane_mask != attr->plane_mask) {
- gv->plane_mask = attr->plane_mask;
- gc->dirty |= GCPlaneMask;
- }
-
- if (mask & GCForeground)
- if (gv->foreground != attr->foreground) {
- gv->foreground = attr->foreground;
- gc->dirty |= GCForeground;
- }
-
- if (mask & GCBackground)
- if (gv->background != attr->background) {
- gv->background = attr->background;
- gc->dirty |= GCBackground;
- }
-
- if (mask & GCLineWidth)
- if (gv->line_width != attr->line_width) {
- gv->line_width = attr->line_width;
- gc->dirty |= GCLineWidth;
- }
-
- if (mask & GCLineStyle)
- if (gv->line_style != attr->line_style) {
- gv->line_style = attr->line_style;
- gc->dirty |= GCLineStyle;
- }
-
- if (mask & GCCapStyle)
- if (gv->cap_style != attr->cap_style) {
- gv->cap_style = attr->cap_style;
- gc->dirty |= GCCapStyle;
- }
-
- if (mask & GCJoinStyle)
- if (gv->join_style != attr->join_style) {
- gv->join_style = attr->join_style;
- gc->dirty |= GCJoinStyle;
- }
-
- if (mask & GCFillStyle)
- if (gv->fill_style != attr->fill_style) {
- gv->fill_style = attr->fill_style;
- gc->dirty |= GCFillStyle;
- }
-
- if (mask & GCFillRule)
- if (gv->fill_rule != attr->fill_rule) {
- gv->fill_rule = attr->fill_rule;
- gc->dirty |= GCFillRule;
- }
-
- if (mask & GCArcMode)
- if (gv->arc_mode != attr->arc_mode) {
- gv->arc_mode = attr->arc_mode;
- gc->dirty |= GCArcMode;
- }
-
- /* always write through tile change, since client may have changed pixmap contents */
- if (mask & GCTile) {
- gv->tile = attr->tile;
- gc->dirty |= GCTile;
- }
-
- /* always write through stipple change, since client may have changed pixmap contents */
- if (mask & GCStipple) {
- gv->stipple = attr->stipple;
- gc->dirty |= GCStipple;
- }
-
- if (mask & GCTileStipXOrigin)
- if (gv->ts_x_origin != attr->ts_x_origin) {
- gv->ts_x_origin = attr->ts_x_origin;
- gc->dirty |= GCTileStipXOrigin;
- }
-
- if (mask & GCTileStipYOrigin)
- if (gv->ts_y_origin != attr->ts_y_origin) {
- gv->ts_y_origin = attr->ts_y_origin;
- gc->dirty |= GCTileStipYOrigin;
- }
-
- if (mask & GCFont)
- if (gv->font != attr->font) {
- gv->font = attr->font;
- gc->dirty |= GCFont;
- }
-
- if (mask & GCSubwindowMode)
- if (gv->subwindow_mode != attr->subwindow_mode) {
- gv->subwindow_mode = attr->subwindow_mode;
- gc->dirty |= GCSubwindowMode;
- }
-
- if (mask & GCGraphicsExposures)
- if (gv->graphics_exposures != attr->graphics_exposures) {
- gv->graphics_exposures = attr->graphics_exposures;
- gc->dirty |= GCGraphicsExposures;
- }
-
- if (mask & GCClipXOrigin)
- if (gv->clip_x_origin != attr->clip_x_origin) {
- gv->clip_x_origin = attr->clip_x_origin;
- gc->dirty |= GCClipXOrigin;
- }
-
- if (mask & GCClipYOrigin)
- if (gv->clip_y_origin != attr->clip_y_origin) {
- gv->clip_y_origin = attr->clip_y_origin;
- gc->dirty |= GCClipYOrigin;
- }
-
- /* always write through mask change, since client may have changed pixmap contents */
- if (mask & GCClipMask) {
- gv->clip_mask = attr->clip_mask;
- gc->dirty |= GCClipMask;
- gc->rects = 0;
- }
-
- if (mask & GCDashOffset)
- if (gv->dash_offset != attr->dash_offset) {
- gv->dash_offset = attr->dash_offset;
- gc->dirty |= GCDashOffset;
- }
-
- if (mask & GCDashList)
- if ((gv->dashes != attr->dashes) || (gc->dashes == True)) {
- gv->dashes = attr->dashes;
- gc->dirty |= GCDashList;
- gc->dashes = 0;
- }
- return 0;
-}
-
-/* can only call when display is already locked. */
-
-void _XFlushGCCache(
- Display *dpy,
- GC gc)
-{
- register xChangeGCReq *req;
- register _XExtension *ext;
-
- if (gc->dirty) {
- GetReq(ChangeGC, req);
- req->gc = gc->gid;
- req->mask = gc->dirty;
- _XGenerateGCList (dpy, gc, (xReq *) req);
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->flush_GC) (*ext->flush_GC)(dpy, gc, &ext->codes);
- gc->dirty = 0L; /* allow extensions to see dirty bits */
- }
-}
-
-void
-XFlushGC(
- Display *dpy,
- GC gc)
-{
- FlushGC(dpy, gc);
-}
-
-GContext XGContextFromGC(GC gc)
-{
- return (gc->gid);
-}
diff --git a/nx-X11/lib/X11/CrGlCur.c b/nx-X11/lib/X11/CrGlCur.c
deleted file mode 100644
index 88133b7f4..000000000
--- a/nx-X11/lib/X11/CrGlCur.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#ifdef USE_DYNAMIC_XCURSOR
-
-#include <stdio.h>
-#include <string.h>
-#include <dlfcn.h>
-#include "Cr.h"
-
-#ifdef __CYGWIN__
-#define LIBXCURSOR "cygXcursor-1.dll"
-#endif
-
-typedef void *XModuleType;
-
-#ifndef LIBXCURSOR
-#define LIBXCURSOR "libXcursor.so.1"
-#endif
-
-static char libraryName[] = LIBXCURSOR;
-
-static XModuleType
-open_library (void)
-{
- char *library = libraryName;
- char *dot;
- XModuleType module;
- for (;;)
- {
- module = dlopen(library, RTLD_LAZY);
- if (module)
- return module;
- dot = strrchr (library, '.');
- if (!dot)
- break;
- *dot = '\0';
- }
- return NULL;
-}
-
-static void *
-fetch_symbol (XModuleType module, const char *under_symbol)
-{
- void *result = NULL;
- const char *symbol = under_symbol + 1;
- result = dlsym (module, symbol);
- if (!result)
- result = dlsym (module, under_symbol);
- return result;
-}
-
-typedef void (*NoticeCreateBitmapFunc) (Display *dpy,
- Pixmap pid,
- unsigned int width,
- unsigned int height);
-
-typedef void (*NoticePutBitmapFunc) (Display *dpy,
- Drawable draw,
- XImage *image);
-
-typedef Cursor (*TryShapeBitmapCursorFunc) (Display *dpy,
- Pixmap source,
- Pixmap mask,
- XColor *foreground,
- XColor *background,
- unsigned int x,
- unsigned int y);
-
-typedef Cursor (*TryShapeCursorFunc) (Display *dpy,
- Font source_font,
- Font mask_font,
- unsigned int source_char,
- unsigned int mask_char,
- XColor _Xconst *foreground,
- XColor _Xconst *background);
-
-static XModuleType _XcursorModule;
-static Bool _XcursorModuleTried;
-
-#define GetFunc(type,name,ret) {\
- static Bool been_here; \
- static type staticFunc; \
- \
- _XLockMutex (_Xglobal_lock); \
- if (!been_here) \
- { \
- been_here = True; \
- if (!_XcursorModuleTried) \
- { \
- _XcursorModuleTried = True; \
- _XcursorModule = open_library (); \
- } \
- if (_XcursorModule) \
- staticFunc = (type) fetch_symbol (_XcursorModule, "_" name); \
- } \
- ret = staticFunc; \
- _XUnlockMutex (_Xglobal_lock); \
-}
-
-static Cursor
-_XTryShapeCursor (Display *dpy,
- Font source_font,
- Font mask_font,
- unsigned int source_char,
- unsigned int mask_char,
- XColor _Xconst *foreground,
- XColor _Xconst *background)
-{
- TryShapeCursorFunc func;
-
- GetFunc (TryShapeCursorFunc, "XcursorTryShapeCursor", func);
- if (func)
- return (*func) (dpy, source_font, mask_font, source_char, mask_char,
- foreground, background);
- return None;
-}
-
-void
-_XNoticeCreateBitmap (Display *dpy,
- Pixmap pid,
- unsigned int width,
- unsigned int height)
-{
- NoticeCreateBitmapFunc func;
-
- GetFunc (NoticeCreateBitmapFunc, "XcursorNoticeCreateBitmap", func);
- if (func)
- (*func) (dpy, pid, width, height);
-}
-
-void
-_XNoticePutBitmap (Display *dpy,
- Drawable draw,
- XImage *image)
-{
- NoticePutBitmapFunc func;
-
- GetFunc (NoticePutBitmapFunc, "XcursorNoticePutBitmap", func);
- if (func)
- (*func) (dpy, draw, image);
-}
-
-Cursor
-_XTryShapeBitmapCursor (Display *dpy,
- Pixmap source,
- Pixmap mask,
- XColor *foreground,
- XColor *background,
- unsigned int x,
- unsigned int y)
-{
- TryShapeBitmapCursorFunc func;
-
- GetFunc (TryShapeBitmapCursorFunc, "XcursorTryShapeBitmapCursor", func);
- if (func)
- return (*func) (dpy, source, mask, foreground, background, x, y);
- return None;
-}
-#endif
-
-Cursor XCreateGlyphCursor(
- register Display *dpy,
- Font source_font,
- Font mask_font,
- unsigned int source_char,
- unsigned int mask_char,
- XColor _Xconst *foreground,
- XColor _Xconst *background)
-{
- Cursor cid;
- register xCreateGlyphCursorReq *req;
-
-#ifdef USE_DYNAMIC_XCURSOR
- cid = _XTryShapeCursor (dpy, source_font, mask_font,
- source_char, mask_char, foreground, background);
- if (cid)
- return cid;
-#endif
- LockDisplay(dpy);
- GetReq(CreateGlyphCursor, req);
- cid = req->cid = XAllocID(dpy);
- req->source = source_font;
- req->mask = mask_font;
- req->sourceChar = source_char;
- req->maskChar = mask_char;
- req->foreRed = foreground->red;
- req->foreGreen = foreground->green;
- req->foreBlue = foreground->blue;
- req->backRed = background->red;
- req->backGreen = background->green;
- req->backBlue = background->blue;
- UnlockDisplay(dpy);
- SyncHandle();
- return (cid);
-}
-
diff --git a/nx-X11/lib/X11/CrPFBData.c b/nx-X11/lib/X11/CrPFBData.c
deleted file mode 100644
index 17d551bb7..000000000
--- a/nx-X11/lib/X11/CrPFBData.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlib.h"
-#include <stdio.h>
-
-/*
- * XCreatePixmapFromBitmapData: Routine to make a pixmap from user supplied bitmap data.
- * D is any drawable on the same screen that the pixmap will be used in.
- * Data is a pointer to the bit data, and
- * width & height give the size in bits of the pixmap.
- * Fg and Bg are the pixel values to use for the two colors.
- * Depth is the depth of the pixmap to create.
- *
- * The following format is assumed for data:
- *
- * format=XYPixmap
- * bit_order=LSBFirst
- * byte_order=LSBFirst
- * padding=8
- * bitmap_unit=8
- * xoffset=0
- * no extra bytes per line
- */
-Pixmap XCreatePixmapFromBitmapData(
- Display *display,
- Drawable d,
- char *data,
- unsigned int width,
- unsigned int height,
- unsigned long fg,
- unsigned long bg,
- unsigned int depth)
-{
- Pixmap pix = XCreatePixmap(display, d, width, height, depth);
- XGCValues gcv = {
- .foreground = fg,
- .background = bg
- };
- GC gc = XCreateGC(display, pix, GCForeground|GCBackground, &gcv);
- if (gc == NULL) {
- XFreePixmap(display, pix);
- return (Pixmap) None;
- } else {
- XImage ximage = {
- .height = height,
- .width = width,
- .depth = 1,
- .bits_per_pixel = 1,
- .xoffset = 0,
- .format = XYBitmap,
- .data = data,
- .byte_order = LSBFirst,
- .bitmap_unit = 8,
- .bitmap_bit_order = LSBFirst,
- .bitmap_pad = 8,
- .bytes_per_line = (width + 7) / 8
- };
- XPutImage(display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
- XFreeGC(display, gc);
- return(pix);
- }
-}
diff --git a/nx-X11/lib/X11/CrPixmap.c b/nx-X11/lib/X11/CrPixmap.c
deleted file mode 100644
index cdf312076..000000000
--- a/nx-X11/lib/X11/CrPixmap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#ifdef USE_DYNAMIC_XCURSOR
-void
-_XNoticeCreateBitmap (Display *dpy,
- Pixmap pid,
- unsigned int width,
- unsigned int height);
-#endif
-
-Pixmap XCreatePixmap (
- register Display *dpy,
- Drawable d,
- unsigned int width,
- unsigned int height,
- unsigned int depth)
-{
- Pixmap pid;
- register xCreatePixmapReq *req;
-
- LockDisplay(dpy);
- GetReq(CreatePixmap, req);
- req->drawable = d;
- req->width = width;
- req->height = height;
- req->depth = depth;
- pid = req->pid = XAllocID(dpy);
- UnlockDisplay(dpy);
- SyncHandle();
-#ifdef USE_DYNAMIC_XCURSOR
- if (depth == 1)
- _XNoticeCreateBitmap (dpy, pid, width, height);
-#endif
- return (pid);
-}
-
diff --git a/nx-X11/lib/X11/CrWindow.c b/nx-X11/lib/X11/CrWindow.c
deleted file mode 100644
index 7b5460186..000000000
--- a/nx-X11/lib/X11/CrWindow.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Window XCreateSimpleWindow(
- register Display *dpy,
- Window parent,
- int x,
- int y,
- unsigned int width,
- unsigned int height,
- unsigned int borderWidth,
- unsigned long border,
- unsigned long background)
-{
- Window wid;
- register xCreateWindowReq *req;
-
- LockDisplay(dpy);
- GetReqExtra(CreateWindow, 8, req);
- req->parent = parent;
- req->x = x;
- req->y = y;
- req->width = width;
- req->height = height;
- req->borderWidth = borderWidth;
- req->depth = 0;
- req->class = CopyFromParent;
- req->visual = CopyFromParent;
- wid = req->wid = XAllocID(dpy);
- req->mask = CWBackPixel | CWBorderPixel;
-
- {
- register CARD32 *valuePtr = (CARD32 *) NEXTPTR(req,xCreateWindowReq);
- *valuePtr++ = background;
- *valuePtr = border;
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return (wid);
- }
diff --git a/nx-X11/lib/X11/Cursor.c b/nx-X11/lib/X11/Cursor.c
deleted file mode 100644
index 80b91c36d..000000000
--- a/nx-X11/lib/X11/Cursor.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-static XColor _Xconst foreground = { 0, 0, 0, 0 }; /* black */
-static XColor _Xconst background = { 0, 65535, 65535, 65535 }; /* white */
-
-Cursor XCreateFontCursor(
- Display *dpy,
- unsigned int which)
-{
- /*
- * the cursor font contains the shape glyph followed by the mask
- * glyph; so character position 0 contains a shape, 1 the mask for 0,
- * 2 a shape, etc. <X11/cursorfont.h> contains hash define names
- * for all of these.
- */
-
- if (dpy->cursor_font == None) {
- dpy->cursor_font = XLoadFont (dpy, CURSORFONT);
- if (dpy->cursor_font == None) return None;
- }
-
- return XCreateGlyphCursor (dpy, dpy->cursor_font, dpy->cursor_font,
- which, which + 1, &foreground, &background);
-}
-
diff --git a/nx-X11/lib/X11/Cv.h b/nx-X11/lib/X11/Cv.h
deleted file mode 100644
index 0b662811f..000000000
--- a/nx-X11/lib/X11/Cv.h
+++ /dev/null
@@ -1,189 +0,0 @@
-
-#ifndef _CV_H_
-#define _CV_H_
-
-/* variables */
-extern const char _XcmsCIEXYZ_prefix[];
-extern const char _XcmsCIEuvY_prefix[];
-extern const char _XcmsCIExyY_prefix[];
-extern const char _XcmsCIELab_prefix[];
-extern const char _XcmsCIELuv_prefix[];
-extern const char _XcmsTekHVC_prefix[];
-extern const char _XcmsRGBi_prefix[];
-extern const char _XcmsRGB_prefix[];
-
-extern XcmsColorSpace XcmsUNDEFINEDColorSpace;
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-extern XcmsColorSpace XcmsCIEXYZColorSpace;
-extern XcmsColorSpace XcmsCIEuvYColorSpace;
-extern XcmsColorSpace XcmsCIExyYColorSpace;
-extern XcmsColorSpace XcmsCIELabColorSpace;
-extern XcmsColorSpace XcmsCIELuvColorSpace;
-extern XcmsColorSpace XcmsRGBColorSpace;
-extern XcmsColorSpace XcmsRGBiColorSpace;
-
-extern XcmsColorSpace *_XcmsDIColorSpacesInit[];
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-
-extern XcmsColorSpace *_XcmsDDColorSpacesInit[];
-extern XcmsColorSpace **_XcmsDDColorSpaces;
-
-extern XcmsFunctionSet XcmsLinearRGBFunctionSet;
-
-extern XcmsFunctionSet *_XcmsSCCFuncSetsInit[];
-extern XcmsFunctionSet **_XcmsSCCFuncSets;
-
-extern XcmsRegColorSpaceEntry _XcmsRegColorSpaces[];
-
-/* functions */
-extern XPointer *
-_XcmsCopyPointerArray(
- XPointer *pap);
-extern void
-_XcmsFreePointerArray(
- XPointer *pap);
-extern XPointer *
-_XcmsPushPointerArray(
- XPointer *pap,
- XPointer p,
- XPointer *papNoFree);
-extern Status
-_XcmsCIEXYZ_ValidSpec(
- XcmsColor *pColor);
-extern Status
-_XcmsCIEuvY_ValidSpec(
- XcmsColor *pColor);
-extern int
-_XcmsTekHVC_CheckModify(
- XcmsColor *pColor);
-
-extern Status
-_XcmsTekHVCQueryMaxVCRGB(
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsColor *pColor_return,
- XcmsRGBi *pRGB_return);
-extern Status
-_XcmsCIELabQueryMaxLCRGB(
- XcmsCCC ccc,
- XcmsFloat hue, /* hue in radians */
- XcmsColor *pColor_return,
- XcmsRGBi *pRGB_return);
-extern Status
-_XcmsConvertColorsWithWhitePt(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- XcmsColor *pWhitePt,
- unsigned int nColors,
- XcmsColorFormat newFormat,
- Bool *pCompressed);
-
-extern Status
-_XcmsDIConvertColors(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- XcmsColor *pWhitePt,
- unsigned int nColors,
- XcmsColorFormat newFormat);
-extern Status
-_XcmsDDConvertColors(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- XcmsColorFormat newFormat,
- Bool *pCompressed);
-extern XcmsColorFormat
-_XcmsRegFormatOfPrefix(
- _Xconst char *prefix);
-extern void
-_XColor_to_XcmsRGB(
- XcmsCCC ccc,
- XColor *pXColors,
- XcmsColor *pColors,
- unsigned int nColors);
-extern Status
-_XcmsSetGetColor(
- Status (*xColorProc)(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* screen_in_out */),
- Display *dpy,
- Colormap cmap,
- XcmsColor *pColors_in_out,
- XcmsColorFormat result_format,
- Bool *pCompressed);
-extern Status
-_XcmsSetGetColors(
- Status (*xColorProc)(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* screen_in_out */,
- int /* nColors */),
- Display *dpy,
- Colormap cmap,
- XcmsColor *pColors_in_out,
- int nColors,
- XcmsColorFormat result_format,
- Bool *pCompressed);
-extern Status
-_XcmsCIELuvQueryMaxLCRGB(
- XcmsCCC ccc,
- XcmsFloat hue, /* hue in radians */
- XcmsColor *pColor_return,
- XcmsRGBi *pRGB_return);
-
-extern XcmsIntensityMap *
-_XcmsGetIntensityMap(
- Display *dpy,
- Visual *visual);
-extern int
-_XcmsInitDefaultCCCs(
- Display *dpy);
-extern int
-_XcmsInitScrnInfo(
- register Display *dpy,
- int screenNumber);
-extern XcmsCmapRec *
-_XcmsCopyCmapRecAndFree(
- Display *dpy,
- Colormap src_cmap,
- Colormap copy_cmap);
-extern void
-_XcmsCopyISOLatin1Lowered(
- char *dst,
- const char *src);
-extern int
-_XcmsEqualWhitePts(
- XcmsCCC ccc, XcmsColor *pWhitePt1, XcmsColor *pWhitePt2);
-extern int
-_XcmsLRGB_InitScrnDefault(
- Display *dpy,
- int screenNumber,
- XcmsPerScrnInfo *pPerScrnInfo);
-extern void
-_XcmsFreeIntensityMaps(
- Display *dpy);
-extern int
-_XcmsGetProperty(
- Display *pDpy,
- Window w,
- Atom property,
- int *pFormat,
- unsigned long *pNItems,
- unsigned long *pNBytes,
- char **pValue);
-extern unsigned long
-_XcmsGetElement(
- int format,
- char **pValue,
- unsigned long *pCount);
-extern void
-_XcmsUnresolveColor(
- XcmsCCC ccc,
- XcmsColor *pColor);
-extern void
-_XcmsResolveColor(
- XcmsCCC ccc,
- XcmsColor *pXcmsColor);
-
-#endif /* _CV_H_ */
diff --git a/nx-X11/lib/X11/CvColW.c b/nx-X11/lib/X11/CvColW.c
deleted file mode 100644
index 4aabded0d..000000000
--- a/nx-X11/lib/X11/CvColW.c
+++ /dev/null
@@ -1,141 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * XcmsCvColW.c
- *
- * DESCRIPTION
- * <overall description of what the package does>
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-
-/*
- * NAME
- * _XcmsConvertColorsWithWhitePt - Convert XcmsColor structures
- *
- * SYNOPSIS
- */
-Status
-_XcmsConvertColorsWithWhitePt(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- XcmsColor *pWhitePt,
- unsigned int nColors,
- XcmsColorFormat newFormat,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Convert XcmsColor structures between device-independent
- * and/or device-dependent formats but allowing the calling
- * routine to specify the white point to be associated
- * with the color specifications (overriding
- * ccc->clientWhitePt).
- *
- * This routine has been provided for use in white point
- * adjustment routines.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression,
- * XcmsSuccessWithCompression if succeeded with gamut
- * compression.
- *
- */
-{
- if (ccc == NULL || pColors_in_out == NULL ||
- pColors_in_out->format == XcmsUndefinedFormat) {
- return(XcmsFailure);
- }
-
- if (nColors == 0 || pColors_in_out->format == newFormat) {
- /* do nothing */
- return(XcmsSuccess);
- }
-
- if (XCMS_DI_ID(pColors_in_out->format) && XCMS_DI_ID(newFormat)) {
- /*
- * Device-Independent to Device-Independent Conversion
- */
- return(_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
- newFormat));
- }
- if (XCMS_DD_ID(pColors_in_out->format) && XCMS_DD_ID(newFormat)) {
- /*
- * Device-Dependent to Device-Dependent Conversion
- */
- return(_XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
- pCompressed));
- }
-
- /*
- * Otherwise we have:
- * 1. Device-Independent to Device-Dependent Conversion
- * OR
- * 2. Device-Dependent to Device-Independent Conversion
- */
-
- if (XCMS_DI_ID(pColors_in_out->format)) {
- /*
- * 1. Device-Independent to Device-Dependent Conversion
- */
- /* First convert to CIEXYZ */
- if (_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
- XcmsCIEXYZFormat) == XcmsFailure) {
- return(XcmsFailure);
- }
- /* Then convert to DD Format */
- return(_XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
- pCompressed));
- } else {
- /*
- * 2. Device-Dependent to Device-Independent Conversion
- */
- /* First convert to CIEXYZ */
- if (_XcmsDDConvertColors(ccc, pColors_in_out, nColors,
- XcmsCIEXYZFormat, pCompressed) == XcmsFailure) {
- return(XcmsFailure);
- }
- /* Then convert to DI Format */
- return(_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
- newFormat));
- }
-}
diff --git a/nx-X11/lib/X11/CvCols.c b/nx-X11/lib/X11/CvCols.c
deleted file mode 100644
index 87d49311c..000000000
--- a/nx-X11/lib/X11/CvCols.c
+++ /dev/null
@@ -1,1030 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsCvCols.c
- *
- * DESCRIPTION
- * Xcms API routine that converts between the
- * device-independent color spaces.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * LOCAL DEFINES
- */
-#define DD_FORMAT 0x01
-#define DI_FORMAT 0x02
-#define MIX_FORMAT 0x04
-#ifndef MAX
-# define MAX(x,y) ((x) > (y) ? (x) : (y))
-#endif
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * EqualCIEXYZ
- *
- * SYNOPSIS
- */
-static int
-EqualCIEXYZ(
- XcmsColor *p1, XcmsColor *p2)
-/*
- * DESCRIPTION
- * Compares two XcmsColor structures that are in XcmsCIEXYZFormat
- *
- * RETURNS
- * Returns 1 if equal; 0 otherwise.
- *
- */
-{
- if (p1->format != XcmsCIEXYZFormat || p2->format != XcmsCIEXYZFormat) {
- return(0);
- }
- if ((p1->spec.CIEXYZ.X != p2->spec.CIEXYZ.X)
- || (p1->spec.CIEXYZ.Y != p2->spec.CIEXYZ.Y)
- || (p1->spec.CIEXYZ.Z != p2->spec.CIEXYZ.Z)) {
- return(0);
- }
- return(1);
-}
-
-
-/*
- * NAME
- * XcmsColorSpace
- *
- * SYNOPSIS
- */
-static XcmsColorSpace *
-ColorSpaceOfID(
- XcmsCCC ccc,
- XcmsColorFormat id)
-/*
- * DESCRIPTION
- * Returns a pointer to the color space structure
- * (XcmsColorSpace) associated with the specified color space
- * ID.
- *
- * RETURNS
- * Pointer to matching XcmsColorSpace structure if found;
- * otherwise NULL.
- */
-{
- XcmsColorSpace **papColorSpaces;
-
- if (ccc == NULL) {
- return(NULL);
- }
-
- /*
- * First try Device-Independent color spaces
- */
- papColorSpaces = _XcmsDIColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if ((*papColorSpaces)->id == id) {
- return(*papColorSpaces);
- }
- papColorSpaces++;
- }
- }
-
- /*
- * Next try Device-Dependent color spaces
- */
- papColorSpaces = ((XcmsFunctionSet *)ccc->pPerScrnInfo->functionSet)->DDColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if ((*papColorSpaces)->id == id) {
- return(*papColorSpaces);
- }
- papColorSpaces++;
- }
- }
-
- return(NULL);
-}
-
-
-/*
- * NAME
- * ValidDIColorSpaceID
- *
- * SYNOPSIS
- */
-static int
-ValidDIColorSpaceID(
- XcmsColorFormat id)
-/*
- * DESCRIPTION
- * Determines if the specified color space ID is a valid
- * Device-Independent color space in the specified Color
- * Conversion Context.
- *
- * RETURNS
- * Returns zero if not valid; otherwise non-zero.
- */
-{
- XcmsColorSpace **papRec;
- papRec = _XcmsDIColorSpaces;
- if (papRec != NULL) {
- while (*papRec != NULL) {
- if ((*papRec)->id == id) {
- return(1);
- }
- papRec++;
- }
- }
- return(0);
-}
-
-
-/*
- * NAME
- * ValidDDColorSpaceID
- *
- * SYNOPSIS
- */
-static int
-ValidDDColorSpaceID(
- XcmsCCC ccc,
- XcmsColorFormat id)
-/*
- * DESCRIPTION
- * Determines if the specified color space ID is a valid
- * Device-Dependent color space in the specified Color
- * Conversion Context.
- *
- * RETURNS
- * Returns zero if not valid; otherwise non-zero.
- */
-{
- XcmsColorSpace **papRec;
-
- if (ccc->pPerScrnInfo->state != XcmsInitNone) {
- papRec = ((XcmsFunctionSet *)ccc->pPerScrnInfo->functionSet)->DDColorSpaces;
- while (*papRec != NULL) {
- if ((*papRec)->id == id) {
- return(1);
- }
- papRec++;
- }
- }
- return(0);
-}
-
-
-/*
- * NAME
- * ConvertMixedColors - Convert XcmsColor structures
- *
- * SYNOPSIS
- */
-static Status
-ConvertMixedColors(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- XcmsColor *pWhitePt,
- unsigned int nColors,
- XcmsColorFormat targetFormat,
- unsigned char format_flag)
-/*
- * DESCRIPTION
- * This routine will only convert the following types of
- * batches:
- * DI to DI
- * DD to DD
- * DD to CIEXYZ
- * In other words, it will not convert the following types of
- * batches:
- * DI to DD
- * DD to DI(not CIEXYZ)
- *
- * format_flag:
- * 0x01 : convert Device-Dependent only specifications to the
- * target format.
- * 0x02 : convert Device-Independent only specifications to the
- * target format.
- * 0x03 : convert all specifications to the target format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if none of the color specifications were
- * compressed in the conversion process
- * XcmsSuccessWithCompression if at least one of the
- * color specifications were compressed in the
- * conversion process.
- *
- */
-{
- XcmsColor *pColor, *pColors_start;
- XcmsColorFormat format;
- Status retval_tmp;
- Status retval = XcmsSuccess;
- unsigned int iColors;
- unsigned int nBatch;
-
- /*
- * Convert array of mixed color specifications in batches of
- * contiguous formats to the target format
- */
- iColors = 0;
- while (iColors < nColors) {
- /*
- * Find contiguous array of color specifications with the
- * same format
- */
- pColor = pColors_start = pColors_in_out + iColors;
- format = pColors_start->format;
- nBatch = 0;
- while (iColors < nColors && pColor->format == format) {
- pColor++;
- nBatch++;
- iColors++;
- }
- if (format != targetFormat) {
- /*
- * Need to convert this batch from current format to target format.
- */
- if (XCMS_DI_ID(format) && (format_flag & DI_FORMAT) &&
- XCMS_DI_ID(targetFormat)) {
- /*
- * DI->DI
- *
- * Format of interest is Device-Independent,
- * This batch contains Device-Independent specifications, and
- * the Target format is Device-Independent.
- */
- retval_tmp = _XcmsDIConvertColors(ccc, pColors_start, pWhitePt,
- nBatch, targetFormat);
- } else if (XCMS_DD_ID(format) && (format_flag & DD_FORMAT) &&
- (targetFormat == XcmsCIEXYZFormat)) {
- /*
- * DD->CIEXYZ
- *
- * Format of interest is Device-Dependent,
- * This batch contains Device-Dependent specifications, and
- * the Target format is CIEXYZ.
- *
- * Since DD->CIEXYZ we can use NULL instead of pCompressed.
- */
- if ((ccc->whitePtAdjProc != NULL) && !_XcmsEqualWhitePts(ccc,
- pWhitePt, ScreenWhitePointOfCCC(ccc))) {
- /*
- * Need to call WhiteAdjustProc (Screen White Point to
- * White Point).
- */
- retval_tmp = (*ccc->whitePtAdjProc)(ccc,
- ScreenWhitePointOfCCC(ccc), pWhitePt,
- XcmsCIEXYZFormat, pColors_start, nBatch,
- (Bool *)NULL);
- } else {
- retval_tmp = _XcmsDDConvertColors(ccc, pColors_start,
- nBatch, XcmsCIEXYZFormat, (Bool *)NULL);
- }
- } else if (XCMS_DD_ID(format) && (format_flag & DD_FORMAT) &&
- XCMS_DD_ID(targetFormat)) {
- /*
- * DD->DD(not CIEXYZ)
- *
- * Format of interest is Device-Dependent,
- * This batch contains Device-Dependent specifications, and
- * the Target format is Device-Dependent and not CIEXYZ.
- */
- retval_tmp = _XcmsDDConvertColors(ccc, pColors_start, nBatch,
- targetFormat, (Bool *)NULL);
- } else {
- /*
- * This routine is called for the wrong reason.
- */
- return(XcmsFailure);
- }
- if (retval_tmp == XcmsFailure) {
- return(XcmsFailure);
- }
- retval = MAX(retval, retval_tmp);
- }
- }
- return(retval);
-}
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsEqualWhitePts
- *
- * SYNOPSIS
- */
-int
-_XcmsEqualWhitePts(XcmsCCC ccc, XcmsColor *pWhitePt1, XcmsColor *pWhitePt2)
-/*
- * DESCRIPTION
- *
- * RETURNS
- * Returns 0 if not equal; otherwise 1.
- *
- */
-{
- XcmsColor tmp1, tmp2;
-
- memcpy((char *)&tmp1, (char *)pWhitePt1, sizeof(XcmsColor));
- memcpy((char *)&tmp2, (char *)pWhitePt2, sizeof(XcmsColor));
-
- if (tmp1.format != XcmsCIEXYZFormat) {
- if (_XcmsDIConvertColors(ccc, &tmp1, (XcmsColor *) NULL, 1,
- XcmsCIEXYZFormat)==0) {
- return(0);
- }
- }
-
- if (tmp2.format != XcmsCIEXYZFormat) {
- if (_XcmsDIConvertColors(ccc, &tmp2, (XcmsColor *) NULL, 1,
- XcmsCIEXYZFormat)==0) {
- return(0);
- }
- }
-
- return (EqualCIEXYZ(&tmp1, &tmp2));
-}
-
-
-/*
- * NAME
- * _XcmsDIConvertColors - Convert XcmsColor structures
- *
- * SYNOPSIS
- */
-Status
-_XcmsDIConvertColors(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- XcmsColor *pWhitePt,
- unsigned int nColors,
- XcmsColorFormat newFormat)
-/*
- * DESCRIPTION
- * Convert XcmsColor structures to another Device-Independent
- * form.
- *
- * Here are some assumptions that this routine makes:
- * 1. The calling routine has already checked if
- * pColors_in_out->format == newFormat, therefore
- * there is no need to check again here.
- * 2. The calling routine has already checked nColors,
- * therefore this routine assumes nColors > 0.
- * 3. The calling routine may want to convert only between
- * CIExyY <-> CIEXYZ <-> CIEuvY
- * therefore, this routine allows pWhitePt to equal NULL.
- *
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsColorSpace *pFrom, *pTo;
- XcmsDIConversionProc *src_to_CIEXYZ, *src_from_CIEXYZ;
- XcmsDIConversionProc *dest_to_CIEXYZ, *dest_from_CIEXYZ;
- XcmsDIConversionProc *to_CIEXYZ_stop, *from_CIEXYZ_start;
- XcmsDIConversionProc *tmp;
-
- /*
- * Allow pWhitePt to equal NULL. This appropriate when converting
- * anywhere between:
- * CIExyY <-> CIEXYZ <-> CIEuvY
- */
-
- if (pColors_in_out == NULL ||
- !ValidDIColorSpaceID(pColors_in_out->format) ||
- !ValidDIColorSpaceID(newFormat)) {
- return(XcmsFailure);
- }
-
- /*
- * Get a handle on the function list for the current specification format
- */
- if ((pFrom = ColorSpaceOfID(ccc, pColors_in_out->format))
- == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Get a handle on the function list for the new specification format
- */
- if ((pTo = ColorSpaceOfID(ccc, newFormat)) == NULL) {
- return(XcmsFailure);
- }
-
- src_to_CIEXYZ = pFrom->to_CIEXYZ;
- src_from_CIEXYZ = pFrom->from_CIEXYZ;
- dest_to_CIEXYZ = pTo->to_CIEXYZ;
- dest_from_CIEXYZ = pTo->from_CIEXYZ;
-
- if (pTo->inverse_flag && pFrom->inverse_flag) {
- /*
- * Find common function pointers
- */
- for (to_CIEXYZ_stop = src_to_CIEXYZ; *to_CIEXYZ_stop; to_CIEXYZ_stop++){
- for (tmp = dest_to_CIEXYZ; *tmp; tmp++) {
- if (*to_CIEXYZ_stop == *tmp) {
- goto Continue;
- }
- }
- }
-
-Continue:
-
- /*
- * Execute the functions to CIEXYZ, stopping short as necessary
- */
- while (src_to_CIEXYZ != to_CIEXYZ_stop) {
- if ((*src_to_CIEXYZ++)(ccc, pWhitePt, pColors_in_out,
- nColors) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- /*
- * Determine where to start on the from_CIEXYZ path.
- */
- from_CIEXYZ_start = dest_from_CIEXYZ;
- tmp = src_from_CIEXYZ;
- while ((*from_CIEXYZ_start == *tmp) && (*from_CIEXYZ_start != NULL)) {
- from_CIEXYZ_start++;
- tmp++;
- }
-
- } else {
- /*
- * The function in at least one of the Color Spaces are not
- * complementary, i.e.,
- * for an i, 0 <= i < n elements
- * from_CIEXYZ[i] is not the inverse of to_CIEXYZ[i]
- *
- * Execute the functions all the way to CIEXYZ
- */
- while (*src_to_CIEXYZ) {
- if ((*src_to_CIEXYZ++)(ccc, pWhitePt, pColors_in_out,
- nColors) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- /*
- * Determine where to start on the from_CIEXYZ path.
- */
- from_CIEXYZ_start = dest_from_CIEXYZ;
- }
-
-
- /*
- * Execute the functions from CIEXYZ.
- */
- while (*from_CIEXYZ_start) {
- if ((*from_CIEXYZ_start++)(ccc, pWhitePt, pColors_in_out,
- nColors) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * _XcmsDDConvertColors - Convert XcmsColor structures
- *
- * SYNOPSIS
- */
-Status
-_XcmsDDConvertColors(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- XcmsColorFormat newFormat,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Convert XcmsColor structures:
- *
- * 1. From CIEXYZ to Device-Dependent formats (typically RGB and
- * RGBi),
- * or
- * 2. Between Device-Dependent formats (typically RGB and RGBi).
- *
- * Assumes that these specifications have already been white point
- * adjusted if necessary from Client White Point to Screen
- * White Point. Therefore, the white point now associated
- * with the specifications is the Screen White Point.
- *
- * pCompressed may be NULL. If so this indicates that the
- * calling routine is not interested in knowing exactly which
- * color was compressed, if any.
- *
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if none of the color specifications were
- * compressed in the conversion process
- * XcmsSuccessWithCompression if at least one of the
- * color specifications were compressed in the
- * conversion process.
- *
- */
-{
- XcmsColorSpace *pFrom, *pTo;
- XcmsDDConversionProc *src_to_CIEXYZ, *src_from_CIEXYZ;
- XcmsDDConversionProc *dest_to_CIEXYZ, *dest_from_CIEXYZ;
- XcmsDDConversionProc *from_CIEXYZ_start, *to_CIEXYZ_stop;
- XcmsDDConversionProc *tmp;
- int retval;
- int hasCompressed = 0;
-
- if (ccc == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- if (nColors == 0 || pColors_in_out->format == newFormat) {
- /* do nothing */
- return(XcmsSuccess);
- }
-
- if (((XcmsFunctionSet *)ccc->pPerScrnInfo->functionSet) == NULL) {
- return(XcmsFailure); /* hmm, an internal error? */
- }
-
- /*
- * Its ok if pColors_in_out->format == XcmsCIEXYZFormat
- * or
- * if newFormat == XcmsCIEXYZFormat
- */
- if ( !( ValidDDColorSpaceID(ccc, pColors_in_out->format)
- ||
- (pColors_in_out->format == XcmsCIEXYZFormat))
- ||
- !(ValidDDColorSpaceID(ccc, newFormat)
- ||
- newFormat == XcmsCIEXYZFormat)) {
- return(XcmsFailure);
- }
-
- if ((pFrom = ColorSpaceOfID(ccc, pColors_in_out->format)) == NULL){
- return(XcmsFailure);
- }
-
- if ((pTo = ColorSpaceOfID(ccc, newFormat)) == NULL) {
- return(XcmsFailure);
- }
-
- src_to_CIEXYZ = (XcmsDDConversionProc *)pFrom->to_CIEXYZ;
- src_from_CIEXYZ = (XcmsDDConversionProc *)pFrom->from_CIEXYZ;
- dest_to_CIEXYZ = (XcmsDDConversionProc *)pTo->to_CIEXYZ;
- dest_from_CIEXYZ = (XcmsDDConversionProc *)pTo->from_CIEXYZ;
-
- if (pTo->inverse_flag && pFrom->inverse_flag) {
- /*
- * Find common function pointers
- */
- for (to_CIEXYZ_stop = src_to_CIEXYZ; *to_CIEXYZ_stop; to_CIEXYZ_stop++){
- for (tmp = dest_to_CIEXYZ; *tmp; tmp++) {
- if (*to_CIEXYZ_stop == *tmp) {
- goto Continue;
- }
- }
- }
-Continue:
-
- /*
- * Execute the functions
- */
- while (src_to_CIEXYZ != to_CIEXYZ_stop) {
- retval = (*src_to_CIEXYZ++)(ccc, pColors_in_out, nColors,
- pCompressed);
- if (retval == XcmsFailure) {
- return(XcmsFailure);
- }
- hasCompressed |= (retval == XcmsSuccessWithCompression);
- }
-
- /*
- * Determine where to start on the from_CIEXYZ path.
- */
- from_CIEXYZ_start = dest_from_CIEXYZ;
- tmp = src_from_CIEXYZ;
- while ((*from_CIEXYZ_start == *tmp) && (*from_CIEXYZ_start != NULL)) {
- from_CIEXYZ_start++;
- tmp++;
- }
-
- } else {
- /*
- * The function in at least one of the Color Spaces are not
- * complementary, i.e.,
- * for an i, 0 <= i < n elements
- * from_CIEXYZ[i] is not the inverse of to_CIEXYZ[i]
- *
- * Execute the functions all the way to CIEXYZ
- */
- while (*src_to_CIEXYZ) {
- retval = (*src_to_CIEXYZ++)(ccc, pColors_in_out, nColors,
- pCompressed);
- if (retval == XcmsFailure) {
- return(XcmsFailure);
- }
- hasCompressed |= (retval == XcmsSuccessWithCompression);
- }
-
- /*
- * Determine where to start on the from_CIEXYZ path.
- */
- from_CIEXYZ_start = dest_from_CIEXYZ;
- }
-
- while (*from_CIEXYZ_start) {
- retval = (*from_CIEXYZ_start++)(ccc, pColors_in_out, nColors,
- pCompressed);
- if (retval == XcmsFailure) {
- return(XcmsFailure);
- }
- hasCompressed |= (retval == XcmsSuccessWithCompression);
- }
-
- return(hasCompressed ? XcmsSuccessWithCompression : XcmsSuccess);
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsConvertColors - Convert XcmsColor structures
- *
- * SYNOPSIS
- */
-Status
-XcmsConvertColors(
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- XcmsColorFormat targetFormat,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Convert XcmsColor structures to another format
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression,
- * XcmsSuccessWithCompression if succeeded with gamut
- * compression.
- *
- */
-{
- XcmsColor clientWhitePt;
- XcmsColor Color1;
- XcmsColor *pColors_tmp;
- int callWhiteAdjustProc = 0;
- XcmsColorFormat format;
- Status retval;
- unsigned char contents_flag = 0x00;
- unsigned int iColors;
-
- if (ccc == NULL || pColors_in_out == NULL ||
- !(ValidDIColorSpaceID(targetFormat) ||
- ValidDDColorSpaceID(ccc, targetFormat))) {
- return(XcmsFailure);
- }
-
- /*
- * Check formats in color specification array
- */
- format = pColors_in_out->format;
- for (pColors_tmp = pColors_in_out, iColors = nColors; iColors; pColors_tmp++, iColors--) {
- if (!(ValidDIColorSpaceID(pColors_tmp->format) ||
- ValidDDColorSpaceID(ccc, pColors_tmp->format))) {
- return(XcmsFailure);
- }
- if (XCMS_DI_ID(pColors_tmp->format)) {
- contents_flag |= DI_FORMAT;
- } else {
- contents_flag |= DD_FORMAT;
- }
- if (pColors_tmp->format != format) {
- contents_flag |= MIX_FORMAT;
- }
- }
-
- /*
- * Check if we need the Client White Point.
- */
- if ((contents_flag & DI_FORMAT) || XCMS_DI_ID(targetFormat)) {
- /* To proceed, we need to get the Client White Point */
- memcpy((char *)&clientWhitePt, (char *)&ccc->clientWhitePt,
- sizeof(XcmsColor));
- if (clientWhitePt.format == XcmsUndefinedFormat) {
- /*
- * Client White Point is undefined, therefore set to the Screen
- * White Point.
- * Since Client White Point == Screen White Point, WhiteAdjustProc
- * is not called.
- */
- memcpy((char *)&clientWhitePt,
- (char *)&ccc->pPerScrnInfo->screenWhitePt,
- sizeof(XcmsColor));
- } else if ((ccc->whitePtAdjProc != NULL) && !_XcmsEqualWhitePts(ccc,
- &clientWhitePt, ScreenWhitePointOfCCC(ccc))) {
- /*
- * Client White Point != Screen White Point, and WhiteAdjustProc
- * is not NULL, therefore, will need to call it when
- * converting between DI and DD specifications.
- */
- callWhiteAdjustProc = 1;
- }
- }
-
- /*
- * Make copy of array of color specifications
- */
- if (nColors > 1) {
- pColors_tmp = Xmalloc(nColors * sizeof(XcmsColor));
- } else {
- pColors_tmp = &Color1;
- }
- memcpy((char *)pColors_tmp, (char *)pColors_in_out,
- nColors * sizeof(XcmsColor));
-
- /*
- * zero out pCompressed
- */
- if (pCompressed) {
- bzero((char *)pCompressed, nColors * sizeof(Bool));
- }
-
- if (contents_flag == DD_FORMAT || contents_flag == DI_FORMAT) {
- /*
- * ENTIRE ARRAY IS IN ONE FORMAT.
- */
- if (XCMS_DI_ID(format) && XCMS_DI_ID(targetFormat)) {
- /*
- * DI-to-DI only conversion
- */
- retval = _XcmsDIConvertColors(ccc, pColors_tmp,
- &clientWhitePt, nColors, targetFormat);
- } else if (XCMS_DD_ID(format) && XCMS_DD_ID(targetFormat)) {
- /*
- * DD-to-DD only conversion
- * Since DD->DD there will be no compressed thus we can
- * pass NULL instead of pCompressed.
- */
- retval = _XcmsDDConvertColors(ccc, pColors_tmp, nColors,
- targetFormat, (Bool *)NULL);
- } else {
- /*
- * Otherwise we have:
- * 1. Device-Independent to Device-Dependent Conversion
- * OR
- * 2. Device-Dependent to Device-Independent Conversion
- *
- * We need to go from oldFormat -> CIEXYZ -> targetFormat
- * adjusting for white points as necessary.
- */
-
- if (XCMS_DI_ID(format)) {
- /*
- * 1. Device-Independent to Device-Dependent Conversion
- */
- if (callWhiteAdjustProc) {
- /*
- * White Point Adjustment
- * Client White Point to Screen White Point
- */
- retval = (*ccc->whitePtAdjProc)(ccc, &clientWhitePt,
- ScreenWhitePointOfCCC(ccc), targetFormat,
- pColors_tmp, nColors, pCompressed);
- } else {
- if (_XcmsDIConvertColors(ccc, pColors_tmp,
- &clientWhitePt, nColors, XcmsCIEXYZFormat)
- == XcmsFailure) {
- goto Failure;
- }
- retval = _XcmsDDConvertColors(ccc, pColors_tmp, nColors,
- targetFormat, pCompressed);
- }
- } else {
- /*
- * 2. Device-Dependent to Device-Independent Conversion
- */
- if (callWhiteAdjustProc) {
- /*
- * White Point Adjustment
- * Screen White Point to Client White Point
- */
- retval = (*ccc->whitePtAdjProc)(ccc,
- ScreenWhitePointOfCCC(ccc), &clientWhitePt,
- targetFormat, pColors_tmp, nColors, pCompressed);
- } else {
- /*
- * Since DD->CIEXYZ, no compression takes place therefore
- * we can pass NULL instead of pCompressed.
- */
- if (_XcmsDDConvertColors(ccc, pColors_tmp, nColors,
- XcmsCIEXYZFormat, (Bool *)NULL) == XcmsFailure) {
- goto Failure;
- }
- retval = _XcmsDIConvertColors(ccc, pColors_tmp,
- &clientWhitePt, nColors, targetFormat);
- }
- }
- }
- } else {
- /*
- * ARRAY HAS MIXED FORMATS.
- */
- if ((contents_flag == (DI_FORMAT | MIX_FORMAT)) &&
- XCMS_DI_ID(targetFormat)) {
- /*
- * Convert from DI to DI in batches of contiguous formats
- *
- * Because DI->DI, WhiteAdjustProc not called.
- */
- retval = ConvertMixedColors(ccc, pColors_tmp, &clientWhitePt,
- nColors, targetFormat, (unsigned char)DI_FORMAT);
- } else if ((contents_flag == (DD_FORMAT | MIX_FORMAT)) &&
- XCMS_DD_ID(targetFormat)) {
- /*
- * Convert from DD to DD in batches of contiguous formats
- *
- * Because DD->DD, WhiteAdjustProc not called.
- */
- retval = ConvertMixedColors(ccc, pColors_tmp,
- (XcmsColor *)NULL, nColors, targetFormat,
- (unsigned char)DD_FORMAT);
- } else if (XCMS_DI_ID(targetFormat)) {
- /*
- * We need to convert from DI-to-DI and DD-to-DI, therefore
- * 1. convert DD specifications to CIEXYZ, then
- * 2. convert all in batches to the target DI format.
- *
- * Note that ConvertMixedColors will call WhiteAdjustProc
- * as necessary.
- */
-
- /*
- * Convert only DD specifications in batches of contiguous formats
- * to CIEXYZ
- *
- * Since DD->CIEXYZ, ConvertMixedColors will apply WhiteAdjustProc
- * if required.
- */
- retval = ConvertMixedColors(ccc, pColors_tmp, &clientWhitePt,
- nColors, XcmsCIEXYZFormat, (unsigned char)DD_FORMAT);
-
- /*
- * Because at this point we may have a mix of DI formats
- * (e.g., CIEXYZ, CIELuv) we must convert the specs to the
- * target DI format in batches of contiguous source formats.
- */
- retval = ConvertMixedColors(ccc, pColors_tmp, &clientWhitePt,
- nColors, targetFormat, (unsigned char)DI_FORMAT);
- } else {
- /*
- * We need to convert from DI-to-DD and DD-to-DD, therefore
- * 1. convert DI specifications to CIEXYZ, then
- * 2. convert all to the DD target format.
- *
- * This allows white point adjustment and gamut compression
- * to be applied to all the color specifications in one
- * swoop if those functions do in fact modify the entire
- * group of color specifications.
- */
-
- /*
- * Convert in batches to CIEXYZ
- *
- * If DD->CIEXYZ, ConvertMixedColors will apply WhiteAdjustProc
- * if required.
- */
- if ((retval = ConvertMixedColors(ccc, pColors_tmp, &clientWhitePt,
- nColors, XcmsCIEXYZFormat,
- (unsigned char)(DI_FORMAT | DD_FORMAT))) == XcmsFailure) {
- goto Failure;
- }
-
- /*
- * Convert all specifications (now in CIEXYZ format) to
- * the target DD format.
- * Since CIEXYZ->DD, compression MAY take place therefore
- * we must pass pCompressed.
- * Note that WhiteAdjustProc must be used if necessary.
- */
- if (callWhiteAdjustProc) {
- /*
- * White Point Adjustment
- * Client White Point to Screen White Point
- */
- retval = (*ccc->whitePtAdjProc)(ccc,
- &clientWhitePt, ScreenWhitePointOfCCC(ccc),
- targetFormat, pColors_tmp, nColors, pCompressed);
- } else {
- retval = _XcmsDDConvertColors(ccc, pColors_tmp, nColors,
- targetFormat, pCompressed);
- }
- }
- }
-
- if (retval != XcmsFailure) {
- memcpy((char *)pColors_in_out, (char *)pColors_tmp,
- nColors * sizeof(XcmsColor));
- }
- if (nColors > 1) {
- Xfree(pColors_tmp);
- }
- return(retval);
-
-Failure:
- if (nColors > 1) {
- Xfree(pColors_tmp);
- }
- return(XcmsFailure);
-}
-
-
-/*
- * NAME
- * XcmsRegFormatOfPrefix
- *
- * SYNOPSIS
- */
-XcmsColorFormat
-_XcmsRegFormatOfPrefix(
- _Xconst char *prefix)
-/*
- * DESCRIPTION
- * Returns a color space ID associated with the specified
- * X Consortium registered color space prefix.
- *
- * RETURNS
- * The color space ID if found;
- * otherwise NULL.
- */
-{
- XcmsRegColorSpaceEntry *pEntry = _XcmsRegColorSpaces;
-
- while (pEntry->prefix != NULL) {
- if (strcmp(prefix, pEntry->prefix) == 0) {
- return(pEntry->id);
- }
- pEntry++;
- }
- return(XcmsUndefinedFormat);
-}
diff --git a/nx-X11/lib/X11/DefCursor.c b/nx-X11/lib/X11/DefCursor.c
deleted file mode 100644
index e3cee0649..000000000
--- a/nx-X11/lib/X11/DefCursor.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986,1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDefineCursor (
- register Display *dpy,
- Window w,
- Cursor cursor)
-{
- register xChangeWindowAttributesReq *req;
-
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWCursor;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), cursor);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/DelProp.c b/nx-X11/lib/X11/DelProp.c
deleted file mode 100644
index da486b8ef..000000000
--- a/nx-X11/lib/X11/DelProp.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDeleteProperty(
- register Display *dpy,
- Window window,
- Atom property)
-{
- register xDeletePropertyReq *req;
-
- LockDisplay(dpy);
- GetReq(DeleteProperty, req);
- req->window = window;
- req->property = property;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/Depths.c b/nx-X11/lib/X11/Depths.c
deleted file mode 100644
index a8b719d00..000000000
--- a/nx-X11/lib/X11/Depths.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <stdio.h>
-
-/*
- * XListDepths - return info from connection setup
- */
-int *XListDepths (
- Display *dpy,
- int scrnum,
- int *countp)
-{
- Screen *scr;
- int count;
- int *depths;
-
- if (scrnum < 0 || scrnum >= dpy->nscreens) return NULL;
-
- scr = &dpy->screens[scrnum];
- if ((count = scr->ndepths) > 0) {
- register Depth *dp;
- register int i;
-
- depths = Xmalloc (count * sizeof(int));
- if (!depths) return NULL;
- for (i = 0, dp = scr->depths; i < count; i++, dp++)
- depths[i] = dp->depth;
- } else {
- /* a screen must have a depth */
- return NULL;
- }
- *countp = count;
- return depths;
-}
diff --git a/nx-X11/lib/X11/DestSubs.c b/nx-X11/lib/X11/DestSubs.c
deleted file mode 100644
index 7c6c428be..000000000
--- a/nx-X11/lib/X11/DestSubs.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDestroySubwindows(
- register Display *dpy,
- Window win)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq (DestroySubwindows,win, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/DestWind.c b/nx-X11/lib/X11/DestWind.c
deleted file mode 100644
index c1aec893a..000000000
--- a/nx-X11/lib/X11/DestWind.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDestroyWindow (
- register Display *dpy,
- Window w)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(DestroyWindow, w, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/DisName.c b/nx-X11/lib/X11/DisName.c
deleted file mode 100644
index 87a1e2f0e..000000000
--- a/nx-X11/lib/X11/DisName.c
+++ /dev/null
@@ -1,64 +0,0 @@
-
-/*
-
-Copyright 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/* XDisplayName.c */
-/*
- * Returns the name of the display XOpenDisplay would use. This is better
- * than just printing the "display" variable in a program because that
- * could be NULL and/or there could be an environment variable set.
- * This makes it easier for programmers to provide meaningful error
- * messages.
- *
- *
- * For example, this is used in XOpenDisplay() as
- * strncpy( displaybuf, XDisplayName( display ), sizeof(displaybuf) );
- * if ( *displaybuf == '\0' ) return( NULL );
- * This check is actually unnecessary because the next thing is an index()
- * call looking for a ':' which will fail and we'll return(NULL).
- */
-/* Written at Waterloo - JMSellens */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include "Xlib.h"
-
-char *
-XDisplayName(
- _Xconst char *display)
-{
- char *d;
- if ( display != (char *)NULL && *display != '\0' )
- return( (char *)display );
- if ( (d = getenv( "DISPLAY" )) != (char *)NULL )
- return( d );
- return( "" );
-}
diff --git a/nx-X11/lib/X11/DrArc.c b/nx-X11/lib/X11/DrArc.c
deleted file mode 100644
index d72fac9d7..000000000
--- a/nx-X11/lib/X11/DrArc.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/* Note to future maintainers: XDrawArc does NOT batch successive PolyArc
- requests into a single request like XDrawLine, XDrawPoint, etc.
- We don't do this because X_PolyArc applies the GC's join-style if
- the last point in one arc coincides with the first point in another.
- The client wouldn't expect this and would have no easy way to defeat it. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawArc(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y, /* INT16 */
- unsigned int width,
- unsigned int height, /* CARD16 */
- int angle1,
- int angle2) /* INT16 */
-{
- register xPolyArcReq *req;
- register xArc *arc;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReqExtra (PolyArc, SIZEOF(xArc), req);
-
- req->drawable = d;
- req->gc = gc->gid;
-
- arc = (xArc *) NEXTPTR(req,xPolyArcReq);
-
- arc->x = x;
- arc->y = y;
- arc->width = width;
- arc->height = height;
- arc->angle1 = angle1;
- arc->angle2 = angle2;
-
-
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/DrArcs.c b/nx-X11/lib/X11/DrArcs.c
deleted file mode 100644
index 14405aa3d..000000000
--- a/nx-X11/lib/X11/DrArcs.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define arc_scale (SIZEOF(xArc) / 4)
-
-int
-XDrawArcs(
- register Display *dpy,
- Drawable d,
- GC gc,
- XArc *arcs,
- int n_arcs)
-{
- register xPolyArcReq *req;
- register long len;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq(PolyArc,req);
- req->drawable = d;
- req->gc = gc->gid;
- len = ((long)n_arcs) * arc_scale;
- SetReqLen(req, len, 1);
- len <<= 2; /* watch out for macros... */
- Data16 (dpy, (short *) arcs, len);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/DrLine.c b/nx-X11/lib/X11/DrLine.c
deleted file mode 100644
index dc82d5a15..000000000
--- a/nx-X11/lib/X11/DrLine.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* precompute the maximum size of batching request allowed */
-
-#define wsize (SIZEOF(xPolySegmentReq) + WLNSPERBATCH * SIZEOF(xSegment))
-#define zsize (SIZEOF(xPolySegmentReq) + ZLNSPERBATCH * SIZEOF(xSegment))
-
-int
-XDrawLine (
- register Display *dpy,
- Drawable d,
- GC gc,
- int x1,
- int y1,
- int x2,
- int y2)
-{
- register xSegment *segment;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- {
- register xPolySegmentReq *req = (xPolySegmentReq *) dpy->last_req;
-
- /* if same as previous request, with same drawable, batch requests */
- if (
- (req->reqType == X_PolySegment)
- && (req->drawable == d)
- && (req->gc == gc->gid)
- && ((dpy->bufptr + SIZEOF(xSegment)) <= dpy->bufmax)
- && (((char *)dpy->bufptr - (char *)req) < (gc->values.line_width ?
- wsize : zsize)) ) {
- req->length += SIZEOF(xSegment) >> 2;
- segment = (xSegment *) dpy->bufptr;
- dpy->bufptr += SIZEOF(xSegment);
- }
-
- else {
- GetReqExtra (PolySegment, SIZEOF(xSegment), req);
- req->drawable = d;
- req->gc = gc->gid;
- segment = (xSegment *) NEXTPTR(req,xPolySegmentReq);
- }
-
- segment->x1 = x1;
- segment->y1 = y1;
- segment->x2 = x2;
- segment->y2 = y2;
-
- UnlockDisplay(dpy);
- SyncHandle();
- }
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/DrLines.c b/nx-X11/lib/X11/DrLines.c
deleted file mode 100644
index 68071b6b4..000000000
--- a/nx-X11/lib/X11/DrLines.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawLines (
- register Display *dpy,
- Drawable d,
- GC gc,
- XPoint *points,
- int npoints,
- int mode)
-{
- register xPolyLineReq *req;
- register long length;
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq (PolyLine, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->coordMode = mode;
- SetReqLen(req, npoints, 65535 - req->length);
- /* each point is 2 16-bit integers */
- length = npoints << 2; /* watch out for macros... */
- Data16 (dpy, (short *) points, length);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/DrPoint.c b/nx-X11/lib/X11/DrPoint.c
deleted file mode 100644
index f0332e853..000000000
--- a/nx-X11/lib/X11/DrPoint.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* precompute the maximum size of batching request allowed */
-
-#define size (SIZEOF(xPolyPointReq) + PTSPERBATCH * SIZEOF(xPoint))
-
-int
-XDrawPoint(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y) /* INT16 */
-{
- xPoint *point;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- {
- register xPolyPointReq *req = (xPolyPointReq *) dpy->last_req;
-
-
- /* if same as previous request, with same drawable, batch requests */
- if (
- (req->reqType == X_PolyPoint)
- && (req->drawable == d)
- && (req->gc == gc->gid)
- && (req->coordMode == CoordModeOrigin)
- && ((dpy->bufptr + SIZEOF(xPoint)) <= dpy->bufmax)
- && (((char *)dpy->bufptr - (char *)req) < size) ) {
- req->length += SIZEOF(xPoint) >> 2;
- point = (xPoint *) dpy->bufptr;
- dpy->bufptr += SIZEOF(xPoint);
- }
-
- else {
- GetReqExtra(PolyPoint, 4, req); /* 1 point = 4 bytes */
- req->drawable = d;
- req->gc = gc->gid;
- req->coordMode = CoordModeOrigin;
- point = (xPoint *) NEXTPTR(req,xPolyPointReq);
- }
-
- point->x = x;
- point->y = y;
-
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/DrPoints.c b/nx-X11/lib/X11/DrPoints.c
deleted file mode 100644
index 287fa057d..000000000
--- a/nx-X11/lib/X11/DrPoints.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawPoints(
- register Display *dpy,
- Drawable d,
- GC gc,
- XPoint *points,
- int n_points,
- int mode) /* CoordMode */
-{
- register xPolyPointReq *req;
- register long nbytes;
- int n;
- int xoff, yoff;
- XPoint pt;
-
- xoff = yoff = 0;
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- while (n_points) {
- GetReq(PolyPoint, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->coordMode = mode;
- n = n_points;
- if (!dpy->bigreq_size && n > (dpy->max_request_size - req->length))
- n = dpy->max_request_size - req->length;
- SetReqLen(req, n, n);
- nbytes = ((long)n) << 2; /* watch out for macros... */
- if (xoff || yoff) {
- pt.x = xoff + points->x;
- pt.y = yoff + points->y;
- Data16 (dpy, (short *) &pt, 4);
- if (nbytes > 4) {
- Data16 (dpy, (short *) (points + 1), nbytes - 4);
- }
- } else {
- Data16 (dpy, (short *) points, nbytes);
- }
- n_points -= n;
- if (n_points && (mode == CoordModePrevious)) {
- register XPoint *pptr = points;
- points += n;
- while (pptr != points) {
- xoff += pptr->x;
- yoff += pptr->y;
- pptr++;
- }
- } else
- points += n;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/DrRect.c b/nx-X11/lib/X11/DrRect.c
deleted file mode 100644
index d9141eef9..000000000
--- a/nx-X11/lib/X11/DrRect.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* precompute the maximum size of batching request allowed */
-
-#define wsize (SIZEOF(xPolyRectangleReq) + WRCTSPERBATCH * SIZEOF(xRectangle))
-#define zsize (SIZEOF(xPolyRectangleReq) + ZRCTSPERBATCH * SIZEOF(xRectangle))
-
-int
-XDrawRectangle(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y, /* INT16 */
- unsigned int width,
- unsigned int height) /* CARD16 */
-{
- xRectangle *rect;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- {
- register xPolyRectangleReq *req = (xPolyRectangleReq *) dpy->last_req;
-
- /* if same as previous request, with same drawable, batch requests */
- if (
- (req->reqType == X_PolyRectangle)
- && (req->drawable == d)
- && (req->gc == gc->gid)
- && ((dpy->bufptr + SIZEOF(xRectangle)) <= dpy->bufmax)
- && (((char *)dpy->bufptr - (char *)req) < (gc->values.line_width ?
- wsize : zsize)) ) {
- req->length += SIZEOF(xRectangle) >> 2;
- rect = (xRectangle *) dpy->bufptr;
- dpy->bufptr += SIZEOF(xRectangle);
- }
-
- else {
- GetReqExtra(PolyRectangle, SIZEOF(xRectangle), req);
- req->drawable = d;
- req->gc = gc->gid;
- rect = (xRectangle *) NEXTPTR(req,xPolyRectangleReq);
- }
-
- rect->x = x;
- rect->y = y;
- rect->width = width;
- rect->height = height;
-
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/DrRects.c b/nx-X11/lib/X11/DrRects.c
deleted file mode 100644
index 7827bf18d..000000000
--- a/nx-X11/lib/X11/DrRects.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawRectangles(
- register Display *dpy,
- Drawable d,
- GC gc,
- XRectangle *rects,
- int n_rects)
-{
- register xPolyRectangleReq *req;
- long len;
- int n;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- while (n_rects) {
- GetReq(PolyRectangle, req);
- req->drawable = d;
- req->gc = gc->gid;
- n = n_rects;
- len = ((long)n) << 1;
- if (!dpy->bigreq_size && len > (dpy->max_request_size - req->length)) {
- n = (dpy->max_request_size - req->length) >> 1;
- len = ((long)n) << 1;
- }
- SetReqLen(req, len, len);
- len <<= 2; /* watch out for macros... */
- Data16 (dpy, (short *) rects, len);
- n_rects -= n;
- rects += n;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/DrSegs.c b/nx-X11/lib/X11/DrSegs.c
deleted file mode 100644
index 93eab4d08..000000000
--- a/nx-X11/lib/X11/DrSegs.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawSegments (
- register Display *dpy,
- Drawable d,
- GC gc,
- XSegment *segments,
- int nsegments)
-{
- register xPolySegmentReq *req;
- long len;
- int n;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- while (nsegments) {
- GetReq (PolySegment, req);
- req->drawable = d;
- req->gc = gc->gid;
- n = nsegments;
- len = ((long)n) << 1;
- if (!dpy->bigreq_size && len > (dpy->max_request_size - req->length)) {
- n = (dpy->max_request_size - req->length) >> 1;
- len = ((long)n) << 1;
- }
- SetReqLen(req, len, len);
- len <<= 2; /* watch out for macros... */
- Data16 (dpy, (short *) segments, len);
- nsegments -= n;
- segments += n;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ErrDes.c b/nx-X11/lib/X11/ErrDes.c
deleted file mode 100644
index f13e3dce4..000000000
--- a/nx-X11/lib/X11/ErrDes.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- */
-
-/***********************************************************
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xos.h>
-#include "Xresource.h"
-#include <stdio.h>
-
-#ifndef ERRORDB
-#ifndef XERRORDB
-#define ERRORDB "/usr/lib/X11/XErrorDB"
-#else
-#define ERRORDB XERRORDB
-#endif
-#endif
-
-/*
- * descriptions of errors in Section 4 of Protocol doc (pp. 350-351); more
- * verbose descriptions are given in the error database
- */
-static const char _XErrorList[] =
- /* No error */ "no error\0"
- /* BadRequest */ "BadRequest\0"
- /* BadValue */ "BadValue\0"
- /* BadWindow */ "BadWindow\0"
- /* BadPixmap */ "BadPixmap\0"
- /* BadAtom */ "BadAtom\0"
- /* BadCursor */ "BadCursor\0"
- /* BadFont */ "BadFont\0"
- /* BadMatch */ "BadMatch\0"
- /* BadDrawable */ "BadDrawable\0"
- /* BadAccess */ "BadAccess\0"
- /* BadAlloc */ "BadAlloc\0"
- /* BadColor */ "BadColor\0"
- /* BadGC */ "BadGC\0"
- /* BadIDChoice */ "BadIDChoice\0"
- /* BadName */ "BadName\0"
- /* BadLength */ "BadLength\0"
- /* BadImplementation */ "BadImplementation"
-;
-
-/* offsets into _XErrorList */
-static const unsigned char _XErrorOffsets[] = {
- 0, 9, 20, 29, 39, 49, 57, 67, 75, 84, 96,
- 106, 115, 124, 130, 142, 150, 160
-};
-
-
-int
-XGetErrorText(
- register Display *dpy,
- register int code,
- char *buffer,
- int nbytes)
-{
- char buf[150];
- register _XExtension *ext;
- _XExtension *bext = (_XExtension *)NULL;
-
- if (nbytes == 0) return 0;
- if (code <= BadImplementation && code > 0) {
- snprintf(buf, sizeof(buf), "%d", code);
- (void) XGetErrorDatabaseText(dpy, "XProtoError", buf,
- _XErrorList + _XErrorOffsets[code],
- buffer, nbytes);
- } else
- buffer[0] = '\0';
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next) {
- if (ext->error_string)
- (*ext->error_string)(dpy, code, &ext->codes, buffer, nbytes);
- if (ext->codes.first_error &&
- ext->codes.first_error <= code &&
- (!bext || ext->codes.first_error > bext->codes.first_error))
- bext = ext;
- }
- if (!buffer[0] && bext) {
- snprintf(buf, sizeof(buf), "%s.%d",
- bext->name, code - bext->codes.first_error);
- (void) XGetErrorDatabaseText(dpy, "XProtoError", buf, "", buffer, nbytes);
- }
- if (!buffer[0])
- snprintf(buffer, nbytes, "%d", code);
- return 0;
-}
-
-int
-/*ARGSUSED*/
-XGetErrorDatabaseText(
- Display *dpy,
- register _Xconst char *name,
- register _Xconst char *type,
- _Xconst char *defaultp,
- char *buffer,
- int nbytes)
-{
-
- static XrmDatabase db = NULL;
- XrmString type_str;
- XrmValue result;
- char temp[BUFSIZ];
- char* tptr;
- unsigned long tlen;
-
- if (nbytes == 0) return 0;
-
- if (!db) {
- /* the Xrm routines expect to be called with the global
- mutex unlocked. */
- XrmDatabase temp_db;
- int do_destroy;
- const char *dbname;
-
- XrmInitialize();
-#ifdef WIN32
- dbname = getenv("XERRORDB");
- if (!dbname)
- dbname = ERRORDB;
-#else
- dbname = ERRORDB;
-#endif
- temp_db = XrmGetFileDatabase(dbname);
-
- _XLockMutex(_Xglobal_lock);
- if (!db) {
- db = temp_db;
- do_destroy = 0;
- } else
- do_destroy = 1; /* we didn't need to get it after all */
- _XUnlockMutex(_Xglobal_lock);
-
- if (do_destroy)
- XrmDestroyDatabase(temp_db);
- }
-
- if (db)
- {
- tlen = strlen (name) + strlen (type) + 2;
- if (tlen <= sizeof(temp))
- tptr = temp;
- else
- tptr = Xmalloc (tlen);
- if (tptr) {
- snprintf(tptr, tlen, "%s.%s", name, type);
- XrmGetResource(db, tptr, "ErrorType.ErrorNumber",
- &type_str, &result);
- if (tptr != temp)
- Xfree (tptr);
- } else {
- result.addr = (XPointer) NULL;
- }
- }
- else
- result.addr = (XPointer)NULL;
- if (!result.addr) {
- result.addr = (XPointer) defaultp;
- result.size = strlen(defaultp) + 1;
- }
- (void) strncpy (buffer, (char *) result.addr, nbytes);
- if (result.size > nbytes) buffer[nbytes-1] = '\0';
- return 0;
-}
diff --git a/nx-X11/lib/X11/ErrHndlr.c b/nx-X11/lib/X11/ErrHndlr.c
deleted file mode 100644
index 167a68b1e..000000000
--- a/nx-X11/lib/X11/ErrHndlr.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * XErrorHandler - This procedure sets the X non-fatal error handler
- * (_XErrorFunction) to be the specified routine. If NULL is passed in
- * the original error handler is restored.
- */
-
-XErrorHandler
-XSetErrorHandler(XErrorHandler handler)
-{
- int (*oldhandler)(Display *dpy, XErrorEvent *event);
-
- _XLockMutex(_Xglobal_lock);
- oldhandler = _XErrorFunction;
-
- if (!oldhandler)
- oldhandler = _XDefaultError;
-
- if (handler != NULL) {
- _XErrorFunction = handler;
- }
- else {
- _XErrorFunction = _XDefaultError;
- }
- _XUnlockMutex(_Xglobal_lock);
-
- return (XErrorHandler) oldhandler;
-}
-
-/*
- * XIOErrorHandler - This procedure sets the X fatal I/O error handler
- * (_XIOErrorFunction) to be the specified routine. If NULL is passed in
- * the original error handler is restored.
- */
-
-XIOErrorHandler
-XSetIOErrorHandler(XIOErrorHandler handler)
-{
- int (*oldhandler)(Display *dpy);
-
- _XLockMutex(_Xglobal_lock);
- oldhandler = _XIOErrorFunction;
-
- if (!oldhandler)
- oldhandler = _XDefaultIOError;
-
- if (handler != NULL) {
- _XIOErrorFunction = handler;
- }
- else {
- _XIOErrorFunction = _XDefaultIOError;
- }
- _XUnlockMutex(_Xglobal_lock);
-
- return (XIOErrorHandler) oldhandler;
-}
diff --git a/nx-X11/lib/X11/EvToWire.c b/nx-X11/lib/X11/EvToWire.c
deleted file mode 100644
index 4aca053ab..000000000
--- a/nx-X11/lib/X11/EvToWire.c
+++ /dev/null
@@ -1,406 +0,0 @@
-
-/*
-
-Copyright 1985, 1986, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- * XEvToWire.c - Internal support routines for the C subroutine
- * interface library (Xlib) to the X Window System Protocol V11.0.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Reformat an XEvent structure to a wire event of the right type.
- * Return True on success. If the type is unrecognized, return what
- * _XUnknownNativeEvent returns (i.e., False).
- */
-Status
-_XEventToWire(
- register Display *dpy,
- register XEvent *re, /* in: from */
- register xEvent *event) /* out: to */
-{
- switch (event->u.u.type = re->type) {
- case KeyPress:
- case KeyRelease:
- {
- register XKeyEvent *ev = (XKeyEvent*) re;
- event->u.keyButtonPointer.root = ev->root;
- event->u.keyButtonPointer.event = ev->window;
- event->u.keyButtonPointer.child = ev->subwindow;
- event->u.keyButtonPointer.time = ev->time;
- event->u.keyButtonPointer.eventX = ev->x ;
- event->u.keyButtonPointer.eventY = ev->y ;
- event->u.keyButtonPointer.rootX = ev->x_root;
- event->u.keyButtonPointer.rootY = ev->y_root;
- event->u.keyButtonPointer.state = ev->state;
- event->u.keyButtonPointer.sameScreen = ev->same_screen;
- event->u.u.detail = ev->keycode;
- }
- break;
- case ButtonPress:
- case ButtonRelease:
- {
- register XButtonEvent *ev = (XButtonEvent *) re;
- event->u.keyButtonPointer.root = ev->root;
- event->u.keyButtonPointer.event = ev->window;
- event->u.keyButtonPointer.child = ev->subwindow;
- event->u.keyButtonPointer.time = ev->time;
- event->u.keyButtonPointer.eventX = ev->x;
- event->u.keyButtonPointer.eventY = ev->y;
- event->u.keyButtonPointer.rootX = ev->x_root;
- event->u.keyButtonPointer.rootY = ev->y_root;
- event->u.keyButtonPointer.state = ev->state;
- event->u.keyButtonPointer.sameScreen = ev->same_screen;
- event->u.u.detail = ev->button;
- }
- break;
- case MotionNotify:
- {
- register XMotionEvent *ev = (XMotionEvent *)re;
- event->u.keyButtonPointer.root = ev->root;
- event->u.keyButtonPointer.event = ev->window;
- event->u.keyButtonPointer.child = ev->subwindow;
- event->u.keyButtonPointer.time = ev->time;
- event->u.keyButtonPointer.eventX= ev->x;
- event->u.keyButtonPointer.eventY= ev->y;
- event->u.keyButtonPointer.rootX = ev->x_root;
- event->u.keyButtonPointer.rootY = ev->y_root;
- event->u.keyButtonPointer.state = ev->state;
- event->u.keyButtonPointer.sameScreen= ev->same_screen;
- event->u.u.detail = ev->is_hint;
- }
- break;
- case EnterNotify:
- case LeaveNotify:
- {
- register XCrossingEvent *ev = (XCrossingEvent *) re;
- event->u.enterLeave.root = ev->root;
- event->u.enterLeave.event = ev->window;
- event->u.enterLeave.child = ev->subwindow;
- event->u.enterLeave.time = ev->time;
- event->u.enterLeave.eventX = ev->x;
- event->u.enterLeave.eventY = ev->y;
- event->u.enterLeave.rootX = ev->x_root;
- event->u.enterLeave.rootY = ev->y_root;
- event->u.enterLeave.state = ev->state;
- event->u.enterLeave.mode = ev->mode;
- event->u.enterLeave.flags = 0;
- if (ev->same_screen) {
- event->u.enterLeave.flags |= ELFlagSameScreen;
- }
- if (ev->focus) {
- event->u.enterLeave.flags |= ELFlagFocus;
- }
- event->u.u.detail = ev->detail;
- }
- break;
- case FocusIn:
- case FocusOut:
- {
- register XFocusChangeEvent *ev = (XFocusChangeEvent *) re;
- event->u.focus.window = ev->window;
- event->u.focus.mode = ev->mode;
- event->u.u.detail = ev->detail;
- }
- break;
- case KeymapNotify:
- {
- register XKeymapEvent *ev = (XKeymapEvent *) re;
- memcpy ((char *)(((xKeymapEvent *) event)->map),
- &ev->key_vector[1],
- sizeof (((xKeymapEvent *) event)->map));
- }
- break;
- case Expose:
- {
- register XExposeEvent *ev = (XExposeEvent *) re;
- event->u.expose.window = ev->window;
- event->u.expose.x = ev->x;
- event->u.expose.y = ev->y;
- event->u.expose.width = ev->width;
- event->u.expose.height = ev->height;
- event->u.expose.count = ev->count;
- }
- break;
- case GraphicsExpose:
- {
- register XGraphicsExposeEvent *ev =
- (XGraphicsExposeEvent *) re;
- event->u.graphicsExposure.drawable = ev->drawable;
- event->u.graphicsExposure.x = ev->x;
- event->u.graphicsExposure.y = ev->y;
- event->u.graphicsExposure.width = ev->width;
- event->u.graphicsExposure.height = ev->height;
- event->u.graphicsExposure.count = ev->count;
- event->u.graphicsExposure.majorEvent= ev->major_code;
- event->u.graphicsExposure.minorEvent= ev->minor_code;
- }
- break;
- case NoExpose:
- {
- register XNoExposeEvent *ev = (XNoExposeEvent *) re;
- event->u.noExposure.drawable = ev->drawable;
- event->u.noExposure.majorEvent = ev->major_code;
- event->u.noExposure.minorEvent = ev->minor_code;
- }
- break;
- case VisibilityNotify:
- {
- register XVisibilityEvent *ev = (XVisibilityEvent *) re;
- event->u.visibility.window = ev->window;
- event->u.visibility.state = ev->state;
- }
- break;
- case CreateNotify:
- {
- register XCreateWindowEvent *ev =
- (XCreateWindowEvent *) re;
- event->u.createNotify.window = ev->window;
- event->u.createNotify.parent = ev->parent;
- event->u.createNotify.x = ev->x;
- event->u.createNotify.y = ev->y;
- event->u.createNotify.width = ev->width;
- event->u.createNotify.height = ev->height;
- event->u.createNotify.borderWidth = ev->border_width;
- event->u.createNotify.override = ev->override_redirect;
- }
- break;
- case DestroyNotify:
- {
- register XDestroyWindowEvent *ev =
- (XDestroyWindowEvent *) re;
- event->u.destroyNotify.window = ev->window;
- event->u.destroyNotify.event = ev->event;
- }
- break;
- case UnmapNotify:
- {
- register XUnmapEvent *ev = (XUnmapEvent *) re;
- event->u.unmapNotify.window = ev->window;
- event->u.unmapNotify.event = ev->event;
- event->u.unmapNotify.fromConfigure = ev->from_configure;
- }
- break;
- case MapNotify:
- {
- register XMapEvent *ev = (XMapEvent *) re;
- event->u.mapNotify.window = ev->window;
- event->u.mapNotify.event = ev->event;
- event->u.mapNotify.override = ev->override_redirect;
- }
- break;
- case MapRequest:
- {
- register XMapRequestEvent *ev = (XMapRequestEvent *) re;
- event->u.mapRequest.window = ev->window;
- event->u.mapRequest.parent = ev->parent;
- }
- break;
- case ReparentNotify:
- {
- register XReparentEvent *ev = (XReparentEvent *) re;
- event->u.reparent.window = ev->window;
- event->u.reparent.event = ev->event;
- event->u.reparent.parent = ev->parent;
- event->u.reparent.x = ev->x;
- event->u.reparent.y = ev->y;
- event->u.reparent.override = ev->override_redirect;
- }
- break;
- case ConfigureNotify:
- {
- register XConfigureEvent *ev = (XConfigureEvent *) re;
- event->u.configureNotify.window = ev->window;
- event->u.configureNotify.event = ev->event;
- event->u.configureNotify.aboveSibling = ev->above;
- event->u.configureNotify.x = ev->x;
- event->u.configureNotify.y = ev->y;
- event->u.configureNotify.width = ev->width;
- event->u.configureNotify.height = ev->height;
- event->u.configureNotify.borderWidth= ev->border_width;
- event->u.configureNotify.override = ev->override_redirect;
- }
- break;
- case ConfigureRequest:
- {
- register XConfigureRequestEvent *ev =
- (XConfigureRequestEvent *) re;
- event->u.configureRequest.window = ev->window;
- event->u.configureRequest.parent = ev->parent;
- event->u.configureRequest.sibling = ev->above;
- event->u.configureRequest.x = ev->x;
- event->u.configureRequest.y = ev->y;
- event->u.configureRequest.width = ev->width;
- event->u.configureRequest.height = ev->height;
- event->u.configureRequest.borderWidth= ev->border_width;
- event->u.configureRequest.valueMask= ev->value_mask;
- event->u.u.detail = ev->detail;
- }
- break;
- case GravityNotify:
- {
- register XGravityEvent *ev = (XGravityEvent *) re;
- event->u.gravity.window = ev->window;
- event->u.gravity.event = ev->event;
- event->u.gravity.x = ev->x;
- event->u.gravity.y = ev->y;
- }
- break;
- case ResizeRequest:
- {
- register XResizeRequestEvent *ev =
- (XResizeRequestEvent *) re;
- event->u.resizeRequest.window = ev->window;
- event->u.resizeRequest.width = ev->width;
- event->u.resizeRequest.height = ev->height;
- }
- break;
- case CirculateNotify:
- {
- register XCirculateEvent *ev = (XCirculateEvent *) re;
- event->u.circulate.window = ev->window;
- event->u.circulate.event = ev->event;
- event->u.circulate.place = ev->place;
- }
- break;
- case CirculateRequest:
- {
- register XCirculateRequestEvent *ev =
- (XCirculateRequestEvent *) re;
- event->u.circulate.window = ev->window;
- event->u.circulate.event = ev->parent;
- event->u.circulate.place = ev->place;
- }
- break;
- case PropertyNotify:
- {
- register XPropertyEvent *ev = (XPropertyEvent *) re;
- event->u.property.window = ev->window;
- event->u.property.atom = ev->atom;
- event->u.property.time = ev->time;
- event->u.property.state = ev->state;
- }
- break;
- case SelectionClear:
- {
- register XSelectionClearEvent *ev =
- (XSelectionClearEvent *) re;
- event->u.selectionClear.window = ev->window;
- event->u.selectionClear.atom = ev->selection;
- event->u.selectionClear.time = ev->time;
- }
- break;
- case SelectionRequest:
- {
- register XSelectionRequestEvent *ev =
- (XSelectionRequestEvent *) re;
- event->u.selectionRequest.owner = ev->owner;
- event->u.selectionRequest.requestor = ev->requestor;
- event->u.selectionRequest.selection = ev->selection;
- event->u.selectionRequest.target = ev->target;
- event->u.selectionRequest.property = ev->property;
- event->u.selectionRequest.time = ev->time;
- }
- break;
- case SelectionNotify:
- {
- register XSelectionEvent *ev = (XSelectionEvent *) re;
- event->u.selectionNotify.requestor = ev->requestor;
- event->u.selectionNotify.selection = ev->selection;
- event->u.selectionNotify.target = ev->target;
- event->u.selectionNotify.property = ev->property;
- event->u.selectionNotify.time = ev->time;
- }
- break;
- case ColormapNotify:
- {
- register XColormapEvent *ev = (XColormapEvent *) re;
- event->u.colormap.window = ev->window;
- event->u.colormap.colormap = ev->colormap;
- event->u.colormap.new = ev->new;
- event->u.colormap.state = ev->state;
- }
- break;
- case ClientMessage:
- {
- register int i;
- register XClientMessageEvent *ev
- = (XClientMessageEvent *) re;
- event->u.clientMessage.window = ev->window;
- event->u.u.detail = ev->format;
- switch (ev->format) {
- case 8:
- event->u.clientMessage.u.b.type = ev->message_type;
- for (i = 0; i < 20; i++)
- event->u.clientMessage.u.b.bytes[i] = ev->data.b[i];
- break;
- case 16:
- event->u.clientMessage.u.s.type = ev->message_type;
- event->u.clientMessage.u.s.shorts0 = ev->data.s[0];
- event->u.clientMessage.u.s.shorts1 = ev->data.s[1];
- event->u.clientMessage.u.s.shorts2 = ev->data.s[2];
- event->u.clientMessage.u.s.shorts3 = ev->data.s[3];
- event->u.clientMessage.u.s.shorts4 = ev->data.s[4];
- event->u.clientMessage.u.s.shorts5 = ev->data.s[5];
- event->u.clientMessage.u.s.shorts6 = ev->data.s[6];
- event->u.clientMessage.u.s.shorts7 = ev->data.s[7];
- event->u.clientMessage.u.s.shorts8 = ev->data.s[8];
- event->u.clientMessage.u.s.shorts9 = ev->data.s[9];
- break;
- case 32:
- event->u.clientMessage.u.l.type = ev->message_type;
- event->u.clientMessage.u.l.longs0 = ev->data.l[0];
- event->u.clientMessage.u.l.longs1 = ev->data.l[1];
- event->u.clientMessage.u.l.longs2 = ev->data.l[2];
- event->u.clientMessage.u.l.longs3 = ev->data.l[3];
- event->u.clientMessage.u.l.longs4 = ev->data.l[4];
- break;
- default:
- /* client passing bogus data, let server complain */
- break;
- }
- }
- break;
- case MappingNotify:
- {
- register XMappingEvent *ev = (XMappingEvent *) re;
- event->u.mappingNotify.firstKeyCode = ev->first_keycode;
- event->u.mappingNotify.request = ev->request;
- event->u.mappingNotify.count = ev->count;
- }
- break;
-
- default:
- return(_XUnknownNativeEvent(dpy, re, event));
- }
- return(1);
-}
diff --git a/nx-X11/lib/X11/FSSaver.c b/nx-X11/lib/X11/FSSaver.c
deleted file mode 100644
index 3df8ae681..000000000
--- a/nx-X11/lib/X11/FSSaver.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XActivateScreenSaver(register Display *dpy)
-{
- XForceScreenSaver (dpy, ScreenSaverActive);
- return 1;
-}
-
-int
-XResetScreenSaver(register Display *dpy)
-{
- XForceScreenSaver (dpy, ScreenSaverReset);
- return 1;
-}
-
-int
-XForceScreenSaver(
- register Display *dpy,
- int mode)
-{
- register xForceScreenSaverReq *req;
-
- LockDisplay(dpy);
- GetReq(ForceScreenSaver, req);
- req->mode = mode;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/FSWrap.c b/nx-X11/lib/X11/FSWrap.c
deleted file mode 100644
index 015965779..000000000
--- a/nx-X11/lib/X11/FSWrap.c
+++ /dev/null
@@ -1,262 +0,0 @@
-
-/*
- * Copyright 1991 by the Open Software Foundation
- * Copyright 1993 by the TOSHIBA Corp.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name Open Software Foundation
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Open Software
- * Foundation makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OPEN SOFTWARE FOUNDATION DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * M. Collins OSF
- *
- * Katsuhisa Yano TOSHIBA Corp.
- */
-
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include <ctype.h>
-#include <nx-X11/Xos.h>
-
-
-#define XMAXLIST 256
-
-char **
-_XParseBaseFontNameList(
- char *str,
- int *num)
-{
- char *plist[XMAXLIST];
- char **list;
- char *ptr, *psave;
-
- *num = 0;
- if (!str || !*str) {
- return (char **)NULL;
- }
- while (*str && isspace(*str))
- str++;
- if (!*str)
- return (char **)NULL;
-
- if (!(ptr = strdup(str))) {
- return (char **)NULL;
- }
-
- psave = ptr;
- /* somebody who specifies more than XMAXLIST basefontnames will lose */
- while (*num < (sizeof plist / sizeof plist[0])) {
- char *back;
-
- plist[*num] = ptr;
- if ((ptr = strchr(ptr, ','))) {
- back = ptr;
- } else {
- back = plist[*num] + strlen(plist[*num]);
- }
- while (isspace(*(back - 1)))
- back--;
- *back = '\0';
- (*num)++;
- if (!ptr)
- break;
- ptr++;
- while (*ptr && isspace(*ptr))
- ptr++;
- if (!*ptr)
- break;
- }
- if (!(list = Xmalloc(sizeof(char *) * (*num + 1)))) {
- Xfree(psave);
- return (char **)NULL;
- }
- memcpy((char *)list, (char *)plist, sizeof(char *) * (*num));
- *(list + *num) = NULL;
-
- return list;
-}
-
-static char **
-copy_string_list(
- char **string_list,
- int list_count)
-{
- char **string_list_ret, **list_src, **list_dst, *dst;
- int length, count;
-
- if (string_list == NULL || list_count <= 0)
- return (char **) NULL;
-
- string_list_ret = Xmalloc(sizeof(char *) * list_count);
- if (string_list_ret == NULL)
- return (char **) NULL;
-
- list_src = string_list;
- count = list_count;
- for (length = 0; count-- > 0; list_src++)
- length += strlen(*list_src) + 1;
-
- dst = Xmalloc(length);
- if (dst == NULL) {
- Xfree(string_list_ret);
- return (char **) NULL;
- }
-
- list_src = string_list;
- count = list_count;
- list_dst = string_list_ret;
- for ( ; count-- > 0; list_src++) {
- strcpy(dst, *list_src);
- *list_dst++ = dst;
- dst += strlen(dst) + 1;
- }
-
- return string_list_ret;
-}
-
-XFontSet
-XCreateFontSet (
- Display *dpy,
- _Xconst char *base_font_name_list,
- char ***missing_charset_list,
- int *missing_charset_count,
- char **def_string)
-{
- XOM om;
- XOC oc;
- XOMCharSetList *list;
-
- *missing_charset_list = NULL;
- *missing_charset_count = 0;
-
- om = XOpenOM(dpy, NULL, NULL, NULL);
- if (om == NULL)
- return (XFontSet) NULL;
-
- if ((oc = XCreateOC(om, XNBaseFontName, base_font_name_list, NULL))) {
- list = &oc->core.missing_list;
- oc->core.om_automatic = True;
- } else
- list = &om->core.required_charset;
-
- *missing_charset_list = copy_string_list(list->charset_list,
- list->charset_count);
- *missing_charset_count = list->charset_count;
-
- if (list->charset_list && *missing_charset_list == NULL)
- oc = NULL;
-
- if (oc && def_string) {
- *def_string = oc->core.default_string;
- if (!*def_string)
- *def_string = "";
- }
-
- if (oc == NULL)
- XCloseOM(om);
-
- return (XFontSet) oc;
-}
-
-int
-XFontsOfFontSet(
- XFontSet font_set,
- XFontStruct ***font_struct_list,
- char ***font_name_list)
-{
- *font_name_list = font_set->core.font_info.font_name_list;
- *font_struct_list = font_set->core.font_info.font_struct_list;
- return font_set->core.font_info.num_font;
-}
-
-char *
-XBaseFontNameListOfFontSet(XFontSet font_set)
-{
- return font_set->core.base_name_list;
-}
-
-char *
-XLocaleOfFontSet(XFontSet font_set)
-{
- return font_set->core.om->core.lcd->core->name;
-}
-
-Bool
-XContextDependentDrawing(XFontSet font_set)
-{
- return font_set->core.om->core.context_dependent;
-}
-
-Bool
-XDirectionalDependentDrawing(XFontSet font_set)
-{
- return font_set->core.om->core.directional_dependent;
-}
-
-Bool
-XContextualDrawing(XFontSet font_set)
-{
- return font_set->core.om->core.contextual_drawing;
-}
-
-XFontSetExtents *
-XExtentsOfFontSet(XFontSet font_set)
-{
- if (!font_set)
- return NULL;
- return &font_set->core.font_set_extents;
-}
-
-void
-XFreeFontSet(
- Display *dpy,
- XFontSet font_set)
-{
- XCloseOM(font_set->core.om);
-}
diff --git a/nx-X11/lib/X11/FetchName.c b/nx-X11/lib/X11/FetchName.c
deleted file mode 100644
index 52c65c52c..000000000
--- a/nx-X11/lib/X11/FetchName.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-#include <stdio.h>
-
-
-Status XFetchName (
- register Display *dpy,
- Window w,
- char **name)
-{
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long leftover;
- unsigned char *data = NULL;
- if (XGetWindowProperty(dpy, w, XA_WM_NAME, 0L, (long)BUFSIZ, False, XA_STRING,
- &actual_type,
- &actual_format, &nitems, &leftover, &data) != Success) {
- *name = NULL;
- return (0);
- }
- if ( (actual_type == XA_STRING) && (actual_format == 8) ) {
-
- /* The data returned by XGetWindowProperty is guarranteed to
- contain one extra byte that is null terminated to make retrieveing
- string properties easy. */
-
- *name = (char *)data;
- return(1);
- }
- Xfree (data);
- *name = NULL;
- return(0);
-}
-
-Status XGetIconName (
- register Display *dpy,
- Window w,
- char **icon_name)
-{
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long leftover;
- unsigned char *data = NULL;
- if (XGetWindowProperty(dpy, w, XA_WM_ICON_NAME, 0L, (long)BUFSIZ, False,
- XA_STRING,
- &actual_type,
- &actual_format, &nitems, &leftover, &data) != Success) {
- *icon_name = NULL;
- return (0);
- }
- if ( (actual_type == XA_STRING) && (actual_format == 8) ) {
-
- /* The data returned by XGetWindowProperty is guarranteed to
- contain one extra byte that is null terminated to make retrieveing
- string properties easy. */
-
- *icon_name = (char*)data;
- return(1);
- }
- Xfree (data);
- *icon_name = NULL;
- return(0);
-}
diff --git a/nx-X11/lib/X11/FillArc.c b/nx-X11/lib/X11/FillArc.c
deleted file mode 100644
index c67f977b7..000000000
--- a/nx-X11/lib/X11/FillArc.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* precompute the maximum size of batching request allowed */
-
-#define size (SIZEOF(xPolyFillArcReq) + FARCSPERBATCH * SIZEOF(xArc))
-
-int
-XFillArc(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y, /* INT16 */
- unsigned int width,
- unsigned int height, /* CARD16 */
- int angle1,
- int angle2) /* INT16 */
-{
- xArc *arc;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- {
- register xPolyFillArcReq *req = (xPolyFillArcReq *) dpy->last_req;
-
- /* if same as previous request, with same drawable, batch requests */
- if (
- (req->reqType == X_PolyFillArc)
- && (req->drawable == d)
- && (req->gc == gc->gid)
- && ((dpy->bufptr + SIZEOF(xArc)) <= dpy->bufmax)
- && (((char *)dpy->bufptr - (char *)req) < size) ) {
- req->length += SIZEOF(xArc) >> 2;
- arc = (xArc *) dpy->bufptr;
- dpy->bufptr += SIZEOF(xArc);
- }
-
- else {
- GetReqExtra(PolyFillArc, SIZEOF(xArc), req);
-
- req->drawable = d;
- req->gc = gc->gid;
- arc = (xArc *) NEXTPTR(req,xPolyFillArcReq);
- }
- arc->x = x;
- arc->y = y;
- arc->width = width;
- arc->height = height;
- arc->angle1 = angle1;
- arc->angle2 = angle2;
-
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/FillArcs.c b/nx-X11/lib/X11/FillArcs.c
deleted file mode 100644
index 62cfabf8f..000000000
--- a/nx-X11/lib/X11/FillArcs.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define arc_scale (SIZEOF(xArc) / 4)
-
-int
-XFillArcs(
- register Display *dpy,
- Drawable d,
- GC gc,
- XArc *arcs,
- int n_arcs)
-{
- register xPolyFillArcReq *req;
- long len;
- int n;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- while (n_arcs) {
- GetReq(PolyFillArc, req);
- req->drawable = d;
- req->gc = gc->gid;
- n = n_arcs;
- len = ((long)n) * arc_scale;
- if (!dpy->bigreq_size && len > (dpy->max_request_size - req->length)) {
- n = (dpy->max_request_size - req->length) / arc_scale;
- len = ((long)n) * arc_scale;
- }
- SetReqLen(req, len, len);
- len <<= 2; /* watch out for macros... */
- Data16 (dpy, (short *) arcs, len);
- n_arcs -= n;
- arcs += n;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/FillPoly.c b/nx-X11/lib/X11/FillPoly.c
deleted file mode 100644
index ea162a41e..000000000
--- a/nx-X11/lib/X11/FillPoly.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XFillPolygon(
- register Display *dpy,
- Drawable d,
- GC gc,
- XPoint *points,
- int n_points,
- int shape,
- int mode)
-{
- register xFillPolyReq *req;
- register long nbytes;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq(FillPoly, req);
-
- req->drawable = d;
- req->gc = gc->gid;
- req->shape = shape;
- req->coordMode = mode;
-
- SetReqLen(req, n_points, 65535 - req->length);
-
- /* shift (mult. by 4) before passing to the (possible) macro */
-
- nbytes = n_points << 2;
-
- Data16 (dpy, (short *) points, nbytes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/FillRct.c b/nx-X11/lib/X11/FillRct.c
deleted file mode 100644
index 3ca9afe9e..000000000
--- a/nx-X11/lib/X11/FillRct.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* precompute the maximum size of batching request allowed */
-
-#define size (SIZEOF(xPolyFillRectangleReq) + FRCTSPERBATCH * SIZEOF(xRectangle))
-
-int
-XFillRectangle(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y, /* INT16 */
- unsigned int width,
- unsigned int height) /* CARD16 */
-{
- xRectangle *rect;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- {
- register xPolyFillRectangleReq *req
- = (xPolyFillRectangleReq *) dpy->last_req;
-
- /* if same as previous request, with same drawable, batch requests */
- if (
- (req->reqType == X_PolyFillRectangle)
- && (req->drawable == d)
- && (req->gc == gc->gid)
- && ((dpy->bufptr + SIZEOF(xRectangle)) <= dpy->bufmax)
- && (((char *)dpy->bufptr - (char *)req) < size) ) {
- req->length += SIZEOF(xRectangle) >> 2;
- rect = (xRectangle *) dpy->bufptr;
- dpy->bufptr += SIZEOF(xRectangle);
- }
-
- else {
- GetReqExtra(PolyFillRectangle, SIZEOF(xRectangle), req);
- req->drawable = d;
- req->gc = gc->gid;
- rect = (xRectangle *) NEXTPTR(req,xPolyFillRectangleReq);
- }
- rect->x = x;
- rect->y = y;
- rect->width = width;
- rect->height = height;
-
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/FillRcts.c b/nx-X11/lib/X11/FillRcts.c
deleted file mode 100644
index ad334244f..000000000
--- a/nx-X11/lib/X11/FillRcts.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XFillRectangles(
- register Display *dpy,
- Drawable d,
- GC gc,
- XRectangle *rectangles,
- int n_rects)
-{
- register xPolyFillRectangleReq *req;
- long len;
- int n;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- while (n_rects) {
- GetReq(PolyFillRectangle, req);
- req->drawable = d;
- req->gc = gc->gid;
- n = n_rects;
- len = ((long)n) << 1;
- if (!dpy->bigreq_size && len > (dpy->max_request_size - req->length)) {
- n = (dpy->max_request_size - req->length) >> 1;
- len = ((long)n) << 1;
- }
- SetReqLen(req, len, len);
- len <<= 2; /* watch out for macros... */
- Data16 (dpy, (short *) rectangles, len);
- n_rects -= n;
- rectangles += n;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/FilterEv.c b/nx-X11/lib/X11/FilterEv.c
deleted file mode 100644
index 0a48e5486..000000000
--- a/nx-X11/lib/X11/FilterEv.c
+++ /dev/null
@@ -1,106 +0,0 @@
-
- /*
- * Copyright 1990, 1991 by OMRON Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name OMRON not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. OMRON makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as is" without express or implied warranty.
- *
- * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL OMRON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Seiji Kuwari OMRON Corporation
- * kuwa@omron.co.jp
- * kuwa%omron.co.jp@uunet.uu.net
- */
-
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#else
-#define XLOCALE 1
-#endif
-#include "Xlibint.h"
-#if XLOCALE
-#include "Xlcint.h"
-#endif
-
-extern long const _Xevent_to_mask[];
-
-/*
- * Look up if there is a specified filter for the event.
- */
-Bool
-XFilterEvent(
- XEvent *ev,
- Window window)
-{
-#if XLOCALE
- XFilterEventList p;
- Window win;
- long mask;
- Bool ret;
-
- if (window)
- win = window;
- else
- win = ev->xany.window;
- if (ev->type >= LASTEvent)
- mask = 0;
- else
- mask = _Xevent_to_mask[ev->type];
-
- LockDisplay(ev->xany.display);
- for (p = ev->xany.display->im_filters; p != NULL; p = p->next) {
- if (win == p->window) {
- if ((mask & p->event_mask) ||
- (ev->type >= p->start_type && ev->type <= p->end_type)) {
- UnlockDisplay(ev->xany.display);
- ret = (*(p->filter))(ev->xany.display, p->window, ev,
- p->client_data);
- return(ret);
- }
- }
- }
- UnlockDisplay(ev->xany.display);
-#endif
- return(False);
-}
diff --git a/nx-X11/lib/X11/Flush.c b/nx-X11/lib/X11/Flush.c
deleted file mode 100644
index 46168999b..000000000
--- a/nx-X11/lib/X11/Flush.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* Flush all buffered output requests. */
-/* NOTE: NOT necessary when calling any of the Xlib routines. */
-
-int
-XFlush (register Display *dpy)
-{
- LockDisplay(dpy);
- _XFlush (dpy);
- UnlockDisplay(dpy);
- return 1;
- }
diff --git a/nx-X11/lib/X11/Font.c b/nx-X11/lib/X11/Font.c
deleted file mode 100644
index 6bbab3f19..000000000
--- a/nx-X11/lib/X11/Font.c
+++ /dev/null
@@ -1,708 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-Copyright (c) 2000 The XFree86 Project, Inc.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM OR THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium or of the
-XFree86 Project shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the X Consortium and the XFree86 Project.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-#if defined(XF86BIGFONT)
-#define USE_XF86BIGFONT
-#endif
-#ifdef USE_XF86BIGFONT
-#include <sys/types.h>
-#ifdef HAS_SHM
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <nx-X11/extensions/xf86bigfproto.h>
-#endif
-
-#include "Xlcint.h"
-#include "XlcPubI.h"
-
-
-static XFontStruct *_XQueryFont(
- Display* /* dpy */,
- Font /* fid */,
- unsigned long /* seq */
-);
-
-#ifdef USE_XF86BIGFONT
-
-/* Private data for this extension. */
-typedef struct {
- XExtCodes *codes;
- CARD32 serverSignature;
- CARD32 serverCapabilities;
-} XF86BigfontCodes;
-
-/* Additional bit masks that can be set in serverCapabilities */
-#define CAP_VerifiedLocal 256
-
-static XF86BigfontCodes *_XF86BigfontCodes(
- Display* /* dpy */
-);
-
-static XFontStruct *_XF86BigfontQueryFont(
- Display* /* dpy */,
- XF86BigfontCodes* /* extcodes */,
- Font /* fid */,
- unsigned long /* seq */
-);
-
-void _XF86BigfontFreeFontMetrics(
- XFontStruct* /* fs */
-);
-
-#endif /* USE_XF86BIGFONT */
-
-
-XFontStruct *XLoadQueryFont(
- register Display *dpy,
- _Xconst char *name)
-{
- XFontStruct *font_result;
- register long nbytes;
- Font fid;
- xOpenFontReq *req;
- unsigned long seq;
-#ifdef USE_XF86BIGFONT
- XF86BigfontCodes *extcodes = _XF86BigfontCodes(dpy);
-#endif
-
- if (_XF86LoadQueryLocaleFont(dpy, name, &font_result, (Font *)0))
- return font_result;
- LockDisplay(dpy);
- GetReq(OpenFont, req);
- seq = dpy->request;
- nbytes = req->nbytes = name ? strlen(name) : 0;
- req->fid = fid = XAllocID(dpy);
- req->length += (nbytes+3)>>2;
- Data (dpy, name, nbytes);
- font_result = NULL;
-#ifdef USE_XF86BIGFONT
- if (extcodes) {
- font_result = _XF86BigfontQueryFont(dpy, extcodes, fid, seq);
- seq = 0;
- }
-#endif
- if (!font_result)
- font_result = _XQueryFont(dpy, fid, seq);
- UnlockDisplay(dpy);
- SyncHandle();
- return font_result;
-}
-
-XFontStruct *XQueryFont (
- register Display *dpy,
- Font fid)
-{
- XFontStruct *font_result;
-#ifdef USE_XF86BIGFONT
- XF86BigfontCodes *extcodes = _XF86BigfontCodes(dpy);
-#endif
-
- LockDisplay(dpy);
- font_result = NULL;
-#ifdef USE_XF86BIGFONT
- if (extcodes) {
- font_result = _XF86BigfontQueryFont(dpy, extcodes, fid, 0L);
- }
-#endif
- if (!font_result)
- font_result = _XQueryFont(dpy, fid, 0L);
- UnlockDisplay(dpy);
- SyncHandle();
- return font_result;
-}
-
-int
-XFreeFont(
- register Display *dpy,
- XFontStruct *fs)
-{
- register xResourceReq *req;
- register _XExtension *ext;
-
- LockDisplay(dpy);
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->free_Font) (*ext->free_Font)(dpy, fs, &ext->codes);
- GetResReq (CloseFont, fs->fid, req);
- UnlockDisplay(dpy);
- SyncHandle();
- if (fs->per_char) {
-#ifdef USE_XF86BIGFONT
- _XF86BigfontFreeFontMetrics(fs);
-#else
- Xfree (fs->per_char);
-#endif
- }
- _XFreeExtData(fs->ext_data);
-
- Xfree (fs->properties);
- Xfree (fs);
- return 1;
-}
-
-
-static XFontStruct *
-_XQueryFont (
- register Display *dpy,
- Font fid,
- unsigned long seq)
-{
- register XFontStruct *fs;
- unsigned long nbytes;
- unsigned long reply_left; /* unused data words left in reply buffer */
- xQueryFontReply reply;
- register xResourceReq *req;
- register _XExtension *ext;
- _XAsyncHandler async;
- _XAsyncErrorState async_state;
-
- if (seq) {
- async_state.min_sequence_number = seq;
- async_state.max_sequence_number = seq;
- async_state.error_code = BadName;
- async_state.major_opcode = X_OpenFont;
- async_state.minor_opcode = 0;
- async_state.error_count = 0;
- async.next = dpy->async_handlers;
- async.handler = _XAsyncErrorHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
- }
- GetResReq(QueryFont, fid, req);
- if (!_XReply (dpy, (xReply *) &reply,
- ((SIZEOF(xQueryFontReply) - SIZEOF(xReply)) >> 2), xFalse)) {
- if (seq)
- DeqAsyncHandler(dpy, &async);
- return (XFontStruct *)NULL;
- }
- if (seq)
- DeqAsyncHandler(dpy, &async);
- reply_left = reply.length -
- ((SIZEOF(xQueryFontReply) - SIZEOF(xReply)) >> 2);
- if (! (fs = Xmalloc (sizeof (XFontStruct)))) {
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
- fs->ext_data = NULL;
- fs->fid = fid;
- fs->direction = reply.drawDirection;
- fs->min_char_or_byte2 = reply.minCharOrByte2;
- fs->max_char_or_byte2 = reply.maxCharOrByte2;
- fs->min_byte1 = reply.minByte1;
- fs->max_byte1 = reply.maxByte1;
- fs->default_char = reply.defaultChar;
- fs->all_chars_exist = reply.allCharsExist;
- fs->ascent = cvtINT16toInt (reply.fontAscent);
- fs->descent = cvtINT16toInt (reply.fontDescent);
-
- /* XXX the next two statements won't work if short isn't 16 bits */
- fs->min_bounds = * (XCharStruct *) &reply.minBounds;
- fs->max_bounds = * (XCharStruct *) &reply.maxBounds;
-
- fs->n_properties = reply.nFontProps;
- /*
- * if no properties defined for the font, then it is bad
- * font, but shouldn't try to read nothing.
- */
- fs->properties = NULL;
- if (fs->n_properties > 0) {
- /* nFontProps is a CARD16 */
- nbytes = reply.nFontProps * SIZEOF(xFontProp);
- if ((nbytes >> 2) <= reply_left) {
- size_t pbytes = reply.nFontProps * sizeof(XFontProp);
- fs->properties = Xmalloc (pbytes);
- }
- if (! fs->properties) {
- Xfree(fs);
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
- _XRead32 (dpy, (long *)fs->properties, nbytes);
- reply_left -= (nbytes >> 2);
- }
- /*
- * If no characters in font, then it is a bad font, but
- * shouldn't try to read nothing.
- */
- fs->per_char = NULL;
- if (reply.nCharInfos > 0){
- /* nCharInfos is a CARD32 */
- if (reply.nCharInfos < (INT_MAX / sizeof(XCharStruct))) {
- nbytes = reply.nCharInfos * SIZEOF(xCharInfo);
- if ((nbytes >> 2) <= reply_left) {
- size_t cibytes = reply.nCharInfos * sizeof(XCharStruct);
- fs->per_char = Xmalloc (cibytes);
- }
- }
- if (! fs->per_char) {
- Xfree(fs->properties);
- Xfree(fs);
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
-
- _XRead16 (dpy, (char *)fs->per_char, nbytes);
- }
-
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->create_Font) (*ext->create_Font)(dpy, fs, &ext->codes);
- return fs;
-}
-
-#ifdef USE_XF86BIGFONT
-
-/* Magic cookie for finding the right XExtData structure on the display's
- extension list. */
-static int XF86BigfontNumber = 1040697125;
-
-static int
-_XF86BigfontFreeCodes (
- XExtData *extension)
-{
- /* Don't Xfree(extension->private_data) because it is on the same malloc
- chunk as extension. */
- /* Don't Xfree(extension->private_data->codes) because this is shared with
- the display's ext_procs list. */
- return 0;
-}
-
-static XF86BigfontCodes *
-_XF86BigfontCodes (
- register Display *dpy)
-{
- XEDataObject dpy_union;
- XExtData *pData;
- XF86BigfontCodes *pCodes;
- char *envval;
-
- dpy_union.display = dpy;
-
- /* If the server is known to support the XF86Bigfont extension,
- * return the extension codes. If the server is known to not support
- * the extension, don't bother checking again.
- */
- pData = XFindOnExtensionList(XEHeadOfExtensionList(dpy_union),
- XF86BigfontNumber);
- if (pData)
- return (XF86BigfontCodes *) pData->private_data;
-
- pData = Xmalloc(sizeof(XExtData) + sizeof(XF86BigfontCodes));
- if (!pData) {
- /* Out of luck. */
- return (XF86BigfontCodes *) NULL;
- }
-
- /* See if the server supports the XF86Bigfont extension. */
- envval = getenv("XF86BIGFONT_DISABLE"); /* Let the user disable it. */
- if (envval != NULL && envval[0] != '\0')
- pCodes = NULL;
- else {
- XExtCodes *codes = XInitExtension(dpy, XF86BIGFONTNAME);
- if (codes == NULL)
- pCodes = NULL;
- else {
- pCodes = (XF86BigfontCodes *) &pData[1];
- pCodes->codes = codes;
- }
- }
- pData->number = XF86BigfontNumber;
- pData->private_data = (XPointer) pCodes;
- pData->free_private = _XF86BigfontFreeCodes;
- XAddToExtensionList(XEHeadOfExtensionList(dpy_union), pData);
- if (pCodes) {
- int result;
-
- /* See if the server supports the XF86BigfontQueryFont request. */
- xXF86BigfontQueryVersionReply reply;
- register xXF86BigfontQueryVersionReq *req;
-
- LockDisplay(dpy);
-
- GetReq(XF86BigfontQueryVersion, req);
- req->reqType = pCodes->codes->major_opcode;
- req->xf86bigfontReqType = X_XF86BigfontQueryVersion;
-
- result = _XReply (dpy, (xReply *) &reply,
- (SIZEOF(xXF86BigfontQueryVersionReply) - SIZEOF(xReply)) >> 2,
- xFalse);
-
- UnlockDisplay(dpy);
- SyncHandle();
-
- if(!result)
- goto ignore_extension;
-
- /* No need to provide backward compatibility with version 1.0. It
- was never widely distributed. */
- if (!(reply.majorVersion > 1
- || (reply.majorVersion == 1 && reply.minorVersion >= 1)))
- goto ignore_extension;
-
- pCodes->serverSignature = reply.signature;
- pCodes->serverCapabilities = reply.capabilities;
- }
- return pCodes;
-
- ignore_extension:
- /* No need to Xfree(pCodes) or Xfree(pCodes->codes), see
- _XF86BigfontFreeCodes comment. */
- pCodes = (XF86BigfontCodes *) NULL;
- pData->private_data = (XPointer) pCodes;
- return pCodes;
-}
-
-static int
-_XF86BigfontFreeNop (
- XExtData *extension)
-{
- return 0;
-}
-
-static XFontStruct *
-_XF86BigfontQueryFont (
- register Display *dpy,
- XF86BigfontCodes *extcodes,
- Font fid,
- unsigned long seq)
-{
- register XFontStruct *fs;
- unsigned long nbytes;
- unsigned long reply_left; /* unused data left in reply buffer */
- xXF86BigfontQueryFontReply reply;
- register xXF86BigfontQueryFontReq *req;
- register _XExtension *ext;
- _XAsyncHandler async1;
- _XAsyncErrorState async1_state;
- _XAsyncHandler async2;
- _XAsyncErrorState async2_state;
-
- if (seq) {
- async1_state.min_sequence_number = seq;
- async1_state.max_sequence_number = seq;
- async1_state.error_code = BadName;
- async1_state.major_opcode = X_OpenFont;
- async1_state.minor_opcode = 0;
- async1_state.error_count = 0;
- async1.next = dpy->async_handlers;
- async1.handler = _XAsyncErrorHandler;
- async1.data = (XPointer)&async1_state;
- dpy->async_handlers = &async1;
- }
-
- GetReq(XF86BigfontQueryFont, req);
- req->reqType = extcodes->codes->major_opcode;
- req->xf86bigfontReqType = X_XF86BigfontQueryFont;
- req->id = fid;
- req->flags = (extcodes->serverCapabilities & XF86Bigfont_CAP_LocalShm
- ? XF86Bigfont_FLAGS_Shm : 0);
-
- /* The function _XQueryFont benefits from a "magic" error handler for
- BadFont coming from a X_QueryFont request. (See function _XReply.)
- We have to establish an error handler ourselves. */
- async2_state.min_sequence_number = dpy->request;
- async2_state.max_sequence_number = dpy->request;
- async2_state.error_code = BadFont;
- async2_state.major_opcode = extcodes->codes->major_opcode;
- async2_state.minor_opcode = X_XF86BigfontQueryFont;
- async2_state.error_count = 0;
- async2.next = dpy->async_handlers;
- async2.handler = _XAsyncErrorHandler;
- async2.data = (XPointer)&async2_state;
- dpy->async_handlers = &async2;
-
- if (!_XReply (dpy, (xReply *) &reply,
- ((SIZEOF(xXF86BigfontQueryFontReply) - SIZEOF(xReply)) >> 2), xFalse)) {
- DeqAsyncHandler(dpy, &async2);
- if (seq)
- DeqAsyncHandler(dpy, &async1);
- return (XFontStruct *)NULL;
- }
- DeqAsyncHandler(dpy, &async2);
- if (seq)
- DeqAsyncHandler(dpy, &async1);
- reply_left = reply.length -
- ((SIZEOF(xXF86BigfontQueryFontReply) - SIZEOF(xReply)) >> 2);
- if (! (fs = Xmalloc (sizeof (XFontStruct)))) {
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
- fs->ext_data = NULL;
- fs->fid = fid;
- fs->direction = reply.drawDirection;
- fs->min_char_or_byte2 = reply.minCharOrByte2;
- fs->max_char_or_byte2 = reply.maxCharOrByte2;
- fs->min_byte1 = reply.minByte1;
- fs->max_byte1 = reply.maxByte1;
- fs->default_char = reply.defaultChar;
- fs->all_chars_exist = reply.allCharsExist;
- fs->ascent = cvtINT16toInt (reply.fontAscent);
- fs->descent = cvtINT16toInt (reply.fontDescent);
-
- /* XXX the next two statements won't work if short isn't 16 bits */
- fs->min_bounds = * (XCharStruct *) &reply.minBounds;
- fs->max_bounds = * (XCharStruct *) &reply.maxBounds;
-
- fs->n_properties = reply.nFontProps;
- /*
- * if no properties defined for the font, then it is bad
- * font, but shouldn't try to read nothing.
- */
- fs->properties = NULL;
- if (fs->n_properties > 0) {
- /* nFontProps is a CARD16 */
- nbytes = reply.nFontProps * SIZEOF(xFontProp);
- if ((nbytes >> 2) <= reply_left) {
- size_t pbytes = reply.nFontProps * sizeof(XFontProp);
- fs->properties = Xmalloc (pbytes);
- }
- if (! fs->properties) {
- Xfree(fs);
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
- _XRead32 (dpy, (long *)fs->properties, nbytes);
- reply_left -= (nbytes >> 2);
- }
-
- fs->per_char = NULL;
-#ifndef LONG64
- /* compares each part to half the maximum, which should be far more than
- any real font needs, so the combined total doesn't overflow either */
- if (reply.nUniqCharInfos > ((ULONG_MAX / 2) / SIZEOF(xCharInfo)) ||
- reply.nCharInfos > ((ULONG_MAX / 2) / sizeof(CARD16))) {
- Xfree(fs->properties);
- Xfree(fs);
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
-#endif
- if (reply.nCharInfos > 0) {
- /* fprintf(stderr, "received font metrics, nCharInfos = %d, nUniqCharInfos = %d, shmid = %d\n", reply.nCharInfos, reply.nUniqCharInfos, reply.shmid); */
- if (reply.shmid == (CARD32)(-1)) {
- xCharInfo* pUniqCI;
- CARD16* pIndex2UniqIndex;
- int i;
-
- nbytes = reply.nUniqCharInfos * SIZEOF(xCharInfo)
- + (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16);
- pUniqCI = Xmalloc (nbytes);
- if (!pUniqCI) {
- Xfree(fs->properties);
- Xfree(fs);
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
- if (! (fs->per_char = Xmalloc (reply.nCharInfos * sizeof(XCharStruct)))) {
- Xfree(pUniqCI);
- Xfree(fs->properties);
- Xfree(fs);
- _XEatDataWords(dpy, reply_left);
- return (XFontStruct *)NULL;
- }
- _XRead16 (dpy, (char *) pUniqCI, nbytes);
- pIndex2UniqIndex = (CARD16*) (pUniqCI + reply.nUniqCharInfos);
- for (i = 0; i < reply.nCharInfos; i++) {
- if (pIndex2UniqIndex[i] >= reply.nUniqCharInfos) {
- fprintf(stderr, "_XF86BigfontQueryFont: server returned wrong data\n");
- Xfree(pUniqCI);
- Xfree(fs->properties);
- Xfree(fs);
- return (XFontStruct *)NULL;
- }
- /* XXX the next statement won't work if short isn't 16 bits */
- fs->per_char[i] = * (XCharStruct *) &pUniqCI[pIndex2UniqIndex[i]];
- }
- Xfree(pUniqCI);
- } else {
-#ifdef HAS_SHM
- XExtData *pData;
- XEDataObject fs_union;
- char *addr;
-
- pData = Xmalloc(sizeof(XExtData));
- if (!pData) {
- Xfree(fs->properties);
- Xfree(fs);
- return (XFontStruct *)NULL;
- }
-
- /* In some cases (e.g. an ssh daemon forwarding an X session to
- a remote machine) it is possible that the X server thinks we
- are running on the same machine (because getpeername() and
- LocalClient() cannot know about the forwarding) but we are
- not really local. Therefore, when we attach the first shared
- memory segment, we verify that we are on the same machine as
- the X server by checking that 1. shmat() succeeds, 2. the
- segment has a sufficient size, 3. it contains the X server's
- signature. Then we set the CAP_VerifiedLocal bit to indicate
- the verification was successful. */
-
- if ((addr = shmat(reply.shmid, NULL, SHM_RDONLY)) == (char *)-1) {
- if (extcodes->serverCapabilities & CAP_VerifiedLocal)
- fprintf(stderr, "_XF86BigfontQueryFont: could not attach shm segment\n");
- Xfree(pData);
- Xfree(fs->properties);
- Xfree(fs);
- /* Stop requesting shared memory transport from now on. */
- extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
- return (XFontStruct *)NULL;
- }
-
- if (!(extcodes->serverCapabilities & CAP_VerifiedLocal)) {
- struct shmid_ds buf;
- if (!(shmctl(reply.shmid, IPC_STAT, &buf) >= 0
- && reply.nCharInfos < (INT_MAX / sizeof(XCharStruct))
- && buf.shm_segsz >= reply.shmsegoffset + reply.nCharInfos * sizeof(XCharStruct) + sizeof(CARD32)
- && *(CARD32 *)(addr + reply.shmsegoffset + reply.nCharInfos * sizeof(XCharStruct)) == extcodes->serverSignature)) {
- shmdt(addr);
- Xfree(pData);
- Xfree(fs->properties);
- Xfree(fs);
- /* Stop requesting shared memory transport from now on. */
- extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
- return (XFontStruct *)NULL;
- }
- extcodes->serverCapabilities |= CAP_VerifiedLocal;
- }
-
- pData->number = XF86BigfontNumber;
- pData->private_data = (XPointer) addr;
- pData->free_private = _XF86BigfontFreeNop;
- fs_union.font = fs;
- XAddToExtensionList(XEHeadOfExtensionList(fs_union), pData);
-
- fs->per_char = (XCharStruct *) (addr + reply.shmsegoffset);
-#else
- fprintf(stderr, "_XF86BigfontQueryFont: try recompiling libX11 with HasShm, Xserver has shm support\n");
- if (fs->properties) Xfree(fs->properties);
- Xfree(fs);
- /* Stop requesting shared memory transport from now on. */
- extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
- return (XFontStruct *)NULL;
-#endif
- }
- }
-
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->create_Font) (*ext->create_Font)(dpy, fs, &ext->codes);
- return fs;
-}
-
-void
-_XF86BigfontFreeFontMetrics (XFontStruct *fs)
-{
-#ifdef HAS_SHM
- XExtData *pData;
- XEDataObject fs_union;
-
- fs_union.font = fs;
- if ((pData = XFindOnExtensionList(XEHeadOfExtensionList(fs_union),
- XF86BigfontNumber)))
- shmdt ((char *) pData->private_data);
- else
- Xfree (fs->per_char);
-#else
- Xfree (fs->per_char);
-#endif
-}
-
-#endif /* USE_XF86BIGFONT */
-
-int _XF86LoadQueryLocaleFont(
- Display *dpy,
- _Xconst char *name,
- XFontStruct **xfp,
- Font *fidp)
-{
- int l;
- const char *charset, *p;
- char buf[256];
- XFontStruct *fs;
- XLCd lcd;
-
- if (!name)
- return 0;
- l = strlen(name);
- if (l < 2 || name[l - 1] != '*' || name[l - 2] != '-')
- return 0;
- charset = NULL;
- /* next three lines stolen from _XkbGetCharset() */
- lcd = _XlcCurrentLC();
- if ((lcd = _XlcCurrentLC()) != 0)
- charset = XLC_PUBLIC(lcd, encoding_name);
- if (!charset || (p = strrchr(charset, '-')) == 0 || p == charset || p[1] == 0 || (p[1] == '*' && p[2] == 0)) {
- /* prefer latin1 if no encoding found */
- charset = "ISO8859-1";
- p = charset + 7;
- }
- if (l - 2 - (p - charset) < 0)
- return 0;
- if (_XlcNCompareISOLatin1(name + l - 2 - (p - charset), charset, p - charset))
- return 0;
- if (strlen(p + 1) + l - 1 >= sizeof(buf) - 1)
- return 0;
- strcpy(buf, name);
- strcpy(buf + l - 1, p + 1);
- fs = XLoadQueryFont(dpy, buf);
- if (!fs)
- return 0;
- if (xfp) {
- *xfp = fs;
- if (fidp)
- *fidp = fs->fid;
- } else if (fidp) {
- if (fs->per_char) {
-#ifdef USE_XF86BIGFONT
- _XF86BigfontFreeFontMetrics(fs);
-#else
- Xfree (fs->per_char);
-#endif
- }
- _XFreeExtData(fs->ext_data);
-
- Xfree (fs->properties);
- *fidp = fs->fid;
- Xfree (fs);
- } else {
- XFreeFont(dpy, fs);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/FontInfo.c b/nx-X11/lib/X11/FontInfo.c
deleted file mode 100644
index a2d12c2ec..000000000
--- a/nx-X11/lib/X11/FontInfo.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-#if defined(XF86BIGFONT)
-#define USE_XF86BIGFONT
-#endif
-#ifdef USE_XF86BIGFONT
-extern void _XF86BigfontFreeFontMetrics(
- XFontStruct* /* fs */
-);
-#endif
-
-char **XListFontsWithInfo(
-register Display *dpy,
-_Xconst char *pattern, /* null-terminated */
-int maxNames,
-int *actualCount, /* RETURN */
-XFontStruct **info) /* RETURN */
-{
- unsigned long nbytes;
- unsigned long reply_left; /* unused data left in reply buffer */
- register int i;
- register XFontStruct *fs;
- unsigned int size = 0;
- XFontStruct *finfo = NULL;
- char **flist = NULL;
- xListFontsWithInfoReply reply;
- register xListFontsReq *req;
- int j;
-
- LockDisplay(dpy);
- GetReq(ListFontsWithInfo, req);
- req->maxNames = maxNames;
- nbytes = req->nbytes = pattern ? strlen (pattern) : 0;
- req->length += (nbytes + 3) >> 2;
- _XSend (dpy, pattern, nbytes);
- /* use _XSend instead of Data, since subsequent _XReply will flush buffer */
-
- for (i = 0; ; i++) {
- if (!_XReply (dpy, (xReply *) &reply,
- ((SIZEOF(xListFontsWithInfoReply) -
- SIZEOF(xGenericReply)) >> 2), xFalse)) {
- reply.nameLength = 0; /* avoid trying to read more replies */
- reply_left = 0;
- goto badmem;
- }
- reply_left = reply.length -
- ((SIZEOF(xListFontsWithInfoReply) - SIZEOF(xGenericReply)) >> 2);
- if (reply.nameLength == 0) {
- _XEatDataWords(dpy, reply_left);
- break;
- }
- if (reply.nReplies >= (INT_MAX - i)) /* avoid overflowing size */
- goto badmem;
- if ((i + reply.nReplies) >= size) {
- size = i + reply.nReplies + 1;
-
- if (size >= (INT_MAX / sizeof(XFontStruct)))
- goto badmem;
-
- if (finfo) {
- XFontStruct * tmp_finfo;
- char ** tmp_flist;
-
- tmp_finfo = Xrealloc (finfo, sizeof(XFontStruct) * size);
- if (tmp_finfo)
- finfo = tmp_finfo;
- else
- goto badmem;
-
- tmp_flist = Xrealloc (flist, sizeof(char *) * (size+1));
- if (tmp_flist)
- flist = tmp_flist;
- else
- goto badmem;
- }
- else {
- if (! (finfo = Xmalloc(sizeof(XFontStruct) * size)))
- goto clearwire;
- if (! (flist = Xmalloc(sizeof(char *) * (size+1)))) {
- Xfree(finfo);
- goto clearwire;
- }
- }
- }
- fs = &finfo[i];
-
- fs->ext_data = NULL;
- fs->per_char = NULL;
- fs->fid = None;
- fs->direction = reply.drawDirection;
- fs->min_char_or_byte2 = reply.minCharOrByte2;
- fs->max_char_or_byte2 = reply.maxCharOrByte2;
- fs->min_byte1 = reply.minByte1;
- fs->max_byte1 = reply.maxByte1;
- fs->default_char = reply.defaultChar;
- fs->all_chars_exist = reply.allCharsExist;
- fs->ascent = cvtINT16toInt (reply.fontAscent);
- fs->descent = cvtINT16toInt (reply.fontDescent);
-
- /* XXX the next two statements won't work if short isn't 16 bits */
- fs->min_bounds = * (XCharStruct *) &reply.minBounds;
- fs->max_bounds = * (XCharStruct *) &reply.maxBounds;
-
- fs->n_properties = reply.nFontProps;
- fs->properties = NULL;
- if (fs->n_properties > 0) {
- /* nFontProps is a CARD16 */
- nbytes = reply.nFontProps * SIZEOF(xFontProp);
- if ((nbytes >> 2) <= reply_left) {
- size_t pbytes = reply.nFontProps * sizeof(XFontProp);
- fs->properties = Xmalloc (pbytes);
- }
- if (! fs->properties)
- goto badmem;
- _XRead32 (dpy, (long *)fs->properties, nbytes);
- reply_left -= (nbytes >> 2);
- }
-
- /* nameLength is a CARD8 */
- nbytes = reply.nameLength + 1;
- if (!i)
- nbytes++; /* make first string 1 byte longer, to match XListFonts */
- flist[i] = Xmalloc (nbytes);
- if (! flist[i]) {
- if (finfo[i].properties) Xfree(finfo[i].properties);
- goto badmem;
- }
- if (!i) {
- *flist[0] = 0; /* zero to distinguish from XListFonts */
- flist[0]++;
- }
- flist[i][reply.nameLength] = '\0';
- _XReadPad (dpy, flist[i], (long) reply.nameLength);
- }
- *info = finfo;
- *actualCount = i;
- if (flist)
- flist[i] = NULL; /* required in case XFreeFontNames is called */
- UnlockDisplay(dpy);
- SyncHandle();
- return (flist);
-
-
- badmem:
- /* Free all memory allocated by this function. */
- for (j=(i-1); (j >= 0); j--) {
- if (j == 0)
- flist[j]--; /* was incremented above */
- Xfree(flist[j]);
- if (finfo[j].properties) Xfree(finfo[j].properties);
- }
- Xfree(flist);
- Xfree(finfo);
-
- clearwire:
- /* Clear the wire. */
- _XEatDataWords(dpy, reply_left);
- while ((reply.nameLength != 0) &&
- _XReply(dpy, (xReply *) &reply,
- ((SIZEOF(xListFontsWithInfoReply) - SIZEOF(xGenericReply))
- >> 2), xTrue));
- UnlockDisplay(dpy);
- SyncHandle();
- *info = NULL;
- *actualCount = 0;
- return (char **) NULL;
-}
-
-int
-XFreeFontInfo (
- char **names,
- XFontStruct *info,
- int actualCount)
-{
- register int i;
- if (names) {
- Xfree (names[0]-1);
- for (i = 1; i < actualCount; i++) {
- Xfree (names[i]);
- }
- Xfree(names);
- }
- if (info) {
- for (i = 0; i < actualCount; i++) {
- if (info[i].per_char)
-#ifdef USE_XF86BIGFONT
- _XF86BigfontFreeFontMetrics(&info[i]);
-#else
- Xfree (info[i].per_char);
-#endif
- if (info[i].properties)
- Xfree (info[i].properties);
- }
- Xfree(info);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/FontNames.c b/nx-X11/lib/X11/FontNames.c
deleted file mode 100644
index 9ffdfd299..000000000
--- a/nx-X11/lib/X11/FontNames.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-char **
-XListFonts(
-register Display *dpy,
-_Xconst char *pattern, /* null-terminated */
-int maxNames,
-int *actualCount) /* RETURN */
-{
- register long nbytes;
- register unsigned i;
- register int length;
- char **flist = NULL;
- char *ch = NULL;
- char *chstart;
- char *chend;
- int count = 0;
- xListFontsReply rep;
- register xListFontsReq *req;
- unsigned long rlen = 0;
-
- LockDisplay(dpy);
- GetReq(ListFonts, req);
- req->maxNames = maxNames;
- nbytes = req->nbytes = pattern ? strlen (pattern) : 0;
- req->length += (nbytes + 3) >> 2;
- _XSend (dpy, pattern, nbytes);
- /* use _XSend instead of Data, since following _XReply will flush buffer */
-
- if (!_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
- *actualCount = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return (char **) NULL;
- }
-
- if (rep.nFonts) {
- flist = Xmalloc (rep.nFonts * sizeof(char *));
- if (rep.length > 0 && rep.length < (INT_MAX >> 2)) {
- rlen = rep.length << 2;
- ch = Xmalloc(rlen + 1);
- /* +1 to leave room for last null-terminator */
- }
-
- if ((! flist) || (! ch)) {
- Xfree(flist);
- Xfree(ch);
- _XEatDataWords(dpy, rep.length);
- *actualCount = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return (char **) NULL;
- }
-
- _XReadPad (dpy, ch, rlen);
- /*
- * unpack into null terminated strings.
- */
- chstart = ch;
- chend = ch + (rlen + 1);
- length = *(unsigned char *)ch;
- *ch = 1; /* make sure it is non-zero for XFreeFontNames */
- for (i = 0; i < rep.nFonts; i++) {
- if (ch + length < chend) {
- flist[i] = ch + 1; /* skip over length */
- ch += length + 1; /* find next length ... */
- if (ch <= chend) {
- length = *(unsigned char *)ch;
- *ch = '\0'; /* and replace with null-termination */
- count++;
- } else {
- Xfree(chstart);
- Xfree(flist);
- flist = NULL;
- count = 0;
- break;
- }
- } else {
- Xfree(chstart);
- Xfree(flist);
- flist = NULL;
- count = 0;
- break;
- }
- }
- }
- *actualCount = count;
- UnlockDisplay(dpy);
- SyncHandle();
- return (flist);
-}
-
-int
-XFreeFontNames(char **list)
-{
- if (list) {
- if (!*(list[0]-1)) { /* from ListFontsWithInfo */
- register char **names;
- for (names = list+1; *names; names++)
- Xfree (*names);
- }
- Xfree (list[0]-1);
- Xfree (list);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/FreeCmap.c b/nx-X11/lib/X11/FreeCmap.c
deleted file mode 100644
index e2b76fa6f..000000000
--- a/nx-X11/lib/X11/FreeCmap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlib.h"
-#include "Xlibint.h"
-#include "Cmap.h"
-
-int
-XFreeColormap(
- register Display *dpy,
- Colormap cmap)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(FreeColormap, cmap, req);
-
- UnlockDisplay(dpy);
- SyncHandle();
-
-#ifdef XCMS
- _XcmsDeleteCmapRec(dpy, cmap);
-#endif
-
- return 1;
-}
diff --git a/nx-X11/lib/X11/FreeCols.c b/nx-X11/lib/X11/FreeCols.c
deleted file mode 100644
index a8b7f8867..000000000
--- a/nx-X11/lib/X11/FreeCols.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XFreeColors(
- register Display *dpy,
- Colormap cmap,
- unsigned long *pixels, /* LISTofCARD32 */
- int npixels,
- unsigned long planes) /* CARD32 */
-{
- register xFreeColorsReq *req;
- register long nbytes;
-
- LockDisplay(dpy);
- GetReq(FreeColors, req);
- req->cmap = cmap;
- req->planeMask = planes;
-
- /* on the VAX, each pixel is a 32-bit (unsigned) integer */
- req->length += npixels;
-
- nbytes = npixels << 2; /* watch out for macros... */
- Data32 (dpy, (long *) pixels, nbytes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/FreeCurs.c b/nx-X11/lib/X11/FreeCurs.c
deleted file mode 100644
index 89fb577cc..000000000
--- a/nx-X11/lib/X11/FreeCurs.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XFreeCursor(
- register Display *dpy,
- Cursor cursor)
-{
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(FreeCursor, cursor, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/FreeEData.c b/nx-X11/lib/X11/FreeEData.c
deleted file mode 100644
index ce78467d3..000000000
--- a/nx-X11/lib/X11/FreeEData.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-_XFreeExtData (XExtData *extension)
-{
- XExtData *temp;
- while (extension) {
- if (extension->free_private)
- (*extension->free_private)(extension);
- else Xfree (extension->private_data);
- temp = extension->next;
- Xfree (extension);
- extension = temp;
- }
- return 0;
-}
diff --git a/nx-X11/lib/X11/FreeEventData.c b/nx-X11/lib/X11/FreeEventData.c
deleted file mode 100644
index e2d40b0db..000000000
--- a/nx-X11/lib/X11/FreeEventData.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright © 2009 Red Hat, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-void
-XFreeEventData(Display *dpy, XGenericEventCookie *event)
-{
-
- if (_XIsEventCookie(dpy, (XEvent*)event) && event->data)
- {
- XFree(event->data);
- event->data = NULL;
- event->cookie = 0;
- }
- return;
-}
-
diff --git a/nx-X11/lib/X11/FreeGC.c b/nx-X11/lib/X11/FreeGC.c
deleted file mode 100644
index 926d50745..000000000
--- a/nx-X11/lib/X11/FreeGC.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XFreeGC (
- register Display *dpy,
- GC gc)
- {
- register xResourceReq *req;
- register _XExtension *ext;
- LockDisplay(dpy);
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->free_GC) (*ext->free_GC)(dpy, gc, &ext->codes);
- GetResReq (FreeGC, gc->gid, req);
- UnlockDisplay(dpy);
- SyncHandle();
- _XFreeExtData(gc->ext_data);
- Xfree (gc);
- return 1;
- }
-
diff --git a/nx-X11/lib/X11/FreePix.c b/nx-X11/lib/X11/FreePix.c
deleted file mode 100644
index 21367978e..000000000
--- a/nx-X11/lib/X11/FreePix.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XFreePixmap(
- register Display *dpy,
- Pixmap pixmap)
-{
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(FreePixmap, pixmap, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/GCMisc.c b/nx-X11/lib/X11/GCMisc.c
deleted file mode 100644
index 751e27dca..000000000
--- a/nx-X11/lib/X11/GCMisc.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetArcMode (
- register Display *dpy,
- register GC gc,
- int arc_mode)
-{
- LockDisplay(dpy);
- if (gc->values.arc_mode != arc_mode) {
- gc->values.arc_mode = arc_mode;
- gc->dirty |= GCArcMode;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XSetFillRule (
- register Display *dpy,
- register GC gc,
- int fill_rule)
-{
- LockDisplay(dpy);
- if (gc->values.fill_rule != fill_rule) {
- gc->values.fill_rule = fill_rule;
- gc->dirty |= GCFillRule;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XSetFillStyle (
- register Display *dpy,
- register GC gc,
- int fill_style)
-{
- LockDisplay(dpy);
- if (gc->values.fill_style != fill_style) {
- gc->values.fill_style = fill_style;
- gc->dirty |= GCFillStyle;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XSetGraphicsExposures (
- register Display *dpy,
- register GC gc,
- Bool graphics_exposures)
-{
- LockDisplay(dpy);
- if (gc->values.graphics_exposures != graphics_exposures) {
- gc->values.graphics_exposures = graphics_exposures;
- gc->dirty |= GCGraphicsExposures;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XSetSubwindowMode (
- register Display *dpy,
- register GC gc,
- int subwindow_mode)
-{
- LockDisplay(dpy);
- if (gc->values.subwindow_mode != subwindow_mode) {
- gc->values.subwindow_mode = subwindow_mode;
- gc->dirty |= GCSubwindowMode;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/Geom.c b/nx-X11/lib/X11/Geom.c
deleted file mode 100644
index 1da74f1c3..000000000
--- a/nx-X11/lib/X11/Geom.c
+++ /dev/null
@@ -1,89 +0,0 @@
-
-/*
-
-Copyright 1985, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-
-/*
- * This routine given a user supplied positional argument and a default
- * argument (fully qualified) will return the position the window should take
- * returns 0 if there was some problem, else the position bitmask.
- */
-
-int
-XGeometry (
- Display *dpy, /* user's display connection */
- int screen, /* screen on which to do computation */
- _Xconst char *pos, /* user provided geometry spec */
- _Xconst char *def, /* default geometry spec for window */
- unsigned int bwidth, /* border width */
- unsigned int fwidth, /* size of position units */
- unsigned int fheight,
- int xadd, /* any additional interior space */
- int yadd,
- register int *x, /* always set on successful RETURN */
- register int *y, /* always set on successful RETURN */
- register int *width, /* always set on successful RETURN */
- register int *height) /* always set on successful RETURN */
-{
- int px, py; /* returned values from parse */
- unsigned int pwidth, pheight; /* returned values from parse */
- int dx, dy; /* default values from parse */
- unsigned int dwidth, dheight; /* default values from parse */
- int pmask, dmask; /* values back from parse */
-
- pmask = XParseGeometry(pos, &px, &py, &pwidth, &pheight);
- dmask = XParseGeometry(def, &dx, &dy, &dwidth, &dheight);
-
- /* set default values */
- *x = (dmask & XNegative) ?
- DisplayWidth(dpy, screen) + dx - dwidth * fwidth -
- 2 * bwidth - xadd : dx;
- *y = (dmask & YNegative) ?
- DisplayHeight(dpy, screen) + dy - dheight * fheight -
- 2 * bwidth - yadd : dy;
- *width = dwidth;
- *height = dheight;
-
- if (pmask & WidthValue) *width = pwidth;
- if (pmask & HeightValue) *height = pheight;
-
- if (pmask & XValue)
- *x = (pmask & XNegative) ?
- DisplayWidth(dpy, screen) + px - *width * fwidth -
- 2 * bwidth - xadd : px;
- if (pmask & YValue)
- *y = (pmask & YNegative) ?
- DisplayHeight(dpy, screen) + py - *height * fheight -
- 2 * bwidth - yadd : py;
- return (pmask);
-}
diff --git a/nx-X11/lib/X11/GetAtomNm.c b/nx-X11/lib/X11/GetAtomNm.c
deleted file mode 100644
index 32de50d23..000000000
--- a/nx-X11/lib/X11/GetAtomNm.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xintatom.h"
-
-static
-char *_XGetAtomName(
- Display *dpy,
- Atom atom)
-{
- xResourceReq *req;
- char *name;
- register Entry *table;
- register int idx;
- register Entry e;
-
- if (dpy->atoms) {
- table = dpy->atoms->table;
- for (idx = TABLESIZE; --idx >= 0; ) {
- if ((e = *table++) && (e->atom == atom)) {
- idx = strlen(EntryName(e)) + 1;
- if ((name = Xmalloc(idx)))
- strcpy(name, EntryName(e));
- return name;
- }
- }
- }
- GetResReq(GetAtomName, atom, req);
- return (char *)NULL;
-}
-
-char *XGetAtomName(
- register Display *dpy,
- Atom atom)
-{
- xGetAtomNameReply rep;
- char *name;
-
- LockDisplay(dpy);
- if ((name = _XGetAtomName(dpy, atom))) {
- UnlockDisplay(dpy);
- return name;
- }
- if (_XReply(dpy, (xReply *)&rep, 0, xFalse) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return(NULL);
- }
- if ((name = Xmalloc(rep.nameLength + 1))) {
- _XReadPad(dpy, name, (long)rep.nameLength);
- name[rep.nameLength] = '\0';
- _XUpdateAtomCache(dpy, name, atom, 0, -1, 0);
- } else {
- _XEatDataWords(dpy, rep.length);
- name = (char *) NULL;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return(name);
-}
-
-typedef struct {
- unsigned long start_seq;
- unsigned long stop_seq;
- Atom *atoms;
- char **names;
- int idx;
- int count;
- Status status;
-} _XGetAtomNameState;
-
-static
-Bool _XGetAtomNameHandler(
- register Display *dpy,
- register xReply *rep,
- char *buf,
- int len,
- XPointer data)
-{
- register _XGetAtomNameState *state;
- xGetAtomNameReply replbuf;
- register xGetAtomNameReply *repl;
-
- state = (_XGetAtomNameState *)data;
- if (dpy->last_request_read < state->start_seq ||
- dpy->last_request_read > state->stop_seq)
- return False;
- while (state->idx < state->count && state->names[state->idx])
- state->idx++;
- if (state->idx >= state->count)
- return False;
- if (rep->generic.type == X_Error) {
- state->status = 0;
- return False;
- }
- repl = (xGetAtomNameReply *)
- _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
- (SIZEOF(xGetAtomNameReply) - SIZEOF(xReply)) >> 2,
- False);
- state->names[state->idx] = Xmalloc(repl->nameLength + 1);
- _XGetAsyncData(dpy, state->names[state->idx], buf, len,
- SIZEOF(xGetAtomNameReply), repl->nameLength,
- repl->length << 2);
- if (state->names[state->idx]) {
- state->names[state->idx][repl->nameLength] = '\0';
- _XUpdateAtomCache(dpy, state->names[state->idx],
- state->atoms[state->idx], 0, -1, 0);
- } else {
- state->status = 0;
- }
- return True;
-}
-
-Status
-XGetAtomNames (
- Display *dpy,
- Atom *atoms,
- int count,
- char **names_return)
-{
- _XAsyncHandler async;
- _XGetAtomNameState async_state;
- xGetAtomNameReply rep;
- int i;
- int missed = -1;
-
- LockDisplay(dpy);
- async_state.start_seq = dpy->request + 1;
- async_state.atoms = atoms;
- async_state.names = names_return;
- async_state.idx = 0;
- async_state.count = count - 1;
- async_state.status = 1;
- async.next = dpy->async_handlers;
- async.handler = _XGetAtomNameHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
- for (i = 0; i < count; i++) {
- if (!(names_return[i] = _XGetAtomName(dpy, atoms[i]))) {
- missed = i;
- async_state.stop_seq = dpy->request;
- }
- }
- if (missed >= 0) {
- if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- if ((names_return[missed] = Xmalloc(rep.nameLength + 1))) {
- _XReadPad(dpy, names_return[missed], (long)rep.nameLength);
- names_return[missed][rep.nameLength] = '\0';
- _XUpdateAtomCache(dpy, names_return[missed], atoms[missed],
- 0, -1, 0);
- } else {
- _XEatDataWords(dpy, rep.length);
- async_state.status = 0;
- }
- }
- }
- DeqAsyncHandler(dpy, &async);
- UnlockDisplay(dpy);
- if (missed >= 0)
- SyncHandle();
- return async_state.status;
-}
diff --git a/nx-X11/lib/X11/GetColor.c b/nx-X11/lib/X11/GetColor.c
deleted file mode 100644
index cd0eb9f63..000000000
--- a/nx-X11/lib/X11/GetColor.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-Status
-XAllocNamedColor(
-register Display *dpy,
-Colormap cmap,
-_Xconst char *colorname, /* STRING8 */
-XColor *hard_def, /* RETURN */
-XColor *exact_def) /* RETURN */
-{
-
- long nbytes;
- xAllocNamedColorReply rep;
- xAllocNamedColorReq *req;
-
- XcmsCCC ccc;
- XcmsColor cmsColor_exact;
- Status ret;
-
-#ifdef XCMS
- /*
- * Let's Attempt to use Xcms and i18n approach to Parse Color
- */
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- const char *tmpName = colorname;
-
- switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
- XcmsRGBFormat)) {
- case XcmsSuccess:
- case XcmsSuccessWithCompression:
- _XcmsRGB_to_XColor(&cmsColor_exact, exact_def, 1);
- memcpy((char *)hard_def, (char *)exact_def, sizeof(XColor));
- ret = XAllocColor(dpy, cmap, hard_def);
- exact_def->pixel = hard_def->pixel;
- return(ret);
- case XcmsFailure:
- case _XCMS_NEWNAME:
- /*
- * if the result was _XCMS_NEWNAME tmpName points to
- * a string in cmsColNm.c:pairs table, for example,
- * gray70 would become tekhvc:0.0/70.0/0.0
- */
- break;
- }
- }
-#endif
-
- /*
- * Xcms and i18n approach failed.
- */
- LockDisplay(dpy);
- GetReq(AllocNamedColor, req);
-
- req->cmap = cmap;
- nbytes = req->nbytes = strlen(colorname);
- req->length += (nbytes + 3) >> 2; /* round up to mult of 4 */
-
- _XSend(dpy, colorname, nbytes);
- /* _XSend is more efficient that Data, since _XReply follows */
-
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
-
- exact_def->red = rep.exactRed;
- exact_def->green = rep.exactGreen;
- exact_def->blue = rep.exactBlue;
-
- hard_def->red = rep.screenRed;
- hard_def->green = rep.screenGreen;
- hard_def->blue = rep.screenBlue;
-
- exact_def->pixel = hard_def->pixel = rep.pixel;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return (1);
-}
diff --git a/nx-X11/lib/X11/GetDflt.c b/nx-X11/lib/X11/GetDflt.c
deleted file mode 100644
index c2cc1da47..000000000
--- a/nx-X11/lib/X11/GetDflt.c
+++ /dev/null
@@ -1,223 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xresource.h>
-#include "pathmax.h"
-
-#ifdef XTHREADS
-#include <nx-X11/Xthreads.h>
-#endif
-#ifndef WIN32
-#define X_INCLUDE_PWD_H
-#define XOS_USE_XLIB_LOCKING
-#include <nx-X11/Xos_r.h>
-#endif
-#include <stdio.h>
-#include <ctype.h>
-
-
-/*ARGSUSED*/
-static char *
-GetHomeDir(
- char *dest,
- int len)
-{
-#ifdef WIN32
- register char *ptr1 = NULL;
- register char *ptr2 = NULL;
- int len1 = 0, len2 = 0;
-
- if ((ptr1 = getenv("HOME"))) { /* old, deprecated */
- len1 = strlen (ptr1);
- } else if ((ptr1 = getenv("HOMEDRIVE")) && (ptr2 = getenv("HOMEDIR"))) {
- len1 = strlen (ptr1);
- len2 = strlen (ptr2);
- } else if ((ptr2 = getenv("USERNAME"))) {
- len1 = strlen (ptr1 = "/users/");
- len2 = strlen (ptr2);
- }
- if ((len1 + len2 + 1) < len)
- snprintf (dest, len, "%s%s", ptr1, (ptr2) ? ptr2 : "");
- else
- *dest = '\0';
-#else
-#ifdef X_NEEDS_PWPARAMS
- _Xgetpwparams pwparams;
-#endif
- struct passwd *pw;
- register char *ptr;
-
- if (len <= 0 || dest == NULL)
- return NULL;
-
- if ((ptr = getenv("HOME"))) {
- (void) strncpy(dest, ptr, len-1);
- dest[len-1] = '\0';
- } else {
- if ((ptr = getenv("USER")))
- pw = _XGetpwnam(ptr,pwparams);
- else
- pw = _XGetpwuid(getuid(),pwparams);
- if (pw != NULL) {
- (void) strncpy(dest, pw->pw_dir, len-1);
- dest[len-1] = '\0';
- } else
- *dest = '\0';
- }
-#endif
- return dest;
-}
-
-
-static XrmDatabase
-InitDefaults(
- Display *dpy) /* display for defaults.... */
-{
- XrmDatabase userdb;
- XrmDatabase xdb;
- char fname[PATH_MAX]; /* longer than any conceivable size */
- char *xenv;
-
- XrmInitialize();
-
- /*
- * See lib/Xt/Initialize.c
- *
- * First, get the defaults from the server; if none, then load from
- * ~/.Xdefaults. Next, if there is an XENVIRONMENT environment variable,
- * then load that file.
- */
-
- if (dpy->xdefaults == NULL) {
- const char *slashDotXdefaults = "/.Xdefaults";
-
- (void) GetHomeDir (fname, PATH_MAX - strlen (slashDotXdefaults) - 1);
- (void) strcat (fname, slashDotXdefaults);
- xdb = XrmGetFileDatabase (fname);
- } else {
- xdb = XrmGetStringDatabase(dpy->xdefaults);
- }
-
- if (!(xenv = getenv ("XENVIRONMENT"))) {
- const char *slashDotXdefaultsDash = "/.Xdefaults-";
- int len;
-
- (void) GetHomeDir (fname, PATH_MAX - strlen (slashDotXdefaultsDash) - 1);
- (void) strcat (fname, slashDotXdefaultsDash);
- len = strlen (fname);
- (void) _XGetHostname (fname+len, PATH_MAX-len);
- xenv = fname;
- }
- userdb = XrmGetFileDatabase (xenv);
- XrmMergeDatabases (userdb, &xdb);
- return (xdb);
-
-#ifdef old
- if (fname[0] != '\0') userdb = XrmGetFileDatabase(fname);
- xdb = XrmGetStringDatabase(dpy->xdefaults);
- XrmMergeDatabases(userdb, &xdb);
- return xdb;
-#endif
-}
-
-char *
-XGetDefault(
- Display *dpy, /* display for defaults.... */
- char _Xconst *prog, /* name of program for option */
- register _Xconst char *name) /* name of option program wants */
-{ /* to get, for example, "font" */
- XrmName names[3];
- XrmClass classes[3];
- XrmRepresentation fromType;
- XrmValue result;
- char *progname;
-#ifdef WIN32
- char *progname2;
-#endif
-
- /*
- * strip path off of program name (XXX - this is OS specific)
- */
- progname = strrchr (prog, '/');
-#ifdef WIN32
- progname2 = strrchr (prog, '\\');
- if (progname2 && (!progname || progname < progname2))
- progname = progname2;
-#endif
-
- if (progname)
- progname++;
- else
- progname = (char *)prog;
-
- /*
- * see if database has ever been initialized. Lookups can be done
- * without locks held.
- */
- LockDisplay(dpy);
- if (dpy->db == NULL) {
- dpy->db = InitDefaults(dpy);
- dpy->flags |= XlibDisplayDfltRMDB;
- }
- UnlockDisplay(dpy);
-
- names[0] = XrmStringToName(progname);
- names[1] = XrmStringToName(name);
- names[2] = NULLQUARK;
- classes[0] = XrmStringToClass("Program");
- classes[1] = XrmStringToClass("Name");
- classes[2] = NULLQUARK;
- (void)XrmQGetResource(dpy->db, names, classes, &fromType, &result);
- return (result.addr);
-}
-
diff --git a/nx-X11/lib/X11/GetEventData.c b/nx-X11/lib/X11/GetEventData.c
deleted file mode 100644
index b93dee6cd..000000000
--- a/nx-X11/lib/X11/GetEventData.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright © 2009 Red Hat, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Bool
-XGetEventData(Display *dpy, XGenericEventCookie *event)
-{
- Bool rc;
- LockDisplay(dpy);
-
- rc = _XFetchEventCookie(dpy, event);
-
- UnlockDisplay(dpy);
-
- return rc;
-}
-
diff --git a/nx-X11/lib/X11/GetFPath.c b/nx-X11/lib/X11/GetFPath.c
deleted file mode 100644
index 3d87e4f64..000000000
--- a/nx-X11/lib/X11/GetFPath.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-char **XGetFontPath(
- register Display *dpy,
- int *npaths) /* RETURN */
-{
- xGetFontPathReply rep;
- unsigned long nbytes = 0;
- char **flist = NULL;
- char *ch = NULL;
- char *chend;
- int count = 0;
- register unsigned i;
- register int length;
- _X_UNUSED register xReq *req;
-
- LockDisplay(dpy);
- GetEmptyReq (GetFontPath, req);
- (void) _XReply (dpy, (xReply *) &rep, 0, xFalse);
-
- if (rep.nPaths) {
- flist = Xmalloc(rep.nPaths * sizeof (char *));
- if (rep.length < (INT_MAX >> 2)) {
- nbytes = (unsigned long) rep.length << 2;
- ch = Xmalloc (nbytes + 1);
- /* +1 to leave room for last null-terminator */
- }
-
- if ((! flist) || (! ch)) {
- Xfree(flist);
- Xfree(ch);
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (char **) NULL;
- }
-
- _XReadPad (dpy, ch, nbytes);
- /*
- * unpack into null terminated strings.
- */
- chend = ch + (nbytes + 1);
- length = *ch;
- for (i = 0; i < rep.nPaths; i++) {
- if (ch + length < chend) {
- flist[i] = ch+1; /* skip over length */
- ch += length + 1; /* find next length ... */
- length = *ch;
- *ch = '\0'; /* and replace with null-termination */
- count++;
- } else
- flist[i] = NULL;
- }
- }
- *npaths = count;
- UnlockDisplay(dpy);
- SyncHandle();
- return (flist);
-}
-
-int
-XFreeFontPath (char **list)
-{
- if (list != NULL) {
- Xfree (list[0]-1);
- Xfree (list);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/GetFProp.c b/nx-X11/lib/X11/GetFProp.c
deleted file mode 100644
index 1e0cd3285..000000000
--- a/nx-X11/lib/X11/GetFProp.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Bool
-XGetFontProperty(
- XFontStruct *fs,
- register Atom name,
- unsigned long *valuePtr)
-{
- /* XXX this is a simple linear search for now. If the
- protocol is changed to sort the property list, this should
- become a binary search. */
- register XFontProp *prop = fs->properties;
- register XFontProp *last = prop + fs->n_properties;
-
- while (prop != last) {
- if (prop->name == name) {
- *valuePtr = prop->card32;
- return (1);
- }
- prop++;
- }
- return (0);
-}
diff --git a/nx-X11/lib/X11/GetGCVals.c b/nx-X11/lib/X11/GetGCVals.c
deleted file mode 100644
index 4861739a6..000000000
--- a/nx-X11/lib/X11/GetGCVals.c
+++ /dev/null
@@ -1,128 +0,0 @@
-
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * All gc fields except GCClipMask and GCDashList
- */
-#define ValidGCValuesBits (GCFunction | GCPlaneMask | GCForeground | \
- GCBackground | GCLineWidth | GCLineStyle | \
- GCCapStyle | GCJoinStyle | GCFillStyle | \
- GCFillRule | GCTile | GCStipple | \
- GCTileStipXOrigin | GCTileStipYOrigin | \
- GCFont | GCSubwindowMode | GCGraphicsExposures | \
- GCClipXOrigin | GCClipYOrigin | GCDashOffset | \
- GCArcMode)
-
-/*ARGSUSED*/
-Status XGetGCValues (
- Display *dpy,
- GC gc,
- unsigned long valuemask,
- XGCValues *values)
-{
- if (valuemask == ValidGCValuesBits) {
- char dashes = values->dashes;
- Pixmap clip_mask = values->clip_mask;
- *values = gc->values;
- values->dashes = dashes;
- values->clip_mask = clip_mask;
- return True;
- }
-
- if (valuemask & ~ValidGCValuesBits) return False;
-
- if (valuemask & GCFunction)
- values->function = gc->values.function;
-
- if (valuemask & GCPlaneMask)
- values->plane_mask = gc->values.plane_mask;
-
- if (valuemask & GCForeground)
- values->foreground = gc->values.foreground;
-
- if (valuemask & GCBackground)
- values->background = gc->values.background;
-
- if (valuemask & GCLineWidth)
- values->line_width = gc->values.line_width;
-
- if (valuemask & GCLineStyle)
- values->line_style = gc->values.line_style;
-
- if (valuemask & GCCapStyle)
- values->cap_style = gc->values.cap_style;
-
- if (valuemask & GCJoinStyle)
- values->join_style = gc->values.join_style;
-
- if (valuemask & GCFillStyle)
- values->fill_style = gc->values.fill_style;
-
- if (valuemask & GCFillRule)
- values->fill_rule = gc->values.fill_rule;
-
- if (valuemask & GCTile)
- values->tile = gc->values.tile;
-
- if (valuemask & GCStipple)
- values->stipple = gc->values.stipple;
-
- if (valuemask & GCTileStipXOrigin)
- values->ts_x_origin = gc->values.ts_x_origin;
-
- if (valuemask & GCTileStipYOrigin)
- values->ts_y_origin = gc->values.ts_y_origin;
-
- if (valuemask & GCFont)
- values->font = gc->values.font;
-
- if (valuemask & GCSubwindowMode)
- values->subwindow_mode = gc->values.subwindow_mode;
-
- if (valuemask & GCGraphicsExposures)
- values->graphics_exposures = gc->values.graphics_exposures;
-
- if (valuemask & GCClipXOrigin)
- values->clip_x_origin = gc->values.clip_x_origin;
-
- if (valuemask & GCClipYOrigin)
- values->clip_y_origin = gc->values.clip_y_origin;
-
- if (valuemask & GCDashOffset)
-
- values->dash_offset = gc->values.dash_offset;
-
- if (valuemask & GCArcMode)
- values->arc_mode = gc->values.arc_mode;
-
- return True;
-}
diff --git a/nx-X11/lib/X11/GetGeom.c b/nx-X11/lib/X11/GetGeom.c
deleted file mode 100644
index 1e1249d81..000000000
--- a/nx-X11/lib/X11/GetGeom.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XGetGeometry (
- register Display *dpy,
- Drawable d,
- Window *root, /* RETURN */
- int *x,
- int *y, /* RETURN */
- unsigned int *width,
- unsigned int *height,
- unsigned int *borderWidth,
- unsigned int *depth) /* RETURN */
-{
- xGetGeometryReply rep;
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(GetGeometry, d, req);
- if (!_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
- *root = rep.root;
- *x = cvtINT16toInt (rep.x);
- *y = cvtINT16toInt (rep.y);
- *width = rep.width;
- *height = rep.height;
- *borderWidth = rep.borderWidth;
- *depth = rep.depth;
- UnlockDisplay(dpy);
- SyncHandle();
- return (1);
-}
-
diff --git a/nx-X11/lib/X11/GetHColor.c b/nx-X11/lib/X11/GetHColor.c
deleted file mode 100644
index 081a2248d..000000000
--- a/nx-X11/lib/X11/GetHColor.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XAllocColor(
- register Display *dpy,
- Colormap cmap,
- XColor *def)
-{
- Status status;
- xAllocColorReply rep;
- register xAllocColorReq *req;
- LockDisplay(dpy);
- GetReq(AllocColor, req);
-
- req->cmap = cmap;
- req->red = def->red;
- req->green = def->green;
- req->blue = def->blue;
-
- status = _XReply(dpy, (xReply *) &rep, 0, xTrue);
- if (status) {
- def->pixel = rep.pixel;
- def->red = rep.red;
- def->green = rep.green;
- def->blue = rep.blue;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return(status);
-}
diff --git a/nx-X11/lib/X11/GetHints.c b/nx-X11/lib/X11/GetHints.c
deleted file mode 100644
index 7bfd35358..000000000
--- a/nx-X11/lib/X11/GetHints.c
+++ /dev/null
@@ -1,338 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-#include <stdio.h>
-
-Status XGetSizeHints (
- Display *dpy,
- Window w,
- XSizeHints *hints,
- Atom property)
-{
- xPropSizeHints *prop = NULL;
- Atom actual_type;
- int actual_format;
- unsigned long leftover;
- unsigned long nitems;
- if (XGetWindowProperty(dpy, w, property, 0L,
- (long) OldNumPropSizeElements,
- False, XA_WM_SIZE_HINTS, &actual_type, &actual_format,
- &nitems, &leftover, (unsigned char **)&prop)
- != Success) return (0);
-
- if ((actual_type != XA_WM_SIZE_HINTS) ||
- (nitems < OldNumPropSizeElements) || (actual_format != 32)) {
- Xfree (prop);
- return(0);
- }
- hints->flags = (prop->flags & (USPosition|USSize|PAllHints));
- hints->x = cvtINT32toInt (prop->x);
- hints->y = cvtINT32toInt (prop->y);
- hints->width = cvtINT32toInt (prop->width);
- hints->height = cvtINT32toInt (prop->height);
- hints->min_width = cvtINT32toInt (prop->minWidth);
- hints->min_height = cvtINT32toInt (prop->minHeight);
- hints->max_width = cvtINT32toInt (prop->maxWidth);
- hints->max_height = cvtINT32toInt (prop->maxHeight);
- hints->width_inc = cvtINT32toInt (prop->widthInc);
- hints->height_inc = cvtINT32toInt (prop->heightInc);
- hints->min_aspect.x = cvtINT32toInt (prop->minAspectX);
- hints->min_aspect.y = cvtINT32toInt (prop->minAspectY);
- hints->max_aspect.x = cvtINT32toInt (prop->maxAspectX);
- hints->max_aspect.y = cvtINT32toInt (prop->maxAspectY);
- Xfree(prop);
- return(1);
-}
-
-/*
- * must return a pointer to the hint, in malloc'd memory, or routine is not
- * extensible; any use of the caller's memory would cause things to be stepped
- * on.
- */
-
-XWMHints *XGetWMHints (
- Display *dpy,
- Window w)
-{
- xPropWMHints *prop = NULL;
- register XWMHints *hints;
- Atom actual_type;
- int actual_format;
- unsigned long leftover;
- unsigned long nitems;
- if (XGetWindowProperty(dpy, w, XA_WM_HINTS,
- 0L, (long)NumPropWMHintsElements,
- False, XA_WM_HINTS, &actual_type, &actual_format,
- &nitems, &leftover, (unsigned char **)&prop)
- != Success) return (NULL);
-
- /* If the property is undefined on the window, return null pointer. */
- /* pre-R3 bogusly truncated window_group, don't fail on them */
-
- if ((actual_type != XA_WM_HINTS) ||
- (nitems < (NumPropWMHintsElements - 1)) || (actual_format != 32)) {
- Xfree (prop);
- return(NULL);
- }
- /* static copies not allowed in library, due to reentrancy constraint*/
- if ((hints = Xcalloc (1, sizeof(XWMHints)))) {
- hints->flags = prop->flags;
- hints->input = (prop->input ? True : False);
- hints->initial_state = cvtINT32toInt (prop->initialState);
- hints->icon_pixmap = prop->iconPixmap;
- hints->icon_window = prop->iconWindow;
- hints->icon_x = cvtINT32toInt (prop->iconX);
- hints->icon_y = cvtINT32toInt (prop->iconY);
- hints->icon_mask = prop->iconMask;
- if (nitems >= NumPropWMHintsElements)
- hints->window_group = prop->windowGroup;
- else
- hints->window_group = 0;
- }
- Xfree (prop);
- return(hints);
-}
-
-Status
-XGetZoomHints (
- Display *dpy,
- Window w,
- XSizeHints *zhints)
-{
- return (XGetSizeHints(dpy, w, zhints, XA_WM_ZOOM_HINTS));
-}
-
-Status
-XGetNormalHints (
- Display *dpy,
- Window w,
- XSizeHints *hints)
-{
- return (XGetSizeHints(dpy, w, hints, XA_WM_NORMAL_HINTS));
-}
-
-
-/*
- * XGetIconSizes reads the property
- * ICONSIZE_ATOM type: ICONSIZE_ATOM format: 32
- */
-
-Status XGetIconSizes (
- Display *dpy,
- Window w, /* typically, root */
- XIconSize **size_list, /* RETURN */
- int *count) /* RETURN number of items on the list */
-{
- xPropIconSize *prop = NULL;
- register xPropIconSize *pp;
- register XIconSize *hp, *hints;
- Atom actual_type;
- int actual_format;
- unsigned long leftover;
- unsigned long nitems;
- register int i;
-
- if (XGetWindowProperty(dpy, w, XA_WM_ICON_SIZE, 0L, 60L,
- False, XA_WM_ICON_SIZE, &actual_type, &actual_format,
- &nitems, &leftover, (unsigned char **)&prop)
- != Success) return (0);
-
- pp = prop;
-
- if ((actual_type != XA_WM_ICON_SIZE) ||
- (nitems < NumPropIconSizeElements) ||
- (nitems % NumPropIconSizeElements != 0) ||
- (actual_format != 32)) {
- Xfree (prop);
- return(0);
- }
-
- /* static copies not allowed in library, due to reentrancy constraint*/
-
- nitems /= NumPropIconSizeElements;
- if (! (hp = hints = Xcalloc (nitems, sizeof(XIconSize)))) {
- Xfree (prop);
- return 0;
- }
-
- /* march down array putting things into native form */
- for (i = 0; i < nitems; i++) {
- hp->min_width = cvtINT32toInt (pp->minWidth);
- hp->min_height = cvtINT32toInt (pp->minHeight);
- hp->max_width = cvtINT32toInt (pp->maxWidth);
- hp->max_height = cvtINT32toInt (pp->maxHeight);
- hp->width_inc = cvtINT32toInt (pp->widthInc);
- hp->height_inc = cvtINT32toInt (pp->heightInc);
- hp += 1;
- pp += 1;
- }
- *count = nitems;
- *size_list = hints;
- Xfree (prop);
- return(1);
-}
-
-
-Status XGetCommand (
- Display *dpy,
- Window w,
- char ***argvp,
- int *argcp)
-{
- XTextProperty tp;
- int argc;
- char **argv;
-
- if (!XGetTextProperty (dpy, w, &tp, XA_WM_COMMAND)) return 0;
-
- if (tp.encoding != XA_STRING || tp.format != 8) {
- Xfree (tp.value);
- return 0;
- }
-
-
- /*
- * ignore final <NUL> if present since UNIX WM_COMMAND is nul-terminated
- */
- if (tp.nitems && (tp.value[tp.nitems - 1] == '\0')) tp.nitems--;
-
-
- /*
- * create a string list and return if successful
- */
- if (!XTextPropertyToStringList (&tp, &argv, &argc)) {
- Xfree (tp.value);
- return (0);
- }
-
- Xfree (tp.value);
- *argvp = argv;
- *argcp = argc;
- return 1;
-}
-
-
-Status
-XGetTransientForHint(
- Display *dpy,
- Window w,
- Window *propWindow)
-{
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long leftover;
- Window *data = NULL;
- if (XGetWindowProperty(dpy, w, XA_WM_TRANSIENT_FOR, 0L, 1L, False,
- XA_WINDOW,
- &actual_type,
- &actual_format, &nitems, &leftover, (unsigned char **) &data)
- != Success) {
- *propWindow = None;
- return (0);
- }
- if ( (actual_type == XA_WINDOW) && (actual_format == 32) &&
- (nitems != 0) ) {
- *propWindow = *data;
- Xfree( (char *) data);
- return (1);
- }
- *propWindow = None;
- Xfree( (char *) data);
- return(0);
-}
-
-Status
-XGetClassHint(
- Display *dpy,
- Window w,
- XClassHint *classhint) /* RETURN */
-{
- int len_name, len_class;
-
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long leftover;
- unsigned char *data = NULL;
- if (XGetWindowProperty(dpy, w, XA_WM_CLASS, 0L, (long)BUFSIZ, False,
- XA_STRING,
- &actual_type,
- &actual_format, &nitems, &leftover, &data) != Success)
- return (0);
-
- if ( (actual_type == XA_STRING) && (actual_format == 8) ) {
- len_name = strlen((char *) data);
- if (! (classhint->res_name = Xmalloc(len_name + 1))) {
- Xfree(data);
- return (0);
- }
- strcpy(classhint->res_name, (char *) data);
- if (len_name == nitems) len_name--;
- len_class = strlen((char *) (data+len_name+1));
- if (! (classhint->res_class = Xmalloc(len_class + 1))) {
- Xfree(classhint->res_name);
- classhint->res_name = (char *) NULL;
- Xfree(data);
- return (0);
- }
- strcpy(classhint->res_class, (char *) (data+len_name+1));
- Xfree( (char *) data);
- return(1);
- }
- Xfree( (char *) data);
- return(0);
-}
diff --git a/nx-X11/lib/X11/GetIFocus.c b/nx-X11/lib/X11/GetIFocus.c
deleted file mode 100644
index 0a7f36e8d..000000000
--- a/nx-X11/lib/X11/GetIFocus.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGetInputFocus(
- register Display *dpy,
- Window *focus,
- int *revert_to)
-{
- xGetInputFocusReply rep;
- _X_UNUSED register xReq *req;
- LockDisplay(dpy);
- GetEmptyReq(GetInputFocus, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- *focus = rep.focus;
- *revert_to = rep.revertTo;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/GetImage.c b/nx-X11/lib/X11/GetImage.c
deleted file mode 100644
index d80f6715f..000000000
--- a/nx-X11/lib/X11/GetImage.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xutil.h> /* for XDestroyImage */
-#include "ImUtil.h"
-#include <limits.h>
-
-#define ROUNDUP(nbytes, pad) (((((nbytes) - 1) + (pad)) / (pad)) * (pad))
-
-static unsigned int Ones( /* HACKMEM 169 */
- unsigned long mask)
-{
- register unsigned long y;
-
- y = (mask >> 1) &033333333333;
- y = mask - y - ((y >>1) & 033333333333);
- return ((unsigned int) (((y + (y >> 3)) & 030707070707) % 077));
-}
-
-XImage *XGetImage (
- register Display *dpy,
- Drawable d,
- int x,
- int y,
- unsigned int width,
- unsigned int height,
- unsigned long plane_mask,
- int format) /* either XYPixmap or ZPixmap */
-{
- xGetImageReply rep;
- register xGetImageReq *req;
- char *data;
- unsigned long nbytes;
- XImage *image;
- int planes;
- LockDisplay(dpy);
- GetReq (GetImage, req);
- /*
- * first set up the standard stuff in the request
- */
- req->drawable = d;
- req->x = x;
- req->y = y;
- req->width = width;
- req->height = height;
- req->planeMask = plane_mask;
- req->format = format;
-
- if (_XReply (dpy, (xReply *) &rep, 0, xFalse) == 0 ||
- rep.length == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (XImage *)NULL;
- }
-
- if (rep.length < (INT_MAX >> 2)) {
- nbytes = (unsigned long)rep.length << 2;
- data = Xmalloc(nbytes);
- } else
- data = NULL;
- if (! data) {
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (XImage *) NULL;
- }
- _XReadPad (dpy, data, nbytes);
- if (format == XYPixmap) {
- image = XCreateImage(dpy, _XVIDtoVisual(dpy, rep.visual),
- Ones (plane_mask &
- (((unsigned long)0xFFFFFFFF) >> (32 - rep.depth))),
- format, 0, data, width, height, dpy->bitmap_pad, 0);
- planes = image->depth;
- } else { /* format == ZPixmap */
- image = XCreateImage (dpy, _XVIDtoVisual(dpy, rep.visual),
- rep.depth, ZPixmap, 0, data, width, height,
- _XGetScanlinePad(dpy, (int) rep.depth), 0);
- planes = 1;
- }
-
- if (!image)
- Xfree(data);
- if (planes < 1 || image->height < 1 || image->bytes_per_line < 1 ||
- INT_MAX / image->height <= image->bytes_per_line ||
- INT_MAX / planes <= image->height * image->bytes_per_line ||
- nbytes < planes * image->height * image->bytes_per_line) {
- XDestroyImage(image);
- image = NULL;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return (image);
-}
-
-XImage *XGetSubImage(
- register Display *dpy,
- Drawable d,
- int x,
- int y,
- unsigned int width,
- unsigned int height,
- unsigned long plane_mask,
- int format, /* either XYPixmap or ZPixmap */
- XImage *dest_image,
- int dest_x,
- int dest_y)
-{
- XImage *temp_image;
- temp_image = XGetImage(dpy, d, x, y, width, height,
- plane_mask, format);
- if (!temp_image)
- return (XImage *)NULL;
- _XSetImage(temp_image, dest_image, dest_x, dest_y);
- XDestroyImage(temp_image);
- return (dest_image);
-}
diff --git a/nx-X11/lib/X11/GetKCnt.c b/nx-X11/lib/X11/GetKCnt.c
deleted file mode 100644
index 5829fbeaa..000000000
--- a/nx-X11/lib/X11/GetKCnt.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGetKeyboardControl (
- register Display *dpy,
- register XKeyboardState *state)
-{
- xGetKeyboardControlReply rep;
- _X_UNUSED register xReq *req;
- LockDisplay(dpy);
- GetEmptyReq (GetKeyboardControl, req);
- (void) _XReply (dpy, (xReply *) &rep,
- (SIZEOF(xGetKeyboardControlReply) - SIZEOF(xReply)) >> 2, xTrue);
-
- state->key_click_percent = rep.keyClickPercent;
- state->bell_percent = rep.bellPercent;
- state->bell_pitch = rep.bellPitch;
- state->bell_duration = rep.bellDuration;
- state->led_mask = rep.ledMask;
- state->global_auto_repeat = rep.globalAutoRepeat;
- memcpy (state->auto_repeats, rep.map, sizeof state->auto_repeats);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
-
diff --git a/nx-X11/lib/X11/GetMoEv.c b/nx-X11/lib/X11/GetMoEv.c
deleted file mode 100644
index ad9c77277..000000000
--- a/nx-X11/lib/X11/GetMoEv.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-XTimeCoord *XGetMotionEvents(
- register Display *dpy,
- Window w,
- Time start,
- Time stop,
- int *nEvents) /* RETURN */
-{
- xGetMotionEventsReply rep;
- register xGetMotionEventsReq *req;
- XTimeCoord *tc = NULL;
- LockDisplay(dpy);
- GetReq(GetMotionEvents, req);
- req->window = w;
-/* XXX is this right for all machines? */
- req->start = start;
- req->stop = stop;
- if (!_XReply (dpy, (xReply *)&rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (NULL);
- }
-
- if (rep.nEvents && (rep.nEvents < (INT_MAX / sizeof(XTimeCoord))))
- tc = Xmalloc(rep.nEvents * sizeof(XTimeCoord));
- if (tc == NULL) {
- /* server returned either no events or a bad event count */
- *nEvents = 0;
- _XEatDataWords (dpy, rep.length);
- }
- else
- {
- register XTimeCoord *tcptr;
- unsigned int i;
- xTimecoord xtc;
-
- *nEvents = (int) rep.nEvents;
- for (i = rep.nEvents, tcptr = tc; i > 0; i--, tcptr++) {
- _XRead (dpy, (char *) &xtc, SIZEOF (xTimecoord));
- tcptr->time = xtc.time;
- tcptr->x = cvtINT16toShort (xtc.x);
- tcptr->y = cvtINT16toShort (xtc.y);
- }
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return (tc);
-}
-
diff --git a/nx-X11/lib/X11/GetNrmHint.c b/nx-X11/lib/X11/GetNrmHint.c
deleted file mode 100644
index cc8fd235e..000000000
--- a/nx-X11/lib/X11/GetNrmHint.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca,
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL AND WYSE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL DIGITAL OR WYSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/*
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xutil.h>
-#include <stdio.h>
-
-Status XGetWMSizeHints (
- Display *dpy,
- Window w,
- XSizeHints *hints,
- long *supplied,
- Atom property)
-{
- xPropSizeHints *prop = NULL;
- Atom actual_type;
- int actual_format;
- unsigned long leftover;
- unsigned long nitems;
-
- if (XGetWindowProperty (dpy, w, property, 0L,
- (long)NumPropSizeElements,
- False, XA_WM_SIZE_HINTS, &actual_type,
- &actual_format, &nitems, &leftover,
- (unsigned char **)&prop)
- != Success)
- return False;
-
- if ((actual_type != XA_WM_SIZE_HINTS) ||
- (nitems < OldNumPropSizeElements) || (actual_format != 32)) {
- Xfree (prop);
- return False;
- }
-
- hints->flags = prop->flags;
- /* XSizeHints misdeclares these as int instead of long */
- hints->x = cvtINT32toInt (prop->x);
- hints->y = cvtINT32toInt (prop->y);
- hints->width = cvtINT32toInt (prop->width);
- hints->height = cvtINT32toInt (prop->height);
- hints->min_width = cvtINT32toInt (prop->minWidth);
- hints->min_height = cvtINT32toInt (prop->minHeight);
- hints->max_width = cvtINT32toInt (prop->maxWidth);
- hints->max_height = cvtINT32toInt (prop->maxHeight);
- hints->width_inc = cvtINT32toInt (prop->widthInc);
- hints->height_inc = cvtINT32toInt (prop->heightInc);
- hints->min_aspect.x = cvtINT32toInt (prop->minAspectX);
- hints->min_aspect.y = cvtINT32toInt (prop->minAspectY);
- hints->max_aspect.x = cvtINT32toInt (prop->maxAspectX);
- hints->max_aspect.y = cvtINT32toInt (prop->maxAspectY);
-
- *supplied = (USPosition | USSize | PAllHints);
- if (nitems >= NumPropSizeElements) {
- hints->base_width= cvtINT32toInt (prop->baseWidth);
- hints->base_height= cvtINT32toInt (prop->baseHeight);
- hints->win_gravity= cvtINT32toInt (prop->winGravity);
- *supplied |= (PBaseSize | PWinGravity);
- }
- hints->flags &= (*supplied); /* get rid of unwanted bits */
- Xfree(prop);
- return True;
-}
-
-
-Status XGetWMNormalHints (
- Display *dpy,
- Window w,
- XSizeHints *hints,
- long *supplied)
-{
- return (XGetWMSizeHints (dpy, w, hints, supplied, XA_WM_NORMAL_HINTS));
-}
diff --git a/nx-X11/lib/X11/GetPCnt.c b/nx-X11/lib/X11/GetPCnt.c
deleted file mode 100644
index 72d9495b5..000000000
--- a/nx-X11/lib/X11/GetPCnt.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGetPointerControl(
- register Display *dpy,
- /* the following are return only vars */
- int *accel_numer,
- int *accel_denom,
- int *threshold)
-{
- xGetPointerControlReply rep;
- _X_UNUSED xReq *req;
- LockDisplay(dpy);
- GetEmptyReq(GetPointerControl, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- *accel_numer = rep.accelNumerator;
- *accel_denom = rep.accelDenominator;
- *threshold = rep.threshold;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/GetPntMap.c b/nx-X11/lib/X11/GetPntMap.c
deleted file mode 100644
index 07625f8a0..000000000
--- a/nx-X11/lib/X11/GetPntMap.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-#ifdef MIN /* some systems define this in <sys/param.h> */
-#undef MIN
-#endif
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-
-int XGetPointerMapping (
- register Display *dpy,
- unsigned char *map, /* RETURN */
- int nmaps)
-
-{
- unsigned char mapping[256]; /* known fixed size */
- unsigned long nbytes, remainder = 0;
- xGetPointerMappingReply rep;
- _X_UNUSED register xReq *req;
-
- LockDisplay(dpy);
- GetEmptyReq(GetPointerMapping, req);
- if (! _XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
-
- /* Don't count on the server returning a valid value */
- if (rep.length >= (INT_MAX >> 2)) {
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
-
- nbytes = (unsigned long) rep.length << 2;
- if (nbytes > sizeof mapping) {
- remainder = nbytes - sizeof mapping;
- nbytes = sizeof mapping;
- }
- _XRead (dpy, (char *)mapping, nbytes);
- /* don't return more data than the user asked for. */
- if (rep.nElts) {
- memcpy ((char *) map, (char *) mapping,
- MIN((int)rep.nElts, nmaps) );
- }
-
- if (remainder)
- _XEatData(dpy, remainder);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return ((int) rep.nElts);
-}
-
-KeySym *
-XGetKeyboardMapping (Display *dpy,
-#if NeedWidePrototypes
- unsigned int first_keycode,
-#else
- KeyCode first_keycode,
-#endif
- int count,
- int *keysyms_per_keycode)
-{
- unsigned long nbytes;
- CARD32 nkeysyms;
- register KeySym *mapping = NULL;
- xGetKeyboardMappingReply rep;
- register xGetKeyboardMappingReq *req;
-
- LockDisplay(dpy);
- GetReq(GetKeyboardMapping, req);
- req->firstKeyCode = first_keycode;
- req->count = count;
- if (! _XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (KeySym *) NULL;
- }
-
- nkeysyms = rep.length;
- if (nkeysyms > 0) {
- if (nkeysyms < (INT_MAX / sizeof (KeySym))) {
- nbytes = nkeysyms * sizeof (KeySym);
- mapping = Xmalloc (nbytes);
- }
- if (! mapping) {
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (KeySym *) NULL;
- }
- nbytes = nkeysyms << 2;
- _XRead32 (dpy, (long *) mapping, nbytes);
- }
- *keysyms_per_keycode = rep.keySymsPerKeyCode;
- UnlockDisplay(dpy);
- SyncHandle();
- return (mapping);
-}
-
diff --git a/nx-X11/lib/X11/GetProp.c b/nx-X11/lib/X11/GetProp.c
deleted file mode 100644
index 9eb422ee3..000000000
--- a/nx-X11/lib/X11/GetProp.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-int
-XGetWindowProperty(
- register Display *dpy,
- Window w,
- Atom property,
- long offset,
- long length,
- Bool delete,
- Atom req_type,
- Atom *actual_type, /* RETURN */
- int *actual_format, /* RETURN 8, 16, or 32 */
- unsigned long *nitems, /* RETURN # of 8-, 16-, or 32-bit entities */
- unsigned long *bytesafter, /* RETURN */
- unsigned char **prop) /* RETURN */
-{
- xGetPropertyReply reply;
- register xGetPropertyReq *req;
- xError error = {0};
-
- /* Always initialize return values, in case callers fail to initialize
- them and fail to check the return code for an error. */
- *actual_type = None;
- *actual_format = 0;
- *nitems = *bytesafter = 0L;
- *prop = (unsigned char *) NULL;
-
- LockDisplay(dpy);
- GetReq (GetProperty, req);
- req->window = w;
- req->property = property;
- req->type = req_type;
- req->delete = delete;
- req->longOffset = offset;
- req->longLength = length;
- error.sequenceNumber = dpy->request;
-
- if (!_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (1); /* not Success */
- }
-
- if (reply.propertyType != None) {
- unsigned long nbytes, netbytes;
- int format = reply.format;
-
- /*
- * Protect against both integer overflow and just plain oversized
- * memory allocation - no server should ever return this many props.
- */
- if (reply.nItems >= (INT_MAX >> 4))
- format = -1; /* fall through to default error case */
-
- switch (format) {
- /*
- * One extra byte is malloced than is needed to contain the property
- * data, but this last byte is null terminated and convenient for
- * returning string properties, so the client doesn't then have to
- * recopy the string to make it null terminated.
- */
- case 8:
- nbytes = netbytes = reply.nItems;
- if (nbytes + 1 > 0 && (*prop = Xmalloc (nbytes + 1)))
- _XReadPad (dpy, (char *) *prop, netbytes);
- break;
-
- case 16:
- nbytes = reply.nItems * sizeof (short);
- netbytes = reply.nItems << 1;
- if (nbytes + 1 > 0 && (*prop = Xmalloc (nbytes + 1)))
- _XRead16Pad (dpy, (short *) *prop, netbytes);
- break;
-
- case 32:
- nbytes = reply.nItems * sizeof (long);
- netbytes = reply.nItems << 2;
- if (nbytes + 1 > 0 && (*prop = Xmalloc (nbytes + 1)))
- _XRead32 (dpy, (long *) *prop, netbytes);
- break;
-
- default:
- /*
- * This part of the code should never be reached. If it is,
- * the server sent back a property with an invalid format.
- * This is a BadImplementation error.
- */
- {
- /* sequence number stored above */
- error.type = X_Error;
- error.majorCode = X_GetProperty;
- error.minorCode = 0;
- error.errorCode = BadImplementation;
- _XError(dpy, &error);
- }
- nbytes = netbytes = 0L;
- break;
- }
- if (! *prop) {
- _XEatDataWords(dpy, reply.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return(BadAlloc); /* not Success */
- }
- (*prop)[nbytes] = '\0';
- }
- *actual_type = reply.propertyType;
- *actual_format = reply.format;
- *nitems = reply.nItems;
- *bytesafter = reply.bytesAfter;
- UnlockDisplay(dpy);
- SyncHandle();
- return(Success);
-}
-
diff --git a/nx-X11/lib/X11/GetRGBCMap.c b/nx-X11/lib/X11/GetRGBCMap.c
deleted file mode 100644
index 746b53fbf..000000000
--- a/nx-X11/lib/X11/GetRGBCMap.c
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-
-Status XGetRGBColormaps (
- Display *dpy,
- Window w,
- XStandardColormap **stdcmap, /* RETURN */
- int *count, /* RETURN */
- Atom property) /* XA_RGB_BEST_MAP, etc. */
-{
- register int i; /* iterator variable */
- xPropStandardColormap *data = NULL; /* data read in from prop */
- Atom actual_type; /* how the prop was actually stored */
- int actual_format; /* ditto */
- unsigned long leftover; /* how much was left over */
- unsigned long nitems; /* number of 32bits read */
- int ncmaps; /* number of structs this makes */
- Bool old_style = False; /* if was too short */
- VisualID def_visual = None; /* visual to use if prop too short */
- XStandardColormap *cmaps; /* return value */
-
-
- if (XGetWindowProperty (dpy, w, property, 0L, 1000000L, False,
- XA_RGB_COLOR_MAP, &actual_type, &actual_format,
- &nitems, &leftover, (unsigned char **)&data)
- != Success)
- return False;
-
- /* if wrong type or format, or too small for us, then punt */
- if ((actual_type != XA_RGB_COLOR_MAP) || (actual_format != 32) ||
- (nitems < OldNumPropStandardColormapElements)) {
- Xfree (data);
- return False;
- }
-
- /*
- * See how many properties were found; if pre-ICCCM then assume
- * default visual and a kill id of 1.
- */
- if (nitems < NumPropStandardColormapElements) {
- ncmaps = 1;
- old_style = True;
- if (nitems < (NumPropStandardColormapElements - 1)) {
- Screen *sp = _XScreenOfWindow (dpy, w);
-
- if (!sp) {
- Xfree (data);
- return False;
- }
- def_visual = sp->root_visual->visualid;
- }
- } else {
- /*
- * make sure we have an integral number of colormaps
- */
- ncmaps = (nitems / NumPropStandardColormapElements);
- if ((((unsigned long) ncmaps) * NumPropStandardColormapElements) !=
- nitems) {
- Xfree (data);
- return False;
- }
- }
-
-
- /*
- * allocate array
- */
- cmaps = Xmalloc (ncmaps * sizeof (XStandardColormap));
- if (!cmaps) {
- Xfree (data);
- return False;
- }
-
-
- /*
- * and fill it in, handling compatibility with pre-ICCCM short stdcmaps
- */
- {
- register XStandardColormap *map;
- register xPropStandardColormap *prop;
-
- for (i = ncmaps, map = cmaps, prop = data; i > 0; i--, map++, prop++) {
- map->colormap = prop->colormap;
- map->red_max = prop->red_max;
- map->red_mult = prop->red_mult;
- map->green_max = prop->green_max;
- map->green_mult = prop->green_mult;
- map->blue_max = prop->blue_max;
- map->blue_mult = prop->blue_mult;
- map->base_pixel = prop->base_pixel;
- map->visualid = (def_visual ? def_visual : prop->visualid);
- map->killid = (old_style ? None : prop->killid);
- }
- }
- Xfree (data);
- *stdcmap = cmaps;
- *count = ncmaps;
- return True;
-}
-
diff --git a/nx-X11/lib/X11/GetSOwner.c b/nx-X11/lib/X11/GetSOwner.c
deleted file mode 100644
index 2258f8ce1..000000000
--- a/nx-X11/lib/X11/GetSOwner.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Window XGetSelectionOwner(
- register Display *dpy,
- Atom selection)
-{
- xGetSelectionOwnerReply rep;
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(GetSelectionOwner, selection, req);
-
- if (_XReply(dpy, (xReply *)&rep, 0, xTrue) == 0) rep.owner = None;
- UnlockDisplay(dpy);
- SyncHandle();
- return(rep.owner);
-}
diff --git a/nx-X11/lib/X11/GetSSaver.c b/nx-X11/lib/X11/GetSSaver.c
deleted file mode 100644
index 7c2a3061a..000000000
--- a/nx-X11/lib/X11/GetSSaver.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGetScreenSaver(
- register Display *dpy,
- /* the following are return only vars */
- int *timeout,
- int *interval,
- int *prefer_blanking,
- int *allow_exp) /*boolean */
-
-{
- xGetScreenSaverReply rep;
- _X_UNUSED register xReq *req;
- LockDisplay(dpy);
- GetEmptyReq(GetScreenSaver, req);
-
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- *timeout = rep.timeout;
- *interval = rep.interval;
- *prefer_blanking = rep.preferBlanking;
- *allow_exp = rep.allowExposures;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/GetStCmap.c b/nx-X11/lib/X11/GetStCmap.c
deleted file mode 100644
index 560de67ba..000000000
--- a/nx-X11/lib/X11/GetStCmap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-
-/*
- * WARNING
- *
- * This is a pre-ICCCM routine. It must not reference any of the new fields
- * in the XStandardColormap structure.
- */
-
-Status XGetStandardColormap (
- Display *dpy,
- Window w,
- XStandardColormap *cmap,
- Atom property) /* XA_RGB_BEST_MAP, etc. */
-{
- Status stat; /* return value */
- XStandardColormap *stdcmaps; /* will get malloced value */
- int nstdcmaps; /* count of above */
-
- stat = XGetRGBColormaps (dpy, w, &stdcmaps, &nstdcmaps, property);
- if (stat) {
- XStandardColormap *use;
-
- if (nstdcmaps > 1) {
- VisualID vid;
- Screen *sp = _XScreenOfWindow (dpy, w);
- int i;
-
- if (!sp) {
- Xfree (stdcmaps);
- return False;
- }
- vid = sp->root_visual->visualid;
-
- for (i = 0; i < nstdcmaps; i++) {
- if (stdcmaps[i].visualid == vid) break;
- }
-
- if (i == nstdcmaps) { /* not found */
- Xfree (stdcmaps);
- return False;
- }
- use = &stdcmaps[i];
- } else {
- use = stdcmaps;
- }
-
- /*
- * assign only those fields which were in the pre-ICCCM version
- */
- cmap->colormap = use->colormap;
- cmap->red_max = use->red_max;
- cmap->red_mult = use->red_mult;
- cmap->green_max = use->green_max;
- cmap->green_mult = use->green_mult;
- cmap->blue_max = use->blue_max;
- cmap->blue_mult = use->blue_mult;
- cmap->base_pixel = use->base_pixel;
-
- Xfree (stdcmaps); /* don't need alloced memory */
- }
- return stat;
-}
diff --git a/nx-X11/lib/X11/GetTxtProp.c b/nx-X11/lib/X11/GetTxtProp.c
deleted file mode 100644
index 2694b8184..000000000
--- a/nx-X11/lib/X11/GetTxtProp.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Wyse not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xos.h>
-#include <stdio.h>
-
-Status XGetTextProperty (
- Display *display,
- Window window,
- XTextProperty *tp,
- Atom property)
-{
- Atom actual_type;
- int actual_format = 0;
- unsigned long nitems = 0L, leftover = 0L;
- unsigned char *prop = NULL;
-
- if (XGetWindowProperty (display, window, property, 0L, 1000000L, False,
- AnyPropertyType, &actual_type, &actual_format,
- &nitems, &leftover, &prop) == Success &&
- actual_type != None) {
- /* okay, fill it in */
- tp->value = prop;
- tp->encoding = actual_type;
- tp->format = actual_format;
- tp->nitems = nitems;
- return True;
- }
-
- tp->value = NULL;
- tp->encoding = None;
- tp->format = 0;
- tp->nitems = 0;
- return False;
-}
-
-Status XGetWMName (
- Display *dpy,
- Window w,
- XTextProperty *tp)
-{
- return (XGetTextProperty (dpy, w, tp, XA_WM_NAME));
-}
-
-Status XGetWMIconName (
- Display *dpy,
- Window w,
- XTextProperty *tp)
-{
- return (XGetTextProperty (dpy, w, tp, XA_WM_ICON_NAME));
-}
-
-Status XGetWMClientMachine (
- Display *dpy,
- Window w,
- XTextProperty *tp)
-{
- return (XGetTextProperty (dpy, w, tp, XA_WM_CLIENT_MACHINE));
-}
-
diff --git a/nx-X11/lib/X11/GetWAttrs.c b/nx-X11/lib/X11/GetWAttrs.c
deleted file mode 100644
index c10824cf4..000000000
--- a/nx-X11/lib/X11/GetWAttrs.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-typedef struct _WAttrsState {
- unsigned long attr_seq;
- unsigned long geom_seq;
- XWindowAttributes *attr;
-} _XWAttrsState;
-
-static Bool
-_XWAttrsHandler(
- register Display *dpy,
- register xReply *rep,
- char *buf,
- int len,
- XPointer data)
-{
- register _XWAttrsState *state;
- xGetWindowAttributesReply replbuf;
- register xGetWindowAttributesReply *repl;
- register XWindowAttributes *attr;
-
- state = (_XWAttrsState *)data;
- if (dpy->last_request_read != state->attr_seq) {
- if (dpy->last_request_read == state->geom_seq &&
- !state->attr &&
- rep->generic.type == X_Error &&
- rep->error.errorCode == BadDrawable)
- return True;
- return False;
- }
- if (rep->generic.type == X_Error) {
- state->attr = (XWindowAttributes *)NULL;
- return False;
- }
- repl = (xGetWindowAttributesReply *)
- _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
- (SIZEOF(xGetWindowAttributesReply) - SIZEOF(xReply)) >> 2,
- True);
- attr = state->attr;
- attr->class = repl->class;
- attr->bit_gravity = repl->bitGravity;
- attr->win_gravity = repl->winGravity;
- attr->backing_store = repl->backingStore;
- attr->backing_planes = repl->backingBitPlanes;
- attr->backing_pixel = repl->backingPixel;
- attr->save_under = repl->saveUnder;
- attr->colormap = repl->colormap;
- attr->map_installed = repl->mapInstalled;
- attr->map_state = repl->mapState;
- attr->all_event_masks = repl->allEventMasks;
- attr->your_event_mask = repl->yourEventMask;
- attr->do_not_propagate_mask = repl->doNotPropagateMask;
- attr->override_redirect = repl->override;
- attr->visual = _XVIDtoVisual (dpy, repl->visualID);
- return True;
-}
-
-Status
-_XGetWindowAttributes(
- register Display *dpy,
- Window w,
- XWindowAttributes *attr)
-{
- xGetGeometryReply rep;
- register xResourceReq *req;
- register int i;
- register Screen *sp;
- _XAsyncHandler async;
- _XWAttrsState async_state;
-
- GetResReq(GetWindowAttributes, w, req);
-
- async_state.attr_seq = dpy->request;
- async_state.geom_seq = 0;
- async_state.attr = attr;
- async.next = dpy->async_handlers;
- async.handler = _XWAttrsHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
-
- GetResReq(GetGeometry, w, req);
-
- async_state.geom_seq = dpy->request;
-
- if (!_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
- DeqAsyncHandler(dpy, &async);
- return (0);
- }
- DeqAsyncHandler(dpy, &async);
- if (!async_state.attr) {
- return (0);
- }
- attr->x = cvtINT16toInt (rep.x);
- attr->y = cvtINT16toInt (rep.y);
- attr->width = rep.width;
- attr->height = rep.height;
- attr->border_width = rep.borderWidth;
- attr->depth = rep.depth;
- attr->root = rep.root;
- /* find correct screen so that applications find it easier.... */
- for (i = 0; i < dpy->nscreens; i++) {
- sp = &dpy->screens[i];
- if (sp->root == attr->root) {
- attr->screen = sp;
- break;
- }
- }
- return(1);
-}
-
-Status
-XGetWindowAttributes(
- Display *dpy,
- Window w,
- XWindowAttributes *attr)
-{
- Status ret;
-
- LockDisplay(dpy);
- ret = _XGetWindowAttributes(dpy, w, attr);
- UnlockDisplay(dpy);
- SyncHandle();
-
- return ret;
-}
-
diff --git a/nx-X11/lib/X11/GetWMCMapW.c b/nx-X11/lib/X11/GetWMCMapW.c
deleted file mode 100644
index 722ec60f8..000000000
--- a/nx-X11/lib/X11/GetWMCMapW.c
+++ /dev/null
@@ -1,87 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xatom.h>
-#include <stdio.h>
-
-Status XGetWMColormapWindows (
- Display *dpy,
- Window w,
- Window **colormapWindows,
- int *countReturn)
-{
- Atom *data = NULL;
- Atom actual_type;
- Atom prop;
- int actual_format;
- unsigned long leftover, nitems;
-
- prop = XInternAtom(dpy, "WM_COLORMAP_WINDOWS", False);
- if (prop == None) return False;
-
- /* get the property */
- if (XGetWindowProperty (dpy, w, prop,
- 0L, 1000000L, False,
- XA_WINDOW, &actual_type, &actual_format,
- &nitems, &leftover, (unsigned char **) &data)
- != Success)
- return False;
-
- if (actual_type != XA_WINDOW || actual_format != 32) {
- Xfree (data);
- return False;
- }
-
- *colormapWindows = (Window *) data;
- *countReturn = (int) nitems;
- return True;
-}
diff --git a/nx-X11/lib/X11/GetWMProto.c b/nx-X11/lib/X11/GetWMProto.c
deleted file mode 100644
index 1ea4f55d5..000000000
--- a/nx-X11/lib/X11/GetWMProto.c
+++ /dev/null
@@ -1,87 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xatom.h>
-#include <stdio.h>
-
-Status XGetWMProtocols (
- Display *dpy,
- Window w,
- Atom **protocols,
- int *countReturn)
-{
- Atom *data = NULL;
- Atom actual_type;
- Atom prop;
- int actual_format;
- unsigned long leftover, nitems;
-
- prop = XInternAtom(dpy, "WM_PROTOCOLS", False);
- if (prop == None) return False;
-
- /* get the property */
- if (XGetWindowProperty (dpy, w, prop,
- 0L, 1000000L, False,
- XA_ATOM, &actual_type, &actual_format,
- &nitems, &leftover, (unsigned char **) &data)
- != Success)
- return False;
-
- if (actual_type != XA_ATOM || actual_format != 32) {
- Xfree (data);
- return False;
- }
-
- *protocols = (Atom *) data;
- *countReturn = (int) nitems;
- return True;
-}
diff --git a/nx-X11/lib/X11/GrButton.c b/nx-X11/lib/X11/GrButton.c
deleted file mode 100644
index 621f49a5c..000000000
--- a/nx-X11/lib/X11/GrButton.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGrabButton(
- register Display *dpy,
- unsigned int button, /* CARD8 */
- unsigned int modifiers, /* CARD16 */
- Window grab_window,
- Bool owner_events,
- unsigned int event_mask, /* CARD16 */
- int pointer_mode,
- int keyboard_mode,
- Window confine_to,
- Cursor curs)
-{
- register xGrabButtonReq *req;
- LockDisplay(dpy);
- GetReq(GrabButton, req);
- req->modifiers = modifiers;
- req->button = button;
- req->grabWindow = grab_window;
- req->ownerEvents = owner_events;
- req->eventMask = event_mask;
- req->pointerMode = pointer_mode;
- req->keyboardMode = keyboard_mode;
- req->confineTo = confine_to;
- req->cursor = curs;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/GrKey.c b/nx-X11/lib/X11/GrKey.c
deleted file mode 100644
index d2da5952f..000000000
--- a/nx-X11/lib/X11/GrKey.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGrabKey(
- register Display *dpy,
- int key,
- unsigned int modifiers,
- Window grab_window,
- Bool owner_events,
- int pointer_mode,
- int keyboard_mode)
-
-{
- register xGrabKeyReq *req;
- LockDisplay(dpy);
- GetReq(GrabKey, req);
- req->ownerEvents = owner_events;
- req->grabWindow = grab_window;
- req->modifiers = modifiers;
- req->key = key;
- req->pointerMode = pointer_mode;
- req->keyboardMode = keyboard_mode;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-
-
diff --git a/nx-X11/lib/X11/GrKeybd.c b/nx-X11/lib/X11/GrKeybd.c
deleted file mode 100644
index 07dc84115..000000000
--- a/nx-X11/lib/X11/GrKeybd.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-int XGrabKeyboard (
- register Display *dpy,
- Window window,
- Bool ownerEvents,
- int pointerMode,
- int keyboardMode,
- Time time)
-{
- xGrabKeyboardReply rep;
- register xGrabKeyboardReq *req;
- register int status;
- LockDisplay(dpy);
- GetReq(GrabKeyboard, req);
- req->grabWindow = window;
- req->ownerEvents = ownerEvents;
- req->pointerMode = pointerMode;
- req->keyboardMode = keyboardMode;
- req->time = time;
-
- /* if we ever return, suppress the error */
- if (_XReply (dpy, (xReply *) &rep, 0, xTrue) == 0)
- rep.status = GrabSuccess;
- status = rep.status;
- UnlockDisplay(dpy);
- SyncHandle();
- return (status);
-}
-
diff --git a/nx-X11/lib/X11/GrPointer.c b/nx-X11/lib/X11/GrPointer.c
deleted file mode 100644
index a0d98277c..000000000
--- a/nx-X11/lib/X11/GrPointer.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int XGrabPointer(
- register Display *dpy,
- Window grab_window,
- Bool owner_events,
- unsigned int event_mask, /* CARD16 */
- int pointer_mode,
- int keyboard_mode,
- Window confine_to,
- Cursor curs,
- Time time)
-{
- xGrabPointerReply rep;
- register xGrabPointerReq *req;
- register int status;
- LockDisplay(dpy);
- GetReq(GrabPointer, req);
- req->grabWindow = grab_window;
- req->ownerEvents = owner_events;
- req->eventMask = event_mask;
- req->pointerMode = pointer_mode;
- req->keyboardMode = keyboard_mode;
- req->confineTo = confine_to;
- req->cursor = curs;
- req->time = time;
-
- /* if we ever return, suppress the error */
- if (_XReply (dpy, (xReply *) &rep, 0, xTrue) == 0)
- rep.status = GrabSuccess;
- status = rep.status;
- UnlockDisplay(dpy);
- SyncHandle();
- return (status);
-}
diff --git a/nx-X11/lib/X11/GrServer.c b/nx-X11/lib/X11/GrServer.c
deleted file mode 100644
index c4c62bef3..000000000
--- a/nx-X11/lib/X11/GrServer.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XGrabServer (register Display *dpy)
-{
- _X_UNUSED register xReq *req;
- LockDisplay(dpy);
- GetEmptyReq(GrabServer, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/HVC.c b/nx-X11/lib/X11/HVC.c
deleted file mode 100644
index 98d7142c3..000000000
--- a/nx-X11/lib/X11/HVC.c
+++ /dev/null
@@ -1,625 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVC.c
- *
- * DESCRIPTION
- * This file contains routines that support the TekHVC
- * color space to include conversions to and from the CIE
- * XYZ space.
- *
- * DOCUMENTATION
- * "TekColor Color Management System, System Implementor's Manual"
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <nx-X11/Xos.h>
-#include <math.h>
-#include "Cv.h"
-
-#include <stdio.h>
-
-/*
- * DEFINES
- */
-#define u_BR 0.7127 /* u' Best Red */
-#define v_BR 0.4931 /* v' Best Red */
-#define EPS 0.001
-#define CHROMA_SCALE_FACTOR 7.50725
-#ifndef PI
-# ifdef M_PI
-# define PI M_PI
-# else
-# define PI 3.14159265358979323846264338327950
-# endif
-#endif
-#ifndef degrees
-# define degrees(r) ((XcmsFloat)(r) * 180.0 / PI)
-#endif /* degrees */
-#ifndef radians
-# define radians(d) ((XcmsFloat)(d) * PI / 180.0)
-#endif /* radians */
-
-/*************************************************************************
- * Note: The DBL_EPSILON for ANSI is 1e-5 so my checks need to take
- * this into account. If your DBL_EPSILON is different then
- * adjust this define.
- *
- * Also note that EPS is the error factor in the calculations
- * This may need to be the same as XMY_DBL_EPSILON in
- * some implementations.
- **************************************************************************/
-#ifdef DBL_EPSILON
-# define XMY_DBL_EPSILON DBL_EPSILON
-#else
-# define XMY_DBL_EPSILON 0.00001
-#endif
-
-/*
- * FORWARD DECLARATIONS
- */
-static int TekHVC_ParseString(register char *spec, XcmsColor *pColor);
-static Status XcmsTekHVC_ValidSpec(XcmsColor *pColor);
-
-/*
- * LOCAL VARIABLES
- */
-
- /*
- * NULL terminated list of functions applied to get from TekHVC to CIEXYZ
- */
-static XcmsConversionProc Fl_TekHVC_to_CIEXYZ[] = {
- XcmsTekHVCToCIEuvY,
- XcmsCIEuvYToCIEXYZ,
- NULL
-};
-
- /*
- * NULL terminated list of functions applied to get from CIEXYZ to TekHVC
- */
-static XcmsConversionProc Fl_CIEXYZ_to_TekHVC[] = {
- XcmsCIEXYZToCIEuvY,
- XcmsCIEuvYToTekHVC,
- NULL
-};
-
-/*
- * GLOBALS
- */
-
- /*
- * TekHVC Color Space
- */
-XcmsColorSpace XcmsTekHVCColorSpace =
- {
- _XcmsTekHVC_prefix, /* prefix */
- XcmsTekHVCFormat, /* id */
- TekHVC_ParseString, /* parseString */
- Fl_TekHVC_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_TekHVC, /* from_CIEXYZ */
- 1
- };
-
-
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * TekHVC_ParseString
- *
- * SYNOPSIS
- */
-static int
-TekHVC_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsTekHVCFormat.
- * The assumed TekHVC string syntax is:
- * TekHVC:<H>/<V>/<C>
- * Where H, V, and C are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- * XcmsFailure if invalid;
- * XcmsSuccess if valid.
- */
-{
- size_t n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (size_t)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsTekHVC_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.TekHVC.H,
- &pColor->spec.TekHVC.V,
- &pColor->spec.TekHVC.C) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.TekHVC.H,
- &pColor->spec.TekHVC.V,
- &pColor->spec.TekHVC.C) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
- pColor->format = XcmsTekHVCFormat;
- pColor->pixel = 0;
- return(XcmsTekHVC_ValidSpec(pColor));
-}
-
-
-/*
- * NAME
- * ThetaOffset -- compute thetaOffset
- *
- * SYNOPSIS
- */
-static int
-ThetaOffset(
- XcmsColor *pWhitePt,
- XcmsFloat *pThetaOffset)
-/*
- * DESCRIPTION
- * This routine computes the theta offset of a given
- * white point, i.e. XcmsColor. It is used in both this
- * conversion and the printer conversions.
- *
- * RETURNS
- * 0 if failed.
- * 1 if succeeded with no modifications.
- *
- * ASSUMPTIONS
- * Assumes:
- * pWhitePt != NULL
- * pWhitePt->format == XcmsCIEuvYFormat
- *
- */
-{
- double div, slopeuv;
-
- if (pWhitePt == NULL || pWhitePt->format != XcmsCIEuvYFormat) {
- return(0);
- }
-
- if ((div = u_BR - pWhitePt->spec.CIEuvY.u_prime) == 0.0) {
- return(0);
- }
- slopeuv = (v_BR - pWhitePt->spec.CIEuvY.v_prime) / div;
- *pThetaOffset = degrees(XCMS_ATAN(slopeuv));
- return(1);
-}
-
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVC_ValidSpec()
- *
- * SYNOPSIS
- */
-static int
-XcmsTekHVC_ValidSpec(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks if values in the color specification are valid.
- * Also brings hue into the range 0.0 <= Hue < 360.0
- *
- * RETURNS
- * 0 if not valid.
- * 1 if valid.
- *
- */
-{
- if (pColor->format != XcmsTekHVCFormat) {
- return(XcmsFailure);
- }
- if (pColor->spec.TekHVC.V < (0.0 - XMY_DBL_EPSILON)
- || pColor->spec.TekHVC.V > (100.0 + XMY_DBL_EPSILON)
- || (pColor->spec.TekHVC.C < 0.0 - XMY_DBL_EPSILON)) {
- return(XcmsFailure);
- }
-
- if (pColor->spec.TekHVC.V < 0.0) {
- pColor->spec.TekHVC.V = 0.0 + XMY_DBL_EPSILON;
- } else if (pColor->spec.TekHVC.V > 100.0) {
- pColor->spec.TekHVC.V = 100.0 - XMY_DBL_EPSILON;
- }
-
- if (pColor->spec.TekHVC.C < 0.0) {
- pColor->spec.TekHVC.C = 0.0 - XMY_DBL_EPSILON;
- }
-
- while (pColor->spec.TekHVC.H < 0.0) {
- pColor->spec.TekHVC.H += 360.0;
- }
- while (pColor->spec.TekHVC.H >= 360.0) {
- pColor->spec.TekHVC.H -= 360.0;
- }
- return(XcmsSuccess);
-}
-
-/*
- * NAME
- * XcmsTekHVCToCIEuvY - convert TekHVC to CIEuvY
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCToCIEuvY(
- XcmsCCC ccc,
- XcmsColor *pHVC_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Transforms an array of TekHVC color specifications, given
- * their associated white point, to CIECIEuvY.color
- * specifications.
- *
- * RETURNS
- * XcmsFailure if failed, XcmsSuccess otherwise.
- *
- */
-{
- XcmsFloat thetaOffset;
- XcmsColor *pColor = pColors_in_out;
- XcmsColor whitePt;
- XcmsCIEuvY uvY_return;
- XcmsFloat tempHue, u, v;
- XcmsFloat tmpVal;
- unsigned int i;
-
- /*
- * Check arguments
- */
- if (pHVC_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Make sure white point is in CIEuvY form
- */
- if (pHVC_WhitePt->format != XcmsCIEuvYFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pHVC_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
- XcmsCIEuvYFormat)) {
- return(XcmsFailure);
- }
- pHVC_WhitePt = &whitePt;
- }
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (pHVC_WhitePt->spec.CIEuvY.Y != 1.0) {
- return(XcmsFailure);
- }
-
- /* Get the thetaOffset */
- if (!ThetaOffset(pHVC_WhitePt, &thetaOffset)) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- /* Make sure original format is TekHVC and is valid */
- if (!XcmsTekHVC_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- if (pColor->spec.TekHVC.V == 0.0 || pColor->spec.TekHVC.V == 100.0) {
- if (pColor->spec.TekHVC.V == 100.0) {
- uvY_return.Y = 1.0;
- } else { /* pColor->spec.TekHVC.V == 0.0 */
- uvY_return.Y = 0.0;
- }
- uvY_return.u_prime = pHVC_WhitePt->spec.CIEuvY.u_prime;
- uvY_return.v_prime = pHVC_WhitePt->spec.CIEuvY.v_prime;
- } else {
-
- /* Find the hue based on the white point offset */
- tempHue = pColor->spec.TekHVC.H + thetaOffset;
-
- while (tempHue < 0.0) {
- tempHue += 360.0;
- }
- while (tempHue >= 360.0) {
- tempHue -= 360.0;
- }
-
- tempHue = radians(tempHue);
-
- /* Calculate u'v' for the obtained hue */
- u = (XcmsFloat) ((XCMS_COS(tempHue) * pColor->spec.TekHVC.C) /
- (pColor->spec.TekHVC.V * (double)CHROMA_SCALE_FACTOR));
- v = (XcmsFloat) ((XCMS_SIN(tempHue) * pColor->spec.TekHVC.C) /
- (pColor->spec.TekHVC.V * (double)CHROMA_SCALE_FACTOR));
-
- /* Based on the white point get the offset from best red */
- uvY_return.u_prime = u + pHVC_WhitePt->spec.CIEuvY.u_prime;
- uvY_return.v_prime = v + pHVC_WhitePt->spec.CIEuvY.v_prime;
-
- /* Calculate the Y value based on the L* = V. */
- if (pColor->spec.TekHVC.V < 7.99953624) {
- uvY_return.Y = pColor->spec.TekHVC.V / 903.29;
- } else {
- tmpVal = (pColor->spec.TekHVC.V + 16.0) / 116.0;
- uvY_return.Y = tmpVal * tmpVal * tmpVal; /* tmpVal ** 3 */
- }
- }
-
- /* Copy result to pColor */
- memcpy((char *)&pColor->spec, (char *)&uvY_return, sizeof(XcmsCIEuvY));
-
- /* Identify that the format is now CIEuvY */
- pColor->format = XcmsCIEuvYFormat;
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIEuvYToTekHVC - convert CIEuvY to TekHVC
- *
- * SYNOPSIS
- */
-Status
-XcmsCIEuvYToTekHVC(
- XcmsCCC ccc,
- XcmsColor *pHVC_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Transforms an array of CIECIEuvY.color specifications, given
- * their assiciated white point, to TekHVC specifications.
- *
- * RETURNS
- * XcmsFailure if failed, XcmsSuccess otherwise.
- *
- */
-{
- XcmsFloat theta, L2, u, v, nThetaLow, nThetaHigh;
- XcmsFloat thetaOffset;
- XcmsColor *pColor = pColors_in_out;
- XcmsColor whitePt;
- XcmsTekHVC HVC_return;
- unsigned int i;
-
- /*
- * Check arguments
- */
- if (pHVC_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Make sure white point is in CIEuvY form
- */
- if (pHVC_WhitePt->format != XcmsCIEuvYFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pHVC_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
- XcmsCIEuvYFormat)) {
- return(XcmsFailure);
- }
- pHVC_WhitePt = &whitePt;
- }
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (pHVC_WhitePt->spec.CIEuvY.Y != 1.0) {
- return(XcmsFailure);
- }
- if (!ThetaOffset(pHVC_WhitePt, &thetaOffset)) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
- if (!_XcmsCIEuvY_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- /* Use the white point offset to determine HVC */
- u = pColor->spec.CIEuvY.u_prime - pHVC_WhitePt->spec.CIEuvY.u_prime;
- v = pColor->spec.CIEuvY.v_prime - pHVC_WhitePt->spec.CIEuvY.v_prime;
-
- /* Calculate the offset */
- if (u == 0.0) {
- theta = 0.0;
- } else {
- theta = v / u;
- theta = (XcmsFloat) XCMS_ATAN((double)theta);
- theta = degrees(theta);
- }
-
- nThetaLow = 0.0;
- nThetaHigh = 360.0;
- if (u > 0.0 && v > 0.0) {
- nThetaLow = 0.0;
- nThetaHigh = 90.0;
- } else if (u < 0.0 && v > 0.0) {
- nThetaLow = 90.0;
- nThetaHigh = 180.0;
- } else if (u < 0.0 && v < 0.0) {
- nThetaLow = 180.0;
- nThetaHigh = 270.0;
- } else if (u > 0.0 && v < 0.0) {
- nThetaLow = 270.0;
- nThetaHigh = 360.0;
- }
- while (theta < nThetaLow) {
- theta += 90.0;
- }
- while (theta >= nThetaHigh) {
- theta -= 90.0;
- }
-
- /* calculate the L value from the given Y */
- L2 = (pColor->spec.CIEuvY.Y < 0.008856)
- ?
- (pColor->spec.CIEuvY.Y * 903.29)
- :
- ((XcmsFloat)(XCMS_CUBEROOT(pColor->spec.CIEuvY.Y) * 116.0) - 16.0);
- HVC_return.C = L2 * CHROMA_SCALE_FACTOR * XCMS_SQRT((double) ((u * u) + (v * v)));
- if (HVC_return.C < 0.0) {
- theta = 0.0;
- }
- HVC_return.V = L2;
- HVC_return.H = theta - thetaOffset;
-
- /*
- * If this is within the error margin let some other routine later
- * in the chain worry about the slop in the calculations.
- */
- while (HVC_return.H < -EPS) {
- HVC_return.H += 360.0;
- }
- while (HVC_return.H >= 360.0 + EPS) {
- HVC_return.H -= 360.0;
- }
-
- /* Copy result to pColor */
- memcpy((char *)&pColor->spec, (char *)&HVC_return, sizeof(XcmsTekHVC));
-
- /* Identify that the format is now CIEuvY */
- pColor->format = XcmsTekHVCFormat;
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * _XcmsTekHVC_CheckModify
- *
- * SYNOPSIS
- */
-int
-_XcmsTekHVC_CheckModify(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks if values in the color specification are valid.
- * If they are not it modifies the values.
- * Also brings hue into the range 0.0 <= Hue < 360.0
- *
- * RETURNS
- * 0 if not valid.
- * 1 if valid.
- *
- */
-{
- int n;
-
- /* For now only use the TekHVC numbers as inputs */
- if (pColor->format != XcmsTekHVCFormat) {
- return(0);
- }
-
- if (pColor->spec.TekHVC.V < 0.0) {
- pColor->spec.TekHVC.V = 0.0 + XMY_DBL_EPSILON;
- } else if (pColor->spec.TekHVC.V > 100.0) {
- pColor->spec.TekHVC.V = 100.0 - XMY_DBL_EPSILON;
- }
-
- if (pColor->spec.TekHVC.C < 0.0) {
- pColor->spec.TekHVC.C = 0.0 - XMY_DBL_EPSILON;
- }
-
- if (pColor->spec.TekHVC.H < 0.0) {
- n = -pColor->spec.TekHVC.H / 360.0;
- pColor->spec.TekHVC.H += (n + 1) * 360.0;
- if (pColor->spec.TekHVC.H >= 360.0)
- pColor->spec.TekHVC.H -= 360.0;
- } else if (pColor->spec.TekHVC.H >= 360.0) {
- n = pColor->spec.TekHVC.H / 360.0;
- pColor->spec.TekHVC.H -= n * 360.0;
- }
- return(1);
-}
diff --git a/nx-X11/lib/X11/HVCGcC.c b/nx-X11/lib/X11/HVCGcC.c
deleted file mode 100644
index 6d52eac63..000000000
--- a/nx-X11/lib/X11/HVCGcC.c
+++ /dev/null
@@ -1,149 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCGcC.c
- *
- * DESCRIPTION
- * Source for XcmsTekHVCClipC() gamut compression routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCClipC - Reduce the chroma for a hue and value
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsTekHVCClipC (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Reduce the Chroma for a specific hue and value to
- * to bring the given color into the gamut of the
- * specified device. As required of gamut compression
- * functions in Xcms, this routine returns pColor_in_out
- * in XcmsCIEXYZFormat on successful completion.
- *
- * Since this routine works with the value within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- Status retval;
- XcmsColor *pColor;
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor &&
- FunctionSetOfCCC(ccc) != (XPointer) &XcmsLinearRGBFunctionSet) {
- /*
- * GRAY !
- */
- _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
- 1, XcmsTekHVCFormat);
- pColor->spec.TekHVC.H = pColor->spec.TekHVC.C = 0.0;
- _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
- 1, XcmsCIEXYZFormat);
- if (pCompressed) {
- *(pCompressed + i) = True;
- }
- return(XcmsSuccess);
- } else {
- if (pColor->format != XcmsTekHVCFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsTekHVCQueryMaxC(ccc,
- pColor->spec.TekHVC.H,
- pColor->spec.TekHVC.V,
- pColor)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- retval = _XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/HVCGcV.c b/nx-X11/lib/X11/HVCGcV.c
deleted file mode 100644
index 0752a0724..000000000
--- a/nx-X11/lib/X11/HVCGcV.c
+++ /dev/null
@@ -1,201 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCGcV.c
- *
- * DESCRIPTION
- * Source for XcmsTekHVCClipV() gamut compression routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCClipV - Return the closest value
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsTekHVCClipV (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Return the closest value for a specific hue and chroma.
- * This routine takes any color as input and outputs
- * a CIE XYZ color.
- *
- * Since this routine works with the value within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsColor *pColor;
- XcmsColor hvc_max;
- XcmsCCCRec myCCC;
- Status retval;
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* Inherit Screen WP */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut compression */
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor &&
- FunctionSetOfCCC(ccc) != (XPointer) &XcmsLinearRGBFunctionSet) {
- /*
- * GRAY !
- */
- return(XcmsFailure);
- } else {
- /* Convert from CIEXYZ to TekHVC format */
- if (_XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* check to make sure we have a valid TekHVC number */
- if (!_XcmsTekHVC_CheckModify (pColor)) {
- return (XcmsFailure);
- }
-
- /* Step 1: compute the maximum value and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- memcpy((char *)&hvc_max, (char *)pColor, sizeof(XcmsColor));
- if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
- (XcmsRGBi *)NULL) == XcmsFailure) {
- return (XcmsFailure);
- }
-
- /* Now check and return the appropriate value */
- if (pColor->spec.TekHVC.C == hvc_max.spec.TekHVC.C) {
- /* When the chroma input is equal to the maximum chroma */
- /* merely return the value for that chroma. */
- pColor->spec.TekHVC.V = hvc_max.spec.TekHVC.V;
- if (!_XcmsTekHVC_CheckModify (pColor)) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- } else if (pColor->spec.TekHVC.C > hvc_max.spec.TekHVC.C) {
- /* When the chroma input is greater than the maximum chroma */
- /* merely return the value and chroma for the given hue. */
- pColor->spec.TekHVC.C = hvc_max.spec.TekHVC.C;
- pColor->spec.TekHVC.V = hvc_max.spec.TekHVC.V;
- return (XcmsFailure);
- } else if (pColor->spec.TekHVC.V < hvc_max.spec.TekHVC.V) {
- /* When the value input is less than the maximum value point */
- /* compute the intersection of the line from 0,0 to max_V, max_C */
- /* using the chroma input. */
- pColor->spec.TekHVC.V = pColor->spec.TekHVC.C *
- hvc_max.spec.TekHVC.V / hvc_max.spec.TekHVC.C;
- if (pColor->spec.TekHVC.V >= hvc_max.spec.TekHVC.V) {
- pColor->spec.TekHVC.C = hvc_max.spec.TekHVC.C;
- pColor->spec.TekHVC.V = hvc_max.spec.TekHVC.V;
- }
- if (!_XcmsTekHVC_CheckModify (pColor)) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- } else {
- /* When the value input is greater than the maximum value point */
- /* use HvcMaxValue to find the maximum value for the given chroma. */
- if (pColor->format != XcmsTekHVCFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsTekHVCQueryMaxV(&myCCC,
- pColor->spec.TekHVC.H,
- pColor->spec.TekHVC.C,
- pColor)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- }
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/HVCGcVC.c b/nx-X11/lib/X11/HVCGcVC.c
deleted file mode 100644
index 7ace5f13f..000000000
--- a/nx-X11/lib/X11/HVCGcVC.c
+++ /dev/null
@@ -1,262 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCGcVC.c
- *
- * DESCRIPTION
- * Source for XcmsTekHVCClipVC() gamut
- * compression function.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * INTERNALS
- * Internal defines that need NOT be exported to any package or
- * program using this package.
- */
-#define MAXBISECTCOUNT 100
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCClipVC - Return the closest value and chroma
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsTekHVCClipVC (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * This routine will find the closest value and chroma
- * for a specific hue. The color input is converted to
- * HVC format and returned as CIE XYZ format.
- *
- * Since this routine works with the value within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- Status retval;
- XcmsCCCRec myCCC;
- XcmsColor *pColor;
- XcmsColor hvc_max;
- XcmsRGBi rgb_max;
- int nCount, nMaxCount, nI, nILast;
- XcmsFloat Chroma, Value, bestChroma, bestValue, nT, saveDist, tmpDist;
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* inherit screen white pt */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut compression func */
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor &&
- FunctionSetOfCCC(ccc) != (XPointer) &XcmsLinearRGBFunctionSet) {
- /*
- * GRAY !
- */
- _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
- 1, XcmsTekHVCFormat);
- pColor->spec.TekHVC.H = pColor->spec.TekHVC.C = 0.0;
- _XcmsDIConvertColors(ccc, pColor, &ccc->pPerScrnInfo->screenWhitePt,
- 1, XcmsCIEXYZFormat);
- if (pCompressed) {
- *(pCompressed + i) = True;
- }
- return(XcmsSuccess);
- } else {
- /* Convert from CIEXYZ to TekHVC format */
- if (_XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- if (!_XcmsTekHVC_CheckModify(pColor)) {
- return (XcmsFailure);
- }
-
- /* Step 1: compute the maximum value and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- memcpy((char *)&hvc_max, (char *)pColor, sizeof(XcmsColor));
- if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, hvc_max.spec.TekHVC.H, &hvc_max,
- &rgb_max) == XcmsFailure) {
- return (XcmsFailure);
- }
-
- /* Now check and return the appropriate value */
- if (pColor->spec.TekHVC.V == hvc_max.spec.TekHVC.V) {
- /* When the value input is equal to the maximum value */
- /* merely return the chroma for that value. */
- pColor->spec.TekHVC.C = hvc_max.spec.TekHVC.C;
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- }
-
- if (pColor->spec.TekHVC.V < hvc_max.spec.TekHVC.V) {
- /* return the intersection of the perpindicular line through */
- /* the value and chroma given and the line from 0,0 and hvc_max. */
- Chroma = pColor->spec.TekHVC.C;
- Value = pColor->spec.TekHVC.V;
- pColor->spec.TekHVC.C =
- (Value + (hvc_max.spec.TekHVC.C / hvc_max.spec.TekHVC.V * Chroma)) /
- ((hvc_max.spec.TekHVC.V / hvc_max.spec.TekHVC.C) +
- (hvc_max.spec.TekHVC.C / hvc_max.spec.TekHVC.V));
- if (pColor->spec.TekHVC.C >= hvc_max.spec.TekHVC.C) {
- pColor->spec.TekHVC.C = hvc_max.spec.TekHVC.C;
- pColor->spec.TekHVC.V = hvc_max.spec.TekHVC.V;
- } else {
- pColor->spec.TekHVC.V = pColor->spec.TekHVC.C *
- hvc_max.spec.TekHVC.V / hvc_max.spec.TekHVC.C;
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
-
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return (retval);
- }
-
- /* return the closest point on the upper part of the hue leaf. */
- /* must do a bisection here to compute the delta e. */
- nMaxCount = MAXBISECTCOUNT;
- nI = nMaxCount / 2;
- bestValue = Value = pColor->spec.TekHVC.V;
- bestChroma = Chroma = pColor->spec.TekHVC.C;
- saveDist = (XcmsFloat) XCMS_SQRT ((double) (((Chroma - hvc_max.spec.TekHVC.C) *
- (Chroma - hvc_max.spec.TekHVC.C)) +
- ((Value - hvc_max.spec.TekHVC.V) *
- (Value - hvc_max.spec.TekHVC.V))));
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- nT = (XcmsFloat) nI / (XcmsFloat) nMaxCount;
- pColor->spec.RGBi.red = rgb_max.red * (1.0 - nT) + nT;
- pColor->spec.RGBi.green = rgb_max.green * (1.0 - nT) + nT;
- pColor->spec.RGBi.blue = rgb_max.blue * (1.0 - nT) + nT;
- pColor->format = XcmsRGBiFormat;
-
- /* Convert from RGBi to HVC */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat,
- (Bool *) NULL)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- if (!_XcmsTekHVC_CheckModify(pColor)) {
- return (XcmsFailure);
- }
- tmpDist = (XcmsFloat) XCMS_SQRT ((double)
- (((Chroma - pColor->spec.TekHVC.C) *
- (Chroma - pColor->spec.TekHVC.C)) +
- ((Value - pColor->spec.TekHVC.V) *
- (Value - pColor->spec.TekHVC.V))));
- nILast = nI;
- if (tmpDist > saveDist) {
- nI /= 2;
- } else {
- nI = (nMaxCount + nI) / 2;
- saveDist = tmpDist;
- bestValue = pColor->spec.TekHVC.V;
- bestChroma = pColor->spec.TekHVC.C;
- }
- if (nI == nILast || nI == 0) {
- break;
- }
-
- }
-
- if (bestChroma >= hvc_max.spec.TekHVC.C) {
- pColor->spec.TekHVC.C = hvc_max.spec.TekHVC.C;
- pColor->spec.TekHVC.V = hvc_max.spec.TekHVC.V;
- } else {
- pColor->spec.TekHVC.C = bestChroma;
- pColor->spec.TekHVC.V = bestValue;
- }
- if (!_XcmsTekHVC_CheckModify(pColor)) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
-
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/HVCMnV.c b/nx-X11/lib/X11/HVCMnV.c
deleted file mode 100644
index 10a9f857a..000000000
--- a/nx-X11/lib/X11/HVCMnV.c
+++ /dev/null
@@ -1,163 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCMnV.c
- *
- * DESCRIPTION
- * Source for XcmsTekHVCQueryMinV gamut boundary querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define EPS 0.001
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCQueryMinV - Compute minimum value for hue and chroma
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCQueryMinV (
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsFloat chroma,
- XcmsColor *pColor_return)
-
-/*
- * DESCRIPTION
- * Return the minimum value for a specific hue, and the
- * corresponding chroma. The input color specification
- * may be in any format, however output is in XcmsTekHVCFormat.
- *
- * Since this routine works with the value within
- * pColor_return intermediate results may be returned
- * even though it may be invalid.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded with no modifications
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor tmp;
- XcmsColor max_vc;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* inherit screen white pt */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut comp func */
-
- tmp.spec.TekHVC.H = hue;
- tmp.spec.TekHVC.V = 100.0;
- tmp.spec.TekHVC.C = chroma;
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsTekHVCFormat;
-
-
- /* Check for a valid HVC */
- if (!_XcmsTekHVC_CheckModify (&tmp)) {
- return(XcmsFailure);
- }
-
- /* Step 1: compute the maximum value and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- memcpy((char *)&max_vc, (char *)&tmp, sizeof(XcmsColor));
- if (_XcmsTekHVCQueryMaxVCRGB (&myCCC, max_vc.spec.TekHVC.H, &max_vc,
- (XcmsRGBi *)NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Step 2: find the intersection with the maximum hvc and chroma line. */
- if (tmp.spec.TekHVC.C > max_vc.spec.TekHVC.C + EPS) {
- /* If the chroma is to large then return maximum hvc. */
- tmp.spec.TekHVC.C = max_vc.spec.TekHVC.C;
- tmp.spec.TekHVC.V = max_vc.spec.TekHVC.V;
- } else {
- tmp.spec.TekHVC.V = tmp.spec.TekHVC.C *
- max_vc.spec.TekHVC.V / max_vc.spec.TekHVC.C;
- if (tmp.spec.TekHVC.V > max_vc.spec.TekHVC.V) {
- tmp.spec.TekHVC.V = max_vc.spec.TekHVC.V;
- } else if (tmp.spec.TekHVC.V < 0.0) {
- tmp.spec.TekHVC.V = tmp.spec.TekHVC.C = 0.0;
- }
- }
- if (_XcmsTekHVC_CheckModify (&tmp)) {
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- } else {
- return(XcmsFailure);
- }
-}
diff --git a/nx-X11/lib/X11/HVCMxC.c b/nx-X11/lib/X11/HVCMxC.c
deleted file mode 100644
index 074844ccc..000000000
--- a/nx-X11/lib/X11/HVCMxC.c
+++ /dev/null
@@ -1,243 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCMxC.c
- *
- * DESCRIPTION
- * Source for the XcmsTekHVCQueryMaxC() gamut boudary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS 0.001
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCQueryMaxC - Compute the maximum chroma for a hue and value
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCQueryMaxC(
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsFloat value,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum chroma for a specific hue and value.
- * The returned format is in XcmsTekHVCFormat.
- *
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor tmp;
- XcmsColor max_vc;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
- XcmsFloat nValue, savedValue, lastValue, lastChroma, prevValue;
- XcmsFloat maxDist, nT, rFactor;
- XcmsFloat ftmp1, ftmp2;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat; /* inherit screen white Pt */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut comp func */
-
- tmp.spec.TekHVC.H = hue;
- tmp.spec.TekHVC.V = value;
- tmp.spec.TekHVC.C = 100.0;
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsTekHVCFormat;
-
- /* check to make sure we have a valid TekHVC number */
- if (!_XcmsTekHVC_CheckModify(&tmp)) {
- return(XcmsFailure);
- }
-
- /* Step 1: compute the maximum value and chroma for this hue. */
- memcpy((char *)&max_vc, (char *)&tmp, sizeof(XcmsColor));
- if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, hue, &max_vc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Step 2: If the value is less than the value for the maximum */
- /* value, chroma point then the chroma is on the line */
- /* from max_vc to 0,0. */
- if (value <= max_vc.spec.TekHVC.V) {
- tmp.spec.TekHVC.C = value
- * max_vc.spec.TekHVC.C / max_vc.spec.TekHVC.V;
- if (_XcmsTekHVC_CheckModify (&tmp)) {
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
- } else {
- return(XcmsFailure);
- }
- } else {
- /* must do a bisection here to compute the maximum chroma */
- /* save the structure input so that any elements that */
- /* are not touched are recopied later in the routine. */
- nValue = savedValue = value;
- lastChroma = -1.0;
- lastValue = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- maxDist = 100.0 - max_vc.spec.TekHVC.V;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prevValue = lastValue;
- lastValue = tmp.spec.TekHVC.V;
- lastChroma = tmp.spec.TekHVC.C;
- nT = (nValue - max_vc.spec.TekHVC.V) / maxDist * rFactor;
- tmp.spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- tmp.spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- tmp.spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to HVC */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Now check the return against what is expected */
- if (tmp.spec.TekHVC.V <= savedValue + EPS &&
- tmp.spec.TekHVC.V >= savedValue - EPS) {
- /* make sure to return the input hue */
- tmp.spec.TekHVC.H = hue;
- if (_XcmsTekHVC_CheckModify (&tmp)) {
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
- } else {
- return(XcmsFailure);
- }
- }
- nValue += savedValue - tmp.spec.TekHVC.V;
- if (nValue < max_vc.spec.TekHVC.V) {
- nValue = max_vc.spec.TekHVC.V;
- rFactor *= 0.5; /* selective relaxation employed */
- } else if (nValue > 100.0) {
- /* make sure to return the input hue */
- tmp.spec.TekHVC.H = hue;
- /* avoid using fabs */
- ftmp1 = lastValue - savedValue;
- if (ftmp1 < 0.0)
- ftmp1 = -ftmp1;
- ftmp2 = tmp.spec.TekHVC.V - savedValue;
- if (ftmp2 < 0.0)
- ftmp2 = -ftmp2;
- if (ftmp1 < ftmp2) {
- tmp.spec.TekHVC.V = lastValue;
- tmp.spec.TekHVC.C = lastChroma;
- }
- if (_XcmsTekHVC_CheckModify (&tmp)) {
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
- } else {
- return(XcmsFailure);
- }
- } else if (tmp.spec.TekHVC.V <= prevValue + EPS &&
- tmp.spec.TekHVC.V >= prevValue - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- }
- }
- if (nCount >= nMaxCount) {
- /* avoid using fabs */
- ftmp1 = lastValue - savedValue;
- if (ftmp1 < 0.0)
- ftmp1 = -ftmp1;
- ftmp2 = tmp.spec.TekHVC.V - savedValue;
- if (ftmp2 < 0.0)
- ftmp2 = -ftmp2;
- if (ftmp1 < ftmp2) {
- tmp.spec.TekHVC.V = lastValue;
- tmp.spec.TekHVC.C = lastChroma;
- }
- }
- }
- /* make sure to return the input hue */
- tmp.spec.TekHVC.H = hue;
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/HVCMxV.c b/nx-X11/lib/X11/HVCMxV.c
deleted file mode 100644
index d5ef94ec5..000000000
--- a/nx-X11/lib/X11/HVCMxV.c
+++ /dev/null
@@ -1,247 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCMxV.c
- *
- * DESCRIPTION
- * Source for the XcmsTekHVCQueryMaxV() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS 0.001
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCQueryMaxV - Compute maximum value for a hue and chroma
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCQueryMaxV(
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsFloat chroma,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum value for a specified hue and chroma.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded with no modifications
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor tmp;
- XcmsColor max_vc;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
- XcmsFloat nT, nChroma, savedChroma, lastValue, lastChroma, prevChroma;
- XcmsFloat rFactor;
- XcmsFloat ftmp1, ftmp2;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* setup the CCC to use for the conversions. */
- memcpy ((char *) &myCCC, (char *) ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc) NULL;
-
- tmp.spec.TekHVC.H = hue;
- tmp.spec.TekHVC.V = 0.0;
- tmp.spec.TekHVC.C = chroma;
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsTekHVCFormat;
-
- if (!_XcmsTekHVC_CheckModify (&tmp)) {
- return(XcmsFailure);
- }
-
- /* Step 1: compute the maximum value and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- memcpy((char *)&max_vc, (char *)&tmp, sizeof(XcmsColor));
- hue = max_vc.spec.TekHVC.H;
- if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, max_vc.spec.TekHVC.H, &max_vc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- if (max_vc.spec.TekHVC.C < tmp.spec.TekHVC.C) {
- /*
- * If the chroma is greater than the chroma for the
- * maximum value/chroma point then the value is the
- * the value for the maximum value, chroma point.
- * This is an error but it I return the best approximation I can.
- * Thus the inconsistency.
- */
- tmp.spec.TekHVC.C = max_vc.spec.TekHVC.C;
- tmp.spec.TekHVC.V = max_vc.spec.TekHVC.V;
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- } else if (max_vc.spec.TekHVC.C == tmp.spec.TekHVC.C) {
- /*
- * If the chroma is equal to the chroma for the
- * maximum value/chroma point then the value is the
- * the value for the maximum value, chroma point.
- */
- tmp.spec.TekHVC.V = max_vc.spec.TekHVC.V;
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- } else {
- /* must do a bisection here to compute the maximum value */
- /* save the structure input so that any elements that */
- /* are not touched are recopied later in the routine. */
- nChroma = savedChroma = tmp.spec.TekHVC.C;
- tmp.spec.TekHVC.C = max_vc.spec.TekHVC.C;
- tmp.spec.TekHVC.V = max_vc.spec.TekHVC.V;
- lastChroma = -1.0;
- lastValue = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prevChroma = lastChroma;
- lastValue = tmp.spec.TekHVC.V;
- lastChroma = tmp.spec.TekHVC.C;
- nT = (1.0 - (nChroma / max_vc.spec.TekHVC.C)) * rFactor;
- tmp.spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- tmp.spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- tmp.spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to HVC */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Now check the return against what is expected */
- if (tmp.spec.TekHVC.C <= savedChroma + EPS &&
- tmp.spec.TekHVC.C >= savedChroma - EPS) {
- tmp.spec.TekHVC.H = hue; /* use the saved hue */
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
- nChroma += savedChroma - tmp.spec.TekHVC.C;
- if (nChroma > max_vc.spec.TekHVC.C) {
- nChroma = max_vc.spec.TekHVC.C;
- rFactor *= 0.5; /* selective relaxation employed */
- } else if (nChroma < 0.0) {
- /* avoid using fabs */
- ftmp1 = lastChroma - savedChroma;
- if (ftmp1 < 0.0)
- ftmp1 = -ftmp1;
- ftmp2 = tmp.spec.TekHVC.C - savedChroma;
- if (ftmp2 < 0.0)
- ftmp2 = -ftmp2;
- if (ftmp1 < ftmp2) {
- tmp.spec.TekHVC.V = lastValue;
- tmp.spec.TekHVC.C = lastChroma;
- }
- /* make sure to return the input hue */
- tmp.spec.TekHVC.H = hue;
- if (!_XcmsTekHVC_CheckModify(&tmp)) {
- return(XcmsFailure);
- }
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- } else if (tmp.spec.TekHVC.C <= prevChroma + EPS &&
- tmp.spec.TekHVC.C >= prevChroma - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- }
- }
- if (nCount >= nMaxCount) {
- /* avoid using fabs */
- ftmp1 = lastChroma - savedChroma;
- if (ftmp1 < 0.0)
- ftmp1 = -ftmp1;
- ftmp2 = tmp.spec.TekHVC.C - savedChroma;
- if (ftmp2 < 0.0)
- ftmp2 = -ftmp2;
- if (ftmp1 < ftmp2) {
- tmp.spec.TekHVC.V = lastValue;
- tmp.spec.TekHVC.C = lastChroma;
- }
- }
- }
-
- /* make sure to return the input hue */
- tmp.spec.TekHVC.H = hue;
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/HVCMxVC.c b/nx-X11/lib/X11/HVCMxVC.c
deleted file mode 100644
index c7e087866..000000000
--- a/nx-X11/lib/X11/HVCMxVC.c
+++ /dev/null
@@ -1,235 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCMxVC.c
- *
- * DESCRIPTION
- * Source for the XcmsTekHVCQueryMaxVC() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MIN(x,y) ((x) > (y) ? (y) : (x))
-#define MIN3(x,y,z) ((x) > (MIN((y), (z))) ? (MIN((y), (z))) : (x))
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#define MAX3(x,y,z) ((x) > (MAX((y), (z))) ? (x) : (MAX((y), (z))))
-#define START_V 40.0
-#define START_C 120.0
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsTekHVCQueryMaxVCRGB - Compute maximum value/chroma.
- *
- * SYNOPSIS
- */
-Status
-_XcmsTekHVCQueryMaxVCRGB(
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsColor *pColor_return,
- XcmsRGBi *pRGB_return)
-
-/*
- * DESCRIPTION
- * Return the maximum chroma for a specified hue, and the
- * corresponding value. This is computed by a binary search of
- * all possible chromas. An assumption is made that there are
- * no local maxima. Use the unrounded Max Chroma because
- * the difference check can be small.
- *
- * NOTE: No local CCC is used because this is a private
- * routine and all routines that call it are expected
- * to behave properly, i.e. send a local CCC with
- * no white adjust function and no gamut compression
- * function.
- *
- * This routine only accepts hue as input and outputs
- * HVC's and RGBi's.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XCMS_SUCCUSS - Succeeded
- *
- */
-{
- XcmsFloat nSmall, nLarge;
- XcmsColor tmp;
-
- tmp.format = XcmsTekHVCFormat;
- tmp.spec.TekHVC.H = hue;
- /* Use some unreachable color on the given hue */
- tmp.spec.TekHVC.V = START_V;
- tmp.spec.TekHVC.C = START_C;
-
-
- /*
- * Convert from HVC to RGB
- *
- * Note that the CIEXYZ to RGBi conversion routine must stuff the
- * out of bounds RGBi values in tmp when the ccc->gamutCompProc
- * is NULL.
- */
- if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsRGBiFormat, (Bool *) NULL)
- == XcmsFailure) && tmp.format != XcmsRGBiFormat) {
- return (XcmsFailure);
- }
-
- /* Now pick the smallest RGB */
- nSmall = MIN3(tmp.spec.RGBi.red,
- tmp.spec.RGBi.green,
- tmp.spec.RGBi.blue);
- /* Make the smallest RGB equal to zero */
- tmp.spec.RGBi.red -= nSmall;
- tmp.spec.RGBi.green -= nSmall;
- tmp.spec.RGBi.blue -= nSmall;
-
- /* Now pick the largest RGB */
- nLarge = MAX3(tmp.spec.RGBi.red,
- tmp.spec.RGBi.green,
- tmp.spec.RGBi.blue);
- /* Scale the RGB values based on the largest one */
- tmp.spec.RGBi.red /= nLarge;
- tmp.spec.RGBi.green /= nLarge;
- tmp.spec.RGBi.blue /= nLarge;
- tmp.format = XcmsRGBiFormat;
-
- /* If the calling routine wants RGB value give them the ones used. */
- if (pRGB_return) {
- pRGB_return->red = tmp.spec.RGBi.red;
- pRGB_return->green = tmp.spec.RGBi.green;
- pRGB_return->blue = tmp.spec.RGBi.blue;
- }
-
- /* Convert from RGBi to HVC */
- if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat, (Bool *) NULL)
- == XcmsFailure) {
- return (XcmsFailure);
- }
-
- /* make sure to return the input hue */
- tmp.spec.TekHVC.H = hue;
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return (XcmsSuccess);
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCQueryMaxVC - Compute maximum value and chroma.
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCQueryMaxVC (
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsColor *pColor_return)
-
-/*
- * DESCRIPTION
- * Return the maximum chroma for the specified hue, and the
- * corresponding value.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;
-
- while (hue < 0.0) {
- hue += 360.0;
- }
- while (hue >= 360.0) {
- hue -= 360.0;
- }
-
- return(_XcmsTekHVCQueryMaxVCRGB (&myCCC, hue, pColor_return,
- (XcmsRGBi *)NULL));
-}
diff --git a/nx-X11/lib/X11/HVCMxVs.c b/nx-X11/lib/X11/HVCMxVs.c
deleted file mode 100644
index 540e5c2f4..000000000
--- a/nx-X11/lib/X11/HVCMxVs.c
+++ /dev/null
@@ -1,161 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * TekHVCMxVs.c
- *
- * DESCRIPTION
- * Source for the XcmsTekHVCQueryMaxVSamples() gamut boundary
- * querying routine.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCQueryMaxVSamples - Compute a set of value/chroma
- * pairs.
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCQueryMaxVSamples(
- XcmsCCC ccc,
- XcmsFloat hue,
- XcmsColor *pColor_in_out,
- unsigned int nSamples)
-
-/*
- * DESCRIPTION
- * Return a set of values and chromas for the input Hue.
- * This routine will take any color as input.
- * It returns TekHVC colors.
- *
- * Since this routine works with the value within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor *pHVC;
- XcmsRGBi rgb_saved;
- unsigned short nI;
- XcmsFloat nT;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_in_out == NULL || nSamples == 0) {
- return(XcmsFailure);
- }
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* setup the CCC to use for the conversions. */
- memcpy ((char *) &myCCC, (char *) ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc) NULL;
-
- /* Step 1: compute the maximum value and chroma for this hue. */
-
-
- /* save the Hue for use later. */
- while (hue < 0.0) {
- hue += 360.0;
- }
- while (hue > 360.0) {
- hue -= 360.0;
- }
- pColor_in_out->spec.TekHVC.H = hue;
- pColor_in_out->format = XcmsTekHVCFormat;
-
- /* Get the maximum value and chroma point for this hue */
- if (_XcmsTekHVCQueryMaxVCRGB(&myCCC, pColor_in_out->spec.TekHVC.H,
- pColor_in_out, (XcmsRGBi *)&rgb_saved) == XcmsFailure) {
- return (XcmsFailure);
- }
-
- /* Step 2: Convert each of the RGBi's to HVC's */
- pHVC = pColor_in_out;
- for (nI = 0; nI < nSamples; nI++, pHVC++) {
- nT = (XcmsFloat) nI / (XcmsFloat) nSamples;
- pHVC->spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- pHVC->spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- pHVC->spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- pHVC->format = XcmsRGBiFormat;
- pHVC->pixel = pColor_in_out->pixel;
- /* convert from RGB to HVC */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, pHVC,
- &myCCC.pPerScrnInfo->screenWhitePt, 1, XcmsTekHVCFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* make sure to return the input hue */
- pHVC->spec.TekHVC.H = hue;
- }
-
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/HVCWpAj.c b/nx-X11/lib/X11/HVCWpAj.c
deleted file mode 100644
index dcefe7535..000000000
--- a/nx-X11/lib/X11/HVCWpAj.c
+++ /dev/null
@@ -1,114 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. TekColor is a
- * trademark of Tektronix, Inc. The term "TekHVC" designates a particular
- * color space that is the subject of U.S. Patent No. 4,985,853 (equivalent
- * foreign patents pending). Permission is hereby granted to use, copy,
- * modify, sell, and otherwise distribute this software and its
- * documentation for any purpose and without fee, provided that:
- *
- * 1. This copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and any modification thereof and in
- * supporting documentation;
- * 2. Any color-handling application which displays TekHVC color
- * cooordinates identifies these as TekHVC color coordinates in any
- * interface that displays these coordinates and in any associated
- * documentation;
- * 3. The term "TekHVC" is always used, and is only used, in association
- * with the mathematical derivations of the TekHVC Color Space,
- * including those provided in this file and any equivalent pathways and
- * mathematical derivations, regardless of digital (e.g., floating point
- * or integer) representation.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * DESCRIPTION
- * TekHVCWpAj.c
- *
- * DESCRIPTION
- * This file contains routine(s) that support white point
- * adjustment of color specifications in the TekHVC color
- * space.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsTekHVCWhiteShiftColors
- *
- * SYNOPSIS
- */
-Status
-XcmsTekHVCWhiteShiftColors(
- XcmsCCC ccc,
- XcmsColor *pWhitePtFrom,
- XcmsColor *pWhitePtTo,
- XcmsColorFormat destSpecFmt,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Convert color specifications in an array of XcmsColor structures
- * for differences in white points.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression,
- * XcmsSuccessWithCompression if succeeded with
- * gamut compression.
- */
-{
- if (pWhitePtFrom == NULL || pWhitePtTo == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Insure TekHVC installed
- */
- if (XcmsAddColorSpace(&XcmsTekHVCColorSpace) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Convert to TekHVC using pWhitePtFrom
- * We can ignore return value for compression because we are converting
- * to XcmsTekHVCFormat which is device-independent, not device-dependent.
- */
- if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
- nColors, XcmsTekHVCFormat, pCompressed) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Convert from TekHVC to destSpecFmt using pWhitePtTo
- */
- return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtTo,
- nColors, destSpecFmt, pCompressed));
-}
diff --git a/nx-X11/lib/X11/Host.c b/nx-X11/lib/X11/Host.c
deleted file mode 100644
index b07c9c312..000000000
--- a/nx-X11/lib/X11/Host.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-X Window System is a trademark of The Open Group.
-
-*/
-
-/*
- * Copyright 2004 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-/* this might be rightly regarded an os dependent file */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-static inline int
-changehost (Display *dpy, XHostAddress *host, BYTE mode)
-{
- xChangeHostsReq *req;
- int length;
- XServerInterpretedAddress *siAddr;
- int addrlen;
-
- siAddr = host->family == FamilyServerInterpreted ?
- (XServerInterpretedAddress *)host->address : NULL;
- addrlen = siAddr ?
- siAddr->typelength + siAddr->valuelength + 1 : host->length;
-
- length = (addrlen + 3) & ~0x3; /* round up */
-
- LockDisplay(dpy);
- GetReqExtra (ChangeHosts, length, req);
- if (!req) {
- UnlockDisplay(dpy);
- return 0;
- }
- req->mode = mode;
- req->hostFamily = host->family;
- req->hostLength = addrlen;
- if (siAddr) {
- char *dest = (char *) NEXTPTR(req,xChangeHostsReq);
- memcpy(dest, siAddr->type, siAddr->typelength);
- dest[siAddr->typelength] = '\0';
- memcpy(dest + siAddr->typelength + 1,siAddr->value,siAddr->valuelength);
- } else {
- memcpy((char *) NEXTPTR(req,xChangeHostsReq), host->address, addrlen);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XAddHost (
- register Display *dpy,
- XHostAddress *host)
-{
- return changehost(dpy, host, HostInsert);
-}
-
-int
-XRemoveHost (
- register Display *dpy,
- XHostAddress *host)
-{
- return changehost(dpy, host, HostDelete);
-}
-
-int
-XAddHosts (
- register Display *dpy,
- XHostAddress *hosts,
- int n)
-{
- register int i;
- for (i = 0; i < n; i++) {
- (void) XAddHost(dpy, &hosts[i]);
- }
- return 1;
-}
-
-int
-XRemoveHosts (
- register Display *dpy,
- XHostAddress *hosts,
- int n)
-{
- register int i;
- for (i = 0; i < n; i++) {
- (void) XRemoveHost(dpy, &hosts[i]);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/ICWrap.c b/nx-X11/lib/X11/ICWrap.c
deleted file mode 100644
index 69f080d87..000000000
--- a/nx-X11/lib/X11/ICWrap.c
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
- * and Nippon Telegraph and Telephone Corporation
- * Copyright 1991 by the Open Software Foundation
- * Copyright 1993 by the FUJITSU LIMITED
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of OMRON, NTT Software, NTT, and
- * Open Software Foundation not be used in advertising or publicity
- * pertaining to distribution of the software without specific,
- * written prior permission. OMRON, NTT Software, NTT, and Open Software
- * Foundation make no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OMRON, NTT SOFTWARE, NTT, AND OPEN SOFTWARE FOUNDATION
- * DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
- * SHALL OMRON, NTT SOFTWARE, NTT, OR OPEN SOFTWARE FOUNDATION BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors: Li Yuhong OMRON Corporation
- * Tatsuya Kato NTT Software Corporation
- * Hiroshi Kuribayashi OMRON Coproration
- * Muneiyoshi Suzuki Nippon Telegraph and Telephone Co.
- *
- * M. Collins OSF
- * Takashi Fujiwara FUJITSU LIMITED
- */
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-static int
-_XIMNestedListToNestedList(
- XIMArg *nlist, /* This is the new list */
- XIMArg *list) /* The original list */
-{
- register XIMArg *ptr = list;
-
- while (ptr->name) {
- if (!strcmp(ptr->name, XNVaNestedList)) {
- nlist += _XIMNestedListToNestedList(nlist, (XIMArg *)ptr->value);
- } else {
- nlist->name = ptr->name;
- nlist->value = ptr->value;
- ptr++;
- nlist++;
- }
- }
- return ptr - list;
-}
-
-static void
-_XIMCountNestedList(
- XIMArg *args,
- int *total_count)
-{
- for (; args->name; args++) {
- if (!strcmp(args->name, XNVaNestedList))
- _XIMCountNestedList((XIMArg *)args->value, total_count);
- else
- ++(*total_count);
- }
-}
-
-static void
-_XIMCountVaList(va_list var, int *total_count)
-{
- char *attr;
-
- *total_count = 0;
-
- for (attr = va_arg(var, char*); attr; attr = va_arg(var, char*)) {
- if (!strcmp(attr, XNVaNestedList)) {
- _XIMCountNestedList(va_arg(var, XIMArg*), total_count);
- } else {
- (void)va_arg(var, XIMArg*);
- ++(*total_count);
- }
- }
-}
-
-static void
-_XIMVaToNestedList(va_list var, int max_count, XIMArg **args_return)
-{
- XIMArg *args;
- char *attr;
-
- if (max_count <= 0) {
- *args_return = (XIMArg *)NULL;
- return;
- }
-
- args = Xmalloc(((unsigned)max_count + 1) * sizeof(XIMArg));
- *args_return = args;
- if (!args) return;
-
- for (attr = va_arg(var, char*); attr; attr = va_arg(var, char*)) {
- if (!strcmp(attr, XNVaNestedList)) {
- args += _XIMNestedListToNestedList(args, va_arg(var, XIMArg*));
- } else {
- args->name = attr;
- args->value = va_arg(var, XPointer);
- args++;
- }
- }
- args->name = (char*)NULL;
-}
-
-/*ARGSUSED*/
-XVaNestedList
-XVaCreateNestedList(int dummy, ...)
-{
- va_list var;
- XIMArg *args = NULL;
- int total_count;
-
- va_start(var, dummy);
- _XIMCountVaList(var, &total_count);
- va_end(var);
-
- va_start(var, dummy);
- _XIMVaToNestedList(var, total_count, &args);
- va_end(var);
-
- return (XVaNestedList)args;
-}
-
-char *
-XSetIMValues(XIM im, ...)
-{
- va_list var;
- int total_count;
- XIMArg *args;
- char *ret = NULL;
-
- /*
- * so count the stuff dangling here
- */
- va_start(var, im);
- _XIMCountVaList(var, &total_count);
- va_end(var);
-
- /*
- * now package it up so we can send it along
- */
- va_start(var, im);
- _XIMVaToNestedList(var, total_count, &args);
- va_end(var);
-
- if (im && im->methods)
- ret = (*im->methods->set_values) (im, args);
- Xfree(args);
- return ret;
-}
-
-char *
-XGetIMValues(XIM im, ...)
-{
- va_list var;
- int total_count;
- XIMArg *args;
- char *ret = NULL;
-
- /*
- * so count the stuff dangling here
- */
- va_start(var, im);
- _XIMCountVaList(var, &total_count);
- va_end(var);
-
- /*
- * now package it up so we can send it along
- */
- va_start(var, im);
- _XIMVaToNestedList(var, total_count, &args);
- va_end(var);
-
- if (im && im->methods)
- ret = (*im->methods->get_values) (im, args);
- Xfree(args);
- return ret;
-}
-
-/*
- * Create an input context within the input method,
- * and return a pointer to the input context.
- */
-
-XIC
-XCreateIC(XIM im, ...)
-{
- va_list var;
- int total_count;
- XIMArg *args;
- XIC ic = NULL;
-
- /*
- * so count the stuff dangling here
- */
- va_start(var, im);
- _XIMCountVaList(var, &total_count);
- va_end(var);
-
- /*
- * now package it up so we can send it along
- */
- va_start(var, im);
- _XIMVaToNestedList(var, total_count, &args);
- va_end(var);
-
- if (im && im->methods)
- ic = (XIC) (*im->methods->create_ic) (im, args);
- Xfree(args);
- if (ic) {
- ic->core.next = im->core.ic_chain;
- im->core.ic_chain = ic;
- }
- return ic;
-}
-
-/*
- * Free the input context.
- */
-void
-XDestroyIC(XIC ic)
-{
- XIM im = ic->core.im;
- XIC *prev;
-
- (*ic->methods->destroy) (ic);
- if (im) {
- for (prev = &im->core.ic_chain; *prev; prev = &(*prev)->core.next) {
- if (*prev == ic) {
- *prev = ic->core.next;
- break;
- }
- }
- }
- Xfree (ic);
-}
-
-char *
-XGetICValues(XIC ic, ...)
-{
- va_list var;
- int total_count;
- XIMArg *args;
- char *ret;
-
- if (!ic->core.im)
- return (char *) NULL;
-
- /*
- * so count the stuff dangling here
- */
- va_start(var, ic);
- _XIMCountVaList(var, &total_count);
- va_end(var);
-
- /*
- * now package it up so we can send it along
- */
- va_start(var, ic);
- _XIMVaToNestedList(var, total_count, &args);
- va_end(var);
-
- ret = (*ic->methods->get_values) (ic, args);
- Xfree(args);
- return ret;
-}
-
-char *
-XSetICValues(XIC ic, ...)
-{
- va_list var;
- int total_count;
- XIMArg *args;
- char *ret;
-
- if (!ic->core.im)
- return (char *) NULL;
-
- /*
- * so count the stuff dangling here
- */
- va_start(var, ic);
- _XIMCountVaList(var, &total_count);
- va_end(var);
-
- /*
- * now package it up so we can send it along
- */
- va_start(var, ic);
- _XIMVaToNestedList(var, total_count, &args);
- va_end(var);
-
- ret = (*ic->methods->set_values) (ic, args);
- Xfree(args);
- return ret;
-}
-
-/*
- * Require the input manager to focus the focus window attached to the ic
- * argument.
- */
-void
-XSetICFocus(XIC ic)
-{
- if (ic && ic->core.im)
- (*ic->methods->set_focus) (ic);
-}
-
-/*
- * Require the input manager to unfocus the focus window attached to the ic
- * argument.
- */
-void
-XUnsetICFocus(XIC ic)
-{
- if (ic->core.im)
- (*ic->methods->unset_focus) (ic);
-}
-
-/*
- * Return the XIM associated with the input context.
- */
-XIM
-XIMOfIC(XIC ic)
-{
- return ic->core.im;
-}
-
-char *
-XmbResetIC(XIC ic)
-{
- if (ic->core.im)
- return (*ic->methods->mb_reset)(ic);
- return (char *)NULL;
-}
-
-wchar_t *
-XwcResetIC(XIC ic)
-{
- if (ic->core.im)
- return (*ic->methods->wc_reset)(ic);
- return (wchar_t *)NULL;
-}
-
-char *
-Xutf8ResetIC(XIC ic)
-{
- if (ic->core.im) {
- if (ic->methods->utf8_reset)
- return (*ic->methods->utf8_reset)(ic);
- else if (ic->methods->mb_reset)
- return (*ic->methods->mb_reset)(ic);
- }
- return (char *)NULL;
-}
-
-int
-XmbLookupString(XIC ic, XKeyEvent *ev, char *buffer, int nbytes,
- KeySym *keysym, Status *status)
-{
- if (ic->core.im)
- return (*ic->methods->mb_lookup_string) (ic, ev, buffer, nbytes,
- keysym, status);
- return XLookupNone;
-}
-
-int
-XwcLookupString(XIC ic, XKeyEvent *ev, wchar_t *buffer, int nchars,
- KeySym *keysym, Status *status)
-{
- if (ic->core.im)
- return (*ic->methods->wc_lookup_string) (ic, ev, buffer, nchars,
- keysym, status);
- return XLookupNone;
-}
-
-int
-Xutf8LookupString(XIC ic, XKeyEvent *ev, char *buffer, int nbytes,
- KeySym *keysym, Status *status)
-{
- if (ic->core.im) {
- if (ic->methods->utf8_lookup_string)
- return (*ic->methods->utf8_lookup_string) (ic, ev, buffer, nbytes,
- keysym, status);
- else if (ic->methods->mb_lookup_string)
- return (*ic->methods->mb_lookup_string) (ic, ev, buffer, nbytes,
- keysym, status);
- }
- return XLookupNone;
-}
diff --git a/nx-X11/lib/X11/IMWrap.c b/nx-X11/lib/X11/IMWrap.c
deleted file mode 100644
index a7c1d98c1..000000000
--- a/nx-X11/lib/X11/IMWrap.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright 1991 by the Open Software Foundation
- * Copyright 1993, 1994 by the Sony Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of Open Software Foundation and
- * Sony Corporation not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior permission.
- * Open Software Foundation and Sony Corporation make no
- * representations about the suitability of this software for any purpose.
- * It is provided "as is" without express or implied warranty.
- *
- * OPEN SOFTWARE FOUNDATION AND SONY CORPORATION DISCLAIM ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OPEN
- * SOFTWARE FOUNDATIONN OR SONY CORPORATION BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * M. Collins OSF
- * Makoto Wakamatsu Sony Corporation
- */
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-/*
- * Compile the resource name. (resource_name ---> xrm_name)
- */
-void
-_XIMCompileResourceList(XIMResourceList res, unsigned int num_res)
-{
- register unsigned int count;
-
- for (count = 0; count < num_res; res++, count++) {
- res->xrm_name = XrmStringToQuark(res->resource_name);
- }
-}
-
-void
-_XCopyToArg(XPointer src, XPointer *dst, unsigned int size)
-{
- if (!*dst) {
- union {
- long longval;
-#ifdef LONG64
- int intval;
-#endif
- short shortval;
- char charval;
- char* charptr;
- XPointer ptr;
- } u;
- if (size <= sizeof(XPointer)) {
- memcpy((char *)&u, (char *)src, (int)size);
- if (size == sizeof(long)) *dst = (XPointer)u.longval;
-#ifdef LONG64
- else if (size == sizeof(int)) *dst = (XPointer)(long)u.intval;
-#endif
- else if (size == sizeof(short)) *dst = (XPointer)(long)u.shortval;
- else if (size == sizeof(char)) *dst = (XPointer)(long)u.charval;
- else if (size == sizeof(char*)) *dst = (XPointer)u.charptr;
- else if (size == sizeof(XPointer)) *dst = (XPointer)u.ptr;
- else memcpy( (char*)dst, (char*)src, (int)size );
- } else {
- memcpy( (char*)dst, (char*)src, (int)size );
- }
- } else {
- memcpy( (char*)*dst, (char*)src, (int)size );
- }
-}
-
-/*
- * Connects to an input method matching current locale specification, creates
- * a XIM object and return a pointer the newly created XIM back to the caller.
- */
-
-XIM
-XOpenIM(Display *display, XrmDatabase rdb, char *res_name, char *res_class)
-{
- XLCd lcd = _XOpenLC( (char *)NULL );
-
- if( !lcd )
- return( (XIM)NULL );
- return (*lcd->methods->open_im) (lcd, display, rdb, res_name, res_class);
-}
-
-/*
- * Close the connection to the input manager, and free the XIM structure
- */
-Status
-XCloseIM(XIM im)
-{
- Status s;
- XIC ic;
- XLCd lcd = im->core.lcd;
-
- s = (im->methods->close) (im);
- for (ic = im->core.ic_chain; ic; ic = ic->core.next)
- ic->core.im = (XIM)NULL;
- Xfree (im);
- _XCloseLC (lcd);
- return (s);
-}
-
-/*
- * Return the Display associated with the input method.
- */
-Display *
-XDisplayOfIM(XIM im)
-{
- return im->core.display;
-}
-
-/*
- * Return the Locale associated with the input method.
- */
-char *
-XLocaleOfIM(XIM im)
-{
- return im->core.lcd->core->name;
-}
-
-/*
- * Register to a input method instantiation callback to prepare the
- * on-demand input method instantiation.
- */
-Bool
-XRegisterIMInstantiateCallback(
- Display *display,
- XrmDatabase rdb,
- char *res_name,
- char *res_class,
- XIDProc callback,
- XPointer client_data)
-{
- XLCd lcd = _XOpenLC( (char *)NULL );
-
- if( !lcd )
- return( False );
- return( (*lcd->methods->register_callback)( lcd, display, rdb, res_name,
- res_class, callback,
- client_data ) );
-}
-
-/*
- * Unregister to a input method instantiation callback.
- */
-Bool
-XUnregisterIMInstantiateCallback(
- Display *display,
- XrmDatabase rdb,
- char *res_name,
- char *res_class,
- XIDProc callback,
- XPointer client_data)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if( !lcd )
- return( False );
- if( lcd->methods->unregister_callback == NULL )
- return( False );
- return( (*lcd->methods->unregister_callback)( lcd, display, rdb, res_name,
- res_class, callback,
- client_data ) );
-}
-
diff --git a/nx-X11/lib/X11/Iconify.c b/nx-X11/lib/X11/Iconify.c
deleted file mode 100644
index 542f5885c..000000000
--- a/nx-X11/lib/X11/Iconify.c
+++ /dev/null
@@ -1,89 +0,0 @@
-
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Wyse not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xutil.h>
-#include <stdio.h>
-
-/*
- * This function instructs the window manager to change this window from
- * NormalState to IconicState.
- */
-Status XIconifyWindow (
- Display *dpy,
- Window w,
- int screen)
-{
- Atom prop;
-
- prop = XInternAtom (dpy, "WM_CHANGE_STATE", False);
- if (prop == None)
- return False;
- else {
- XClientMessageEvent ev = {
- .type = ClientMessage,
- .window = w,
- .message_type = prop,
- .format = 32,
- .data.l[0] = IconicState
- };
- Window root = RootWindow (dpy, screen);
-
- return (XSendEvent (dpy, root, False,
- SubstructureRedirectMask|SubstructureNotifyMask,
- (XEvent *)&ev));
- }
-}
diff --git a/nx-X11/lib/X11/IdOfPr.c b/nx-X11/lib/X11/IdOfPr.c
deleted file mode 100644
index 9f43dd387..000000000
--- a/nx-X11/lib/X11/IdOfPr.c
+++ /dev/null
@@ -1,106 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsIdOfPr.c
- *
- * DESCRIPTION
- * Source for XcmsFormatOfPrefix()
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/*
- * NAME
- * XcmsFormatOfPrefix
- *
- * SYNOPSIS
- */
-XcmsColorFormat
-XcmsFormatOfPrefix(char *prefix)
-/*
- * DESCRIPTION
- * Returns the Color Space ID for the specified prefix
- * if the color space is found in the Color Conversion
- * Context.
- *
- * RETURNS
- * Color Space ID if found; zero otherwise.
- */
-{
- XcmsColorSpace **papColorSpaces;
- char string_buf[64];
- char *string_lowered;
- size_t len;
-
- /*
- * While copying prefix to string_lowered, convert to lowercase
- */
- if ((len = strlen(prefix)) >= sizeof(string_buf)) {
- string_lowered = Xmalloc(len+1);
- } else {
- string_lowered = string_buf;
- }
- _XcmsCopyISOLatin1Lowered(string_lowered, prefix);
-
- /*
- * First try Device-Independent color spaces
- */
- papColorSpaces = _XcmsDIColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if (strcmp((*papColorSpaces)->prefix, string_lowered) == 0) {
- if (len >= sizeof(string_buf)) Xfree(string_lowered);
- return((*papColorSpaces)->id);
- }
- papColorSpaces++;
- }
- }
-
- /*
- * Next try Device-Dependent color spaces
- */
- papColorSpaces = _XcmsDDColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if (strcmp((*papColorSpaces)->prefix, string_lowered) == 0) {
- if (len >= sizeof(string_buf)) Xfree(string_lowered);
- return((*papColorSpaces)->id);
- }
- papColorSpaces++;
- }
- }
-
- if (len >= sizeof(string_buf)) Xfree(string_lowered);
- return(XcmsUndefinedFormat);
-}
diff --git a/nx-X11/lib/X11/IfEvent.c b/nx-X11/lib/X11/IfEvent.c
deleted file mode 100644
index 1a5eef7ce..000000000
--- a/nx-X11/lib/X11/IfEvent.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Flush output and (wait for and) return the next event matching the
- * predicate in the queue.
- */
-
-int
-XIfEvent (
- register Display *dpy,
- register XEvent *event,
- Bool (*predicate)(
- Display* /* display */,
- XEvent* /* event */,
- char* /* arg */
- ), /* function to call */
- char *arg)
-{
- register _XQEvent *qelt, *prev;
- unsigned long qe_serial = 0;
-
- LockDisplay(dpy);
- prev = NULL;
- while (1) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if(qelt->qserial_num > qe_serial
- && (*predicate)(dpy, &qelt->event, arg)) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- _XStoreEventCookie(dpy, event);
- UnlockDisplay(dpy);
- return 0;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- _XReadEvents(dpy);
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockDisplay(dpy);
- return 0;
- }
-#endif
- }
-}
diff --git a/nx-X11/lib/X11/ImText.c b/nx-X11/lib/X11/ImText.c
deleted file mode 100644
index c12f26854..000000000
--- a/nx-X11/lib/X11/ImText.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawImageString(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- _Xconst char *string,
- int length)
-{
- register xImageText8Req *req;
- char *CharacterOffset = (char *)string;
- int FirstTimeThrough = True;
- int lastX = 0;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- while (length > 0)
- {
- int Unit;
-
- if (length > 255) Unit = 255;
- else Unit = length;
-
- if (FirstTimeThrough)
- {
- FirstTimeThrough = False;
- }
- else
- {
- char buf[512];
- char *ptr, *str;
- xQueryTextExtentsReq *qreq;
- xQueryTextExtentsReply rep;
- int i;
-
- GetReq(QueryTextExtents, qreq);
- qreq->fid = gc->gid;
- qreq->length += (510 + 3)>>2;
- qreq->oddLength = 1;
- str = CharacterOffset - 255;
- for (ptr = buf, i = 255; --i >= 0; ) {
- *ptr++ = 0;
- *ptr++ = *str++;
- }
- Data (dpy, buf, 510);
- if (!_XReply (dpy, (xReply *)&rep, 0, xTrue))
- break;
-
- x = lastX + cvtINT32toInt (rep.overallWidth);
- }
-
- GetReq (ImageText8, req);
- req->length += (Unit + 3) >> 2;
- req->nChars = Unit;
- req->drawable = d;
- req->gc = gc->gid;
- req->y = y;
-
- lastX = req->x = x;
- Data (dpy, CharacterOffset, (long)Unit);
- CharacterOffset += Unit;
- length -= Unit;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
-}
-
diff --git a/nx-X11/lib/X11/ImText16.c b/nx-X11/lib/X11/ImText16.c
deleted file mode 100644
index b0b60710c..000000000
--- a/nx-X11/lib/X11/ImText16.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawImageString16(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- _Xconst XChar2b *string,
- int length)
-{
- register xImageText16Req *req;
- XChar2b *CharacterOffset = (XChar2b *)string;
- int FirstTimeThrough = True;
- int lastX = 0;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- while (length > 0)
- {
- int Unit, Datalength;
-
- if (length > 255) Unit = 255;
- else Unit = length;
-
- if (FirstTimeThrough)
- {
- FirstTimeThrough = False;
- }
- else
- {
- char buf[512];
- xQueryTextExtentsReq *qreq;
- xQueryTextExtentsReply rep;
- unsigned char *ptr;
- XChar2b *str;
- int i;
-
- GetReq(QueryTextExtents, qreq);
- qreq->fid = gc->gid;
- qreq->length += (510 + 3)>>2;
- qreq->oddLength = 1;
- str = CharacterOffset - 255;
- for (ptr = (unsigned char *)buf, i = 255; --i >= 0; str++) {
- *ptr++ = str->byte1;
- *ptr++ = str->byte2;
- }
- Data (dpy, buf, 510);
- if (!_XReply (dpy, (xReply *)&rep, 0, xTrue))
- break;
-
- x = lastX + cvtINT32toInt (rep.overallWidth);
- }
-
- GetReq (ImageText16, req);
- req->length += ((Unit << 1) + 3) >> 2;
- req->nChars = Unit;
- req->drawable = d;
- req->gc = gc->gid;
- req->y = y;
-
- lastX = req->x = x;
- Datalength = Unit << 1;
- Data (dpy, (char *)CharacterOffset, (long)Datalength);
- CharacterOffset += Unit;
- length -= Unit;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
-}
-
diff --git a/nx-X11/lib/X11/ImUtil.c b/nx-X11/lib/X11/ImUtil.c
deleted file mode 100644
index 79ba80ecc..000000000
--- a/nx-X11/lib/X11/ImUtil.c
+++ /dev/null
@@ -1,1013 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include <stdio.h>
-#include "ImUtil.h"
-
-static int _XDestroyImage(XImage *);
-static unsigned long _XGetPixel(XImage *, int, int);
-static unsigned long _XGetPixel1(XImage *, int, int);
-static unsigned long _XGetPixel8(XImage *, int, int);
-static unsigned long _XGetPixel16(XImage *, int, int);
-static unsigned long _XGetPixel32(XImage *, int, int);
-static int _XPutPixel(XImage *, int, int, unsigned long);
-static int _XPutPixel1(XImage *, int, int, unsigned long);
-static int _XPutPixel8(XImage *, int, int, unsigned long);
-static int _XPutPixel16(XImage *, int, int, unsigned long);
-static int _XPutPixel32(XImage *, int, int, unsigned long);
-static XImage *_XSubImage(XImage *, int, int, unsigned int, unsigned int);
-static int _XAddPixel(XImage *, long);
-
-static unsigned char const _lomask[0x09] = { 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
-static unsigned char const _himask[0x09] = { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00 };
-
-/* These two convenience routines return the scanline_pad and bits_per_pixel
- associated with a specific depth of ZPixmap format image for a
- display. */
-
-int
-_XGetScanlinePad(
- Display *dpy,
- int depth)
- {
- register ScreenFormat *fmt = dpy->pixmap_format;
- register int i;
-
- for (i = dpy->nformats + 1; --i; ++fmt)
- if (fmt->depth == depth)
- return(fmt->scanline_pad);
-
- return(dpy->bitmap_pad);
- }
-
-int
-_XGetBitsPerPixel(
- Display *dpy,
- int depth)
- {
- register ScreenFormat *fmt = dpy->pixmap_format;
- register int i;
-
- for (i = dpy->nformats + 1; --i; ++fmt)
- if (fmt->depth == depth)
- return(fmt->bits_per_pixel);
- if (depth <= 4)
- return 4;
- if (depth <= 8)
- return 8;
- if (depth <= 16)
- return 16;
- return 32;
- }
-
-
-/*
- * This module provides rudimentary manipulation routines for image data
- * structures. The functions provided are:
- *
- * XCreateImage Creates a default XImage data structure
- * _XDestroyImage Deletes an XImage data structure
- * _XGetPixel Reads a pixel from an image data structure
- * _XGetPixel32 Reads a pixel from a 32-bit Z image data structure
- * _XGetPixel16 Reads a pixel from a 16-bit Z image data structure
- * _XGetPixel8 Reads a pixel from an 8-bit Z image data structure
- * _XGetPixel1 Reads a pixel from an 1-bit image data structure
- * _XPutPixel Writes a pixel into an image data structure
- * _XPutPixel32 Writes a pixel into a 32-bit Z image data structure
- * _XPutPixel16 Writes a pixel into a 16-bit Z image data structure
- * _XPutPixel8 Writes a pixel into an 8-bit Z image data structure
- * _XPutPixel1 Writes a pixel into an 1-bit image data structure
- * _XSubImage Clones a new (sub)image from an existing one
- * _XSetImage Writes an image data pattern into another image
- * _XAddPixel Adds a constant value to every pixel in an image
- *
- * The logic contained in these routines makes several assumptions about
- * the image data structures, and at least for current implementations
- * these assumptions are believed to be true. They are:
- *
- * For all formats, bits_per_pixel is less than or equal to 32.
- * For XY formats, bitmap_unit is always less than or equal to bitmap_pad.
- * For XY formats, bitmap_unit is 8, 16, or 32 bits.
- * For Z format, bits_per_pixel is 1, 4, 8, 16, 24, or 32 bits.
- */
-static void _xynormalizeimagebits (
- register unsigned char *bp,
- register XImage *img)
-{
- register unsigned char c;
-
- if (img->byte_order != img->bitmap_bit_order) {
- switch (img->bitmap_unit) {
-
- case 16:
- c = *bp;
- *bp = *(bp + 1);
- *(bp + 1) = c;
- break;
-
- case 32:
- c = *(bp + 3);
- *(bp + 3) = *bp;
- *bp = c;
- c = *(bp + 2);
- *(bp + 2) = *(bp + 1);
- *(bp + 1) = c;
- break;
- }
- }
- if (img->bitmap_bit_order == MSBFirst)
- _XReverse_Bytes (bp, img->bitmap_unit >> 3);
-}
-
-static void _znormalizeimagebits (
- register unsigned char *bp,
- register XImage *img)
-{
- register unsigned char c;
- switch (img->bits_per_pixel) {
-
- case 4:
- *bp = ((*bp >> 4) & 0xF) | ((*bp << 4) & ~0xF);
- break;
-
- case 16:
- c = *bp;
- *bp = *(bp + 1);
- *(bp + 1) = c;
- break;
-
- case 24:
- c = *(bp + 2);
- *(bp + 2) = *bp;
- *bp = c;
- break;
-
- case 32:
- c = *(bp + 3);
- *(bp + 3) = *bp;
- *bp = c;
- c = *(bp + 2);
- *(bp + 2) = *(bp + 1);
- *(bp + 1) = c;
- break;
- }
-}
-
-static void _putbits(
- register char *src, /* address of source bit string */
- int dstoffset, /* bit offset into destination; range is 0-31 */
- register int numbits,/* number of bits to copy to destination */
- register char *dst) /* address of destination bit string */
-{
- register unsigned char chlo, chhi;
- int hibits;
- dst = dst + (dstoffset >> 3);
- dstoffset = dstoffset & 7;
- hibits = 8 - dstoffset;
- chlo = *dst & _lomask[dstoffset];
- for (;;) {
- chhi = (*src << dstoffset) & _himask[dstoffset];
- if (numbits <= hibits) {
- chhi = chhi & _lomask[dstoffset + numbits];
- *dst = (*dst & _himask[dstoffset + numbits]) | chlo | chhi;
- break;
- }
- *dst = chhi | chlo;
- dst++;
- numbits = numbits - hibits;
- chlo = (unsigned char) (*src & _himask[hibits]) >> hibits;
- src++;
- if (numbits <= dstoffset) {
- chlo = chlo & _lomask[numbits];
- *dst = (*dst & _himask[numbits]) | chlo;
- break;
- }
- numbits = numbits - dstoffset;
- }
-}
-
-
-/*
- * Macros
- *
- * The ROUNDUP macro rounds up a quantity to the specified boundary,
- * then truncates to bytes.
- *
- * The XYNORMALIZE macro determines whether XY format data requires
- * normalization and calls a routine to do so if needed. The logic in
- * this module is designed for LSBFirst byte and bit order, so
- * normalization is done as required to present the data in this order.
- *
- * The ZNORMALIZE macro performs byte and nibble order normalization if
- * required for Z format data.
- *
- * The XYINDEX macro computes the index to the starting byte (char) boundary
- * for a bitmap_unit containing a pixel with coordinates x and y for image
- * data in XY format.
- *
- * The ZINDEX macro computes the index to the starting byte (char) boundary
- * for a pixel with coordinates x and y for image data in ZPixmap format.
- *
- */
-
-#define ROUNDUP(nbytes, pad) ((((nbytes) + ((pad)-1)) / (pad)) * ((pad)>>3))
-
-#define XYNORMALIZE(bp, img) \
- if ((img->byte_order == MSBFirst) || (img->bitmap_bit_order == MSBFirst)) \
- _xynormalizeimagebits((unsigned char *)(bp), img)
-
-#define ZNORMALIZE(bp, img) \
- if (img->byte_order == MSBFirst) \
- _znormalizeimagebits((unsigned char *)(bp), img)
-
-#define XYINDEX(x, y, img) \
- ((y) * img->bytes_per_line) + \
- (((x) + img->xoffset) / img->bitmap_unit) * (img->bitmap_unit >> 3)
-
-#define ZINDEX(x, y, img) ((y) * img->bytes_per_line) + \
- (((x) * img->bits_per_pixel) >> 3)
-
-/*
- * This routine initializes the image object function pointers. The
- * intent is to provide native (i.e. fast) routines for native format images
- * only using the generic (i.e. slow) routines when fast ones don't exist.
- * However, with the current rather botched external interface, clients may
- * have to mung image attributes after the image gets created, so the fast
- * routines always have to check to make sure the optimization is still
- * valid, and reinit the functions if not.
- */
-void _XInitImageFuncPtrs (
- register XImage *image)
-{
- image->f.create_image = XCreateImage;
- image->f.destroy_image = _XDestroyImage;
- if ((image->format == ZPixmap) && (image->bits_per_pixel == 8)) {
- image->f.get_pixel = _XGetPixel8;
- image->f.put_pixel = _XPutPixel8;
- } else if (((image->bits_per_pixel | image->depth) == 1) &&
- (image->byte_order == image->bitmap_bit_order)) {
- image->f.get_pixel = _XGetPixel1;
- image->f.put_pixel = _XPutPixel1;
- } else if ((image->format == ZPixmap) &&
- (image->bits_per_pixel == 32)) {
- image->f.get_pixel = _XGetPixel32;
- image->f.put_pixel = _XPutPixel32;
- } else if ((image->format == ZPixmap) &&
- (image->bits_per_pixel == 16)) {
- image->f.get_pixel = _XGetPixel16;
- image->f.put_pixel = _XPutPixel16;
- } else {
- image->f.get_pixel = _XGetPixel;
- image->f.put_pixel = _XPutPixel;
- }
- image->f.sub_image = _XSubImage;
-/* image->f.set_image = _XSetImage;*/
- image->f.add_pixel = _XAddPixel;
-}
-
-/*
- * CreateImage
- *
- * Allocates the memory necessary for an XImage data structure.
- * Initializes the structure with "default" values and returns XImage.
- *
- */
-
-XImage *XCreateImage (
- register Display *dpy,
- register Visual *visual,
- unsigned int depth,
- int format,
- int offset, /*How many pixels from the start of the data does the
- picture to be transmitted start?*/
-
- char *data,
- unsigned int width,
- unsigned int height,
- int xpad,
- int image_bytes_per_line)
- /*How many bytes between a pixel on one line and the pixel with
- the same X coordinate on the next line? 0 means
- XCreateImage can calculate it.*/
-{
- register XImage *image;
- int bits_per_pixel = 1;
- int min_bytes_per_line;
-
- if (depth == 0 || depth > 32 ||
- (format != XYBitmap && format != XYPixmap && format != ZPixmap) ||
- (format == XYBitmap && depth != 1) ||
- (xpad != 8 && xpad != 16 && xpad != 32) ||
- offset < 0)
- return (XImage *) NULL;
- if ((image = Xcalloc(1, sizeof(XImage))) == NULL)
- return (XImage *) NULL;
-
- image->width = width;
- image->height = height;
- image->format = format;
- image->byte_order = dpy->byte_order;
- image->bitmap_unit = dpy->bitmap_unit;
- image->bitmap_bit_order = dpy->bitmap_bit_order;
- if (visual != NULL) {
- image->red_mask = visual->red_mask;
- image->green_mask = visual->green_mask;
- image->blue_mask = visual->blue_mask;
- }
- else {
- image->red_mask = image->green_mask = image->blue_mask = 0;
- }
- if (format == ZPixmap)
- {
- bits_per_pixel = _XGetBitsPerPixel(dpy, (int) depth);
- }
-
- image->xoffset = offset;
- image->bitmap_pad = xpad;
- image->depth = depth;
- image->data = data;
- /*
- * compute per line accelerator.
- */
- {
- if (format == ZPixmap)
- min_bytes_per_line =
- ROUNDUP((bits_per_pixel * width), image->bitmap_pad);
- else
- min_bytes_per_line =
- ROUNDUP((width + offset), image->bitmap_pad);
- }
- if (image_bytes_per_line == 0) {
- image->bytes_per_line = min_bytes_per_line;
- } else if (image_bytes_per_line < min_bytes_per_line) {
- Xfree(image);
- return NULL;
- } else {
- image->bytes_per_line = image_bytes_per_line;
- }
-
- image->bits_per_pixel = bits_per_pixel;
- image->obdata = NULL;
- _XInitImageFuncPtrs (image);
-
- return image;
-}
-
-Status XInitImage (XImage *image)
-{
- int min_bytes_per_line;
-
- if (image->depth == 0 || image->depth > 32 ||
- image->bits_per_pixel > 32 || image->bitmap_unit > 32 ||
- image->bits_per_pixel < 0 || image->bitmap_unit < 0 ||
- (image->format != XYBitmap &&
- image->format != XYPixmap &&
- image->format != ZPixmap) ||
- (image->format == XYBitmap && image->depth != 1) ||
- (image->bitmap_pad != 8 &&
- image->bitmap_pad != 16 &&
- image->bitmap_pad != 32) ||
- image->xoffset < 0)
- return 0;
-
- /*
- * compute per line accelerator.
- */
- if (image->format == ZPixmap)
- min_bytes_per_line =
- ROUNDUP((image->bits_per_pixel * image->width),
- image->bitmap_pad);
- else
- min_bytes_per_line =
- ROUNDUP((image->width + image->xoffset), image->bitmap_pad);
-
- if (image->bytes_per_line == 0) {
- image->bytes_per_line = min_bytes_per_line;
- } else if (image->bytes_per_line < min_bytes_per_line) {
- return 0;
- }
-
- _XInitImageFuncPtrs (image);
-
- return 1;
-}
-
-/*
- * _DestroyImage
- *
- * Deallocates the memory associated with the ximage data structure.
- * this version handles the case of the image data being malloc'd
- * entirely by the library.
- */
-
-static int _XDestroyImage (XImage *ximage)
-{
- Xfree(ximage->data);
- Xfree(ximage->obdata);
- Xfree(ximage);
- return 1;
-}
-
-
-/*
- * GetPixel
- *
- * Returns the specified pixel. The X and Y coordinates are relative to
- * the origin (upper left [0,0]) of the image. The pixel value is returned
- * in normalized format, i.e. the LSB of the long is the LSB of the pixel.
- * The algorithm used is:
- *
- * copy the source bitmap_unit or Zpixel into temp
- * normalize temp if needed
- * extract the pixel bits into return value
- *
- */
-
-static unsigned long const low_bits_table[] = {
- 0x00000000, 0x00000001, 0x00000003, 0x00000007,
- 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f,
- 0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff,
- 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff,
- 0x0000ffff, 0x0001ffff, 0x0003ffff, 0x0007ffff,
- 0x000fffff, 0x001fffff, 0x003fffff, 0x007fffff,
- 0x00ffffff, 0x01ffffff, 0x03ffffff, 0x07ffffff,
- 0x0fffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff,
- 0xffffffff
-};
-
-static unsigned long _XGetPixel (
- register XImage *ximage,
- int x,
- int y)
-
-{
- unsigned long pixel, px;
- register char *src;
- register char *dst;
- register int i, j;
- int bits, nbytes;
- long plane;
-
- if ((ximage->bits_per_pixel | ximage->depth) == 1) {
- src = &ximage->data[XYINDEX(x, y, ximage)];
- dst = (char *)&pixel;
- pixel = 0;
- for (i = ximage->bitmap_unit >> 3; --i >= 0; ) *dst++ = *src++;
- XYNORMALIZE(&pixel, ximage);
- bits = (x + ximage->xoffset) % ximage->bitmap_unit;
- pixel = ((((char *)&pixel)[bits>>3])>>(bits&7)) & 1;
- } else if (ximage->format == XYPixmap) {
- pixel = 0;
- plane = 0;
- nbytes = ximage->bitmap_unit >> 3;
- for (i = ximage->depth; --i >= 0; ) {
- src = &ximage->data[XYINDEX(x, y, ximage)+ plane];
- dst = (char *)&px;
- px = 0;
- for (j = nbytes; --j >= 0; ) *dst++ = *src++;
- XYNORMALIZE(&px, ximage);
- bits = (x + ximage->xoffset) % ximage->bitmap_unit;
- pixel = (pixel << 1) |
- (((((char *)&px)[bits>>3])>>(bits&7)) & 1);
- plane = plane + (ximage->bytes_per_line * ximage->height);
- }
- } else if (ximage->format == ZPixmap) {
- src = &ximage->data[ZINDEX(x, y, ximage)];
- dst = (char *)&px;
- px = 0;
- for (i = (ximage->bits_per_pixel + 7) >> 3; --i >= 0; )
- *dst++ = *src++;
- ZNORMALIZE(&px, ximage);
- pixel = 0;
- for (i=sizeof(unsigned long); --i >= 0; )
- pixel = (pixel << 8) | ((unsigned char *)&px)[i];
- if (ximage->bits_per_pixel == 4) {
- if (x & 1)
- pixel >>= 4;
- else
- pixel &= 0xf;
- }
- } else {
- return 0; /* bad image */
- }
- if (ximage->bits_per_pixel == ximage->depth)
- return pixel;
- else
- return (pixel & low_bits_table[ximage->depth]);
-}
-
-static CARD32 const byteorderpixel = MSBFirst << 24;
-
-static unsigned long _XGetPixel32 (
- register XImage *ximage,
- int x,
- int y)
-{
- register unsigned char *addr;
- unsigned long pixel;
-
- if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 32)) {
- addr = &((unsigned char *)ximage->data)
- [y * ximage->bytes_per_line + (x << 2)];
- if (*((const char *)&byteorderpixel) == ximage->byte_order)
- pixel = *((CARD32 *)addr);
- else if (ximage->byte_order == MSBFirst)
- pixel = ((unsigned long)addr[0] << 24 |
- (unsigned long)addr[1] << 16 |
- (unsigned long)addr[2] << 8 |
- addr[3]);
- else
- pixel = ((unsigned long)addr[3] << 24 |
- (unsigned long)addr[2] << 16 |
- (unsigned long)addr[1] << 8 |
- addr[0]);
- if (ximage->depth != 32)
- pixel &= low_bits_table[ximage->depth];
- return pixel;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XGetPixel(ximage, x, y);
- }
-}
-
-static unsigned long _XGetPixel16 (
- register XImage *ximage,
- int x,
- int y)
-{
- register unsigned char *addr;
- unsigned long pixel;
-
- if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 16)) {
- addr = &((unsigned char *)ximage->data)
- [y * ximage->bytes_per_line + (x << 1)];
- if (ximage->byte_order == MSBFirst)
- pixel = addr[0] << 8 | addr[1];
- else
- pixel = addr[1] << 8 | addr[0];
- if (ximage->depth != 16)
- pixel &= low_bits_table[ximage->depth];
- return pixel;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XGetPixel(ximage, x, y);
- }
-}
-
-static unsigned long _XGetPixel8 (
- register XImage *ximage,
- int x,
- int y)
-{
- unsigned char pixel;
-
- if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 8)) {
- pixel = ((unsigned char *)ximage->data)
- [y * ximage->bytes_per_line + x];
- if (ximage->depth != 8)
- pixel &= low_bits_table[ximage->depth];
- return pixel;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XGetPixel(ximage, x, y);
- }
-}
-
-static unsigned long _XGetPixel1 (
- register XImage *ximage,
- int x,
- int y)
-{
- unsigned char bit;
- int xoff, yoff;
-
- if (((ximage->bits_per_pixel | ximage->depth) == 1) &&
- (ximage->byte_order == ximage->bitmap_bit_order)) {
- xoff = x + ximage->xoffset;
- yoff = y * ximage->bytes_per_line + (xoff >> 3);
- xoff &= 7;
- if (ximage->bitmap_bit_order == MSBFirst)
- bit = 0x80 >> xoff;
- else
- bit = 1 << xoff;
- return (ximage->data[yoff] & bit) ? 1 : 0;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XGetPixel(ximage, x, y);
- }
-}
-
-/*
- * PutPixel
- *
- * Overwrites the specified pixel. The X and Y coordinates are relative to
- * the origin (upper left [0,0]) of the image. The input pixel value must be
- * in normalized format, i.e. the LSB of the long is the LSB of the pixel.
- * The algorithm used is:
- *
- * copy the destination bitmap_unit or Zpixel to temp
- * normalize temp if needed
- * copy the pixel bits into the temp
- * renormalize temp if needed
- * copy the temp back into the destination image data
- *
- */
-
-static int _XPutPixel (
- register XImage *ximage,
- int x,
- int y,
- unsigned long pixel)
-
-{
- unsigned long px, npixel;
- register char *src;
- register char *dst;
- register int i;
- int j, nbytes;
- long plane;
-
- if (ximage->depth == 4)
- pixel &= 0xf;
- npixel = pixel;
- for (i=0, px=pixel; i<sizeof(unsigned long); i++, px>>=8)
- ((unsigned char *)&pixel)[i] = px;
- if ((ximage->bits_per_pixel | ximage->depth) == 1) {
- src = &ximage->data[XYINDEX(x, y, ximage)];
- dst = (char *)&px;
- px = 0;
- nbytes = ximage->bitmap_unit >> 3;
- for (i = nbytes; --i >= 0; ) *dst++ = *src++;
- XYNORMALIZE(&px, ximage);
- i = ((x + ximage->xoffset) % ximage->bitmap_unit);
- _putbits ((char *)&pixel, i, 1, (char *)&px);
- XYNORMALIZE(&px, ximage);
- src = (char *) &px;
- dst = &ximage->data[XYINDEX(x, y, ximage)];
- for (i = nbytes; --i >= 0; ) *dst++ = *src++;
- } else if (ximage->format == XYPixmap) {
- plane = (ximage->bytes_per_line * ximage->height) *
- (ximage->depth - 1); /* do least signif plane 1st */
- nbytes = ximage->bitmap_unit >> 3;
- for (j = ximage->depth; --j >= 0; ) {
- src = &ximage->data[XYINDEX(x, y, ximage) + plane];
- dst = (char *) &px;
- px = 0;
- for (i = nbytes; --i >= 0; ) *dst++ = *src++;
- XYNORMALIZE(&px, ximage);
- i = ((x + ximage->xoffset) % ximage->bitmap_unit);
- _putbits ((char *)&pixel, i, 1, (char *)&px);
- XYNORMALIZE(&px, ximage);
- src = (char *)&px;
- dst = &ximage->data[XYINDEX(x, y, ximage) + plane];
- for (i = nbytes; --i >= 0; ) *dst++ = *src++;
- npixel = npixel >> 1;
- for (i=0, px=npixel; i<sizeof(unsigned long); i++, px>>=8)
- ((unsigned char *)&pixel)[i] = px;
- plane = plane - (ximage->bytes_per_line * ximage->height);
- }
- } else if (ximage->format == ZPixmap) {
- src = &ximage->data[ZINDEX(x, y, ximage)];
- dst = (char *)&px;
- px = 0;
- nbytes = (ximage->bits_per_pixel + 7) >> 3;
- for (i = nbytes; --i >= 0; ) *dst++ = *src++;
- ZNORMALIZE(&px, ximage);
- _putbits ((char *)&pixel,
- (x * ximage->bits_per_pixel) & 7,
- ximage->bits_per_pixel, (char *)&px);
- ZNORMALIZE(&px, ximage);
- src = (char *)&px;
- dst = &ximage->data[ZINDEX(x, y, ximage)];
- for (i = nbytes; --i >= 0; ) *dst++ = *src++;
- } else {
- return 0; /* bad image */
- }
- return 1;
-}
-
-static int _XPutPixel32 (
- register XImage *ximage,
- int x,
- int y,
- unsigned long pixel)
-{
- unsigned char *addr;
-
- if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 32)) {
- addr = &((unsigned char *)ximage->data)
- [y * ximage->bytes_per_line + (x << 2)];
- if (*((const char *)&byteorderpixel) == ximage->byte_order)
- *((CARD32 *)addr) = pixel;
- else if (ximage->byte_order == MSBFirst) {
- addr[0] = pixel >> 24;
- addr[1] = pixel >> 16;
- addr[2] = pixel >> 8;
- addr[3] = pixel;
- } else {
- addr[3] = pixel >> 24;
- addr[2] = pixel >> 16;
- addr[1] = pixel >> 8;
- addr[0] = pixel;
- }
- return 1;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XPutPixel(ximage, x, y, pixel);
- }
-}
-
-static int _XPutPixel16 (
- register XImage *ximage,
- int x,
- int y,
- unsigned long pixel)
-{
- unsigned char *addr;
-
- if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 16)) {
- addr = &((unsigned char *)ximage->data)
- [y * ximage->bytes_per_line + (x << 1)];
- if (ximage->byte_order == MSBFirst) {
- addr[0] = pixel >> 8;
- addr[1] = pixel;
- } else {
- addr[1] = pixel >> 8;
- addr[0] = pixel;
- }
- return 1;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XPutPixel(ximage, x, y, pixel);
- }
-}
-
-static int _XPutPixel8 (
- register XImage *ximage,
- int x,
- int y,
- unsigned long pixel)
-{
- if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 8)) {
- ximage->data[y * ximage->bytes_per_line + x] = pixel;
- return 1;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XPutPixel(ximage, x, y, pixel);
- }
-}
-
-static int _XPutPixel1 (
- register XImage *ximage,
- int x,
- int y,
- unsigned long pixel)
-{
- unsigned char bit;
- int xoff, yoff;
-
- if (((ximage->bits_per_pixel | ximage->depth) == 1) &&
- (ximage->byte_order == ximage->bitmap_bit_order)) {
- xoff = x + ximage->xoffset;
- yoff = y * ximage->bytes_per_line + (xoff >> 3);
- xoff &= 7;
- if (ximage->bitmap_bit_order == MSBFirst)
- bit = 0x80 >> xoff;
- else
- bit = 1 << xoff;
- if (pixel & 1)
- ximage->data[yoff] |= bit;
- else
- ximage->data[yoff] &= ~bit;
- return 1;
- } else {
- _XInitImageFuncPtrs(ximage);
- return XPutPixel(ximage, x, y, pixel);
- }
-}
-
-/*
- * SubImage
- *
- * Creates a new image that is a subsection of an existing one.
- * Allocates the memory necessary for the new XImage data structure.
- * Pointer to new image is returned. The algorithm used is repetitive
- * calls to get and put pixel.
- *
- */
-
-static XImage *_XSubImage (
- XImage *ximage,
- register int x, /* starting x coordinate in existing image */
- register int y, /* starting y coordinate in existing image */
- unsigned int width, /* width in pixels of new subimage */
- unsigned int height)/* height in pixels of new subimage */
-
-{
- register XImage *subimage;
- int dsize;
- register int row, col;
- register unsigned long pixel;
- char *data;
-
- if ((subimage = Xcalloc (1, sizeof (XImage))) == NULL)
- return (XImage *) NULL;
- subimage->width = width;
- subimage->height = height;
- subimage->xoffset = 0;
- subimage->format = ximage->format;
- subimage->byte_order = ximage->byte_order;
- subimage->bitmap_unit = ximage->bitmap_unit;
- subimage->bitmap_bit_order = ximage->bitmap_bit_order;
- subimage->bitmap_pad = ximage->bitmap_pad;
- subimage->bits_per_pixel = ximage->bits_per_pixel;
- subimage->depth = ximage->depth;
- /*
- * compute per line accelerator.
- */
- if (subimage->format == ZPixmap)
- subimage->bytes_per_line =
- ROUNDUP(subimage->bits_per_pixel * width,
- subimage->bitmap_pad);
- else
- subimage->bytes_per_line =
- ROUNDUP(width, subimage->bitmap_pad);
- subimage->obdata = NULL;
- _XInitImageFuncPtrs (subimage);
- dsize = subimage->bytes_per_line * height;
- if (subimage->format == XYPixmap) dsize = dsize * subimage->depth;
- if (((data = Xcalloc (1, dsize)) == NULL) && (dsize > 0)) {
- Xfree(subimage);
- return (XImage *) NULL;
- }
- subimage->data = data;
-
- /*
- * Test for cases where the new subimage is larger than the region
- * that we are copying from the existing data. In those cases,
- * copy the area of the existing image, and allow the "uncovered"
- * area of new subimage to remain with zero filled pixels.
- */
- if (height > ximage->height - y ) height = ximage->height - y;
- if (width > ximage->width - x ) width = ximage->width - x;
-
- for (row = y; row < (y + height); row++) {
- for (col = x; col < (x + width); col++) {
- pixel = XGetPixel(ximage, col, row);
- XPutPixel(subimage, (col - x), (row - y), pixel);
- }
- }
- return subimage;
-}
-
-
-/*
- * SetImage
- *
- * Overwrites a section of one image with all of the data from another.
- * If the two images are not of the same format (i.e. XYPixmap and ZPixmap),
- * the image data is converted to the destination format. The following
- * restrictions apply:
- *
- * 1. The depths of the source and destination images must be equal.
- *
- * 2. If the height of the source image is too large to fit between
- * the specified y starting point and the bottom of the image,
- * then scanlines are truncated on the bottom.
- *
- * 3. If the width of the source image is too large to fit between
- * the specified x starting point and the end of the scanline,
- * then pixels are truncated on the right.
- *
- * The images need not have the same bitmap_bit_order, byte_order,
- * bitmap_unit, bits_per_pixel, bitmap_pad, or xoffset.
- *
- */
-
-int _XSetImage(
- XImage *srcimg,
- register XImage *dstimg,
- register int x,
- register int y)
-{
- register unsigned long pixel;
- register int row, col;
- int width, height, startrow, startcol;
- if (x < 0) {
- startcol = -x;
- x = 0;
- } else
- startcol = 0;
- if (y < 0) {
- startrow = -y;
- y = 0;
- } else
- startrow = 0;
- width = dstimg->width - x;
- if (srcimg->width < width)
- width = srcimg->width;
- height = dstimg->height - y;
- if (srcimg->height < height)
- height = srcimg->height;
-
- /* this is slow, will do better later */
- for (row = startrow; row < height; row++) {
- for (col = startcol; col < width; col++) {
- pixel = XGetPixel(srcimg, col, row);
- XPutPixel(dstimg, x + col, y + row, pixel);
- }
- }
- return 1;
-}
-
-/*
- * AddPixel
- *
- * Adds a constant value to every pixel in a pixmap.
- *
- */
-
-static int
-_XAddPixel (
- register XImage *ximage,
- register long value)
-{
- register int x;
- register int y;
-
- if (!value)
- return 0;
- if ((ximage->bits_per_pixel | ximage->depth) == 1) {
- /* The only value that we can add here to an XYBitmap
- * is one. Since 1 + value = ~value for one bit wide
- * data, we do this quickly by taking the ones complement
- * of the entire bitmap data (offset and pad included!).
- * Note that we don't need to be concerned with bit or
- * byte order at all.
- */
- register unsigned char *dp = (unsigned char *) ximage->data;
- x = ximage->bytes_per_line * ximage->height;
- while (--x >= 0) {
- *dp = ~*dp;
- dp++;
- }
- } else if ((ximage->format == ZPixmap) &&
- (ximage->bits_per_pixel == 8)) {
- register unsigned char *dp = (unsigned char *) ximage->data;
- x = ximage->bytes_per_line * ximage->height;
- while (--x >= 0)
- *dp++ += value;
- } else if ((ximage->format == ZPixmap) &&
- (ximage->bits_per_pixel == 16) &&
- (*((const char *)&byteorderpixel) == ximage->byte_order)) {
- register unsigned short *dp = (unsigned short *) ximage->data;
- x = (ximage->bytes_per_line >> 1) * ximage->height;
- while (--x >= 0)
- *dp++ += value;
- } else if ((ximage->format == ZPixmap) &&
- (ximage->bits_per_pixel == 32) &&
- (*((const char *)&byteorderpixel) == ximage->byte_order)) {
- register CARD32 *dp = (CARD32 *) ximage->data;
- x = (ximage->bytes_per_line >> 2) * ximage->height;
- while (--x >= 0)
- *dp++ += value;
- } else {
- for (y = ximage->height; --y >= 0; ) {
- for (x = ximage->width; --x >= 0; ) {
- register unsigned long pixel = XGetPixel(ximage, x, y);
- pixel = pixel + value;
- XPutPixel(ximage, x, y, pixel);
- }
- }
- }
- return 0;
-}
-
diff --git a/nx-X11/lib/X11/ImUtil.h b/nx-X11/lib/X11/ImUtil.h
deleted file mode 100644
index a8b95eead..000000000
--- a/nx-X11/lib/X11/ImUtil.h
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#if !defined(_X11_IMUTIL_H_) && !defined(_IM_UTIL_H_)
-#define _X11_IMUTIL_H_
-#define _IMUTIL_H_
-
-extern int
-_XGetScanlinePad(
- Display *dpy,
- int depth);
-
-extern int
-_XGetBitsPerPixel(
- Display *dpy,
- int depth);
-
-extern int
-_XSetImage(
- XImage *srcimg,
- register XImage *dstimg,
- register int x,
- register int y);
-
-extern int
-_XReverse_Bytes(
- register unsigned char *bpt,
- register int nb);
-extern void
-_XInitImageFuncPtrs(
- register XImage *image);
-
-#endif /* !defined(_X11_IMUTIL_H_) && !defined(_IM_UTIL_H_) */
diff --git a/nx-X11/lib/X11/Imakefile b/nx-X11/lib/X11/Imakefile
deleted file mode 100644
index a6471bff1..000000000
--- a/nx-X11/lib/X11/Imakefile
+++ /dev/null
@@ -1,1132 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* nx-X11, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
- HEADERS = Xlib.h Xresource.h Xutil.h cursorfont.h Xlibint.h \
- Xcms.h Xlocale.h XKBlib.h XlibConf.h Xregion.h ImUtil.h
-
-#if BuildServersOnly && !BuildClients && !NXAgentServer
-all::
-
-BuildIncludes($(HEADERS),IncSubdir,..)
-
-#else
-
-#if NXLibraries
-
-#ifdef SunArchitecture
-NX_INCLUDES = -I../../../nxcomp/include -I/usr/sfw/include
-#else
-NX_INCLUDES = -I../../../nxcomp/include
-#endif
-
-NX_DEFINES = -DNX_TRANS_SOCKET \
- -DNX_TRANS_EXIT
-
-# -DNX_TRANS_CHANGE \
-# -DNX_TRANS_WARN \
-# -DNX_TRANS_INFO \
-# -DNX_TRANS_TEST \
-# -DNX_TRANS_DEBUG \
-
-/*
- This is used to create libX11* links in exports/lib.
- It is a dependency of the part that links the libNX_X11.so
- to exports/lib and is therefore called _before_ any libNX*
- links exist.
- The make target libX11-links is at the end of the file.
-*/
-/*
- Currently, this breaks our builds. Autoconf-based packages
- like nxcompext try to detect host X11 libraries, but will
- find links to libNX_X11 in exports/lib as libX11 files,
- which in turn will be test-linked in configure and always
- fail (for instance, because necessary dependencies like
- libXcomp will not be available on clean systems.)
-
- Keep this disabled for now.
-
- If anything, this code needs to be reworked to create
- libX11 symlinks only *after* everything has been
- installed.
-*/
-#EXTRALIBRARYDEPS = libX11-links
-
-#ifdef cygwinArchitecture
-NX_XCOMPLIBNAME = cygXcomp.dll
-NX_XCOMPEXTLIBNAME = cygXcompext.dll
-#else
-NX_XCOMPLIBNAME = libXcomp.so
-NX_XCOMPEXTLIBNAME = libXcompext.so
-#endif
-
-NX_XCOMPLIBDIR = $(XTOP)/../nxcomp/src/.libs
-NX_XCOMPLIBLINK = Xcomp
-NX_XCOMPLIBTARGET = $(NX_XCOMPLIBDIR)/$(NX_XCOMPLIBNAME)
-NX_REQUIREDLIBS = -L$(NX_XCOMPLIBDIR) -l$(NX_XCOMPLIBLINK)
-NX_XCOMPCONFIGTARGET = $(NX_XCOMPLIBDIR)/config.status
-
-NX_XCOMPEXTLIBDIR = $(XTOP)/../nxcompext/src/.libs
-NX_XCOMPEXTLIBTARGET = $(NX_XCOMPEXTLIBDIR)/$(NX_XCOMPEXTLIBNAME)
-NX_XCOMPEXTCONFIGTARGET = $(NX_XCOMPEXTLIBDIR)/config.status
-
-#endif
-
-#define DoNormalLib NormalLibX11
-#define DoSharedLib SharedLibX11
-#define DoExtraLib SharedLibX11
-#define DoDebugLib DebugLibX11
-#define DoProfileLib ProfileLibX11
-#define LibName NX_X11
-#define SoRev SOXLIBREV
-#define HugeLibrary YES
-#define IncSubdir nx-X11
-
-/*
- FIXME: This is switchable upstream via configure option, we leave it
- on for now as this is the upstream default.
-*/
-XCMS_DEFINES = -DXCMS
-XCB_DEFINES = -DUSE_XCB=0
-
-#include <Threads.tmpl>
-
-#ifndef MotifBC
-#define MotifBC NO
-#endif
-
-#ifdef SharedX11Reqs
-REQUIREDX11LIBS = SharedX11Reqs
-#endif
-#ifdef cygwinArchitecture
-EXCLUDE_SYMBOL = -Wl,--exclude-symbol,XdmcpWrap:_XdmcpWrapperToOddParity
-#endif
-
-REQUIREDLIBS=$(REQUIREDX11LIBS) $(REQUIREDI18NLIBS) $(EXCLUDE_SYMBOL) $(NX_REQUIREDLIBS)
-
-#if defined(MacIIArchitecture) || defined(SequentArchitecture) || defined(i386ScoArchitecture)
-XBSDLIB = /**/
-#endif
-#if defined(LunaArchitecture) && defined(Mc88000Architecture)
-EXTRA_LIBRARIES = /**/
-#endif
-#if Malloc0ReturnsNull
- MALLOC_DEFINES = XMalloc0ReturnsNullDefines
-#endif
-#if HasXdmAuth
- XDMAUTHDEFS = -DHASXDMAUTH
-#endif
-#if BuildXKBlib
- XKB_DEFINES = -DXKB
- XKBSRCS = XKB.c XKBBind.c XKBCompat.c XKBCtrls.c XKBCvt.c XKBGetMap.c \
- XKBGetByName.c XKBNames.c XKBRdBuf.c XKBSetMap.c XKBUse.c \
- XKBleds.c XKBBell.c XKBGeom.c XKBSetGeom.c XKBExtDev.c \
- XKBList.c XKBMisc.c \
- XKBMAlloc.c XKBGAlloc.c XKBAlloc.c
- XKBOBJS = XKB.o XKBBind.o XKBCompat.o XKBCtrls.o XKBCvt.o XKBGetMap.o \
- XKBGetByName.o XKBNames.o XKBRdBuf.o XKBSetMap.o XKBUse.o \
- XKBleds.o XKBBell.o XKBGeom.o XKBSetGeom.o XKBExtDev.o \
- XKBList.o XKBMisc.o \
- XKBMAlloc.o XKBGAlloc.o XKBAlloc.o
-#endif
-#if HasSecureRPC
- RPCDEFS = -DSECURE_RPC
-#endif
-#if HasPoll
- POLL_DEFINES = -DUSE_POLL
-#endif
- CONN_DEFINES = $(CONNECTION_FLAGS)
- XTRANS_X_DEFINES = -DX11_t -DTRANS_CLIENT $(XTRANS_FAILDEFINES) -DXTRANS_SEND_FDS=0
- XTRANS_XIM_DEFINES = -DXIM_t -DTRANS_CLIENT $(XTRANS_FAILDEFINES) -DXTRANS_SEND_FDS=0
-#if HasBSD44Sockets
- SOCK_DEFINES = -DBSD44SOCKETS
-#endif
-#if HasShm
- SHM_DEFINES = -DHAS_SHM
-#endif
-
- XF86BIGFONT_DEFINES = XF86BigfontExtensionDefines
-
- EDB_DEFINES = -DERRORDB=\"$(USRDATADIR)/XErrorDB\"
- CMS_DEFINES = -DXCMSDB=\"$(USRDATADIR)/Xcms.txt\" -DXCMSDIR=\"$(USRDATADIR)\"
-#if HasSnprintf
- MISC_DEFINES = -DHAS_SNPRINTF -DLIBX11
-#endif
-#if MotifBC
- BC_DEFINES = -DMOTIFBC
-#endif
-#if NoRConst
- RCONST_DEFINES = -DNORCONST
-#endif
-#if DisableXLocaleDirEnv
- SETID_DEFINES = -DNO_XLOCALEDIR
-#elif HasIssetugid
- SETID_DEFINES = -DHASSETUGID
-#elif HasGetresuid
- SETID_DEFINES = -DHASGETRESUID
-#endif
- XLC_DEFINES = -DXLOCALEDIR=\"$(XLOCALEDIR)\" -DXLOCALELIBDIR=\"$(XLOCALELIBDIR)\"
-#if (defined(FreeBSDArchitecture) && OSRelVersion < 500016) || \
- defined(OpenBSDArchitecture)
-THRSTUBSRCS = UIThrStubs.c
-THRSTUBOBJS = UIThrStubs.o
-#endif
-#if BuildLoadableXlibXcursor
-XCURSOR_DEFINES = -DUSE_DYNAMIC_XCURSOR -DLIBXCURSOR=\"libXcursor.so.$(SOXCURSORREV)\"
-#endif
-#if NeedLibInsideFlag
- LIB_DEFINES = -D_XLIBINT_
-#endif
-#if defined(LibDirName)
- POSTLOCALELIBDIR = LibDirName
- POSTLOCALELIBDEFINES = -DPOSTLOCALELIBDIR=\"$(POSTLOCALELIBDIR)\"
-#endif
- DEFINES = $(MALLOC_DEFINES) $(LIB_DEFINES) $(MISC_DEFINES)\
- $(POSTLOCALELIBDEFINES) $(NX_INCLUDES) $(NX_DEFINES) ${XCMS_DEFINES} ${XCB_DEFINES}
- OPEN_DEFINES = -I$(EXTINCSRC) $(K5INCL) $(K5DEFS)
- DEPEND_DEFINES = $(OPEN_DEFINES) $(TRANS_INCLUDES) $(CONN_DEFINES) $(THREADS_DEFINES) DependDefines
- AUTHOBJS = AuDispose.o AuGetBest.o AuFileName.o AuRead.o
- AUTHSRCS = AuDispose.c AuGetBest.c AuFileName.c AuRead.c
- SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(EXTRASRCS) /* try *.c if you have trouble */
- OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(EXTRAOBJS)
- LINTLIBS =
-
-EXTRASRCS = $(STATICLCSRCS)
-EXTRAOBJS = $(STATICLCOBJS)
-
-SRCS1 = \
- Context.c \
- Depths.c \
- ParseCmd.c \
- Quarks.c \
- AllCells.c \
- AllPlanes.c \
- AllowEv.c \
- AutoRep.c \
- Backgnd.c \
- BdrWidth.c \
- Bell.c \
- Border.c \
- ChAccCon.c \
- ChClMode.c \
- ChActPGb.c \
- ChCmap.c \
- ChGC.c \
- ChKeyCon.c \
- ChPntCon.c \
- ChProp.c \
- ChSaveSet.c \
- ChWAttrs.c \
- ChWindow.c \
- ChkIfEv.c \
- ChkMaskEv.c \
- ChkWinEv.c \
- ChkTypEv.c \
- ChkTypWEv.c \
- CirWin.c \
- CirWinDn.c \
- CirWinUp.c \
- ClDisplay.c \
- Clear.c \
- ClearArea.c \
- ConfWind.c \
- ConnDis.c \
- ConvSel.c \
- CopyArea.c \
- CopyCmap.c \
- CopyGC.c \
- CopyPlane.c \
- CrBFData.c \
- CrCmap.c \
- CrCursor.c \
- CrGC.c \
- CrGlCur.c \
- CrPFBData.c \
- CrPixmap.c \
- CrWindow.c \
- Cursor.c \
- DefCursor.c \
- DelProp.c \
- DestSubs.c \
- DestWind.c \
- DisName.c \
- DrArc.c \
- DrArcs.c \
- DrLine.c \
- DrLines.c \
- DrPoint.c \
- DrPoints.c \
- DrRect.c \
- DrRects.c \
- DrSegs.c \
- ErrDes.c \
- ErrHndlr.c \
- EvToWire.c \
- FetchName.c \
- FillArc.c \
- FillArcs.c \
- FillPoly.c \
- FillRct.c \
- FillRcts.c \
- Flush.c \
- Font.c \
- FontNames.c \
- FontInfo.c \
- FreeCmap.c \
- FreeCols.c \
- FreeCurs.c \
- FreeEData.c \
- FreeEventData.c \
- FreeGC.c \
- FreePix.c \
- FSSaver.c \
- GCMisc.c \
- Geom.c \
- GetAtomNm.c \
- GetColor.c \
- GetDflt.c \
- GetEventData.c \
- GetFPath.c \
- GetFProp.c \
- GetGeom.c \
- GetHColor.c \
- GetHints.c \
- GetIFocus.c \
- GetImage.c \
- GetKCnt.c \
- GetMoEv.c \
- GetPCnt.c \
- GetPntMap.c \
- GetProp.c \
- GetSOwner.c \
- GetSSaver.c \
- GetStCmap.c \
- GetWAttrs.c \
- GrButton.c \
- GrKey.c \
- GrKeybd.c \
- GrPointer.c \
- GrServer.c \
- Host.c \
- IfEvent.c \
- ImUtil.c \
- ImText.c \
- ImText16.c \
- InitExt.c \
- InsCmap.c \
- IntAtom.c \
- KeyBind.c \
- KeysymStr.c \
- KillCl.c \
- LiHosts.c \
- LiICmaps.c \
- LiProps.c \
- ListExt.c \
- LoadFont.c \
- LookupCol.c \
- LowerWin.c
-
-OBJS1 = \
- Context.o \
- Depths.o \
- ParseCmd.o \
- Quarks.o \
- AllCells.o \
- AllPlanes.o \
- AllowEv.o \
- AutoRep.o \
- Backgnd.o \
- BdrWidth.o \
- Bell.o \
- Border.o \
- ChAccCon.o \
- ChClMode.o \
- ChActPGb.o \
- ChCmap.o \
- ChGC.o \
- ChKeyCon.o \
- ChPntCon.o \
- ChProp.o \
- ChSaveSet.o \
- ChWAttrs.o \
- ChWindow.o \
- ChkIfEv.o \
- ChkMaskEv.o \
- ChkWinEv.o \
- ChkTypEv.o \
- ChkTypWEv.o \
- CirWin.o \
- CirWinDn.o \
- CirWinUp.o \
- ClDisplay.o \
- Clear.o \
- ClearArea.o \
- ConfWind.o \
- ConnDis.o \
- ConvSel.o \
- CopyArea.o \
- CopyCmap.o \
- CopyGC.o \
- CopyPlane.o \
- CrBFData.o \
- CrCmap.o \
- CrCursor.o \
- CrGC.o \
- CrGlCur.o \
- CrPFBData.o \
- CrPixmap.o \
- CrWindow.o \
- Cursor.o \
- DefCursor.o \
- DelProp.o \
- DestSubs.o \
- DestWind.o \
- DisName.o \
- DrArc.o \
- DrArcs.o \
- DrLine.o \
- DrLines.o \
- DrPoint.o \
- DrPoints.o \
- DrRect.o \
- DrRects.o \
- DrSegs.o \
- ErrDes.o \
- ErrHndlr.o \
- EvToWire.o \
- FetchName.o \
- FillArc.o \
- FillArcs.o \
- FillPoly.o \
- FillRct.o \
- FillRcts.o \
- Flush.o \
- Font.o \
- FontNames.o \
- FontInfo.o \
- FreeCmap.o \
- FreeCols.o \
- FreeCurs.o \
- FreeEData.o \
- FreeEventData.o \
- FreeGC.o \
- FreePix.o \
- FSSaver.o \
- GCMisc.o \
- Geom.o \
- GetAtomNm.o \
- GetColor.o \
- GetDflt.o \
- GetEventData.o \
- GetFPath.o \
- GetFProp.o \
- GetGeom.o \
- GetHColor.o \
- GetHints.o \
- GetIFocus.o \
- GetImage.o \
- GetKCnt.o \
- GetMoEv.o \
- GetPCnt.o \
- GetPntMap.o \
- GetProp.o \
- GetSOwner.o \
- GetSSaver.o \
- GetStCmap.o \
- GetWAttrs.o \
- GrButton.o \
- GrKey.o \
- GrKeybd.o \
- GrPointer.o \
- GrServer.o \
- Host.o \
- IfEvent.o \
- ImUtil.o \
- ImText.o \
- ImText16.o \
- InitExt.o \
- InsCmap.o \
- IntAtom.o \
- KeyBind.o \
- KeysymStr.o \
- KillCl.o \
- LiHosts.o \
- LiICmaps.o \
- LiProps.o \
- ListExt.o \
- LoadFont.o \
- LookupCol.o \
- LowerWin.o
-
-SRCS2 = \
- Macros.c \
- MapRaised.c \
- MapSubs.c \
- MapWindow.c \
- MaskEvent.c \
- Misc.c \
- ModMap.c \
- MoveWin.c \
- NextEvent.c \
- OpenDis.c \
- ParseCol.c \
- ParseGeom.c \
- PeekEvent.c \
- PeekIfEv.c \
- Pending.c \
- PmapBgnd.c \
- PmapBord.c \
- PolyReg.c \
- PolyTxt.c \
- PolyTxt16.c \
- PutBEvent.c \
- PutImage.c \
- QuBest.c \
- QuColor.c \
- QuColors.c \
- QuCurShp.c \
- QuExt.c \
- QuKeybd.c \
- QuPntr.c \
- QuStipShp.c \
- QuTextE16.c \
- QuTextExt.c \
- QuTileShp.c \
- QuTree.c \
- RaiseWin.c \
- RdBitF.c \
- RecolorC.c \
- ReconfWin.c \
- Region.c \
- RepWindow.c \
- RestackWs.c \
- RotProp.c \
- ScrResStr.c \
- SelInput.c \
- SendEvent.c \
- SetBack.c \
- SetCRects.c \
- SetClMask.c \
- SetClOrig.c \
- SetDashes.c \
- SetFPath.c \
- SetFont.c \
- SetFore.c \
- SetFunc.c \
- SetHints.c \
- SetIFocus.c \
- SetLStyle.c \
- SetPMask.c \
- SetPntMap.c \
- SetSOwner.c \
- SetSSaver.c \
- SetState.c \
- SetStip.c \
- SetStCmap.c \
- SetTile.c \
- SetTSOrig.c \
- StBytes.c \
- StColor.c \
- StColors.c \
- StNColor.c \
- StName.c \
- StrKeysym.c \
- Sync.c \
- Synchro.c \
- Text.c \
- Text16.c \
- TextExt.c \
- TextExt16.c \
- TrCoords.c \
- UndefCurs.c \
- UngrabBut.c \
- UngrabKbd.c \
- UngrabKey.c \
- UngrabPtr.c \
- UngrabSvr.c \
- UninsCmap.c \
- UnldFont.c \
- UnmapSubs.c \
- UnmapWin.c \
- VisUtil.c \
- WarpPtr.c \
- WinEvent.c \
- Window.c \
- WrBitF.c \
- XlibAsync.c \
- XlibInt.c \
- Xrm.c \
- evtomask.c \
- globals.c \
- GetGCVals.c \
- GetNrmHint.c \
- GetRGBCMap.c \
- GetTxtProp.c \
- GetWMCMapW.c \
- GetWMProto.c \
- Iconify.c \
- PixFormats.c \
- PropAlloc.c \
- ReconfWM.c \
- SetNrmHint.c \
- SetRGBCMap.c \
- SetTxtProp.c \
- SetWMCMapW.c \
- SetWMProto.c \
- StrToText.c \
- TextToStr.c \
- Withdraw.c \
- WMGeom.c \
- WMProps.c \
- $(AUTHSRCS) $(K5SRCS) $(THRSTUBSRCS)
-
-OBJS2 = \
- Macros.o \
- MapRaised.o \
- MapSubs.o \
- MapWindow.o \
- MaskEvent.o \
- Misc.o \
- ModMap.o \
- MoveWin.o \
- NextEvent.o \
- OpenDis.o \
- ParseCol.o \
- ParseGeom.o \
- PeekEvent.o \
- PeekIfEv.o \
- Pending.o \
- PmapBgnd.o \
- PmapBord.o \
- PolyReg.o \
- PolyTxt.o \
- PolyTxt16.o \
- PutBEvent.o \
- PutImage.o \
- QuBest.o \
- QuColor.o \
- QuColors.o \
- QuCurShp.o \
- QuExt.o \
- QuKeybd.o \
- QuPntr.o \
- QuStipShp.o \
- QuTextE16.o \
- QuTextExt.o \
- QuTileShp.o \
- QuTree.o \
- RaiseWin.o \
- RdBitF.o \
- RecolorC.o \
- ReconfWin.o \
- Region.o \
- RepWindow.o \
- RestackWs.o \
- RotProp.o \
- ScrResStr.o \
- SelInput.o \
- SendEvent.o \
- SetBack.o \
- SetCRects.o \
- SetClMask.o \
- SetClOrig.o \
- SetDashes.o \
- SetFPath.o \
- SetFont.o \
- SetFore.o \
- SetFunc.o \
- SetHints.o \
- SetIFocus.o \
- SetLStyle.o \
- SetPMask.o \
- SetPntMap.o \
- SetSOwner.o \
- SetSSaver.o \
- SetState.o \
- SetStip.o \
- SetStCmap.o \
- SetTile.o \
- SetTSOrig.o \
- StBytes.o \
- StColor.o \
- StColors.o \
- StNColor.o \
- StName.o \
- StrKeysym.o \
- Sync.o \
- Synchro.o \
- Text.o \
- Text16.o \
- TextExt.o \
- TextExt16.o \
- TrCoords.o \
- UndefCurs.o \
- UngrabBut.o \
- UngrabKbd.o \
- UngrabKey.o \
- UngrabPtr.o \
- UngrabSvr.o \
- UninsCmap.o \
- UnldFont.o \
- UnmapSubs.o \
- UnmapWin.o \
- VisUtil.o \
- WarpPtr.o \
- WinEvent.o \
- Window.o \
- WrBitF.o \
- XlibAsync.o \
- XlibInt.o \
- Xrm.o \
- evtomask.o \
- globals.o \
- GetGCVals.o \
- GetNrmHint.o \
- GetRGBCMap.o \
- GetTxtProp.o \
- GetWMCMapW.o \
- GetWMProto.o \
- Iconify.o \
- PixFormats.o \
- PropAlloc.o \
- ReconfWM.o \
- SetNrmHint.o \
- SetRGBCMap.o \
- SetTxtProp.o \
- SetWMCMapW.o \
- SetWMProto.o \
- StrToText.o \
- TextToStr.o \
- Withdraw.o \
- WMGeom.o \
- WMProps.o \
- $(AUTHOBJS) \
- $(K5OBJS) \
- $(THRSTUBOBJS)
-
-SRCS3 = \
- Lab.c \
- LabGcC.c \
- LabGcL.c \
- LabGcLC.c \
- LabMnL.c \
- LabMxC.c \
- LabMxL.c \
- LabMxLC.c \
- LabWpAj.c \
- Luv.c \
- LuvGcC.c \
- LuvGcL.c \
- LuvGcLC.c \
- LuvMnL.c \
- LuvMxC.c \
- LuvMxL.c \
- LuvMxLC.c \
- LuvWpAj.c \
- XYZ.c \
- uvY.c \
- xyY.c \
- HVC.c \
- HVCGcC.c \
- HVCGcV.c \
- HVCGcVC.c \
- HVCMnV.c \
- HVCMxC.c \
- HVCMxV.c \
- HVCMxVC.c \
- HVCMxVs.c \
- HVCWpAj.c \
- UNDEFINED.c \
- AddDIC.c \
- AddSF.c \
- cmsAllNCol.c \
- cmsAllCol.c \
- CCC.c \
- cmsCmap.c \
- cmsColNm.c \
- CvColW.c \
- CvCols.c \
- cmsGlobls.c \
- IdOfPr.c \
- cmsInt.c \
- LRGB.c \
- cmsLkCol.c \
- cmsMath.c \
- OfCCC.c \
- PrOfId.c \
- cmsProp.c \
- QBlack.c \
- QBlue.c \
- QGreen.c \
- QRed.c \
- QWhite.c \
- QuCol.c \
- QuCols.c \
- SetCCC.c \
- SetGetCols.c \
- StCol.c \
- StCols.c \
- cmsTrig.c \
- XRGB.c \
- FSWrap.c \
- ICWrap.c \
- IMWrap.c \
- OCWrap.c \
- OMWrap.c \
- lcWrap.c \
- mbWMProps.c \
- utf8WMProps.c \
- mbWrap.c \
- wcWrap.c \
- utf8Wrap.c \
- FilterEv.c \
- RegstFlt.c \
- locking.c \
- LockDis.c \
- x11_trans.c \
- xim_trans.c \
- $(XKBSRCS) $(LCSRCS)
-
-OBJS3 = \
- Lab.o \
- LabGcC.o \
- LabGcL.o \
- LabGcLC.o \
- LabMnL.o \
- LabMxC.o \
- LabMxL.o \
- LabMxLC.o \
- LabWpAj.o \
- Luv.o \
- LuvGcC.o \
- LuvGcL.o \
- LuvGcLC.o \
- LuvMnL.o \
- LuvMxC.o \
- LuvMxL.o \
- LuvMxLC.o \
- LuvWpAj.o \
- XYZ.o \
- uvY.o \
- xyY.o \
- HVC.o \
- HVCGcC.o \
- HVCGcV.o \
- HVCGcVC.o \
- HVCMnV.o \
- HVCMxC.o \
- HVCMxV.o \
- HVCMxVC.o \
- HVCMxVs.o \
- HVCWpAj.o \
- UNDEFINED.o \
- AddDIC.o \
- AddSF.o \
- cmsAllNCol.o \
- cmsAllCol.o \
- CCC.o \
- cmsCmap.o \
- cmsColNm.o \
- CvColW.o \
- CvCols.o \
- cmsGlobls.o \
- IdOfPr.o \
- cmsInt.o \
- LRGB.o \
- cmsLkCol.o \
- cmsMath.o \
- OfCCC.o \
- PrOfId.o \
- cmsProp.o \
- QBlack.o \
- QBlue.o \
- QGreen.o \
- QRed.o \
- QWhite.o \
- QuCol.o \
- QuCols.o \
- SetCCC.o \
- SetGetCols.o \
- StCol.o \
- StCols.o \
- cmsTrig.o \
- XRGB.o \
- FSWrap.o \
- ICWrap.o \
- IMWrap.o \
- OCWrap.o \
- OMWrap.o \
- lcWrap.o \
- mbWMProps.o \
- utf8WMProps.o \
- mbWrap.o \
- wcWrap.o \
- utf8Wrap.o \
- FilterEv.o \
- RegstFlt.o \
- locking.o \
- LockDis.o \
- x11_trans.o \
- xim_trans.o \
- $(XKBOBJS) $(LCOBJS)
-
-STATICI18NSTATICSRCS = \
- imCallbk.c \
- imDefFlt.c \
- imDefIc.c \
- imDefIm.c \
- imDefLkup.c \
- imDispch.c \
- imEvToWire.c \
- imExten.c \
- imImSw.c \
- imInsClbk.c \
- imInt.c \
- imLcFlt.c \
- imLcGIc.c \
- imLcIc.c \
- imLcIm.c \
- imLcLkup.c \
- imLcPrs.c \
- imLcSIc.c \
- imRm.c \
- imRmAttr.c \
- imThaiFlt.c \
- imThaiIc.c \
- imThaiIm.c \
- imTrX.c \
- imTransR.c \
- imTrans.c \
- lcGenConv.c \
- lcUTF8Load.c \
- omDefault.c \
- omGeneric.c \
- omImText.c \
- omText.c \
- omTextEsc.c \
- omTextExt.c \
- omTextPer.c \
- omXChar.c
-
-LCSRCS = \
- SetLocale.c \
- imConv.c \
- imKStoUCS.c \
- lcCT.c \
- lcCharSet.c \
- lcConv.c \
- lcDB.c \
- lcDefConv.c \
- lcFile.c \
- lcGeneric.c \
- lcInit.c \
- lcPrTxt.c \
- lcPubWrap.c \
- lcPublic.c \
- lcRM.c \
- lcStd.c \
- lcTxtPr.c \
- lcUtil.c \
- lcUTF8.c
-
-STATICLCSRCS = \
- $(STATICI18NSTATICSRCS)
-
-STATICI18NSTATICOBJS = \
- imCallbk.o \
- imDefFlt.o \
- imDefIc.o \
- imDefIm.o \
- imDefLkup.o \
- imDispch.o \
- imEvToWire.o \
- imExten.o \
- imImSw.o \
- imInsClbk.o \
- imInt.o \
- imLcFlt.o \
- imLcGIc.o \
- imLcIc.o \
- imLcIm.o \
- imLcLkup.o \
- imLcPrs.o \
- imLcSIc.o \
- imRm.o \
- imRmAttr.o \
- imThaiFlt.o \
- imThaiIc.o \
- imThaiIm.o \
- imTrX.o \
- imTransR.o \
- imTrans.o \
- lcGenConv.o \
- lcUTF8Load.o \
- omDefault.o \
- omGeneric.o \
- omImText.o \
- omText.o \
- omTextEsc.o \
- omTextExt.o \
- omTextPer.o \
- omXChar.o
-
-LCOBJS = \
- SetLocale.o \
- imConv.o \
- imKStoUCS.o \
- lcCT.o \
- lcCharSet.o \
- lcConv.o \
- lcDB.o \
- lcDefConv.o \
- lcFile.o \
- lcGeneric.o \
- lcInit.o \
- lcPrTxt.o \
- lcPubWrap.o \
- lcPublic.o \
- lcRM.o \
- lcStd.o \
- lcTxtPr.o \
- lcUtil.o \
- lcUTF8.o
-
-STATICLCOBJS = \
- $(STATICI18NSTATICOBJS)
-
-#include <Library.tmpl>
-
-SpecialCLibObjectRule(ErrDes,$(ICONFIGFILES),$(EDB_DEFINES))
-SpecialCLibObjectRule(ConnDis,$(ICONFIGFILES),$(XDMAUTHDEFS) $(RPCDEFS) $(CONN_DEFINES) $(SOCK_DEFINES) $(POLL_DEFINES) $(XTRANS_X_DEFINES) $(K5INCL) $(K5DEFS))
-SpecialCLibObjectRule(x11_trans,$(ICONFIGFILES),$(TRANS_INCLUDES) $(CONN_DEFINES) $(SOCK_DEFINES) $(XTRANS_X_DEFINES) $(POLL_DEFINES))
-SpecialCLibObjectRule(xim_trans,$(ICONFIGFILES),$(TRANS_INCLUDES) $(CONN_DEFINES) $(SOCK_DEFINES) $(XTRANS_XIM_DEFINES) $(POLL_DEFINES))
-SpecialCLibObjectRule(OpenDis,$(ICONFIGFILES),$(BC_DEFINES) $(OPEN_DEFINES) $(XTRANS_X_DEFINES) $(XKB_DEFINES))
-SpecialCLibObjectRule(XlibInt,$(ICONFIGFILES),$(CONN_DEFINES) $(POLL_DEFINES) $(XTRANS_X_DEFINES))
-SpecialCLibObjectRule(Font,$(ICONFIGFILES),$(SHM_DEFINES) $(XF86BIGFONT_DEFINES))
-SpecialCLibObjectRule(FontInfo,$(ICONFIGFILES),$(SHM_DEFINES) $(XF86BIGFONT_DEFINES))
-SpecialCLibObjectRule(cmsColNm,$(ICONFIGFILES),$(CMS_DEFINES))
-SpecialCLibObjectRule(globals,$(ICONFIGFILES),$(CONN_DEFINES))
-SpecialCLibObjectRule(Context,$(ICONFIGFILES),$(BC_DEFINES))
-SpecialCLibObjectRule(Xrm,$(_NOOP_),$(RCONST_DEFINES))
-SpecialCLibObjectRule(imTransR,$(ICONFIGFILES),$(CONN_DEFINES) $(XTRANS_XIM_DEFINES))
-SpecialCLibObjectRule(imTrans,$(ICONFIGFILES),$(CONN_DEFINES) $(XTRANS_XIM_DEFINES))
-SpecialCLibObjectRule(lcFile,$(ICONFIGFILES),$(XLC_DEFINES) $(SETID_DEFINES))
-#if BuildXKBlib
-SpecialCLibObjectRule(XKBCvt,$(_NOOP_),$(RCONST_DEFINES))
-SpecialCLibObjectRule(KeyBind,$(ICONFIGFILES),$(XKB_DEFINES))
-SpecialCLibObjectRule(XKBBind,$(ICONFIGFILES),$(XKB_DEFINES))
-SpecialCLibObjectRule(imConv,$(ICONFIGFILES),$(XKB_DEFINES))
-#endif
-#if BuildLoadableXlibXcursor
-SpecialCLibObjectRuleSeparateOpts(CrCursor,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
-SpecialCLibObjectRuleSeparateOpts(CrGlCur,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
-SpecialCLibObjectRuleSeparateOpts(CrPixmap,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
-SpecialCLibObjectRuleSeparateOpts(PutImage,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
-#endif
-
-#if InstallXcmsTxt
-InstallNonExecFile(Xcms.txt,$(LIBDIR))
-#endif
-InstallNonExecFile(XErrorDB,$(LIBDIR))
-InstallLintLibrary(X11,$(LINTLIBDIR))
-
-MAKEKEYS = ./makekeys
-KEYSYMDEFS = $(XINCLUDESRC)/keysymdef.h $(XINCLUDESRC)/XF86keysym.h $(XINCLUDESRC)/Sunkeysym.h $(XINCLUDESRC)/DECkeysym.h $(XINCLUDESRC)/HPkeysym.h
-
-#if CrossCompiling
-HOST_LDLIBS=
-HOST_CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS) \
- $(CROSSCOMPILEDEFINES) $(CROSSCOMPILEBOOTSTRAPDEFINES)
-#else
-HOST_LDLIBS=$(LDLIBS)
-HOST_CFLAGS=$(CFLAGS)
-#endif
-
-ks_tables.h: $(KEYSYMDEFS) util/makekeys.c
- RemoveFiles($@ HostProgramTargetName(makekeys) makekeys.Osuf)
- -HostLinkRule(HostProgramTargetName(makekeys),$(HOST_CFLAGS) $(LOCAL_LDFLAGS),util/makekeys.c,$(HOST_LDLIBS))
- RunProgram(MAKEKEYS, $(KEYSYMDEFS) > ks_tables_h)
- $(MV) ks_tables_h $@
- RemoveFiles(HostProgramTargetName(makekeys) makekeys.Osuf ks_tables_h)
-
-includes:: ks_tables.h
-
-CONFIGURE ?= ./configure
-
-depend:: ks_tables.h
-
-clean::
- RemoveFiles(ks_tables_h ks_tables.h HostProgramTargetName(makekeys))
-
-KeysymStr.o: ks_tables.h
-
-StrKeysym.o: ks_tables.h
-
-DependTarget3($(SRCS1),$(SRCS2),$(SRCS3) $(EXTRASRCS))
-
-#endif
-
-includes:: XlibConf.h pathmax.h
-
-#include <Threads.tmpl>
-
-#if ThreadedProject
-#define XThreadsDefine echo '#ifndef XTHREADS' >> $@ @@\
- echo '#define XTHREADS' >> $@ @@\
- echo '#endif' >> $@
-#else
-#define XThreadsDefine echo '#undef XTHREADS' >> $@
-#endif
-
-#if HasThreadSafeAPI
-#define MTSafeAPIDefine echo '#ifndef XUSE_MTSAFE_API' >> $@ @@\
- echo '#define XUSE_MTSAFE_API' >> $@ @@\
- echo '#endif' >> $@
-#else
-#define MTSafeAPIDefine echo '#undef XUSE_MTSAFE_API' >> $@
-#endif
-
-XlibConf.h:
- echo '/* Defines needed to use Xlib from non-imake projects */' > $@
- XThreadsDefine
- MTSafeAPIDefine
-
-/* create libX11 links in exports/lib */
-libX11-links:
- MakeDir($(BUILDLIBDIR))
- @MAJREV=`echo $(SOXLIBREV) | cut -d. -f1`;\
- (for i in "" .$$MAJREV .$(SOXLIBREV); do\
- t="lib$(LIBNAME).so$$i";\
- l="libX11.so$$i";\
- $(RM) "$(BUILDLIBDIR)/$$l";\
- (set -x; $(LN) "$$t" "$(BUILDLIBDIR)/$$l");\
- done)
-
-/* remove libX11 _and_ libNX_X11 links in epxorts/lib */
-/* Disable this for now, refer to the comments regarding libX11-links. */
-#clean::
-# @MAJREV=`echo $(SOXLIBREV) | cut -d. -f1`;\
-# set -x; for i in "" .$$MAJREV .$(SOXLIBREV); do\
-# $(RM) "$(BUILDLIBDIR)/lib$(LIBNAME).so$$i" "$(BUILDLIBDIR)/libX11.so$$i";\
-# done
diff --git a/nx-X11/lib/X11/InitExt.c b/nx-X11/lib/X11/InitExt.c
deleted file mode 100644
index d02527d5c..000000000
--- a/nx-X11/lib/X11/InitExt.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xos.h>
-#include <stdio.h>
-
-/*
- * This routine is used to link a extension in so it will be called
- * at appropriate times.
- */
-
-XExtCodes *XInitExtension (
- Display *dpy,
- _Xconst char *name)
-{
- XExtCodes codes; /* temp. place for extension information. */
- register _XExtension *ext;/* need a place to build it all */
- if (!XQueryExtension(dpy, name,
- &codes.major_opcode, &codes.first_event,
- &codes.first_error)) return (NULL);
-
- LockDisplay (dpy);
- if (! (ext = Xcalloc (1, sizeof (_XExtension))) ||
- ! (ext->name = strdup(name))) {
- Xfree(ext);
- UnlockDisplay(dpy);
- return (XExtCodes *) NULL;
- }
- codes.extension = dpy->ext_number++;
- ext->codes = codes;
-
- /* chain it onto the display list */
- ext->next = dpy->ext_procs;
- dpy->ext_procs = ext;
- UnlockDisplay (dpy);
-
- return (&ext->codes); /* tell him which extension */
-}
-
-XExtCodes *XAddExtension (Display *dpy)
-{
- register _XExtension *ext;
-
- LockDisplay (dpy);
- if (! (ext = Xcalloc (1, sizeof (_XExtension)))) {
- UnlockDisplay(dpy);
- return (XExtCodes *) NULL;
- }
- ext->codes.extension = dpy->ext_number++;
-
- /* chain it onto the display list */
- ext->next = dpy->ext_procs;
- dpy->ext_procs = ext;
- UnlockDisplay (dpy);
-
- return (&ext->codes); /* tell him which extension */
-}
-
-static _XExtension *XLookupExtension (
- register Display *dpy, /* display */
- register int extension) /* extension number */
-{
- register _XExtension *ext;
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->codes.extension == extension) return (ext);
- return (NULL);
-}
-
-XExtData **XEHeadOfExtensionList(XEDataObject object)
-{
- return *(XExtData ***)&object;
-}
-
-int
-XAddToExtensionList(
- XExtData **structure,
- XExtData *ext_data)
-{
- ext_data->next = *structure;
- *structure = ext_data;
- return 1;
-}
-
-XExtData *XFindOnExtensionList(
- XExtData **structure,
- int number)
-{
- XExtData *ext;
-
- ext = *structure;
- while (ext && (ext->number != number))
- ext = ext->next;
- return ext;
-}
-
-/*
- * Routines to hang procs on the extension structure.
- */
-CreateGCType XESetCreateGC(
- Display *dpy, /* display */
- int extension, /* extension number */
- CreateGCType proc) /* routine to call when GC created */
-{
- register _XExtension *e; /* for lookup of extension */
- register CreateGCType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->create_GC;
- e->create_GC = proc;
- UnlockDisplay(dpy);
- return (CreateGCType)oldproc;
-}
-
-CopyGCType XESetCopyGC(
- Display *dpy, /* display */
- int extension, /* extension number */
- CopyGCType proc) /* routine to call when GC copied */
-{
- register _XExtension *e; /* for lookup of extension */
- register CopyGCType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->copy_GC;
- e->copy_GC = proc;
- UnlockDisplay(dpy);
- return (CopyGCType)oldproc;
-}
-
-FlushGCType XESetFlushGC(
- Display *dpy, /* display */
- int extension, /* extension number */
- FlushGCType proc) /* routine to call when GC copied */
-{
- register _XExtension *e; /* for lookup of extension */
- register FlushGCType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->flush_GC;
- e->flush_GC = proc;
- UnlockDisplay(dpy);
- return (FlushGCType)oldproc;
-}
-
-FreeGCType XESetFreeGC(
- Display *dpy, /* display */
- int extension, /* extension number */
- FreeGCType proc) /* routine to call when GC freed */
-{
- register _XExtension *e; /* for lookup of extension */
- register FreeGCType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->free_GC;
- e->free_GC = proc;
- UnlockDisplay(dpy);
- return (FreeGCType)oldproc;
-}
-
-CreateFontType XESetCreateFont(
- Display *dpy, /* display */
- int extension, /* extension number */
- CreateFontType proc) /* routine to call when font created */
-{
- register _XExtension *e; /* for lookup of extension */
- register CreateFontType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->create_Font;
- e->create_Font = proc;
- UnlockDisplay(dpy);
- return (CreateFontType)oldproc;
-}
-
-FreeFontType XESetFreeFont(
- Display *dpy, /* display */
- int extension, /* extension number */
- FreeFontType proc) /* routine to call when font freed */
-{
- register _XExtension *e; /* for lookup of extension */
- register FreeFontType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->free_Font;
- e->free_Font = proc;
- UnlockDisplay(dpy);
- return (FreeFontType)oldproc;
-}
-
-CloseDisplayType XESetCloseDisplay(
- Display *dpy, /* display */
- int extension, /* extension number */
- CloseDisplayType proc) /* routine to call when display closed */
-{
- register _XExtension *e; /* for lookup of extension */
- register CloseDisplayType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->close_display;
- e->close_display = proc;
- UnlockDisplay(dpy);
- return (CloseDisplayType)oldproc;
-}
-
-typedef Bool (*WireToEventType) (
- Display* /* display */,
- XEvent* /* re */,
- xEvent* /* event */
-);
-
-WireToEventType XESetWireToEvent(
- Display *dpy, /* display */
- int event_number, /* event routine to replace */
- WireToEventType proc) /* routine to call when converting event */
-{
- register WireToEventType oldproc;
- if (proc == NULL) proc = (WireToEventType)_XUnknownWireEvent;
- LockDisplay (dpy);
- oldproc = dpy->event_vec[event_number];
- dpy->event_vec[event_number] = proc;
- UnlockDisplay (dpy);
- return (WireToEventType)oldproc;
-}
-
-typedef Bool (*WireToEventCookieType) (
- Display* /* display */,
- XGenericEventCookie* /* re */,
- xEvent* /* event */
-);
-
-WireToEventCookieType XESetWireToEventCookie(
- Display *dpy, /* display */
- int extension, /* extension major opcode */
- WireToEventCookieType proc /* routine to call for generic events */
- )
-{
- WireToEventCookieType oldproc;
- if (proc == NULL) proc = (WireToEventCookieType)_XUnknownWireEventCookie;
- LockDisplay (dpy);
- oldproc = dpy->generic_event_vec[extension & 0x7F];
- dpy->generic_event_vec[extension & 0x7F] = proc;
- UnlockDisplay (dpy);
- return (WireToEventCookieType)oldproc;
-}
-
-typedef Bool (*CopyEventCookieType) (
- Display* /* display */,
- XGenericEventCookie* /* in */,
- XGenericEventCookie* /* out */
-);
-
-CopyEventCookieType XESetCopyEventCookie(
- Display *dpy, /* display */
- int extension, /* extension major opcode */
- CopyEventCookieType proc /* routine to copy generic events */
- )
-{
- CopyEventCookieType oldproc;
- if (proc == NULL) proc = (CopyEventCookieType)_XUnknownCopyEventCookie;
- LockDisplay (dpy);
- oldproc = dpy->generic_event_copy_vec[extension & 0x7F];
- dpy->generic_event_copy_vec[extension & 0x7F] = proc;
- UnlockDisplay (dpy);
- return (CopyEventCookieType)oldproc;
-}
-
-
-typedef Status (*EventToWireType) (
- Display* /* display */,
- XEvent* /* re */,
- xEvent* /* event */
-);
-
-EventToWireType XESetEventToWire(
- Display *dpy, /* display */
- int event_number, /* event routine to replace */
- EventToWireType proc) /* routine to call when converting event */
-{
- register EventToWireType oldproc;
- if (proc == NULL) proc = (EventToWireType) _XUnknownNativeEvent;
- LockDisplay (dpy);
- oldproc = dpy->wire_vec[event_number];
- dpy->wire_vec[event_number] = proc;
- UnlockDisplay(dpy);
- return (EventToWireType)oldproc;
-}
-
-typedef Bool (*WireToErrorType) (
- Display* /* display */,
- XErrorEvent* /* he */,
- xError* /* we */
-);
-
-WireToErrorType XESetWireToError(
- Display *dpy, /* display */
- int error_number, /* error routine to replace */
- WireToErrorType proc) /* routine to call when converting error */
-{
- register WireToErrorType oldproc = NULL;
- if (proc == NULL) proc = (WireToErrorType)_XDefaultWireError;
- LockDisplay (dpy);
- if (!dpy->error_vec) {
- int i;
- dpy->error_vec = Xmalloc(256 * sizeof(oldproc));
- for (i = 1; i < 256; i++)
- dpy->error_vec[i] = _XDefaultWireError;
- }
- if (dpy->error_vec) {
- oldproc = dpy->error_vec[error_number];
- dpy->error_vec[error_number] = proc;
- }
- UnlockDisplay (dpy);
- return (WireToErrorType)oldproc;
-}
-
-ErrorType XESetError(
- Display *dpy, /* display */
- int extension, /* extension number */
- ErrorType proc) /* routine to call when X error happens */
-{
- register _XExtension *e; /* for lookup of extension */
- register ErrorType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->error;
- e->error = proc;
- UnlockDisplay(dpy);
- return (ErrorType)oldproc;
-}
-
-ErrorStringType XESetErrorString(
- Display *dpy, /* display */
- int extension, /* extension number */
- ErrorStringType proc) /* routine to call when I/O error happens */
-{
- register _XExtension *e; /* for lookup of extension */
- register ErrorStringType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->error_string;
- e->error_string = proc;
- UnlockDisplay(dpy);
- return (ErrorStringType)oldproc;
-}
-
-PrintErrorType XESetPrintErrorValues(
- Display *dpy, /* display */
- int extension, /* extension number */
- PrintErrorType proc) /* routine to call to print */
-{
- register _XExtension *e; /* for lookup of extension */
- register PrintErrorType oldproc;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->error_values;
- e->error_values = proc;
- UnlockDisplay(dpy);
- return (PrintErrorType)oldproc;
-}
-
-BeforeFlushType XESetBeforeFlush(
- Display *dpy, /* display */
- int extension, /* extension number */
- BeforeFlushType proc) /* routine to call on flush */
-{
- register _XExtension *e; /* for lookup of extension */
- register BeforeFlushType oldproc;
- register _XExtension *ext;
- if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
- LockDisplay(dpy);
- oldproc = e->before_flush;
- e->before_flush = proc;
- for (ext = dpy->flushes; ext && ext != e; ext = ext->next)
- ;
- if (!ext) {
- e->next_flush = dpy->flushes;
- dpy->flushes = e;
- }
- UnlockDisplay(dpy);
- return (BeforeFlushType)oldproc;
-}
diff --git a/nx-X11/lib/X11/InsCmap.c b/nx-X11/lib/X11/InsCmap.c
deleted file mode 100644
index 735ab080e..000000000
--- a/nx-X11/lib/X11/InsCmap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XInstallColormap(
- register Display *dpy,
- Colormap cmap)
-{
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(InstallColormap, cmap, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/IntAtom.c b/nx-X11/lib/X11/IntAtom.c
deleted file mode 100644
index 3042b65dd..000000000
--- a/nx-X11/lib/X11/IntAtom.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
-
-Copyright 1986, 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xintatom.h"
-
-#define HASH(sig) ((sig) & (TABLESIZE-1))
-#define REHASHVAL(sig) ((((sig) % (TABLESIZE-3)) + 2) | 1)
-#define REHASH(idx,rehash) ((idx + rehash) & (TABLESIZE-1))
-
-void
-_XFreeAtomTable(Display *dpy)
-{
- register Entry *table;
- register int i;
- register Entry e;
-
- if (dpy->atoms) {
- table = dpy->atoms->table;
- for (i = TABLESIZE; --i >= 0; ) {
- if ((e = *table++) && (e != RESERVED))
- Xfree(e);
- }
- Xfree(dpy->atoms);
- }
-}
-
-static
-Atom _XInternAtom(
- Display *dpy,
- _Xconst char *name,
- Bool onlyIfExists,
- unsigned long *psig,
- int *pidx,
- int *pn)
-{
- register AtomTable *atoms;
- register char *s1, c, *s2;
- register unsigned long sig;
- register int idx = 0, i;
- Entry e;
- int n, firstidx, rehash = 0;
- xInternAtomReq *req;
-
- /* look in the cache first */
- if (!(atoms = dpy->atoms)) {
- dpy->atoms = atoms = Xcalloc(1, sizeof(AtomTable));
- dpy->free_funcs->atoms = _XFreeAtomTable;
- }
- sig = 0;
- for (s1 = (char *)name; (c = *s1++); )
- sig += c;
- n = s1 - (char *)name - 1;
- if (atoms) {
- firstidx = idx = HASH(sig);
- while ((e = atoms->table[idx])) {
- if (e != RESERVED && e->sig == sig) {
- for (i = n, s1 = (char *)name, s2 = EntryName(e); --i >= 0; ) {
- if (*s1++ != *s2++)
- goto nomatch;
- }
- if (!*s2)
- return e->atom;
- }
-nomatch: if (idx == firstidx)
- rehash = REHASHVAL(sig);
- idx = REHASH(idx, rehash);
- if (idx == firstidx)
- break;
- }
- }
- *psig = sig;
- *pidx = idx;
- if (atoms && !atoms->table[idx])
- atoms->table[idx] = RESERVED; /* reserve slot */
- *pn = n;
- /* not found, go to the server */
- GetReq(InternAtom, req);
- req->nbytes = n;
- req->onlyIfExists = onlyIfExists;
- req->length += (n+3)>>2;
- Data(dpy, name, n);
- return None;
-}
-
-void
-_XUpdateAtomCache(
- Display *dpy,
- const char *name,
- Atom atom,
- unsigned long sig,
- int idx,
- int n)
-{
- Entry e, oe;
- register char *s1;
- register char c;
- int firstidx, rehash;
-
- if (!dpy->atoms) {
- if (idx < 0) {
- dpy->atoms = Xcalloc(1, sizeof(AtomTable));
- dpy->free_funcs->atoms = _XFreeAtomTable;
- }
- if (!dpy->atoms)
- return;
- }
- if (!sig) {
- for (s1 = (char *)name; (c = *s1++); )
- sig += c;
- n = s1 - (char *)name - 1;
- if (idx < 0) {
- firstidx = idx = HASH(sig);
- if (dpy->atoms->table[idx]) {
- rehash = REHASHVAL(sig);
- do
- idx = REHASH(idx, rehash);
- while (idx != firstidx && dpy->atoms->table[idx]);
- }
- }
- }
- e = Xmalloc(sizeof(EntryRec) + n + 1);
- if (e) {
- e->sig = sig;
- e->atom = atom;
- strcpy(EntryName(e), name);
- if ((oe = dpy->atoms->table[idx]) && (oe != RESERVED))
- Xfree(oe);
- dpy->atoms->table[idx] = e;
- }
-}
-
-Atom
-XInternAtom (
- Display *dpy,
- const char *name,
- Bool onlyIfExists)
-{
- Atom atom;
- unsigned long sig;
- int idx, n;
- xInternAtomReply rep;
-
- if (!name)
- name = "";
- LockDisplay(dpy);
- if ((atom = _XInternAtom(dpy, name, onlyIfExists, &sig, &idx, &n))) {
- UnlockDisplay(dpy);
- return atom;
- }
- if (dpy->atoms && dpy->atoms->table[idx] == RESERVED)
- dpy->atoms->table[idx] = NULL; /* unreserve slot */
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
- if ((atom = rep.atom))
- _XUpdateAtomCache(dpy, name, atom, sig, idx, n);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return (rep.atom);
-}
-
-typedef struct {
- unsigned long start_seq;
- unsigned long stop_seq;
- char **names;
- Atom *atoms;
- int count;
- Status status;
-} _XIntAtomState;
-
-static
-Bool _XIntAtomHandler(
- register Display *dpy,
- register xReply *rep,
- char *buf,
- int len,
- XPointer data)
-{
- register _XIntAtomState *state;
- register int i, idx = 0;
- xInternAtomReply replbuf;
- register xInternAtomReply *repl;
-
- state = (_XIntAtomState *)data;
- if (dpy->last_request_read < state->start_seq ||
- dpy->last_request_read > state->stop_seq)
- return False;
- for (i = 0; i < state->count; i++) {
- if (state->atoms[i] & 0x80000000) {
- idx = ~state->atoms[i];
- state->atoms[i] = None;
- break;
- }
- }
- if (i >= state->count)
- return False;
- if (rep->generic.type == X_Error) {
- state->status = 0;
- return False;
- }
- repl = (xInternAtomReply *)
- _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
- (SIZEOF(xInternAtomReply) - SIZEOF(xReply)) >> 2,
- True);
- if ((state->atoms[i] = repl->atom))
- _XUpdateAtomCache(dpy, state->names[i], (Atom) repl->atom,
- (unsigned long)0, idx, 0);
- return True;
-}
-
-Status
-XInternAtoms (
- Display *dpy,
- char **names,
- int count,
- Bool onlyIfExists,
- Atom *atoms_return)
-{
- int i, idx, n, tidx;
- unsigned long sig;
- _XAsyncHandler async;
- _XIntAtomState async_state;
- int missed = -1;
- xInternAtomReply rep;
-
- LockDisplay(dpy);
- async_state.start_seq = dpy->request + 1;
- async_state.atoms = atoms_return;
- async_state.names = names;
- async_state.count = count - 1;
- async_state.status = 1;
- async.next = dpy->async_handlers;
- async.handler = _XIntAtomHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
- for (i = 0; i < count; i++) {
- if (!(atoms_return[i] = _XInternAtom(dpy, names[i], onlyIfExists,
- &sig, &idx, &n))) {
- missed = i;
- atoms_return[i] = ~((Atom)idx);
- async_state.stop_seq = dpy->request;
- }
- }
- if (missed >= 0) {
- if (dpy->atoms) {
- /* unreserve anything we just reserved */
- for (i = 0; i < count; i++) {
- if (atoms_return[i] & 0x80000000) {
- tidx = ~atoms_return[i];
- if (dpy->atoms->table[tidx] == RESERVED)
- dpy->atoms->table[tidx] = NULL;
- }
- }
- }
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue)) {
- if ((atoms_return[missed] = rep.atom))
- _XUpdateAtomCache(dpy, names[missed], (Atom) rep.atom,
- sig, idx, n);
- } else {
- atoms_return[missed] = None;
- async_state.status = 0;
- }
- }
- DeqAsyncHandler(dpy, &async);
- UnlockDisplay(dpy);
- if (missed >= 0)
- SyncHandle();
- return async_state.status;
-}
diff --git a/nx-X11/lib/X11/Key.h b/nx-X11/lib/X11/Key.h
deleted file mode 100644
index 3a1639c5c..000000000
--- a/nx-X11/lib/X11/Key.h
+++ /dev/null
@@ -1,20 +0,0 @@
-
-#ifndef _KEY_H_
-#define _KEY_H_
-
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xresource.h>
-
-#ifndef NEEDKTABLE
-extern const unsigned char _XkeyTable[];
-#endif
-
-extern int
-_XKeyInitialize(
- Display *dpy);
-
-extern XrmDatabase
-_XInitKeysymDB(
- void);
-
-#endif /* _KEY_H_ */
diff --git a/nx-X11/lib/X11/KeyBind.c b/nx-X11/lib/X11/KeyBind.c
deleted file mode 100644
index acaf7fd8f..000000000
--- a/nx-X11/lib/X11/KeyBind.c
+++ /dev/null
@@ -1,1005 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/* Beware, here be monsters (still under construction... - JG */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#define XK_MISCELLANY
-#define XK_LATIN1
-#define XK_LATIN2
-#define XK_LATIN3
-#define XK_LATIN4
-#define XK_LATIN8
-#define XK_LATIN9
-#define XK_CYRILLIC
-#define XK_GREEK
-#define XK_ARMENIAN
-#define XK_CAUCASUS
-#define XK_VIETNAMESE
-#define XK_XKB_KEYS
-#define XK_SINHALA
-#include <nx-X11/keysymdef.h>
-#include <stdio.h>
-
-#include "Xresource.h"
-#include "Key.h"
-
-#ifdef XKB
-#include "XKBlib.h"
-#include "XKBlibint.h"
-#define XKeycodeToKeysym _XKeycodeToKeysym
-#define XKeysymToKeycode _XKeysymToKeycode
-#define XLookupKeysym _XLookupKeysym
-#define XRefreshKeyboardMapping _XRefreshKeyboardMapping
-#define XLookupString _XLookupString
-/* XKBBind.c */
-#else
-#define XkbKeysymToModifiers _XKeysymToModifiers
-#endif
-
-#define AllMods (ShiftMask|LockMask|ControlMask| \
- Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)
-
-static void
-ComputeMaskFromKeytrans(
- Display *dpy,
- register struct _XKeytrans *p);
-
-struct _XKeytrans {
- struct _XKeytrans *next;/* next on list */
- char *string; /* string to return when the time comes */
- int len; /* length of string (since NULL is legit)*/
- KeySym key; /* keysym rebound */
- unsigned int state; /* modifier state */
- KeySym *modifiers; /* modifier keysyms you want */
- int mlen; /* length of modifier list */
-};
-
-static KeySym
-KeyCodetoKeySym(register Display *dpy, KeyCode keycode, int col)
-{
- register int per = dpy->keysyms_per_keycode;
- register KeySym *syms;
- KeySym lsym, usym;
-
- if ((col < 0) || ((col >= per) && (col > 3)) ||
- ((int)keycode < dpy->min_keycode) || ((int)keycode > dpy->max_keycode))
- return NoSymbol;
-
- syms = &dpy->keysyms[(keycode - dpy->min_keycode) * per];
- if (col < 4) {
- if (col > 1) {
- while ((per > 2) && (syms[per - 1] == NoSymbol))
- per--;
- if (per < 3)
- col -= 2;
- }
- if ((per <= (col|1)) || (syms[col|1] == NoSymbol)) {
- XConvertCase(syms[col&~1], &lsym, &usym);
- if (!(col & 1))
- return lsym;
- else if (usym == lsym)
- return NoSymbol;
- else
- return usym;
- }
- }
- return syms[col];
-}
-
-KeySym
-XKeycodeToKeysym(Display *dpy,
-#if NeedWidePrototypes
- unsigned int kc,
-#else
- KeyCode kc,
-#endif
- int col)
-{
- if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
- return NoSymbol;
- return KeyCodetoKeySym(dpy, kc, col);
-}
-
-KeyCode
-XKeysymToKeycode(
- Display *dpy,
- KeySym ks)
-{
- register int i, j;
-
- if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
- return (KeyCode) 0;
- for (j = 0; j < dpy->keysyms_per_keycode; j++) {
- for (i = dpy->min_keycode; i <= dpy->max_keycode; i++) {
- if (KeyCodetoKeySym(dpy, (KeyCode) i, j) == ks)
- return i;
- }
- }
- return 0;
-}
-
-KeySym
-XLookupKeysym(
- register XKeyEvent *event,
- int col)
-{
- if ((! event->display->keysyms) && (! _XKeyInitialize(event->display)))
- return NoSymbol;
- return KeyCodetoKeySym(event->display, event->keycode, col);
-}
-
-static void
-ResetModMap(
- Display *dpy)
-{
- register XModifierKeymap *map;
- register int i, j, n;
- KeySym sym;
- register struct _XKeytrans *p;
-
- map = dpy->modifiermap;
- /* If any Lock key contains Caps_Lock, then interpret as Caps_Lock,
- * else if any contains Shift_Lock, then interpret as Shift_Lock,
- * else ignore Lock altogether.
- */
- dpy->lock_meaning = NoSymbol;
- /* Lock modifiers are in the second row of the matrix */
- n = 2 * map->max_keypermod;
- for (i = map->max_keypermod; i < n; i++) {
- for (j = 0; j < dpy->keysyms_per_keycode; j++) {
- sym = KeyCodetoKeySym(dpy, map->modifiermap[i], j);
- if (sym == XK_Caps_Lock) {
- dpy->lock_meaning = XK_Caps_Lock;
- break;
- } else if (sym == XK_Shift_Lock) {
- dpy->lock_meaning = XK_Shift_Lock;
- }
- else if (sym == XK_ISO_Lock) {
- dpy->lock_meaning = XK_Caps_Lock;
- break;
- }
- }
- }
- /* Now find any Mod<n> modifier acting as the Group or Numlock modifier */
- dpy->mode_switch = 0;
- dpy->num_lock = 0;
- n *= 4;
- for (i = 3*map->max_keypermod; i < n; i++) {
- for (j = 0; j < dpy->keysyms_per_keycode; j++) {
- sym = KeyCodetoKeySym(dpy, map->modifiermap[i], j);
- if (sym == XK_Mode_switch)
- dpy->mode_switch |= 1 << (i / map->max_keypermod);
- if (sym == XK_Num_Lock)
- dpy->num_lock |= 1 << (i / map->max_keypermod);
- }
- }
- for (p = dpy->key_bindings; p; p = p->next)
- ComputeMaskFromKeytrans(dpy, p);
-}
-
-static int
-InitModMap(
- Display *dpy)
-{
- register XModifierKeymap *map;
-
- if (! (map = XGetModifierMapping(dpy)))
- return 0;
- LockDisplay(dpy);
- if (dpy->modifiermap)
- XFreeModifiermap(dpy->modifiermap);
- dpy->modifiermap = map;
- dpy->free_funcs->modifiermap = XFreeModifiermap;
- if (dpy->keysyms)
- ResetModMap(dpy);
- UnlockDisplay(dpy);
- return 1;
-}
-
-int
-XRefreshKeyboardMapping(register XMappingEvent *event)
-{
-
- if(event->request == MappingKeyboard) {
- /* XXX should really only refresh what is necessary
- * for now, make initialize test fail
- */
- LockDisplay(event->display);
- if (event->display->keysyms) {
- Xfree (event->display->keysyms);
- event->display->keysyms = NULL;
- }
- UnlockDisplay(event->display);
- }
- if(event->request == MappingModifier) {
- LockDisplay(event->display);
- if (event->display->modifiermap) {
- XFreeModifiermap(event->display->modifiermap);
- event->display->modifiermap = NULL;
- }
- UnlockDisplay(event->display);
- /* go ahead and get it now, since initialize test may not fail */
- if (event->display->keysyms)
- (void) InitModMap(event->display);
- }
- return 1;
-}
-
-int
-_XKeyInitialize(
- Display *dpy)
-{
- int per, n;
- KeySym *keysyms;
-
- /*
- * lets go get the keysyms from the server.
- */
- if (!dpy->keysyms) {
- n = dpy->max_keycode - dpy->min_keycode + 1;
- keysyms = XGetKeyboardMapping (dpy, (KeyCode) dpy->min_keycode,
- n, &per);
- /* keysyms may be NULL */
- if (! keysyms) return 0;
-
- LockDisplay(dpy);
-
- Xfree (dpy->keysyms);
- dpy->keysyms = keysyms;
- dpy->keysyms_per_keycode = per;
- if (dpy->modifiermap)
- ResetModMap(dpy);
-
- UnlockDisplay(dpy);
- }
- if (!dpy->modifiermap)
- return InitModMap(dpy);
- return 1;
-}
-
-static void
-UCSConvertCase( register unsigned code,
- KeySym *lower,
- KeySym *upper )
-{
- /* Case conversion for UCS, as in Unicode Data version 4.0.0 */
- /* NB: Only converts simple one-to-one mappings. */
-
- /* Tables are used where they take less space than */
- /* the code to work out the mappings. Zero values mean */
- /* undefined code points. */
-
- static unsigned short const IPAExt_upper_mapping[] = { /* part only */
- 0x0181, 0x0186, 0x0255, 0x0189, 0x018A,
- 0x0258, 0x018F, 0x025A, 0x0190, 0x025C, 0x025D, 0x025E, 0x025F,
- 0x0193, 0x0261, 0x0262, 0x0194, 0x0264, 0x0265, 0x0266, 0x0267,
- 0x0197, 0x0196, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, 0x019C,
- 0x0270, 0x0271, 0x019D, 0x0273, 0x0274, 0x019F, 0x0276, 0x0277,
- 0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, 0x027F,
- 0x01A6, 0x0281, 0x0282, 0x01A9, 0x0284, 0x0285, 0x0286, 0x0287,
- 0x01AE, 0x0289, 0x01B1, 0x01B2, 0x028C, 0x028D, 0x028E, 0x028F,
- 0x0290, 0x0291, 0x01B7
- };
-
- static unsigned short const LatinExtB_upper_mapping[] = { /* first part only */
- 0x0180, 0x0181, 0x0182, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187,
- 0x0187, 0x0189, 0x018A, 0x018B, 0x018B, 0x018D, 0x018E, 0x018F,
- 0x0190, 0x0191, 0x0191, 0x0193, 0x0194, 0x01F6, 0x0196, 0x0197,
- 0x0198, 0x0198, 0x019A, 0x019B, 0x019C, 0x019D, 0x0220, 0x019F,
- 0x01A0, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7,
- 0x01A7, 0x01A9, 0x01AA, 0x01AB, 0x01AC, 0x01AC, 0x01AE, 0x01AF,
- 0x01AF, 0x01B1, 0x01B2, 0x01B3, 0x01B3, 0x01B5, 0x01B5, 0x01B7,
- 0x01B8, 0x01B8, 0x01BA, 0x01BB, 0x01BC, 0x01BC, 0x01BE, 0x01F7,
- 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C4, 0x01C4, 0x01C7,
- 0x01C7, 0x01C7, 0x01CA, 0x01CA, 0x01CA
- };
-
- static unsigned short const LatinExtB_lower_mapping[] = { /* first part only */
- 0x0180, 0x0253, 0x0183, 0x0183, 0x0185, 0x0185, 0x0254, 0x0188,
- 0x0188, 0x0256, 0x0257, 0x018C, 0x018C, 0x018D, 0x01DD, 0x0259,
- 0x025B, 0x0192, 0x0192, 0x0260, 0x0263, 0x0195, 0x0269, 0x0268,
- 0x0199, 0x0199, 0x019A, 0x019B, 0x026F, 0x0272, 0x019E, 0x0275,
- 0x01A1, 0x01A1, 0x01A3, 0x01A3, 0x01A5, 0x01A5, 0x0280, 0x01A8,
- 0x01A8, 0x0283, 0x01AA, 0x01AB, 0x01AD, 0x01AD, 0x0288, 0x01B0,
- 0x01B0, 0x028A, 0x028B, 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x0292,
- 0x01B9, 0x01B9, 0x01BA, 0x01BB, 0x01BD, 0x01BD, 0x01BE, 0x01BF,
- 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C6, 0x01C6, 0x01C6, 0x01C9,
- 0x01C9, 0x01C9, 0x01CC, 0x01CC, 0x01CC
- };
-
- static unsigned short const Greek_upper_mapping[] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0374, 0x0375, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x037A, 0x0000, 0x0000, 0x0000, 0x037E, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0384, 0x0385, 0x0386, 0x0387,
- 0x0388, 0x0389, 0x038A, 0x0000, 0x038C, 0x0000, 0x038E, 0x038F,
- 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
- 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
- 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x0386, 0x0388, 0x0389, 0x038A,
- 0x03B0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
- 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
- 0x03A0, 0x03A1, 0x03A3, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
- 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x038C, 0x038E, 0x038F, 0x0000,
- 0x0392, 0x0398, 0x03D2, 0x03D3, 0x03D4, 0x03A6, 0x03A0, 0x03D7,
- 0x03D8, 0x03D8, 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE,
- 0x03E0, 0x03E0, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6,
- 0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE,
- 0x039A, 0x03A1, 0x03F9, 0x03F3, 0x03F4, 0x0395, 0x03F6, 0x03F7,
- 0x03F7, 0x03F9, 0x03FA, 0x03FA, 0x0000, 0x0000, 0x0000, 0x0000
- };
-
- static unsigned short const Greek_lower_mapping[] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0374, 0x0375, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x037A, 0x0000, 0x0000, 0x0000, 0x037E, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0384, 0x0385, 0x03AC, 0x0387,
- 0x03AD, 0x03AE, 0x03AF, 0x0000, 0x03CC, 0x0000, 0x03CD, 0x03CE,
- 0x0390, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
- 0x03C0, 0x03C1, 0x0000, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
- 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
- 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
- 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
- 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
- 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000,
- 0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7,
- 0x03D9, 0x03D9, 0x03DB, 0x03DB, 0x03DD, 0x03DD, 0x03DF, 0x03DF,
- 0x03E1, 0x03E1, 0x03E3, 0x03E3, 0x03E5, 0x03E5, 0x03E7, 0x03E7,
- 0x03E9, 0x03E9, 0x03EB, 0x03EB, 0x03ED, 0x03ED, 0x03EF, 0x03EF,
- 0x03F0, 0x03F1, 0x03F2, 0x03F3, 0x03B8, 0x03F5, 0x03F6, 0x03F8,
- 0x03F8, 0x03F2, 0x03FB, 0x03FB, 0x0000, 0x0000, 0x0000, 0x0000
- };
-
- static unsigned short const GreekExt_lower_mapping[] = {
- 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,
- 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,
- 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x0000, 0x0000,
- 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x0000, 0x0000,
- 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,
- 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,
- 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,
- 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,
- 0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x0000, 0x0000,
- 0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x0000, 0x0000,
- 0x1F50, 0x1F51, 0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57,
- 0x0000, 0x1F51, 0x0000, 0x1F53, 0x0000, 0x1F55, 0x0000, 0x1F57,
- 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,
- 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,
- 0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77,
- 0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C, 0x1F7D, 0x0000, 0x0000,
- 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,
- 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,
- 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,
- 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,
- 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,
- 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,
- 0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x0000, 0x1FB6, 0x1FB7,
- 0x1FB0, 0x1FB1, 0x1F70, 0x1F71, 0x1FB3, 0x1FBD, 0x1FBE, 0x1FBF,
- 0x1FC0, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x0000, 0x1FC6, 0x1FC7,
- 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1FC3, 0x1FCD, 0x1FCE, 0x1FCF,
- 0x1FD0, 0x1FD1, 0x1FD2, 0x1FD3, 0x0000, 0x0000, 0x1FD6, 0x1FD7,
- 0x1FD0, 0x1FD1, 0x1F76, 0x1F77, 0x0000, 0x1FDD, 0x1FDE, 0x1FDF,
- 0x1FE0, 0x1FE1, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7,
- 0x1FE0, 0x1FE1, 0x1F7A, 0x1F7B, 0x1FE5, 0x1FED, 0x1FEE, 0x1FEF,
- 0x0000, 0x0000, 0x1FF2, 0x1FF3, 0x1FF4, 0x0000, 0x1FF6, 0x1FF7,
- 0x1F78, 0x1F79, 0x1F7C, 0x1F7D, 0x1FF3, 0x1FFD, 0x1FFE, 0x0000
- };
-
- static unsigned short const GreekExt_upper_mapping[] = {
- 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,
- 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,
- 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x0000, 0x0000,
- 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x0000, 0x0000,
- 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,
- 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,
- 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
- 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
- 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x0000, 0x0000,
- 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x0000, 0x0000,
- 0x1F50, 0x1F59, 0x1F52, 0x1F5B, 0x1F54, 0x1F5D, 0x1F56, 0x1F5F,
- 0x0000, 0x1F59, 0x0000, 0x1F5B, 0x0000, 0x1F5D, 0x0000, 0x1F5F,
- 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,
- 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,
- 0x1FBA, 0x1FBB, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FDA, 0x1FDB,
- 0x1FF8, 0x1FF9, 0x1FEA, 0x1FEB, 0x1FFA, 0x1FFB, 0x0000, 0x0000,
- 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,
- 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,
- 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,
- 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,
- 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,
- 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,
- 0x1FB8, 0x1FB9, 0x1FB2, 0x1FBC, 0x1FB4, 0x0000, 0x1FB6, 0x1FB7,
- 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBD, 0x0399, 0x1FBF,
- 0x1FC0, 0x1FC1, 0x1FC2, 0x1FCC, 0x1FC4, 0x0000, 0x1FC6, 0x1FC7,
- 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF,
- 0x1FD8, 0x1FD9, 0x1FD2, 0x1FD3, 0x0000, 0x0000, 0x1FD6, 0x1FD7,
- 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x0000, 0x1FDD, 0x1FDE, 0x1FDF,
- 0x1FE8, 0x1FE9, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FEC, 0x1FE6, 0x1FE7,
- 0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF,
- 0x0000, 0x0000, 0x1FF2, 0x1FFC, 0x1FF4, 0x0000, 0x1FF6, 0x1FF7,
- 0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x1FFD, 0x1FFE, 0x0000
- };
-
- *lower = code;
- *upper = code;
-
- /* Basic Latin and Latin-1 Supplement, U+0000 to U+00FF */
- if (code <= 0x00ff) {
- if (code >= 0x0041 && code <= 0x005a) /* A-Z */
- *lower += 0x20;
- else if (code >= 0x0061 && code <= 0x007a) /* a-z */
- *upper -= 0x20;
- else if ( (code >= 0x00c0 && code <= 0x00d6) ||
- (code >= 0x00d8 && code <= 0x00de) )
- *lower += 0x20;
- else if ( (code >= 0x00e0 && code <= 0x00f6) ||
- (code >= 0x00f8 && code <= 0x00fe) )
- *upper -= 0x20;
- else if (code == 0x00ff) /* y with diaeresis */
- *upper = 0x0178;
- else if (code == 0x00b5) /* micro sign */
- *upper = 0x039c;
- return;
- }
-
- /* Latin Extended-A, U+0100 to U+017F */
- if (code >= 0x0100 && code <= 0x017f) {
- if ( (code >= 0x0100 && code <= 0x012f) ||
- (code >= 0x0132 && code <= 0x0137) ||
- (code >= 0x014a && code <= 0x0177) ) {
- *upper = code & ~1;
- *lower = code | 1;
- }
- else if ( (code >= 0x0139 && code <= 0x0148) ||
- (code >= 0x0179 && code <= 0x017e) ) {
- if (code & 1)
- *lower += 1;
- else
- *upper -= 1;
- }
- else if (code == 0x0130)
- *lower = 0x0069;
- else if (code == 0x0131)
- *upper = 0x0049;
- else if (code == 0x0178)
- *lower = 0x00ff;
- else if (code == 0x017f)
- *upper = 0x0053;
- return;
- }
-
- /* Latin Extended-B, U+0180 to U+024F */
- if (code >= 0x0180 && code <= 0x024f) {
- if (code >= 0x01cd && code <= 0x01dc) {
- if (code & 1)
- *lower += 1;
- else
- *upper -= 1;
- }
- else if ( (code >= 0x01de && code <= 0x01ef) ||
- (code >= 0x01f4 && code <= 0x01f5) ||
- (code >= 0x01f8 && code <= 0x021f) ||
- (code >= 0x0222 && code <= 0x0233) ) {
- *lower |= 1;
- *upper &= ~1;
- }
- else if (code >= 0x0180 && code <= 0x01cc) {
- *lower = LatinExtB_lower_mapping[code - 0x0180];
- *upper = LatinExtB_upper_mapping[code - 0x0180];
- }
- else if (code == 0x01dd)
- *upper = 0x018e;
- else if (code == 0x01f1 || code == 0x01f2) {
- *lower = 0x01f3;
- *upper = 0x01f1;
- }
- else if (code == 0x01f3)
- *upper = 0x01f1;
- else if (code == 0x01f6)
- *lower = 0x0195;
- else if (code == 0x01f7)
- *lower = 0x01bf;
- else if (code == 0x0220)
- *lower = 0x019e;
- return;
- }
-
- /* IPA Extensions, U+0250 to U+02AF */
- if (code >= 0x0253 && code <= 0x0292) {
- *upper = IPAExt_upper_mapping[code - 0x0253];
- }
-
- /* Combining Diacritical Marks, U+0300 to U+036F */
- if (code == 0x0345) {
- *upper = 0x0399;
- }
-
- /* Greek and Coptic, U+0370 to U+03FF */
- if (code >= 0x0370 && code <= 0x03ff) {
- *lower = Greek_lower_mapping[code - 0x0370];
- *upper = Greek_upper_mapping[code - 0x0370];
- if (*upper == 0)
- *upper = code;
- if (*lower == 0)
- *lower = code;
- }
-
- /* Cyrillic and Cyrillic Supplementary, U+0400 to U+052F */
- if ( (code >= 0x0400 && code <= 0x04ff) ||
- (code >= 0x0500 && code <= 0x052f) ) {
- if (code >= 0x0400 && code <= 0x040f)
- *lower += 0x50;
- else if (code >= 0x0410 && code <= 0x042f)
- *lower += 0x20;
- else if (code >= 0x0430 && code <= 0x044f)
- *upper -= 0x20;
- else if (code >= 0x0450 && code <= 0x045f)
- *upper -= 0x50;
- else if ( (code >= 0x0460 && code <= 0x0481) ||
- (code >= 0x048a && code <= 0x04bf) ||
- (code >= 0x04d0 && code <= 0x04f5) ||
- (code >= 0x04f8 && code <= 0x04f9) ||
- (code >= 0x0500 && code <= 0x050f) ) {
- *upper &= ~1;
- *lower |= 1;
- }
- else if (code >= 0x04c1 && code <= 0x04ce) {
- if (code & 1)
- *lower += 1;
- else
- *upper -= 1;
- }
- }
-
- /* Armenian, U+0530 to U+058F */
- if (code >= 0x0530 && code <= 0x058f) {
- if (code >= 0x0531 && code <= 0x0556)
- *lower += 0x30;
- else if (code >=0x0561 && code <= 0x0586)
- *upper -= 0x30;
- }
-
- /* Latin Extended Additional, U+1E00 to U+1EFF */
- if (code >= 0x1e00 && code <= 0x1eff) {
- if ( (code >= 0x1e00 && code <= 0x1e95) ||
- (code >= 0x1ea0 && code <= 0x1ef9) ) {
- *upper &= ~1;
- *lower |= 1;
- }
- else if (code == 0x1e9b)
- *upper = 0x1e60;
- }
-
- /* Greek Extended, U+1F00 to U+1FFF */
- if (code >= 0x1f00 && code <= 0x1fff) {
- *lower = GreekExt_lower_mapping[code - 0x1f00];
- *upper = GreekExt_upper_mapping[code - 0x1f00];
- if (*upper == 0)
- *upper = code;
- if (*lower == 0)
- *lower = code;
- }
-
- /* Letterlike Symbols, U+2100 to U+214F */
- if (code >= 0x2100 && code <= 0x214f) {
- switch (code) {
- case 0x2126: *lower = 0x03c9; break;
- case 0x212a: *lower = 0x006b; break;
- case 0x212b: *lower = 0x00e5; break;
- }
- }
- /* Number Forms, U+2150 to U+218F */
- else if (code >= 0x2160 && code <= 0x216f)
- *lower += 0x10;
- else if (code >= 0x2170 && code <= 0x217f)
- *upper -= 0x10;
- /* Enclosed Alphanumerics, U+2460 to U+24FF */
- else if (code >= 0x24b6 && code <= 0x24cf)
- *lower += 0x1a;
- else if (code >= 0x24d0 && code <= 0x24e9)
- *upper -= 0x1a;
- /* Halfwidth and Fullwidth Forms, U+FF00 to U+FFEF */
- else if (code >= 0xff21 && code <= 0xff3a)
- *lower += 0x20;
- else if (code >= 0xff41 && code <= 0xff5a)
- *upper -= 0x20;
- /* Deseret, U+10400 to U+104FF */
- else if (code >= 0x10400 && code <= 0x10427)
- *lower += 0x28;
- else if (code >= 0x10428 && code <= 0x1044f)
- *upper -= 0x28;
-}
-
-void
-XConvertCase(
- register KeySym sym,
- KeySym *lower,
- KeySym *upper)
-{
- /* Latin 1 keysym */
- if (sym < 0x100) {
- UCSConvertCase(sym, lower, upper);
- return;
- }
-
- /* Unicode keysym */
- if ((sym & 0xff000000) == 0x01000000) {
- UCSConvertCase((sym & 0x00ffffff), lower, upper);
- *upper |= 0x01000000;
- *lower |= 0x01000000;
- return;
- }
-
- /* Legacy keysym */
-
- *lower = sym;
- *upper = sym;
-
- switch(sym >> 8) {
- case 1: /* Latin 2 */
- /* Assume the KeySym is a legal value (ignore discontinuities) */
- if (sym == XK_Aogonek)
- *lower = XK_aogonek;
- else if (sym >= XK_Lstroke && sym <= XK_Sacute)
- *lower += (XK_lstroke - XK_Lstroke);
- else if (sym >= XK_Scaron && sym <= XK_Zacute)
- *lower += (XK_scaron - XK_Scaron);
- else if (sym >= XK_Zcaron && sym <= XK_Zabovedot)
- *lower += (XK_zcaron - XK_Zcaron);
- else if (sym == XK_aogonek)
- *upper = XK_Aogonek;
- else if (sym >= XK_lstroke && sym <= XK_sacute)
- *upper -= (XK_lstroke - XK_Lstroke);
- else if (sym >= XK_scaron && sym <= XK_zacute)
- *upper -= (XK_scaron - XK_Scaron);
- else if (sym >= XK_zcaron && sym <= XK_zabovedot)
- *upper -= (XK_zcaron - XK_Zcaron);
- else if (sym >= XK_Racute && sym <= XK_Tcedilla)
- *lower += (XK_racute - XK_Racute);
- else if (sym >= XK_racute && sym <= XK_tcedilla)
- *upper -= (XK_racute - XK_Racute);
- break;
- case 2: /* Latin 3 */
- /* Assume the KeySym is a legal value (ignore discontinuities) */
- if (sym >= XK_Hstroke && sym <= XK_Hcircumflex)
- *lower += (XK_hstroke - XK_Hstroke);
- else if (sym >= XK_Gbreve && sym <= XK_Jcircumflex)
- *lower += (XK_gbreve - XK_Gbreve);
- else if (sym >= XK_hstroke && sym <= XK_hcircumflex)
- *upper -= (XK_hstroke - XK_Hstroke);
- else if (sym >= XK_gbreve && sym <= XK_jcircumflex)
- *upper -= (XK_gbreve - XK_Gbreve);
- else if (sym >= XK_Cabovedot && sym <= XK_Scircumflex)
- *lower += (XK_cabovedot - XK_Cabovedot);
- else if (sym >= XK_cabovedot && sym <= XK_scircumflex)
- *upper -= (XK_cabovedot - XK_Cabovedot);
- break;
- case 3: /* Latin 4 */
- /* Assume the KeySym is a legal value (ignore discontinuities) */
- if (sym >= XK_Rcedilla && sym <= XK_Tslash)
- *lower += (XK_rcedilla - XK_Rcedilla);
- else if (sym >= XK_rcedilla && sym <= XK_tslash)
- *upper -= (XK_rcedilla - XK_Rcedilla);
- else if (sym == XK_ENG)
- *lower = XK_eng;
- else if (sym == XK_eng)
- *upper = XK_ENG;
- else if (sym >= XK_Amacron && sym <= XK_Umacron)
- *lower += (XK_amacron - XK_Amacron);
- else if (sym >= XK_amacron && sym <= XK_umacron)
- *upper -= (XK_amacron - XK_Amacron);
- break;
- case 6: /* Cyrillic */
- /* Assume the KeySym is a legal value (ignore discontinuities) */
- if (sym >= XK_Serbian_DJE && sym <= XK_Serbian_DZE)
- *lower -= (XK_Serbian_DJE - XK_Serbian_dje);
- else if (sym >= XK_Serbian_dje && sym <= XK_Serbian_dze)
- *upper += (XK_Serbian_DJE - XK_Serbian_dje);
- else if (sym >= XK_Cyrillic_YU && sym <= XK_Cyrillic_HARDSIGN)
- *lower -= (XK_Cyrillic_YU - XK_Cyrillic_yu);
- else if (sym >= XK_Cyrillic_yu && sym <= XK_Cyrillic_hardsign)
- *upper += (XK_Cyrillic_YU - XK_Cyrillic_yu);
- break;
- case 7: /* Greek */
- /* Assume the KeySym is a legal value (ignore discontinuities) */
- if (sym >= XK_Greek_ALPHAaccent && sym <= XK_Greek_OMEGAaccent)
- *lower += (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent);
- else if (sym >= XK_Greek_alphaaccent && sym <= XK_Greek_omegaaccent &&
- sym != XK_Greek_iotaaccentdieresis &&
- sym != XK_Greek_upsilonaccentdieresis)
- *upper -= (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent);
- else if (sym >= XK_Greek_ALPHA && sym <= XK_Greek_OMEGA)
- *lower += (XK_Greek_alpha - XK_Greek_ALPHA);
- else if (sym >= XK_Greek_alpha && sym <= XK_Greek_omega &&
- sym != XK_Greek_finalsmallsigma)
- *upper -= (XK_Greek_alpha - XK_Greek_ALPHA);
- break;
- case 0x13: /* Latin 9 */
- if (sym == XK_OE)
- *lower = XK_oe;
- else if (sym == XK_oe)
- *upper = XK_OE;
- else if (sym == XK_Ydiaeresis)
- *lower = XK_ydiaeresis;
- break;
- }
-}
-
-int
-_XTranslateKey( register Display *dpy,
- KeyCode keycode,
- register unsigned int modifiers,
- unsigned int *modifiers_return,
- KeySym *keysym_return)
-{
- int per;
- register KeySym *syms;
- KeySym sym, lsym, usym;
-
- if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
- return 0;
- *modifiers_return = ((ShiftMask|LockMask)
- | dpy->mode_switch | dpy->num_lock);
- if (((int)keycode < dpy->min_keycode) || ((int)keycode > dpy->max_keycode))
- {
- *keysym_return = NoSymbol;
- return 1;
- }
- per = dpy->keysyms_per_keycode;
- syms = &dpy->keysyms[(keycode - dpy->min_keycode) * per];
- while ((per > 2) && (syms[per - 1] == NoSymbol))
- per--;
- if ((per > 2) && (modifiers & dpy->mode_switch)) {
- syms += 2;
- per -= 2;
- }
- if ((modifiers & dpy->num_lock) &&
- (per > 1 && (IsKeypadKey(syms[1]) || IsPrivateKeypadKey(syms[1])))) {
- if ((modifiers & ShiftMask) ||
- ((modifiers & LockMask) && (dpy->lock_meaning == XK_Shift_Lock)))
- *keysym_return = syms[0];
- else
- *keysym_return = syms[1];
- } else if (!(modifiers & ShiftMask) &&
- (!(modifiers & LockMask) || (dpy->lock_meaning == NoSymbol))) {
- if ((per == 1) || (syms[1] == NoSymbol))
- XConvertCase(syms[0], keysym_return, &usym);
- else
- *keysym_return = syms[0];
- } else if (!(modifiers & LockMask) ||
- (dpy->lock_meaning != XK_Caps_Lock)) {
- if ((per == 1) || ((usym = syms[1]) == NoSymbol))
- XConvertCase(syms[0], &lsym, &usym);
- *keysym_return = usym;
- } else {
- if ((per == 1) || ((sym = syms[1]) == NoSymbol))
- sym = syms[0];
- XConvertCase(sym, &lsym, &usym);
- if (!(modifiers & ShiftMask) && (sym != syms[0]) &&
- ((sym != usym) || (lsym == usym)))
- XConvertCase(syms[0], &lsym, &usym);
- *keysym_return = usym;
- }
- if (*keysym_return == XK_VoidSymbol)
- *keysym_return = NoSymbol;
- return 1;
-}
-
-int
-_XTranslateKeySym(
- Display *dpy,
- register KeySym symbol,
- unsigned int modifiers,
- char *buffer,
- int nbytes)
-{
- register struct _XKeytrans *p;
- int length;
- unsigned long hiBytes;
- register unsigned char c;
-
- if (!symbol)
- return 0;
- /* see if symbol rebound, if so, return that string. */
- for (p = dpy->key_bindings; p; p = p->next) {
- if (((modifiers & AllMods) == p->state) && (symbol == p->key)) {
- length = p->len;
- if (length > nbytes) length = nbytes;
- memcpy (buffer, p->string, length);
- return length;
- }
- }
- /* try to convert to Latin-1, handling control */
- hiBytes = symbol >> 8;
- if (!(nbytes &&
- ((hiBytes == 0) ||
- ((hiBytes == 0xFF) &&
- (((symbol >= XK_BackSpace) && (symbol <= XK_Clear)) ||
- (symbol == XK_Return) ||
- (symbol == XK_Escape) ||
- (symbol == XK_KP_Space) ||
- (symbol == XK_KP_Tab) ||
- (symbol == XK_KP_Enter) ||
- ((symbol >= XK_KP_Multiply) && (symbol <= XK_KP_9)) ||
- (symbol == XK_KP_Equal) ||
- (symbol == XK_Delete))))))
- return 0;
-
- /* if X keysym, convert to ascii by grabbing low 7 bits */
- if (symbol == XK_KP_Space)
- c = XK_space & 0x7F; /* patch encoding botch */
- else if (hiBytes == 0xFF)
- c = symbol & 0x7F;
- else
- c = symbol & 0xFF;
- /* only apply Control key if it makes sense, else ignore it */
- if (modifiers & ControlMask) {
- if ((c >= '@' && c < '\177') || c == ' ') c &= 0x1F;
- else if (c == '2') c = '\000';
- else if (c >= '3' && c <= '7') c -= ('3' - '\033');
- else if (c == '8') c = '\177';
- else if (c == '/') c = '_' & 0x1F;
- }
- buffer[0] = c;
- return 1;
-}
-
-/*ARGSUSED*/
-int
-XLookupString (
- register XKeyEvent *event,
- char *buffer, /* buffer */
- int nbytes, /* space in buffer for characters */
- KeySym *keysym,
- XComposeStatus *status) /* not implemented */
-{
- unsigned int modifiers;
- KeySym symbol;
-
- if (! _XTranslateKey(event->display, event->keycode, event->state,
- &modifiers, &symbol))
- return 0;
-
- if (keysym)
- *keysym = symbol;
- /* arguable whether to use (event->state & ~modifiers) here */
- return _XTranslateKeySym(event->display, symbol, event->state,
- buffer, nbytes);
-}
-
-static void
-_XFreeKeyBindings(
- Display *dpy)
-{
- register struct _XKeytrans *p, *np;
-
- for (p = dpy->key_bindings; p; p = np) {
- np = p->next;
- Xfree(p->string);
- Xfree(p->modifiers);
- Xfree(p);
- }
-}
-
-int
-XRebindKeysym (
- Display *dpy,
- KeySym keysym,
- KeySym *mlist,
- int nm, /* number of modifiers in mlist */
- _Xconst unsigned char *str,
- int nbytes)
-{
- register struct _XKeytrans *tmp, *p;
- int nb;
-
- if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
- return 0;
- LockDisplay(dpy);
- tmp = dpy->key_bindings;
- nb = sizeof(KeySym) * nm;
-
- if ((! (p = Xcalloc( 1, sizeof(struct _XKeytrans)))) ||
- ((! (p->string = Xmalloc(nbytes))) && (nbytes > 0)) ||
- ((! (p->modifiers = Xmalloc(nb))) && (nb > 0))) {
- if (p) {
- Xfree(p->string);
- Xfree(p->modifiers);
- Xfree(p);
- }
- UnlockDisplay(dpy);
- return 0;
- }
-
- dpy->key_bindings = p;
- dpy->free_funcs->key_bindings = _XFreeKeyBindings;
- p->next = tmp; /* chain onto list */
- memcpy (p->string, str, nbytes);
- p->len = nbytes;
- memcpy ((char *) p->modifiers, (char *) mlist, nb);
- p->key = keysym;
- p->mlen = nm;
- ComputeMaskFromKeytrans(dpy, p);
- UnlockDisplay(dpy);
- return 0;
-}
-
-unsigned
-_XKeysymToModifiers(
- Display *dpy,
- KeySym ks)
-{
- CARD8 code,mods;
- register KeySym *kmax;
- register KeySym *k;
- register XModifierKeymap *m;
-
- if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
- return 0;
- kmax = dpy->keysyms +
- (dpy->max_keycode - dpy->min_keycode + 1) * dpy->keysyms_per_keycode;
- k = dpy->keysyms;
- m = dpy->modifiermap;
- mods= 0;
- while (k<kmax) {
- if (*k == ks ) {
- register int j = m->max_keypermod<<3;
-
- code=(((k-dpy->keysyms)/dpy->keysyms_per_keycode)+dpy->min_keycode);
-
- while (--j >= 0) {
- if (code == m->modifiermap[j])
- mods|= (1<<(j/m->max_keypermod));
- }
- }
- k++;
- }
- return mods;
-}
-
-/*
- * given a list of modifiers, computes the mask necessary for later matching.
- * This routine must lookup the key in the Keymap and then search to see
- * what modifier it is bound to, if any. Sets the AnyModifier bit if it
- * can't map some keysym to a modifier.
- */
-static void
-ComputeMaskFromKeytrans(
- Display *dpy,
- register struct _XKeytrans *p)
-{
- register int i;
-
- p->state = AnyModifier;
- for (i = 0; i < p->mlen; i++) {
- p->state|= XkbKeysymToModifiers(dpy,p->modifiers[i]);
- }
- p->state &= AllMods;
-}
diff --git a/nx-X11/lib/X11/KeysymStr.c b/nx-X11/lib/X11/KeysymStr.c
deleted file mode 100644
index ba6c8450a..000000000
--- a/nx-X11/lib/X11/KeysymStr.c
+++ /dev/null
@@ -1,146 +0,0 @@
-
-/*
-
-Copyright 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xresource.h>
-#include <nx-X11/keysymdef.h>
-#include "Xresinternal.h"
-
-#include <stdio.h> /* sprintf */
-
-#define NEEDVTABLE
-#include "ks_tables.h"
-#include "Key.h"
-
-
-typedef struct _GRNData {
- char *name;
- XrmRepresentation type;
- XrmValuePtr value;
-} GRNData;
-
-/*ARGSUSED*/
-static Bool
-SameValue(
- XrmDatabase* db,
- XrmBindingList bindings,
- XrmQuarkList quarks,
- XrmRepresentation* type,
- XrmValuePtr value,
- XPointer data
-)
-{
- GRNData *gd = (GRNData *)data;
-
- if ((*type == gd->type) && (value->size == gd->value->size) &&
- !strncmp((char *)value->addr, (char *)gd->value->addr, value->size))
- {
- gd->name = XrmQuarkToString(*quarks); /* XXX */
- return True;
- }
- return False;
-}
-
-char *XKeysymToString(KeySym ks)
-{
- XrmDatabase keysymdb;
-
- if (!ks || (ks & ((unsigned long) ~0x1fffffff)) != 0)
- return ((char *)NULL);
- if (ks == XK_VoidSymbol)
- ks = 0;
- if (ks <= 0x1fffffff)
- {
- unsigned char val1 = ks >> 24;
- unsigned char val2 = (ks >> 16) & 0xff;
- unsigned char val3 = (ks >> 8) & 0xff;
- unsigned char val4 = ks & 0xff;
- int i = ks % VTABLESIZE;
- int h = i + 1;
- int n = VMAXHASH;
- int idx;
- while ((idx = hashKeysym[i]))
- {
- const unsigned char *entry = &_XkeyTable[idx];
- if ((entry[0] == val1) && (entry[1] == val2) &&
- (entry[2] == val3) && (entry[3] == val4))
- return ((char *)entry + 4);
- if (!--n)
- break;
- i += h;
- if (i >= VTABLESIZE)
- i -= VTABLESIZE;
- }
- }
-
- if ((keysymdb = _XInitKeysymDB()))
- {
- char buf[9];
- XrmValue resval;
- XrmQuark empty = NULLQUARK;
- GRNData data;
-
- snprintf(buf, sizeof(buf), "%lX", ks);
- resval.addr = (XPointer)buf;
- resval.size = strlen(buf) + 1;
- data.name = (char *)NULL;
- data.type = XrmPermStringToQuark("String");
- data.value = &resval;
- (void)XrmEnumerateDatabase(keysymdb, &empty, &empty, XrmEnumAllLevels,
- SameValue, (XPointer)&data);
- if (data.name)
- return data.name;
- }
- if (ks >= 0x01000100 && ks <= 0x0110ffff) {
- KeySym val = ks & 0xffffff;
- char *s;
- int i;
- if (val & 0xff0000)
- i = 10;
- else
- i = 6;
- s = Xmalloc(i);
- if (s == NULL)
- return s;
- i--;
- s[i--] = '\0';
- for (; i; i--){
- unsigned char val1 = val & 0xf;
- val >>= 4;
- if (val1 < 10)
- s[i] = '0'+ val1;
- else
- s[i] = 'A'+ val1 - 10;
- }
- s[i] = 'U';
- return s;
- }
- return ((char *) NULL);
-}
diff --git a/nx-X11/lib/X11/KillCl.c b/nx-X11/lib/X11/KillCl.c
deleted file mode 100644
index cfd8cb000..000000000
--- a/nx-X11/lib/X11/KillCl.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XKillClient(
- register Display *dpy,
- XID resource)
-{
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(KillClient, resource, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/LRGB.c b/nx-X11/lib/X11/LRGB.c
deleted file mode 100644
index 38cc6cfb4..000000000
--- a/nx-X11/lib/X11/LRGB.c
+++ /dev/null
@@ -1,1841 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsLRGB.c
- *
- * DESCRIPTION
- * This file contains the conversion routines:
- * 1. CIE XYZ to RGB intensity
- * 2. RGB intensity to device RGB
- * 3. device RGB to RGB intensity
- * 4. RGB intensity to CIE XYZ
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * LOCAL DEFINES
- * #define declarations local to this package.
- */
-#define EPS 0.001
-#ifndef MIN
-#define MIN(x,y) ((x) > (y) ? (y) : (x))
-#endif /* MIN */
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#endif /* MAX */
-#ifndef MIN3
-#define MIN3(x,y,z) ((x) > (MIN((y), (z))) ? (MIN((y), (z))) : (x))
-#endif /* MIN3 */
-#ifndef MAX3
-#define MAX3(x,y,z) ((x) > (MAX((y), (z))) ? (x) : (MAX((y), (z))))
-#endif /* MAX3 */
-
-/*
- * LOCAL TYPEDEFS
- * typedefs local to this package (for use with local vars).
- *
- */
-
-/*
- * FORWARD DECLARATIONS
- */
-static void LINEAR_RGB_FreeSCCData(XPointer pScreenDataTemp);
-static int LINEAR_RGB_InitSCCData(Display *dpy,
- int screenNumber, XcmsPerScrnInfo *pPerScrnInfo);
-static int XcmsLRGB_RGB_ParseString(register char *spec, XcmsColor *pColor);
-static int XcmsLRGB_RGBi_ParseString(register char *spec, XcmsColor *pColor);
-static Status
-_XcmsGetTableType0(
- IntensityTbl *pTbl,
- int format,
- char **pChar,
- unsigned long *pCount);
-static Status
-_XcmsGetTableType1(
- IntensityTbl *pTbl,
- int format,
- char **pChar,
- unsigned long *pCount);
-
-/*
- * LOCALS VARIABLES
- * Variables local to this package.
- * Usage example:
- * static int ExampleLocalVar;
- */
-
-static unsigned short const MASK[17] = {
- 0x0000, /* 0 bitsPerRGB */
- 0x8000, /* 1 bitsPerRGB */
- 0xc000, /* 2 bitsPerRGB */
- 0xe000, /* 3 bitsPerRGB */
- 0xf000, /* 4 bitsPerRGB */
- 0xf800, /* 5 bitsPerRGB */
- 0xfc00, /* 6 bitsPerRGB */
- 0xfe00, /* 7 bitsPerRGB */
- 0xff00, /* 8 bitsPerRGB */
- 0xff80, /* 9 bitsPerRGB */
- 0xffc0, /* 10 bitsPerRGB */
- 0xffe0, /* 11 bitsPerRGB */
- 0xfff0, /* 12 bitsPerRGB */
- 0xfff8, /* 13 bitsPerRGB */
- 0xfffc, /* 14 bitsPerRGB */
- 0xfffe, /* 15 bitsPerRGB */
- 0xffff /* 16 bitsPerRGB */
-};
-
-
- /*
- * A NULL terminated array of function pointers that when applied
- * in series will convert an XcmsColor structure from XcmsRGBFormat
- * to XcmsCIEXYZFormat.
- */
-static XcmsConversionProc Fl_RGB_to_CIEXYZ[] = {
- (XcmsConversionProc)XcmsRGBToRGBi,
- (XcmsConversionProc)XcmsRGBiToCIEXYZ,
- NULL
-};
-
- /*
- * A NULL terminated array of function pointers that when applied
- * in series will convert an XcmsColor structure from XcmsCIEXYZFormat
- * to XcmsRGBFormat.
- */
-static XcmsConversionProc Fl_CIEXYZ_to_RGB[] = {
- (XcmsConversionProc)XcmsCIEXYZToRGBi,
- (XcmsConversionProc)XcmsRGBiToRGB,
- NULL
-};
-
- /*
- * A NULL terminated array of function pointers that when applied
- * in series will convert an XcmsColor structure from XcmsRGBiFormat
- * to XcmsCIEXYZFormat.
- */
-static XcmsConversionProc Fl_RGBi_to_CIEXYZ[] = {
- (XcmsConversionProc)XcmsRGBiToCIEXYZ,
- NULL
-};
-
- /*
- * A NULL terminated array of function pointers that when applied
- * in series will convert an XcmsColor structure from XcmsCIEXYZFormat
- * to XcmsRGBiFormat.
- */
-static XcmsConversionProc Fl_CIEXYZ_to_RGBi[] = {
- (XcmsConversionProc)XcmsCIEXYZToRGBi,
- NULL
-};
-
- /*
- * RGBi Color Spaces
- */
-XcmsColorSpace XcmsRGBiColorSpace =
- {
- _XcmsRGBi_prefix, /* prefix */
- XcmsRGBiFormat, /* id */
- XcmsLRGB_RGBi_ParseString, /* parseString */
- Fl_RGBi_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_RGBi, /* from_CIEXYZ */
- 1
- };
-
- /*
- * RGB Color Spaces
- */
-XcmsColorSpace XcmsRGBColorSpace =
- {
- _XcmsRGB_prefix, /* prefix */
- XcmsRGBFormat, /* id */
- XcmsLRGB_RGB_ParseString, /* parseString */
- Fl_RGB_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_RGB, /* from_CIEXYZ */
- 1
- };
-
- /*
- * Device-Independent Color Spaces known to the
- * LINEAR_RGB Screen Color Characteristics Function Set.
- */
-static XcmsColorSpace *DDColorSpaces[] = {
- &XcmsRGBColorSpace,
- &XcmsRGBiColorSpace,
- NULL
-};
-
-
-/*
- * GLOBALS
- * Variables declared in this package that are allowed
- * to be used globally.
- */
-
- /*
- * LINEAR_RGB Screen Color Characteristics Function Set.
- */
-XcmsFunctionSet XcmsLinearRGBFunctionSet =
- {
- &DDColorSpaces[0], /* pDDColorSpaces */
- LINEAR_RGB_InitSCCData, /* pInitScrnFunc */
- LINEAR_RGB_FreeSCCData /* pFreeSCCData */
- };
-
-/*
- * DESCRIPTION
- * Contents of Default SCCData should be replaced if other
- * data should be used as default.
- *
- *
- */
-
-/*
- * NAME Tektronix 19" (Sony) CRT
- * PART_NUMBER 119-2451-00
- * MODEL Tek4300, Tek4800
- */
-
-static IntensityRec const Default_RGB_RedTuples[] = {
- /* {unsigned short value, XcmsFloat intensity} */
- { 0x0000, 0.000000 },
- { 0x0909, 0.000000 },
- { 0x0a0a, 0.000936 },
- { 0x0f0f, 0.001481 },
- { 0x1414, 0.002329 },
- { 0x1919, 0.003529 },
- { 0x1e1e, 0.005127 },
- { 0x2323, 0.007169 },
- { 0x2828, 0.009699 },
- { 0x2d2d, 0.012759 },
- { 0x3232, 0.016392 },
- { 0x3737, 0.020637 },
- { 0x3c3c, 0.025533 },
- { 0x4141, 0.031119 },
- { 0x4646, 0.037431 },
- { 0x4b4b, 0.044504 },
- { 0x5050, 0.052373 },
- { 0x5555, 0.061069 },
- { 0x5a5a, 0.070624 },
- { 0x5f5f, 0.081070 },
- { 0x6464, 0.092433 },
- { 0x6969, 0.104744 },
- { 0x6e6e, 0.118026 },
- { 0x7373, 0.132307 },
- { 0x7878, 0.147610 },
- { 0x7d7d, 0.163958 },
- { 0x8282, 0.181371 },
- { 0x8787, 0.199871 },
- { 0x8c8c, 0.219475 },
- { 0x9191, 0.240202 },
- { 0x9696, 0.262069 },
- { 0x9b9b, 0.285089 },
- { 0xa0a0, 0.309278 },
- { 0xa5a5, 0.334647 },
- { 0xaaaa, 0.361208 },
- { 0xafaf, 0.388971 },
- { 0xb4b4, 0.417945 },
- { 0xb9b9, 0.448138 },
- { 0xbebe, 0.479555 },
- { 0xc3c3, 0.512202 },
- { 0xc8c8, 0.546082 },
- { 0xcdcd, 0.581199 },
- { 0xd2d2, 0.617552 },
- { 0xd7d7, 0.655144 },
- { 0xdcdc, 0.693971 },
- { 0xe1e1, 0.734031 },
- { 0xe6e6, 0.775322 },
- { 0xebeb, 0.817837 },
- { 0xf0f0, 0.861571 },
- { 0xf5f5, 0.906515 },
- { 0xfafa, 0.952662 },
- { 0xffff, 1.000000 }
-};
-
-static IntensityRec const Default_RGB_GreenTuples[] = {
- /* {unsigned short value, XcmsFloat intensity} */
- { 0x0000, 0.000000 },
- { 0x1313, 0.000000 },
- { 0x1414, 0.000832 },
- { 0x1919, 0.001998 },
- { 0x1e1e, 0.003612 },
- { 0x2323, 0.005736 },
- { 0x2828, 0.008428 },
- { 0x2d2d, 0.011745 },
- { 0x3232, 0.015740 },
- { 0x3737, 0.020463 },
- { 0x3c3c, 0.025960 },
- { 0x4141, 0.032275 },
- { 0x4646, 0.039449 },
- { 0x4b4b, 0.047519 },
- { 0x5050, 0.056520 },
- { 0x5555, 0.066484 },
- { 0x5a5a, 0.077439 },
- { 0x5f5f, 0.089409 },
- { 0x6464, 0.102418 },
- { 0x6969, 0.116485 },
- { 0x6e6e, 0.131625 },
- { 0x7373, 0.147853 },
- { 0x7878, 0.165176 },
- { 0x7d7d, 0.183604 },
- { 0x8282, 0.203140 },
- { 0x8787, 0.223783 },
- { 0x8c8c, 0.245533 },
- { 0x9191, 0.268384 },
- { 0x9696, 0.292327 },
- { 0x9b9b, 0.317351 },
- { 0xa0a0, 0.343441 },
- { 0xa5a5, 0.370580 },
- { 0xaaaa, 0.398747 },
- { 0xafaf, 0.427919 },
- { 0xb4b4, 0.458068 },
- { 0xb9b9, 0.489165 },
- { 0xbebe, 0.521176 },
- { 0xc3c3, 0.554067 },
- { 0xc8c8, 0.587797 },
- { 0xcdcd, 0.622324 },
- { 0xd2d2, 0.657604 },
- { 0xd7d7, 0.693588 },
- { 0xdcdc, 0.730225 },
- { 0xe1e1, 0.767459 },
- { 0xe6e6, 0.805235 },
- { 0xebeb, 0.843491 },
- { 0xf0f0, 0.882164 },
- { 0xf5f5, 0.921187 },
- { 0xfafa, 0.960490 },
- { 0xffff, 1.000000 }
-};
-
-static IntensityRec const Default_RGB_BlueTuples[] = {
- /* {unsigned short value, XcmsFloat intensity} */
- { 0x0000, 0.000000 },
- { 0x0e0e, 0.000000 },
- { 0x0f0f, 0.001341 },
- { 0x1414, 0.002080 },
- { 0x1919, 0.003188 },
- { 0x1e1e, 0.004729 },
- { 0x2323, 0.006766 },
- { 0x2828, 0.009357 },
- { 0x2d2d, 0.012559 },
- { 0x3232, 0.016424 },
- { 0x3737, 0.021004 },
- { 0x3c3c, 0.026344 },
- { 0x4141, 0.032489 },
- { 0x4646, 0.039481 },
- { 0x4b4b, 0.047357 },
- { 0x5050, 0.056154 },
- { 0x5555, 0.065903 },
- { 0x5a5a, 0.076634 },
- { 0x5f5f, 0.088373 },
- { 0x6464, 0.101145 },
- { 0x6969, 0.114968 },
- { 0x6e6e, 0.129862 },
- { 0x7373, 0.145841 },
- { 0x7878, 0.162915 },
- { 0x7d7d, 0.181095 },
- { 0x8282, 0.200386 },
- { 0x8787, 0.220791 },
- { 0x8c8c, 0.242309 },
- { 0x9191, 0.264937 },
- { 0x9696, 0.288670 },
- { 0x9b9b, 0.313499 },
- { 0xa0a0, 0.339410 },
- { 0xa5a5, 0.366390 },
- { 0xaaaa, 0.394421 },
- { 0xafaf, 0.423481 },
- { 0xb4b4, 0.453547 },
- { 0xb9b9, 0.484592 },
- { 0xbebe, 0.516587 },
- { 0xc3c3, 0.549498 },
- { 0xc8c8, 0.583291 },
- { 0xcdcd, 0.617925 },
- { 0xd2d2, 0.653361 },
- { 0xd7d7, 0.689553 },
- { 0xdcdc, 0.726454 },
- { 0xe1e1, 0.764013 },
- { 0xe6e6, 0.802178 },
- { 0xebeb, 0.840891 },
- { 0xf0f0, 0.880093 },
- { 0xf5f5, 0.919723 },
- { 0xfafa, 0.959715 },
- { 0xffff, 1.00000 }
-};
-
-static IntensityTbl Default_RGB_RedTbl = {
- /* IntensityRec *pBase */
- (IntensityRec *) Default_RGB_RedTuples,
- /* unsigned int nEntries */
- 52
-};
-
-static IntensityTbl Default_RGB_GreenTbl = {
- /* IntensityRec *pBase */
- (IntensityRec *)Default_RGB_GreenTuples,
- /* unsigned int nEntries */
- 50
-};
-
-static IntensityTbl Default_RGB_BlueTbl = {
- /* IntensityRec *pBase */
- (IntensityRec *)Default_RGB_BlueTuples,
- /* unsigned int nEntries */
- 51
-};
-
-static LINEAR_RGB_SCCData Default_RGB_SCCData = {
- /* XcmsFloat XYZtoRGBmatrix[3][3] */
- {
- { 3.48340481253539000, -1.52176374927285200, -0.55923133354049780 },
- {-1.07152751306193600, 1.96593795204372400, 0.03673691339553462 },
- { 0.06351179790497788, -0.20020501000496480, 0.81070942031648220 }
- },
-
- /* XcmsFloat RGBtoXYZmatrix[3][3] */
- {
- { 0.38106149108714790, 0.32025712365352110, 0.24834578525933100 },
- { 0.20729745115140850, 0.68054638776373240, 0.11215616108485920 },
- { 0.02133944350088028, 0.14297193020246480, 1.24172892629665500 }
- },
-
- /* IntensityTbl *pRedTbl */
- &Default_RGB_RedTbl,
-
- /* IntensityTbl *pGreenTbl */
- &Default_RGB_GreenTbl,
-
- /* IntensityTbl *pBlueTbl */
- &Default_RGB_BlueTbl
-};
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * LINEAR_RGB_InitSCCData()
- *
- * SYNOPSIS
- */
-static Status
-LINEAR_RGB_InitSCCData(
- Display *dpy,
- int screenNumber,
- XcmsPerScrnInfo *pPerScrnInfo)
-/*
- * DESCRIPTION
- *
- * RETURNS
- * XcmsFailure if failed.
- * XcmsSuccess if succeeded.
- *
- */
-{
- Atom CorrectAtom = XInternAtom (dpy, XDCCC_CORRECT_ATOM_NAME, True);
- Atom MatrixAtom = XInternAtom (dpy, XDCCC_MATRIX_ATOM_NAME, True);
- int format_return, count, cType, nTables;
- unsigned long nitems, nbytes_return;
- char *property_return, *pChar;
- XcmsFloat *pValue;
-#ifdef ALLDEBUG
- IntensityRec *pIRec;
-#endif /* ALLDEBUG */
- VisualID visualID;
-
- LINEAR_RGB_SCCData *pScreenData, *pScreenDefaultData;
- XcmsIntensityMap *pNewMap;
-
- /*
- * Allocate memory for pScreenData
- */
- if (!(pScreenData = pScreenDefaultData = (LINEAR_RGB_SCCData *)
- Xcalloc (1, sizeof(LINEAR_RGB_SCCData)))) {
- return(XcmsFailure);
- }
-
- /*
- * 1. Get the XYZ->RGB and RGB->XYZ matrices
- */
-
- if (MatrixAtom == None ||
- !_XcmsGetProperty (dpy, RootWindow(dpy, screenNumber), MatrixAtom,
- &format_return, &nitems, &nbytes_return, &property_return) ||
- nitems != 18 || format_return != 32) {
- /*
- * As per the XDCCC, there must be 18 data items and each must be
- * in 32 bits !
- */
- goto FreeSCCData;
-
- } else {
-
- /*
- * RGBtoXYZ and XYZtoRGB matrices
- */
- pValue = (XcmsFloat *) pScreenData;
- pChar = property_return;
- for (count = 0; count < 18; count++) {
- *pValue++ = (long)_XcmsGetElement(format_return, &pChar,
- &nitems) / (XcmsFloat)XDCCC_NUMBER;
- }
- Xfree (property_return);
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.X =
- pScreenData->RGBtoXYZmatrix[0][0] +
- pScreenData->RGBtoXYZmatrix[0][1] +
- pScreenData->RGBtoXYZmatrix[0][2];
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y =
- pScreenData->RGBtoXYZmatrix[1][0] +
- pScreenData->RGBtoXYZmatrix[1][1] +
- pScreenData->RGBtoXYZmatrix[1][2];
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Z =
- pScreenData->RGBtoXYZmatrix[2][0] +
- pScreenData->RGBtoXYZmatrix[2][1] +
- pScreenData->RGBtoXYZmatrix[2][2];
-
- /*
- * Compute the Screen White Point
- */
- if ((pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y < (1.0 - EPS) )
- || (pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y > (1.0 + EPS))) {
- goto FreeSCCData;
- } else {
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y = 1.0;
- }
- pPerScrnInfo->screenWhitePt.format = XcmsCIEXYZFormat;
- pPerScrnInfo->screenWhitePt.pixel = 0;
-
-#ifdef PDEBUG
- printf ("RGB to XYZ Matrix values:\n");
- printf (" %f %f %f\n %f %f %f\n %f %f %f\n",
- pScreenData->RGBtoXYZmatrix[0][0],
- pScreenData->RGBtoXYZmatrix[0][1],
- pScreenData->RGBtoXYZmatrix[0][2],
- pScreenData->RGBtoXYZmatrix[1][0],
- pScreenData->RGBtoXYZmatrix[1][1],
- pScreenData->RGBtoXYZmatrix[1][2],
- pScreenData->RGBtoXYZmatrix[2][0],
- pScreenData->RGBtoXYZmatrix[2][1],
- pScreenData->RGBtoXYZmatrix[2][2]);
- printf ("XYZ to RGB Matrix values:\n");
- printf (" %f %f %f\n %f %f %f\n %f %f %f\n",
- pScreenData->XYZtoRGBmatrix[0][0],
- pScreenData->XYZtoRGBmatrix[0][1],
- pScreenData->XYZtoRGBmatrix[0][2],
- pScreenData->XYZtoRGBmatrix[1][0],
- pScreenData->XYZtoRGBmatrix[1][1],
- pScreenData->XYZtoRGBmatrix[1][2],
- pScreenData->XYZtoRGBmatrix[2][0],
- pScreenData->XYZtoRGBmatrix[2][1],
- pScreenData->XYZtoRGBmatrix[2][2]);
- printf ("Screen White Pt value: %f %f %f\n",
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.X,
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y,
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Z);
-#endif /* PDEBUG */
- }
-
- /*
- * 2. Get the Intensity Profile
- */
- if (CorrectAtom == None ||
- !_XcmsGetProperty (dpy, RootWindow(dpy, screenNumber), CorrectAtom,
- &format_return, &nitems, &nbytes_return, &property_return)) {
- goto FreeSCCData;
- }
-
- pChar = property_return;
-
- while (nitems) {
- switch (format_return) {
- case 8:
- /*
- * Must have at least:
- * VisualID0
- * VisualID1
- * VisualID2
- * VisualID3
- * type
- * count
- * length
- * intensity1
- * intensity2
- */
- if (nitems < 9) {
- goto Free_property_return;
- }
- count = 3;
- break;
- case 16:
- /*
- * Must have at least:
- * VisualID0
- * VisualID3
- * type
- * count
- * length
- * intensity1
- * intensity2
- */
- if (nitems < 7) {
- goto Free_property_return;
- }
- count = 1;
- break;
- case 32:
- /*
- * Must have at least:
- * VisualID0
- * type
- * count
- * length
- * intensity1
- * intensity2
- */
- if (nitems < 6) {
- goto Free_property_return;
- }
- count = 0;
- break;
- default:
- goto Free_property_return;
- }
-
- /*
- * Get VisualID
- */
- visualID = _XcmsGetElement(format_return, &pChar, &nitems);
- while (count--) {
- visualID = visualID << format_return;
- visualID |= _XcmsGetElement(format_return, &pChar, &nitems);
- }
-
- if (visualID == 0) {
- /*
- * This is a shared intensity table
- */
- pScreenData = pScreenDefaultData;
- } else {
- /*
- * This is a per-Visual intensity table
- */
- if (!(pScreenData = (LINEAR_RGB_SCCData *)
- Xcalloc (1, sizeof(LINEAR_RGB_SCCData)))) {
- goto Free_property_return;
- }
- /* copy matrices */
- memcpy((char *)pScreenData, (char *)pScreenDefaultData,
- 18 * sizeof(XcmsFloat));
-
- /* Create, initialize, and add map */
- if (!(pNewMap = (XcmsIntensityMap *)
- Xcalloc (1, sizeof(XcmsIntensityMap)))) {
- Xfree(pScreenData);
- goto Free_property_return;
- }
- pNewMap->visualID = visualID;
- pNewMap->screenData = (XPointer)pScreenData;
- pNewMap->pFreeScreenData = LINEAR_RGB_FreeSCCData;
- pNewMap->pNext =
- (XcmsIntensityMap *)dpy->cms.perVisualIntensityMaps;
- dpy->cms.perVisualIntensityMaps = (XPointer)pNewMap;
- dpy->free_funcs->intensityMaps = _XcmsFreeIntensityMaps;
- }
-
- cType = _XcmsGetElement(format_return, &pChar, &nitems);
- nTables = _XcmsGetElement(format_return, &pChar, &nitems);
-
- if (cType == 0) {
-
- /* Red Intensity Table */
- if (!(pScreenData->pRedTbl = (IntensityTbl *)
- Xcalloc (1, sizeof(IntensityTbl)))) {
- goto Free_property_return;
- }
- if (_XcmsGetTableType0(pScreenData->pRedTbl, format_return, &pChar,
- &nitems) == XcmsFailure) {
- goto FreeRedTbl;
- }
-
- if (nTables == 1) {
- /* Green Intensity Table */
- pScreenData->pGreenTbl = pScreenData->pRedTbl;
- /* Blue Intensity Table */
- pScreenData->pBlueTbl = pScreenData->pRedTbl;
- } else {
- /* Green Intensity Table */
- if (!(pScreenData->pGreenTbl = (IntensityTbl *)
- Xcalloc (1, sizeof(IntensityTbl)))) {
- goto FreeRedTblElements;
- }
- if (_XcmsGetTableType0(pScreenData->pGreenTbl, format_return, &pChar,
- &nitems) == XcmsFailure) {
- goto FreeGreenTbl;
- }
-
- /* Blue Intensity Table */
- if (!(pScreenData->pBlueTbl = (IntensityTbl *)
- Xcalloc (1, sizeof(IntensityTbl)))) {
- goto FreeGreenTblElements;
- }
- if (_XcmsGetTableType0(pScreenData->pBlueTbl, format_return, &pChar,
- &nitems) == XcmsFailure) {
- goto FreeBlueTbl;
- }
- }
- } else if (cType == 1) {
- /* Red Intensity Table */
- if (!(pScreenData->pRedTbl = (IntensityTbl *)
- Xcalloc (1, sizeof(IntensityTbl)))) {
- goto Free_property_return;
- }
- if (_XcmsGetTableType1(pScreenData->pRedTbl, format_return, &pChar,
- &nitems) == XcmsFailure) {
- goto FreeRedTbl;
- }
-
- if (nTables == 1) {
-
- /* Green Intensity Table */
- pScreenData->pGreenTbl = pScreenData->pRedTbl;
- /* Blue Intensity Table */
- pScreenData->pBlueTbl = pScreenData->pRedTbl;
-
- } else {
-
- /* Green Intensity Table */
- if (!(pScreenData->pGreenTbl = (IntensityTbl *)
- Xcalloc (1, sizeof(IntensityTbl)))) {
- goto FreeRedTblElements;
- }
- if (_XcmsGetTableType1(pScreenData->pGreenTbl, format_return, &pChar,
- &nitems) == XcmsFailure) {
- goto FreeGreenTbl;
- }
-
- /* Blue Intensity Table */
- if (!(pScreenData->pBlueTbl = (IntensityTbl *)
- Xcalloc (1, sizeof(IntensityTbl)))) {
- goto FreeGreenTblElements;
- }
- if (_XcmsGetTableType1(pScreenData->pBlueTbl, format_return, &pChar,
- &nitems) == XcmsFailure) {
- goto FreeBlueTbl;
- }
- }
- } else {
- goto Free_property_return;
- }
-
-#ifdef ALLDEBUG
- printf ("Intensity Table RED %d\n", pScreenData->pRedTbl->nEntries);
- pIRec = (IntensityRec *) pScreenData->pRedTbl->pBase;
- for (count = 0; count < pScreenData->pRedTbl->nEntries; count++, pIRec++) {
- printf ("\t0x%4x\t%f\n", pIRec->value, pIRec->intensity);
- }
- if (pScreenData->pGreenTbl->pBase != pScreenData->pRedTbl->pBase) {
- printf ("Intensity Table GREEN %d\n", pScreenData->pGreenTbl->nEntries);
- pIRec = (IntensityRec *)pScreenData->pGreenTbl->pBase;
- for (count = 0; count < pScreenData->pGreenTbl->nEntries; count++, pIRec++) {
- printf ("\t0x%4x\t%f\n", pIRec->value, pIRec->intensity);
- }
- }
- if (pScreenData->pBlueTbl->pBase != pScreenData->pRedTbl->pBase) {
- printf ("Intensity Table BLUE %d\n", pScreenData->pBlueTbl->nEntries);
- pIRec = (IntensityRec *) pScreenData->pBlueTbl->pBase;
- for (count = 0; count < pScreenData->pBlueTbl->nEntries; count++, pIRec++) {
- printf ("\t0x%4x\t%f\n", pIRec->value, pIRec->intensity);
- }
- }
-#endif /* ALLDEBUG */
- }
-
- Xfree (property_return);
-
- /* Free the old memory and use the new structure created. */
- LINEAR_RGB_FreeSCCData(pPerScrnInfo->screenData);
-
- pPerScrnInfo->functionSet = (XPointer) &XcmsLinearRGBFunctionSet;
-
- pPerScrnInfo->screenData = (XPointer) pScreenData;
-
- pPerScrnInfo->state = XcmsInitSuccess;
-
- return(XcmsSuccess);
-
-FreeBlueTbl:
- Xfree(pScreenData->pBlueTbl);
-
-FreeGreenTblElements:
- Xfree(pScreenData->pGreenTbl->pBase);
-
-FreeGreenTbl:
- Xfree(pScreenData->pGreenTbl);
-
-FreeRedTblElements:
- Xfree(pScreenData->pRedTbl->pBase);
-
-FreeRedTbl:
- Xfree(pScreenData->pRedTbl);
-
-Free_property_return:
- Xfree (property_return);
-
-FreeSCCData:
- Xfree(pScreenDefaultData);
- pPerScrnInfo->state = XcmsInitNone;
- return(XcmsFailure);
-}
-
-
-/*
- * NAME
- * LINEAR_RGB_FreeSCCData()
- *
- * SYNOPSIS
- */
-static void
-LINEAR_RGB_FreeSCCData(
- XPointer pScreenDataTemp)
-/*
- * DESCRIPTION
- *
- * RETURNS
- * 0 if failed.
- * 1 if succeeded with no modifications.
- *
- */
-{
- LINEAR_RGB_SCCData *pScreenData = (LINEAR_RGB_SCCData *) pScreenDataTemp;
-
- if (pScreenData && pScreenData != &Default_RGB_SCCData) {
- if (pScreenData->pRedTbl) {
- if (pScreenData->pGreenTbl) {
- if (pScreenData->pRedTbl->pBase !=
- pScreenData->pGreenTbl->pBase) {
- if (pScreenData->pGreenTbl->pBase) {
- Xfree (pScreenData->pGreenTbl->pBase);
- }
- }
- if (pScreenData->pGreenTbl != pScreenData->pRedTbl) {
- Xfree (pScreenData->pGreenTbl);
- }
- }
- if (pScreenData->pBlueTbl) {
- if (pScreenData->pRedTbl->pBase !=
- pScreenData->pBlueTbl->pBase) {
- if (pScreenData->pBlueTbl->pBase) {
- Xfree (pScreenData->pBlueTbl->pBase);
- }
- }
- if (pScreenData->pBlueTbl != pScreenData->pRedTbl) {
- Xfree (pScreenData->pBlueTbl);
- }
- }
- if (pScreenData->pRedTbl->pBase) {
- Xfree (pScreenData->pRedTbl->pBase);
- }
- Xfree (pScreenData->pRedTbl);
- }
- Xfree (pScreenData);
- }
-}
-
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsGetTableType0
- *
- * SYNOPSIS
- */
-static Status
-_XcmsGetTableType0(
- IntensityTbl *pTbl,
- int format,
- char **pChar,
- unsigned long *pCount)
-/*
- * DESCRIPTION
- *
- * RETURNS
- * XcmsFailure if failed.
- * XcmsSuccess if succeeded.
- *
- */
-{
- unsigned int nElements;
- IntensityRec *pIRec;
-
- nElements = pTbl->nEntries =
- _XcmsGetElement(format, pChar, pCount) + 1;
- if (!(pIRec = pTbl->pBase = (IntensityRec *)
- Xcalloc (nElements, sizeof(IntensityRec)))) {
- return(XcmsFailure);
- }
-
- switch (format) {
- case 8:
- for (; nElements--; pIRec++) {
- /* 0xFFFF/0xFF = 0x101 */
- pIRec->value = _XcmsGetElement (format, pChar, pCount) * 0x101;
- pIRec->intensity =
- _XcmsGetElement (format, pChar, pCount) / (XcmsFloat)255.0;
- }
- break;
- case 16:
- for (; nElements--; pIRec++) {
- pIRec->value = _XcmsGetElement (format, pChar, pCount);
- pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
- / (XcmsFloat)65535.0;
- }
- break;
- case 32:
- for (; nElements--; pIRec++) {
- pIRec->value = _XcmsGetElement (format, pChar, pCount);
- pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
- / (XcmsFloat)4294967295.0;
- }
- break;
- default:
- return(XcmsFailure);
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * _XcmsGetTableType1
- *
- * SYNOPSIS
- */
-static Status
-_XcmsGetTableType1(
- IntensityTbl *pTbl,
- int format,
- char **pChar,
- unsigned long *pCount)
-/*
- * DESCRIPTION
- *
- * RETURNS
- * XcmsFailure if failed.
- * XcmsSuccess if succeeded.
- *
- */
-{
- unsigned int count;
- unsigned int max_index;
- IntensityRec *pIRec;
-
- max_index = _XcmsGetElement(format, pChar, pCount);
- pTbl->nEntries = max_index + 1;
- if (!(pIRec = pTbl->pBase = (IntensityRec *)
- Xcalloc (max_index+1, sizeof(IntensityRec)))) {
- return(XcmsFailure);
- }
-
- switch (format) {
- case 8:
- for (count = 0; count < max_index+1; count++, pIRec++) {
- pIRec->value = (count * 65535) / max_index;
- pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
- / (XcmsFloat)255.0;
- }
- break;
- case 16:
- for (count = 0; count < max_index+1; count++, pIRec++) {
- pIRec->value = (count * 65535) / max_index;
- pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
- / (XcmsFloat)65535.0;
- }
- break;
- case 32:
- for (count = 0; count < max_index+1; count++, pIRec++) {
- pIRec->value = (count * 65535) / max_index;
- pIRec->intensity = _XcmsGetElement (format, pChar, pCount)
- / (XcmsFloat)4294967295.0;
- }
- break;
- default:
- return(XcmsFailure);
- }
-
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * ValueCmp
- *
- * SYNOPSIS
- */
-static int
-_XcmsValueCmp(
- IntensityRec *p1, IntensityRec *p2)
-/*
- * DESCRIPTION
- * Compares the value component of two IntensityRec
- * structures.
- *
- * RETURNS
- * 0 if p1->value is equal to p2->value
- * < 0 if p1->value is less than p2->value
- * > 0 if p1->value is greater than p2->value
- *
- */
-{
- return (p1->value - p2->value);
-}
-
-
-/*
- * NAME
- * IntensityCmp
- *
- * SYNOPSIS
- */
-static int
-_XcmsIntensityCmp(
- IntensityRec *p1, IntensityRec *p2)
-/*
- * DESCRIPTION
- * Compares the intensity component of two IntensityRec
- * structures.
- *
- * RETURNS
- * 0 if equal;
- * < 0 if first precedes second
- * > 0 if first succeeds second
- *
- */
-{
- if (p1->intensity < p2->intensity) {
- return (-1);
- }
- if (p1->intensity > p2->intensity) {
- return (XcmsSuccess);
- }
- return (XcmsFailure);
-}
-
-/*
- * NAME
- * ValueInterpolation
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-static int
-_XcmsValueInterpolation(
- IntensityRec *key, IntensityRec *lo, IntensityRec *hi, IntensityRec *answer,
- int bitsPerRGB)
-/*
- * DESCRIPTION
- * Based on a given value, performs a linear interpolation
- * on the intensities between two IntensityRec structures.
- * Note that the bitsPerRGB parameter is ignored.
- *
- * RETURNS
- * Returns 0 if failed; otherwise non-zero.
- */
-{
- XcmsFloat ratio;
-
- ratio = ((XcmsFloat)key->value - (XcmsFloat)lo->value) /
- ((XcmsFloat)hi->value - (XcmsFloat)lo->value);
- answer->value = key->value;
- answer->intensity = (hi->intensity - lo->intensity) * ratio;
- answer->intensity += lo->intensity;
- return (XcmsSuccess);
-}
-
-/*
- * NAME
- * IntensityInterpolation
- *
- * SYNOPSIS
- */
-static int
-_XcmsIntensityInterpolation(
- IntensityRec *key, IntensityRec *lo, IntensityRec *hi, IntensityRec *answer,
- int bitsPerRGB)
-/*
- * DESCRIPTION
- * Based on a given intensity, performs a linear interpolation
- * on the values between two IntensityRec structures.
- * The bitsPerRGB parameter is necessary to perform rounding
- * to the correct number of significant bits.
- *
- * RETURNS
- * Returns 0 if failed; otherwise non-zero.
- */
-{
- XcmsFloat ratio;
- long target, up, down;
- int shift = 16 - bitsPerRGB;
- int max_color = (1 << bitsPerRGB) - 1;
-
- ratio = (key->intensity - lo->intensity) / (hi->intensity - lo->intensity);
- answer->intensity = key->intensity;
- target = hi->value - lo->value;
- target *= ratio;
- target += lo->value;
-
- /*
- * Ok now, lets find the closest in respects to bits per RGB
- */
- up = ((target >> shift) * 0xFFFF) / max_color;
- if (up < target) {
- down = up;
- up = (MIN((down >> shift) + 1, max_color) * 0xFFFF) / max_color;
- } else {
- down = (MAX((up >> shift) - 1, 0) * 0xFFFF) / max_color;
- }
- answer->value = ((up - target) < (target - down) ? up : down);
- answer->value &= MASK[bitsPerRGB];
- return (XcmsSuccess);
-}
-
-
-
-typedef int (*comparProcp)(
- char *p1,
- char *p2);
-typedef int (*interpolProcp)(
- char *key,
- char *lo,
- char *hi,
- char *answer,
- int bitsPerRGB);
-
-/*
- * NAME
- * _XcmsTableSearch
- *
- * SYNOPSIS
- */
-static int
-_XcmsTableSearch(
- char *key,
- int bitsPerRGB,
- char *base,
- unsigned nel,
- unsigned nKeyPtrSize,
- int (*compar)(
- char *p1,
- char *p2),
- int (*interpol)(
- char *key,
- char *lo,
- char *hi,
- char *answer,
- int bitsPerRGB),
- char *answer)
-
-/*
- * DESCRIPTION
- * A binary search through the specificied table.
- *
- * RETURNS
- * Returns 0 if failed; otherwise non-zero.
- *
- */
-{
- char *hi, *lo, *mid, *last;
- int result;
-
- last = hi = base + ((nel - 1) * nKeyPtrSize);
- mid = lo = base;
-
- /* use only the significants bits, then scale into 16 bits */
- ((IntensityRec *)key)->value = ((unsigned long)
- (((IntensityRec *)key)->value >> (16 - bitsPerRGB)) * 0xFFFF)
- / ((1 << bitsPerRGB) - 1);
-
- /* Special case so that zero intensity always maps to zero value */
- if ((*compar) (key,lo) <= 0) {
- memcpy (answer, lo, nKeyPtrSize);
- ((IntensityRec *)answer)->value &= MASK[bitsPerRGB];
- return XcmsSuccess;
- }
- while (mid != last) {
- last = mid;
- mid = lo + (((unsigned)(hi - lo) / nKeyPtrSize) / 2) * nKeyPtrSize;
- result = (*compar) (key, mid);
- if (result == 0) {
-
- memcpy(answer, mid, nKeyPtrSize);
- ((IntensityRec *)answer)->value &= MASK[bitsPerRGB];
- return (XcmsSuccess);
- } else if (result < 0) {
- hi = mid;
- } else {
- lo = mid;
- }
- }
-
- /*
- * If we got to here, we didn't find a solution, so we
- * need to apply interpolation.
- */
- return ((*interpol)(key, lo, hi, answer, bitsPerRGB));
-}
-
-
-/*
- * NAME
- * _XcmsMatVec - multiply a 3 x 3 by a 3 x 1 vector
- *
- * SYNOPSIS
- */
-static void _XcmsMatVec(
- XcmsFloat *pMat, XcmsFloat *pIn, XcmsFloat *pOut)
-/*
- * DESCRIPTION
- * Multiply the passed vector by the passed matrix to return a
- * vector. Matrix is 3x3, vectors are of length 3.
- *
- * RETURNS
- * void
- */
-{
- int i, j;
-
- for (i = 0; i < 3; i++) {
- pOut[i] = 0.0;
- for (j = 0; j < 3; j++)
- pOut[i] += *(pMat+(i*3)+j) * pIn[j];
- }
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-
-/*
- * NAME
- * XcmsLRGB_RGB_ParseString
- *
- * SYNOPSIS
- */
-static int
-XcmsLRGB_RGB_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsRGBFormat.
- *
- * RETURNS
- * 0 if failed, non-zero otherwise.
- */
-{
- register int n, i;
- unsigned short r, g, b;
- char c;
- char *pchar;
- unsigned short *pShort;
-
- /*
- * Check for old # format
- */
- if (*spec == '#') {
- /*
- * Attempt to parse the value portion.
- */
- spec++;
- n = strlen(spec);
- if (n != 3 && n != 6 && n != 9 && n != 12) {
- return(XcmsFailure);
- }
-
- n /= 3;
- g = b = 0;
- do {
- r = g;
- g = b;
- b = 0;
- for (i = n; --i >= 0; ) {
- c = *spec++;
- b <<= 4;
- if (c >= '0' && c <= '9')
- b |= c - '0';
- /* assume string in lowercase
- else if (c >= 'A' && c <= 'F')
- b |= c - ('A' - 10);
- */
- else if (c >= 'a' && c <= 'f')
- b |= c - ('a' - 10);
- else return (XcmsFailure);
- }
- } while (*spec != '\0');
-
- /*
- * Succeeded !
- */
- n <<= 2;
- n = 16 - n;
- /* shift instead of scale, to match old broken semantics */
- pColor->spec.RGB.red = r << n;
- pColor->spec.RGB.green = g << n;
- pColor->spec.RGB.blue = b << n;
- } else {
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (int)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsRGB_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- spec += (n + 1);
- pShort = &pColor->spec.RGB.red;
- for (i = 0; i < 3; i++, pShort++, spec++) {
- n = 0;
- *pShort = 0;
- while (*spec != '/' && *spec != '\0') {
- if (++n > 4) {
- return(XcmsFailure);
- }
- c = *spec++;
- *pShort <<= 4;
- if (c >= '0' && c <= '9')
- *pShort |= c - '0';
- /* assume string in lowercase
- else if (c >= 'A' && c <= 'F')
- *pShort |= c - ('A' - 10);
- */
- else if (c >= 'a' && c <= 'f')
- *pShort |= c - ('a' - 10);
- else return (XcmsFailure);
- }
- if (n == 0)
- return (XcmsFailure);
- if (n < 4) {
- *pShort = ((unsigned long)*pShort * 0xFFFF) / ((1 << n*4) - 1);
- }
- }
- }
- pColor->format = XcmsRGBFormat;
- pColor->pixel = 0;
- return (XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsLRGB_RGBi_ParseString
- *
- * SYNOPSIS
- */
-static int
-XcmsLRGB_RGBi_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsRGBiFormat.
- * The assumed RGBi string syntax is:
- * RGBi:<r>/<g>/<b>
- * Where r, g, and b are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- * 0 if failed, non-zero otherwise.
- */
-{
- size_t n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (size_t)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsRGBi_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.RGBi.red,
- &pColor->spec.RGBi.green,
- &pColor->spec.RGBi.blue) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.RGBi.red,
- &pColor->spec.RGBi.green,
- &pColor->spec.RGBi.blue) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
-
- /*
- * Succeeded !
- */
- pColor->format = XcmsRGBiFormat;
- pColor->pixel = 0;
- return (XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIEXYZToRGBi - convert CIE XYZ to RGB
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIEXYZToRGBi(
- XcmsCCC ccc,
- XcmsColor *pXcmsColors_in_out,/* pointer to XcmsColors to convert */
- unsigned int nColors, /* Number of colors */
- Bool *pCompressed) /* pointer to an array of Bool */
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from RGB format to RGBi format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression.
- * XcmsSuccessWithCompression if succeeded with gamut
- * compression.
- */
-{
- LINEAR_RGB_SCCData *pScreenData;
- XcmsFloat tmp[3];
- int hasCompressed = 0;
- unsigned int i;
- XcmsColor *pColor = pXcmsColors_in_out;
-
- if (ccc == NULL) {
- return(XcmsFailure);
- }
-
- pScreenData = (LINEAR_RGB_SCCData *)ccc->pPerScrnInfo->screenData;
-
- /*
- * XcmsColors should be White Point Adjusted, if necessary, by now!
- */
-
- /*
- * NEW!!! for extended gamut compression
- *
- * 1. Need to zero out pCompressed
- *
- * 2. Need to save initial address of pColor
- *
- * 3. Need to save initial address of pCompressed
- */
-
- for (i = 0; i < nColors; i++) {
-
- /* Make sure format is XcmsCIEXYZFormat */
- if (pColor->format != XcmsCIEXYZFormat) {
- return(XcmsFailure);
- }
-
- /* Multiply [A]-1 * [XYZ] to get RGB intensity */
- _XcmsMatVec((XcmsFloat *) pScreenData->XYZtoRGBmatrix,
- (XcmsFloat *) &pColor->spec, tmp);
-
- if ((MIN3 (tmp[0], tmp[1], tmp[2]) < -EPS) ||
- (MAX3 (tmp[0], tmp[1], tmp[2]) > (1.0 + EPS))) {
-
- /*
- * RGBi out of screen's gamut
- */
-
- if (ccc->gamutCompProc == NULL) {
- /*
- * Aha!! Here's that little trick that will allow
- * gamut compression routines to get the out of bound
- * RGBi.
- */
- memcpy((char *)&pColor->spec, (char *)tmp, sizeof(tmp));
- pColor->format = XcmsRGBiFormat;
- return(XcmsFailure);
- } else if ((*ccc->gamutCompProc)(ccc, pXcmsColors_in_out, nColors,
- i, pCompressed) == 0) {
- return(XcmsFailure);
- }
-
- /*
- * The gamut compression function should return colors in CIEXYZ
- * Also check again to if the new color is within gamut.
- */
- if (pColor->format != XcmsCIEXYZFormat) {
- return(XcmsFailure);
- }
- _XcmsMatVec((XcmsFloat *) pScreenData->XYZtoRGBmatrix,
- (XcmsFloat *) &pColor->spec, tmp);
- if ((MIN3 (tmp[0], tmp[1], tmp[2]) < -EPS) ||
- (MAX3 (tmp[0], tmp[1], tmp[2]) > (1.0 + EPS))) {
- return(XcmsFailure);
- }
- hasCompressed++;
- }
- memcpy((char *)&pColor->spec, (char *)tmp, sizeof(tmp));
- /* These if statements are done to ensure the fudge factor is */
- /* is taken into account. */
- if (pColor->spec.RGBi.red < 0.0) {
- pColor->spec.RGBi.red = 0.0;
- } else if (pColor->spec.RGBi.red > 1.0) {
- pColor->spec.RGBi.red = 1.0;
- }
- if (pColor->spec.RGBi.green < 0.0) {
- pColor->spec.RGBi.green = 0.0;
- } else if (pColor->spec.RGBi.green > 1.0) {
- pColor->spec.RGBi.green = 1.0;
- }
- if (pColor->spec.RGBi.blue < 0.0) {
- pColor->spec.RGBi.blue = 0.0;
- } else if (pColor->spec.RGBi.blue > 1.0) {
- pColor->spec.RGBi.blue = 1.0;
- }
- (pColor++)->format = XcmsRGBiFormat;
- }
- return (hasCompressed ? XcmsSuccessWithCompression : XcmsSuccess);
-}
-
-
-/*
- * NAME
- * LINEAR_RGBi_to_CIEXYZ - convert RGBi to CIEXYZ
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsRGBiToCIEXYZ(
- XcmsCCC ccc,
- XcmsColor *pXcmsColors_in_out,/* pointer to XcmsColors to convert */
- unsigned int nColors, /* Number of colors */
- Bool *pCompressed) /* pointer to a bit array */
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from RGBi format to CIEXYZ format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- */
-{
- LINEAR_RGB_SCCData *pScreenData;
- XcmsFloat tmp[3];
-
- /*
- * pCompressed ignored in this function.
- */
-
- if (ccc == NULL) {
- return(XcmsFailure);
- }
-
- pScreenData = (LINEAR_RGB_SCCData *)ccc->pPerScrnInfo->screenData;
-
- /*
- * XcmsColors should be White Point Adjusted, if necessary, by now!
- */
-
- while (nColors--) {
-
- /* Multiply [A]-1 * [XYZ] to get RGB intensity */
- _XcmsMatVec((XcmsFloat *) pScreenData->RGBtoXYZmatrix,
- (XcmsFloat *) &pXcmsColors_in_out->spec, tmp);
-
- memcpy((char *)&pXcmsColors_in_out->spec, (char *)tmp, sizeof(tmp));
- (pXcmsColors_in_out++)->format = XcmsCIEXYZFormat;
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsRGBiToRGB
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsRGBiToRGB(
- XcmsCCC ccc,
- XcmsColor *pXcmsColors_in_out,/* pointer to XcmsColors to convert */
- unsigned int nColors, /* Number of colors */
- Bool *pCompressed) /* pointer to a bit array */
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from RGBi format to RGB format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression.
- * XcmsSuccessWithCompression if succeeded with gamut
- * compression.
- */
-{
- LINEAR_RGB_SCCData *pScreenData;
- XcmsRGB tmpRGB;
- IntensityRec keyIRec, answerIRec;
-
- /*
- * pCompressed ignored in this function.
- */
-
- if (ccc == NULL) {
- return(XcmsFailure);
- }
-
- pScreenData = (LINEAR_RGB_SCCData *)ccc->pPerScrnInfo->screenData;
-
- while (nColors--) {
-
- /* Make sure format is XcmsRGBiFormat */
- if (pXcmsColors_in_out->format != XcmsRGBiFormat) {
- return(XcmsFailure);
- }
-
- keyIRec.intensity = pXcmsColors_in_out->spec.RGBi.red;
- if (!_XcmsTableSearch((char *)&keyIRec, ccc->visual->bits_per_rgb,
- (char *)pScreenData->pRedTbl->pBase,
- (unsigned)pScreenData->pRedTbl->nEntries,
- (unsigned)sizeof(IntensityRec),
- (comparProcp)_XcmsIntensityCmp, (interpolProcp)_XcmsIntensityInterpolation, (char *)&answerIRec)) {
- return(XcmsFailure);
- }
- tmpRGB.red = answerIRec.value;
-
- keyIRec.intensity = pXcmsColors_in_out->spec.RGBi.green;
- if (!_XcmsTableSearch((char *)&keyIRec, ccc->visual->bits_per_rgb,
- (char *)pScreenData->pGreenTbl->pBase,
- (unsigned)pScreenData->pGreenTbl->nEntries,
- (unsigned)sizeof(IntensityRec),
- (comparProcp)_XcmsIntensityCmp, (interpolProcp)_XcmsIntensityInterpolation, (char *)&answerIRec)) {
- return(XcmsFailure);
- }
- tmpRGB.green = answerIRec.value;
-
- keyIRec.intensity = pXcmsColors_in_out->spec.RGBi.blue;
- if (!_XcmsTableSearch((char *)&keyIRec, ccc->visual->bits_per_rgb,
- (char *)pScreenData->pBlueTbl->pBase,
- (unsigned)pScreenData->pBlueTbl->nEntries,
- (unsigned)sizeof(IntensityRec),
- (comparProcp)_XcmsIntensityCmp, (interpolProcp)_XcmsIntensityInterpolation, (char *)&answerIRec)) {
- return(XcmsFailure);
- }
- tmpRGB.blue = answerIRec.value;
-
- memcpy((char *)&pXcmsColors_in_out->spec, (char *)&tmpRGB, sizeof(XcmsRGB));
- (pXcmsColors_in_out++)->format = XcmsRGBFormat;
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsRGBToRGBi
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsRGBToRGBi(
- XcmsCCC ccc,
- XcmsColor *pXcmsColors_in_out,/* pointer to XcmsColors to convert */
- unsigned int nColors, /* Number of colors */
- Bool *pCompressed) /* pointer to a bit array */
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from RGB format to RGBi format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- */
-{
- LINEAR_RGB_SCCData *pScreenData;
- XcmsRGBi tmpRGBi;
- IntensityRec keyIRec, answerIRec;
-
- /*
- * pCompressed ignored in this function.
- */
-
- if (ccc == NULL) {
- return(XcmsFailure);
- }
-
- pScreenData = (LINEAR_RGB_SCCData *)ccc->pPerScrnInfo->screenData;
-
- while (nColors--) {
-
- /* Make sure format is XcmsRGBFormat */
- if (pXcmsColors_in_out->format != XcmsRGBFormat) {
- return(XcmsFailure);
- }
-
- keyIRec.value = pXcmsColors_in_out->spec.RGB.red;
- if (!_XcmsTableSearch((char *)&keyIRec, ccc->visual->bits_per_rgb,
- (char *)pScreenData->pRedTbl->pBase,
- (unsigned)pScreenData->pRedTbl->nEntries,
- (unsigned)sizeof(IntensityRec),
- (comparProcp)_XcmsValueCmp, (interpolProcp)_XcmsValueInterpolation, (char *)&answerIRec)) {
- return(XcmsFailure);
- }
- tmpRGBi.red = answerIRec.intensity;
-
- keyIRec.value = pXcmsColors_in_out->spec.RGB.green;
- if (!_XcmsTableSearch((char *)&keyIRec, ccc->visual->bits_per_rgb,
- (char *)pScreenData->pGreenTbl->pBase,
- (unsigned)pScreenData->pGreenTbl->nEntries,
- (unsigned)sizeof(IntensityRec),
- (comparProcp)_XcmsValueCmp, (interpolProcp)_XcmsValueInterpolation, (char *)&answerIRec)) {
- return(XcmsFailure);
- }
- tmpRGBi.green = answerIRec.intensity;
-
- keyIRec.value = pXcmsColors_in_out->spec.RGB.blue;
- if (!_XcmsTableSearch((char *)&keyIRec, ccc->visual->bits_per_rgb,
- (char *)pScreenData->pBlueTbl->pBase,
- (unsigned)pScreenData->pBlueTbl->nEntries,
- (unsigned)sizeof(IntensityRec),
- (comparProcp)_XcmsValueCmp, (interpolProcp)_XcmsValueInterpolation, (char *)&answerIRec)) {
- return(XcmsFailure);
- }
- tmpRGBi.blue = answerIRec.intensity;
-
- memcpy((char *)&pXcmsColors_in_out->spec, (char *)&tmpRGBi, sizeof(XcmsRGBi));
- (pXcmsColors_in_out++)->format = XcmsRGBiFormat;
- }
- return(XcmsSuccess);
-}
-
-/*
- * NAME
- * _XcmsInitScrnDefaultInfo
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-int
-_XcmsLRGB_InitScrnDefault(
- Display *dpy,
- int screenNumber,
- XcmsPerScrnInfo *pPerScrnInfo)
-/*
- * DESCRIPTION
- * Given a display and screen number, this routine attempts
- * to initialize the Xcms per Screen Info structure
- * (XcmsPerScrnInfo) with defaults.
- *
- * RETURNS
- * Returns zero if initialization failed; non-zero otherwise.
- */
-{
- pPerScrnInfo->screenData = (XPointer)&Default_RGB_SCCData;
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.X =
- Default_RGB_SCCData.RGBtoXYZmatrix[0][0] +
- Default_RGB_SCCData.RGBtoXYZmatrix[0][1] +
- Default_RGB_SCCData.RGBtoXYZmatrix[0][2];
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y =
- Default_RGB_SCCData.RGBtoXYZmatrix[1][0] +
- Default_RGB_SCCData.RGBtoXYZmatrix[1][1] +
- Default_RGB_SCCData.RGBtoXYZmatrix[1][2];
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Z =
- Default_RGB_SCCData.RGBtoXYZmatrix[2][0] +
- Default_RGB_SCCData.RGBtoXYZmatrix[2][1] +
- Default_RGB_SCCData.RGBtoXYZmatrix[2][2];
- if ((pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y < (1.0 - EPS) )
- || (pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y > (1.0 + EPS))) {
- pPerScrnInfo->screenData = (XPointer)NULL;
- pPerScrnInfo->state = XcmsInitNone;
- return(0);
- }
- pPerScrnInfo->screenWhitePt.spec.CIEXYZ.Y = 1.0;
- pPerScrnInfo->screenWhitePt.format = XcmsCIEXYZFormat;
- pPerScrnInfo->screenWhitePt.pixel = 0;
- pPerScrnInfo->functionSet = (XPointer)&XcmsLinearRGBFunctionSet;
- pPerScrnInfo->state = XcmsInitFailure; /* default initialization */
- return(1);
-}
diff --git a/nx-X11/lib/X11/Lab.c b/nx-X11/lib/X11/Lab.c
deleted file mode 100644
index 6f7075643..000000000
--- a/nx-X11/lib/X11/Lab.c
+++ /dev/null
@@ -1,431 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * CIELab.c
- *
- * DESCRIPTION
- * This file contains routines that support the CIE L*a*b*
- * color space to include conversions to and from the CIE
- * XYZ space. These conversions are from Principles of
- * Color Technology Second Edition, Fred W. Billmeyer, Jr.
- * and Max Saltzman, John Wiley & Sons, Inc., 1981.
- *
- * Note that the range for L* is 0 to 1.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xos.h>
-#include <stdio.h> /* sscanf */
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- * Internal definitions that need NOT be exported to any package
- * or program using this package.
- */
-#ifdef DBL_EPSILON
-# define XMY_DBL_EPSILON DBL_EPSILON
-#else
-# define XMY_DBL_EPSILON 0.00001
-#endif
-#define DIV16BY116 0.137931
-
-/*
- * FORWARD DECLARATIONS
- */
-
-static int CIELab_ParseString(register char *spec, XcmsColor *pColor);
-static Status XcmsCIELab_ValidSpec(XcmsColor *pColor);
-
-
-/*
- * LOCAL VARIABLES
- */
-
-
- /*
- * NULL terminated list of functions applied to get from CIELab to CIEXYZ
- */
-static XcmsConversionProc Fl_CIELab_to_CIEXYZ[] = {
- XcmsCIELabToCIEXYZ,
- NULL
-};
-
- /*
- * NULL terminated list of functions applied to get from CIEXYZ to CIELab
- */
-static XcmsConversionProc Fl_CIEXYZ_to_CIELab[] = {
- XcmsCIEXYZToCIELab,
- NULL
-};
-
-
-/*
- * GLOBALS
- */
- /*
- * CIE Lab Color Space
- */
-XcmsColorSpace XcmsCIELabColorSpace =
- {
- _XcmsCIELab_prefix, /* prefix */
- XcmsCIELabFormat, /* id */
- CIELab_ParseString, /* parseString */
- Fl_CIELab_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_CIELab, /* from_CIEXYZ */
- 1
- };
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CIELab_ParseString
- *
- * SYNOPSIS
- */
-static int
-CIELab_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsCIELabFormat.
- * The assumed CIELab string syntax is:
- * CIELab:<L>/<a>/<b>
- * Where L, a, and b are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- * 0 if failed, non-zero otherwise.
- */
-{
- int n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (int)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsCIELab_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIELab.L_star,
- &pColor->spec.CIELab.a_star,
- &pColor->spec.CIELab.b_star) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIELab.L_star,
- &pColor->spec.CIELab.a_star,
- &pColor->spec.CIELab.b_star) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
- pColor->format = XcmsCIELabFormat;
- pColor->pixel = 0;
-
- return(XcmsCIELab_ValidSpec(pColor));
-}
-
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELab_ValidSpec
- *
- * SYNOPSIS
- */
-static Status
-XcmsCIELab_ValidSpec(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks if color specification valid for CIE L*a*b*.
- *
- * RETURNS
- * XcmsFailure if invalid,
- * XcmsSuccess if valid.
- *
- */
-{
- if (pColor->format != XcmsCIELabFormat
- ||
- (pColor->spec.CIELab.L_star < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIELab.L_star > 100.0 + XMY_DBL_EPSILON)) {
- return(XcmsFailure);
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIELabToCIEXYZ - convert CIELab to CIEXYZ
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELabToCIEXYZ(
- XcmsCCC ccc,
- XcmsColor *pLab_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIELab format to CIEXYZ format.
- *
- * WARNING: This routine assumes that Yn = 1.0;
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsCIEXYZ XYZ_return;
- XcmsFloat tmpFloat, tmpL;
- XcmsColor whitePt;
- unsigned int i;
- XcmsColor *pColor = pColors_in_out;
-
- /*
- * Check arguments
- */
- if (pLab_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Make sure white point is in CIEXYZ form, if not, convert it.
- */
- if (pLab_WhitePt->format != XcmsCIEXYZFormat) {
- /* Make a copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pLab_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt,
- (XcmsColor *)NULL, 1, XcmsCIEXYZFormat)) {
- return(XcmsFailure);
- }
- pLab_WhitePt = &whitePt;
- }
-
- /*
- * Make sure it is a white point, i.e., Y == 1.0
- */
- if (pLab_WhitePt->spec.CIEXYZ.Y != 1.0) {
- return (0);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- /* Make sure original format is CIELab */
- if (!XcmsCIELab_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- /* Calculate Y: assume that Yn = 1.0 */
- tmpL = (pColor->spec.CIELab.L_star + 16.0) / 116.0;
- XYZ_return.Y = tmpL * tmpL * tmpL;
-
- if (XYZ_return.Y < 0.008856) {
- /* Calculate Y: assume that Yn = 1.0 */
- tmpL = pColor->spec.CIELab.L_star / 9.03292;
-
- /* Calculate X */
- XYZ_return.X = pLab_WhitePt->spec.CIEXYZ.X *
- ((pColor->spec.CIELab.a_star / 3893.5) + tmpL);
- /* Calculate Y */
- XYZ_return.Y = tmpL;
- /* Calculate Z */
- XYZ_return.Z = pLab_WhitePt->spec.CIEXYZ.Z *
- (tmpL - (pColor->spec.CIELab.b_star / 1557.4));
- } else {
- /* Calculate X */
- tmpFloat = tmpL + (pColor->spec.CIELab.a_star / 5.0);
- XYZ_return.X = pLab_WhitePt->spec.CIEXYZ.X * tmpFloat * tmpFloat * tmpFloat;
-
- /* Calculate Z */
- tmpFloat = tmpL - (pColor->spec.CIELab.b_star / 2.0);
- XYZ_return.Z = pLab_WhitePt->spec.CIEXYZ.Z * tmpFloat * tmpFloat * tmpFloat;
- }
-
- memcpy((char *)&pColor->spec.CIEXYZ, (char *)&XYZ_return,
- sizeof(XcmsCIEXYZ));
- pColor->format = XcmsCIEXYZFormat;
- }
-
- return (1);
-}
-
-
-/*
- * NAME
- * XcmsCIEXYZToCIELab - convert CIEXYZ to CIELab
- *
- * SYNOPSIS
- */
-Status
-XcmsCIEXYZToCIELab(
- XcmsCCC ccc,
- XcmsColor *pLab_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIEXYZ format to CIELab format.
- *
- * WARNING: This routine assumes that Yn = 1.0;
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsCIELab Lab_return;
- XcmsFloat fX_Xn, fY_Yn, fZ_Zn;
- XcmsColor whitePt;
- unsigned int i;
- XcmsColor *pColor = pColors_in_out;
-
- /*
- * Check arguments
- */
- if (pLab_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Make sure white point is in CIEXYZ form, if not, convert it.
- */
- if (pLab_WhitePt->format != XcmsCIEXYZFormat) {
- /* Make a copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pLab_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL,
- 1, XcmsCIEXYZFormat)) {
- return(XcmsFailure);
- }
- pLab_WhitePt = &whitePt;
- }
-
- /*
- * Make sure it is a white point, i.e., Y == 1.0
- */
- if (pLab_WhitePt->spec.CIEXYZ.Y != 1.0) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- /* Make sure original format is CIELab */
- if (!_XcmsCIEXYZ_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- /* Calculate L*: assume Yn = 1.0 */
- if (pColor->spec.CIEXYZ.Y < 0.008856) {
- fY_Yn = (0.07787 * pColor->spec.CIEXYZ.Y) + DIV16BY116;
- /* note fY_Yn used to compute Lab_return.a below */
- Lab_return.L_star = 116.0 * (fY_Yn - DIV16BY116);
- } else {
- fY_Yn = (XcmsFloat)XCMS_CUBEROOT(pColor->spec.CIEXYZ.Y);
- /* note fY_Yn used to compute Lab_return.a_star below */
- Lab_return.L_star = (116.0 * fY_Yn) - 16.0;
- }
-
- /* Calculate f(X/Xn) */
- if ((fX_Xn = pColor->spec.CIEXYZ.X / pLab_WhitePt->spec.CIEXYZ.X) < 0.008856) {
- fX_Xn = (0.07787 * fX_Xn) + DIV16BY116;
- } else {
- fX_Xn = (XcmsFloat) XCMS_CUBEROOT(fX_Xn);
- }
-
- /* Calculate f(Z/Zn) */
- if ((fZ_Zn = pColor->spec.CIEXYZ.Z / pLab_WhitePt->spec.CIEXYZ.Z) < 0.008856) {
- fZ_Zn = (0.07787 * fZ_Zn) + DIV16BY116;
- } else {
- fZ_Zn = (XcmsFloat) XCMS_CUBEROOT(fZ_Zn);
- }
-
- Lab_return.a_star = 5.0 * (fX_Xn - fY_Yn);
- Lab_return.b_star = 2.0 * (fY_Yn - fZ_Zn);
-
- memcpy((char *)&pColor->spec.CIELab, (char *)&Lab_return,
- sizeof(XcmsCIELab));
- pColor->format = XcmsCIELabFormat;
- }
-
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LabGcC.c b/nx-X11/lib/X11/LabGcC.c
deleted file mode 100644
index a5ec9f457..000000000
--- a/nx-X11/lib/X11/LabGcC.c
+++ /dev/null
@@ -1,127 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELabGcC.c
- *
- * DESCRIPTION
- * Source for XcmsCIELabClipuv() gamut compression routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabClipab - Reduce the chroma for a hue and L*
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIELabClipab (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Reduce the Chroma for a specific hue and chroma to
- * to bring the given color into the gamut of the
- * specified device. As required of gamut compression
- * functions, this routine returns pColor_in_out
- * in XcmsCIEXYZFormat on successful completion.
- *
- * Since this routine works with the L* within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- Status retval;
- XcmsColor *pColor;
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < PseudoColor) {
- /*
- * GRAY !
- */
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIELabFormat);
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIEXYZFormat);
- if (pCompressed) {
- *(pCompressed + i) = True;
- }
- return(XcmsSuccess);
- } else {
- if (pColor->format != XcmsCIELabFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsCIELabFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsCIELabQueryMaxC(ccc,
- degrees(XCMS_CIELAB_PMETRIC_HUE(pColor->spec.CIELab.a_star,
- pColor->spec.CIELab.b_star)),
- pColor->spec.CIELab.L_star,
- pColor) == XcmsFailure) {
- return(XcmsFailure);
- }
- retval = _XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/LabGcL.c b/nx-X11/lib/X11/LabGcL.c
deleted file mode 100644
index 3038b18a8..000000000
--- a/nx-X11/lib/X11/LabGcL.c
+++ /dev/null
@@ -1,174 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELabGcL.c
- *
- * DESCRIPTION
- * Source for XcmsCIELabClipL() gamut compression routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabClipL - Return the closest L*
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIELabClipL (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Return the closest L* for a specific hue and chroma.
- * This routine takes any color as input and outputs
- * a CIE XYZ color.
- *
- * Since this routine works with the L* within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor *pColor;
- XcmsColor Lab_max;
- XcmsFloat hue, chroma, maxChroma;
- Status retval;
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* Inherit Screen WP */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut compression */
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor) {
- /*
- * GRAY !
- */
- return(XcmsFailure);
- } else {
- /* Convert from CIEXYZ to CIE L*u*v* format */
- if (_XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELabFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- hue = XCMS_CIELAB_PMETRIC_HUE(pColor->spec.CIELab.a_star,
- pColor->spec.CIELab.b_star);
- chroma = XCMS_CIELAB_PMETRIC_CHROMA(pColor->spec.CIELab.a_star,
- pColor->spec.CIELab.b_star);
- /* Step 1: compute the maximum L* and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- memcpy((char *)&Lab_max, (char *)pColor, sizeof(XcmsColor));
- if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max,
- (XcmsRGBi *)NULL) == XcmsFailure) {
- return (XcmsFailure);
- }
- maxChroma = XCMS_CIELAB_PMETRIC_CHROMA(Lab_max.spec.CIELab.a_star,
- Lab_max.spec.CIELab.b_star);
-
- /* Now check and return the appropriate L* */
- if (chroma == maxChroma) {
- /* When the chroma input is equal to the maximum chroma */
- /* merely return the L* for that chroma. */
- memcpy((char *)pColor, (char *)&Lab_max, sizeof(XcmsColor));
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- } else if (chroma > maxChroma) {
- /* When the chroma input is greater than the maximum chroma */
- /* merely return the L* and chroma for the given hue. */
- memcpy((char *)pColor, (char *)&Lab_max, sizeof(XcmsColor));
- return (XcmsFailure);
- } else if (pColor->spec.CIELab.L_star < Lab_max.spec.CIELab.L_star) {
- /* Find the minimum lightness for the given chroma. */
- if (pColor->format != XcmsCIELabFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- ScreenWhitePointOfCCC(ccc), 1, XcmsCIELabFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsCIELabQueryMinL(&myCCC, degrees(hue), chroma, pColor)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- } else {
- /* Find the maximum lightness for the given chroma. */
- if (pColor->format != XcmsCIELabFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- ScreenWhitePointOfCCC(ccc), 1, XcmsCIELabFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsCIELabQueryMaxL(&myCCC, degrees(hue), chroma, pColor)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- }
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/LabGcLC.c b/nx-X11/lib/X11/LabGcLC.c
deleted file mode 100644
index 494d34e57..000000000
--- a/nx-X11/lib/X11/LabGcLC.c
+++ /dev/null
@@ -1,223 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELabGcLC.c
- *
- * DESCRIPTION
- * Source for XcmsCIELabClipLab() gamut
- * compression function.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * INTERNALS
- * Internal defines that need NOT be exported to any package or
- * program using this package.
- */
-#define MAXBISECTCOUNT 100
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabClipLab - Return the closest L* and chroma
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIELabClipLab (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * This routine will find the closest L* and chroma
- * for a specific hue. The color input is converted to
- * CIE L*u*v* format and returned as CIE XYZ format.
- *
- * Since this routine works with the L* within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- Status retval;
- XcmsCCCRec myCCC;
- XcmsColor *pColor;
- XcmsColor Lab_max;
- XcmsFloat hue, chroma, maxChroma;
- XcmsFloat Chroma, bestChroma, Lstar, maxLstar, saveLstar;
- XcmsFloat bestLstar, bestastar, bestbstar;
- XcmsFloat nT, saveDist, tmpDist;
- XcmsRGBi rgb_max;
- int nCount, nMaxCount, nI, nILast;
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* inherit screen white */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut compression func */
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor) {
- /*
- * GRAY !
- */
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIELabFormat);
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIEXYZFormat);
- if (pCompressed) {
- *(pCompressed + i) = True;
- }
- return(XcmsSuccess);
- }
-
- /* Convert from CIEXYZ to CIELab format */
- if (_XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELabFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Step 1: compute the maximum L* and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- saveLstar = pColor->spec.CIELab.L_star;
- hue = XCMS_CIELAB_PMETRIC_HUE(pColor->spec.CIELab.a_star,
- pColor->spec.CIELab.b_star);
- chroma = XCMS_CIELAB_PMETRIC_CHROMA(pColor->spec.CIELab.a_star,
- pColor->spec.CIELab.b_star);
- memcpy((char *)&Lab_max, (char *)pColor, sizeof(XcmsColor));
- if (_XcmsCIELabQueryMaxLCRGB (&myCCC, hue, &Lab_max, &rgb_max)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- maxLstar = Lab_max.spec.CIELab.L_star;
-
- /* Now check and return the appropriate L* */
- if (saveLstar == maxLstar) {
- /* When the L* input is equal to the maximum L* */
- /* merely return the maximum Lab point. */
- memcpy((char *)pColor, (char *)&Lab_max, sizeof(XcmsColor));
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- } else {
- /* return the closest point on the hue leaf. */
- /* must do a bisection here to compute the delta e. */
- maxChroma = XCMS_CIELAB_PMETRIC_CHROMA(Lab_max.spec.CIELab.a_star,
- Lab_max.spec.CIELab.b_star);
- nMaxCount = MAXBISECTCOUNT;
- nI = nMaxCount / 2;
- bestLstar = Lstar = pColor->spec.CIELab.L_star;
- bestastar = pColor->spec.CIELab.a_star;
- bestbstar = pColor->spec.CIELab.b_star;
- bestChroma = Chroma = chroma;
- saveDist = XCMS_SQRT(((Chroma - maxChroma) * (Chroma - maxChroma)) +
- ((Lstar - maxLstar) * (Lstar - maxLstar)));
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- nT = (XcmsFloat) nI / (XcmsFloat) nMaxCount;
- if (saveLstar > maxLstar) {
- pColor->spec.RGBi.red = rgb_max.red * (1.0 - nT) + nT;
- pColor->spec.RGBi.green = rgb_max.green * (1.0 - nT) + nT;
- pColor->spec.RGBi.blue = rgb_max.blue * (1.0 - nT) + nT;
- } else {
- pColor->spec.RGBi.red = rgb_max.red - (rgb_max.red * nT);
- pColor->spec.RGBi.green = rgb_max.green - (rgb_max.green * nT);
- pColor->spec.RGBi.blue = rgb_max.blue - (rgb_max.blue * nT);
- }
- pColor->format = XcmsRGBiFormat;
-
- /* Convert from RGBi to CIE Lab */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELabFormat,
- (Bool *) NULL) == XcmsFailure) {
- return (XcmsFailure);
- }
- chroma = XCMS_CIELAB_PMETRIC_CHROMA(pColor->spec.CIELab.a_star,
- pColor->spec.CIELab.b_star);
- tmpDist = XCMS_SQRT(((Chroma - chroma) * (Chroma - chroma)) +
- ((Lstar - pColor->spec.CIELab.L_star) *
- (Lstar - pColor->spec.CIELab.L_star)));
- nILast = nI;
- if (tmpDist > saveDist) {
- nI /= 2;
- } else {
- nI = (nMaxCount + nI) / 2;
- saveDist = tmpDist;
- bestLstar = pColor->spec.CIELab.L_star;
- bestastar = pColor->spec.CIELab.a_star;
- bestbstar = pColor->spec.CIELab.b_star;
- bestChroma = chroma;
- }
- if (nI == nILast || nI == 0) {
- break;
- }
- }
- if (bestChroma >= maxChroma) {
- pColor->spec.CIELab.L_star = maxLstar;
- pColor->spec.CIELab.a_star = Lab_max.spec.CIELab.a_star;
- pColor->spec.CIELab.b_star = Lab_max.spec.CIELab.b_star;
- } else {
- pColor->spec.CIELab.L_star = bestLstar;
- pColor->spec.CIELab.a_star = bestastar;
- pColor->spec.CIELab.b_star = bestbstar;
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
-
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- }
- return(retval);
-}
diff --git a/nx-X11/lib/X11/LabMnL.c b/nx-X11/lib/X11/LabMnL.c
deleted file mode 100644
index 18ff04cd1..000000000
--- a/nx-X11/lib/X11/LabMnL.c
+++ /dev/null
@@ -1,216 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELabMnL.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELabQueryMinL() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS (XcmsFloat)0.001
-#define START_L_STAR (XcmsFloat)40.0
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabQueryMinL - Compute max Lstar for a hue and chroma
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELabQueryMinL(
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue angle in degrees */
- XcmsFloat chroma,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum Lstar for a specified hue_angle and chroma.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded with no modifications
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor max_lc, tmp, prev;
- XcmsFloat max_chroma, tmp_chroma;
- XcmsFloat hue, nT, nChroma, lastChroma, prevChroma;
- XcmsFloat rFactor;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* setup the CCC to use for the conversions. */
- memcpy ((char *) &myCCC, (char *) ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc) NULL;
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- hue = radians(hue_angle);
- tmp.spec.CIELab.L_star = START_L_STAR;
- tmp.spec.CIELab.a_star = XCMS_CIEASTAROFHUE(hue, chroma);
- tmp.spec.CIELab.b_star = XCMS_CIEBSTAROFHUE(hue, chroma);
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsCIELabFormat;
-
- /* Step 1: Obtain the maximum L_star and chroma for this hue. */
- if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- max_chroma = XCMS_CIELAB_PMETRIC_CHROMA(max_lc.spec.CIELab.a_star,
- max_lc.spec.CIELab.b_star);
-
- if (max_chroma <= chroma) {
- /*
- * If the chroma is greater than the chroma for the
- * maximum L/chroma point then the L_star is the
- * the L_star for the maximum L_star/chroma point.
- * This is an error but I return the best approximation I can.
- * Thus the inconsistency.
- */
- memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
-
- /*
- * If the chroma is equal to the chroma for the
- * maximum L_star/chroma point then the L_star is the
- * the L_star for the maximum L* and chroma point.
- */
- /* if (max_chroma == chroma) {
- * memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- * return(XcmsSuccess);
- * }
- */
-
- /* must do a bisection here to compute the maximum L* */
- /* save the structure input so that any elements that */
- /* are not touched are recopied later in the routine. */
- nChroma = chroma;
- tmp_chroma = max_chroma;
- lastChroma = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prevChroma = lastChroma;
- lastChroma = tmp_chroma;
- nT = (nChroma - max_chroma) / max_chroma * rFactor;
- memcpy ((char *)&prev, (char *)&tmp, sizeof(XcmsColor));
- tmp.spec.RGBi.red = rgb_saved.red + (rgb_saved.red * nT);
- tmp.spec.RGBi.green = rgb_saved.green + (rgb_saved.green * nT);
- tmp.spec.RGBi.blue = rgb_saved.blue + (rgb_saved.blue * nT);
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to CIELab */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELabFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Now check the return against what is expected */
- tmp_chroma = XCMS_CIELAB_PMETRIC_CHROMA(tmp.spec.CIELab.a_star,
- tmp.spec.CIELab.b_star);
- if (tmp_chroma <= chroma + EPS && tmp_chroma >= chroma - EPS) {
- /* Found It! */
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
- nChroma += chroma - tmp_chroma;
- if (nChroma > max_chroma) {
- nChroma = max_chroma;
- rFactor *= 0.5; /* selective relaxation employed */
- } else if (nChroma < 0.0) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- return(XcmsSuccess);
- } else if (tmp_chroma <= prevChroma + EPS &&
- tmp_chroma >= prevChroma - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- }
- }
-
- if (nCount >= nMaxCount) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- }
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LabMxC.c b/nx-X11/lib/X11/LabMxC.c
deleted file mode 100644
index fcadd236a..000000000
--- a/nx-X11/lib/X11/LabMxC.c
+++ /dev/null
@@ -1,203 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * CIELabMxC.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELabQueryMaxC() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS (XcmsFloat)0.001
-#define START_CHROMA (XcmsFloat)3.6
-#define TOPL (XcmsFloat)100.0
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabQueryMaxC - max chroma for a hue_angle and L_star
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELabQueryMaxC(
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue angle in degrees */
- XcmsFloat L_star,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum chroma for a specific hue_angle and L_star.
- * The returned format is in XcmsCIELabFormat.
- *
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor tmp;
- XcmsColor max_lc;
- XcmsFloat n_L_star, last_L_star, prev_L_star;
- XcmsFloat hue, lastaStar, lastbStar, /*lastChroma,*/ maxDist, nT, rFactor;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC and inherit screen white Pt */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut comp func */
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- hue = radians(hue_angle);
- tmp.spec.CIELab.L_star = L_star;
- tmp.spec.CIELab.a_star = XCMS_CIEASTAROFHUE(hue, START_CHROMA);
- tmp.spec.CIELab.b_star = XCMS_CIEBSTAROFHUE(hue, START_CHROMA);
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsCIELabFormat;
-
- /* Step 1: compute the maximum L_star and chroma for this hue. */
- memcpy((char *)&max_lc, (char *)&tmp, sizeof(XcmsColor));
- if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Step 2: Do a bisection here to compute the maximum chroma
- * Note the differences between when the point to be found
- * is above the maximum LC point and when it is below.
- */
- if (L_star <= max_lc.spec.CIELab.L_star) {
- maxDist = max_lc.spec.CIELab.L_star;
- } else {
- maxDist = TOPL - max_lc.spec.CIELab.L_star;
- }
-
- n_L_star = L_star;
- last_L_star = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prev_L_star = last_L_star;
- last_L_star = tmp.spec.CIELab.L_star;
-/* lastChroma = XCMS_CIELAB_PMETRIC_CHROMA(tmp.spec.CIELab.a_star, */
-/* tmp.spec.CIELab.b_star); */
- lastaStar = tmp.spec.CIELab.a_star;
- lastbStar = tmp.spec.CIELab.b_star;
- nT = (n_L_star - max_lc.spec.CIELab.L_star) / maxDist * rFactor;
- if (nT > 0) {
- tmp.spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- tmp.spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- tmp.spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- } else {
- tmp.spec.RGBi.red = rgb_saved.red + (rgb_saved.red * nT);
- tmp.spec.RGBi.green = rgb_saved.green + (rgb_saved.green * nT);
- tmp.spec.RGBi.blue = rgb_saved.blue + (rgb_saved.blue * nT);
- }
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to CIELab */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELabFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Now check if we've reached the target L_star
- */
- /* printf("result Lstar = %lf\n", tmp.spec.CIELab.L_star); */
- if (tmp.spec.CIELab.L_star <= L_star + EPS &&
- tmp.spec.CIELab.L_star >= L_star - EPS) {
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
- }
- if (nT > 0) {
- n_L_star += ((TOPL - n_L_star) *
- (L_star - tmp.spec.CIELab.L_star)) / (TOPL - L_star);
- } else {
- n_L_star *= L_star / tmp.spec.CIELuv.L_star;
- }
- if (tmp.spec.CIELab.L_star <= prev_L_star + EPS &&
- tmp.spec.CIELab.L_star >= prev_L_star - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- /* printf("rFactor = %lf\n", rFactor); */
- }
- }
- if (XCMS_FABS(last_L_star - L_star) <
- XCMS_FABS(tmp.spec.CIELab.L_star - L_star)) {
- tmp.spec.CIELab.a_star = lastaStar;
- tmp.spec.CIELab.b_star = lastbStar;
-/* tmp.spec.CIELab.a_star = XCMS_CIEASTAROFHUE(hue, lastChroma); */
-/* tmp.spec.CIELab.b_star = XCMS_CIEBSTAROFHUE(hue, lastChroma); */
- }
- tmp.spec.CIELab.L_star = L_star;
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LabMxL.c b/nx-X11/lib/X11/LabMxL.c
deleted file mode 100644
index 66ef48481..000000000
--- a/nx-X11/lib/X11/LabMxL.c
+++ /dev/null
@@ -1,216 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELabMxL.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELabQueryMaxL() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS (XcmsFloat)0.001
-#define START_L_STAR (XcmsFloat)40
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabQueryMaxL - Compute max Lstar for a hue and chroma
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELabQueryMaxL(
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue in degrees */
- XcmsFloat chroma,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum Lstar for a specified hue_angle and chroma.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded with no modifications
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor max_lc, tmp, prev;
- XcmsFloat max_chroma, tmp_chroma;
- XcmsFloat hue, nT, nChroma, lastChroma, prevChroma;
- XcmsFloat rFactor;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* setup the CCC to use for the conversions. */
- memcpy ((char *) &myCCC, (char *) ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc) NULL;
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- hue = radians(hue_angle);
- tmp.spec.CIELab.L_star = START_L_STAR;
- tmp.spec.CIELab.a_star = XCMS_CIEASTAROFHUE(hue, chroma);
- tmp.spec.CIELab.b_star = XCMS_CIEBSTAROFHUE(hue, chroma);
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsCIELabFormat;
-
- /* Step 1: Obtain the maximum L_star and chroma for this hue. */
- if (_XcmsCIELabQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- max_chroma = XCMS_CIELAB_PMETRIC_CHROMA(max_lc.spec.CIELab.a_star,
- max_lc.spec.CIELab.b_star);
-
- if (max_chroma <= chroma) {
- /*
- * If the chroma is greater than the chroma for the
- * maximum L/chroma point then the L_star is the
- * the L_star for the maximum L_star/chroma point.
- * This is an error but I return the best approximation I can.
- * Thus the inconsistency.
- */
- memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
-
- /*
- * If the chroma is equal to the chroma for the
- * maximum L_star/chroma point then the L_star is the
- * the L_star for the maximum L* and chroma point.
- */
- /* if (max_chroma == chroma) {
- * memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- * return(XcmsSuccess);
- * }
- */
-
- /* must do a bisection here to compute the maximum L* */
- /* save the structure input so that any elements that */
- /* are not touched are recopied later in the routine. */
- nChroma = chroma;
- tmp_chroma = max_chroma;
- lastChroma = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prevChroma = lastChroma;
- lastChroma = tmp_chroma;
- nT = (1.0 - (nChroma / max_chroma)) * rFactor;
- memcpy ((char *)&prev, (char *)&tmp, sizeof(XcmsColor));
- tmp.spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- tmp.spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- tmp.spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to CIELab */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELabFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Now check the return against what is expected */
- tmp_chroma = XCMS_CIELAB_PMETRIC_CHROMA(tmp.spec.CIELab.a_star,
- tmp.spec.CIELab.b_star);
- if (tmp_chroma <= chroma + EPS && tmp_chroma >= chroma - EPS) {
- /* Found It! */
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
- nChroma += chroma - tmp_chroma;
- if (nChroma > max_chroma) {
- nChroma = max_chroma;
- rFactor *= 0.5; /* selective relaxation employed */
- } else if (nChroma < 0.0) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- return(XcmsSuccess);
- } else if (tmp_chroma <= prevChroma + EPS &&
- tmp_chroma >= prevChroma - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- }
- }
-
- if (nCount >= nMaxCount) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- }
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LabMxLC.c b/nx-X11/lib/X11/LabMxLC.c
deleted file mode 100644
index 8cc089a22..000000000
--- a/nx-X11/lib/X11/LabMxLC.c
+++ /dev/null
@@ -1,218 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * CIELabMxVC.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELabQueryMaxLC() gamut boundary
- * querying routine.
- *
- * DOCUMENTATION
- * "TekColor Color Management System, System Implementor's Manual"
- * and
- * Fred W. Billmeyer & Max Saltzman, "Principles of Color
- * Technology", John Wily & Sons, Inc, 1981.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MIN(x,y) ((x) > (y) ? (y) : (x))
-#define MIN3(x,y,z) ((x) > (MIN((y), (z))) ? (MIN((y), (z))) : (x))
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#define MAX3(x,y,z) ((x) > (MAX((y), (z))) ? (x) : (MAX((y), (z))))
-#define START_LSTAR (XcmsFloat)40.0
-#define START_CHROMA (XcmsFloat)3.6
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsCIELabQueryMaxLCRGB - Compute maximum L* and chroma.
- *
- * SYNOPSIS
- */
-Status
-_XcmsCIELabQueryMaxLCRGB(
- XcmsCCC ccc,
- XcmsFloat hue, /* hue in radians */
- XcmsColor *pColor_return,
- XcmsRGBi *pRGB_return)
-/*
- * DESCRIPTION
- * Return the maximum psychometric chroma for a specified
- * hue, and the corresponding L*. This is computed
- * by a binary search of all possible chromas. An assumption
- * is made that there are no local maxima. Use the unrounded
- * Max psychometric chroma because the difference check can be
- * small.
- *
- * NOTE: No local CCC is used because this is a private
- * routine and all routines that call it are expected
- * to behave properly, i.e. send a local CCC with
- * no white adjust function and no gamut compression
- * function.
- *
- * This routine only accepts hue in radians as input and outputs
- * Lab and RGBi.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsFloat nSmall, nLarge;
- XcmsColor tmp;
-
- tmp.format = XcmsCIELabFormat;
- /* Use some unreachable color on the given hue */
- tmp.spec.CIELab.L_star = START_LSTAR;
- tmp.spec.CIELab.a_star = XCMS_CIEASTAROFHUE(hue, START_CHROMA);
- tmp.spec.CIELab.b_star = XCMS_CIEBSTAROFHUE(hue, START_CHROMA);
- /*
- * Convert from Lab to RGB
- *
- * Note that the CIEXYZ to RGBi conversion routine must stuff the
- * out of bounds RGBi values in tmp when the ccc->gamutCompProc
- * is NULL.
- */
- if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp, ScreenWhitePointOfCCC(ccc),
- (unsigned int)1, XcmsRGBiFormat, (Bool *) NULL)
- == XcmsFailure) && tmp.format != XcmsRGBiFormat) {
- return (XcmsFailure);
- }
-
- /* Now pick the smallest RGB */
- nSmall = MIN3(tmp.spec.RGBi.red,
- tmp.spec.RGBi.green,
- tmp.spec.RGBi.blue);
- /* Make the smallest RGB equal to zero */
- tmp.spec.RGBi.red -= nSmall;
- tmp.spec.RGBi.green -= nSmall;
- tmp.spec.RGBi.blue -= nSmall;
-
- /* Now pick the largest RGB */
- nLarge = MAX3(tmp.spec.RGBi.red,
- tmp.spec.RGBi.green,
- tmp.spec.RGBi.blue);
- /* Scale the RGB values based on the largest one */
- tmp.spec.RGBi.red /= nLarge;
- tmp.spec.RGBi.green /= nLarge;
- tmp.spec.RGBi.blue /= nLarge;
- tmp.format = XcmsRGBiFormat;
-
- /* If the calling routine wants RGB value give them the ones used. */
- if (pRGB_return) {
- pRGB_return->red = tmp.spec.RGBi.red;
- pRGB_return->green = tmp.spec.RGBi.green;
- pRGB_return->blue = tmp.spec.RGBi.blue;
- }
-
- /* Convert from RGBi to Lab */
- if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
- ScreenWhitePointOfCCC(ccc), 1, XcmsCIELabFormat, (Bool *) NULL)
- == XcmsFailure) {
- return (XcmsFailure);
- }
-
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return (XcmsSuccess);
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabQueryMaxLC - Compute maximum L* and chroma.
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELabQueryMaxLC (
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue_angle in degrees */
- XcmsColor *pColor_return)
-
-/*
- * DESCRIPTION
- * Return the point of maximum chroma for the specified
- * hue_angle.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- return(_XcmsCIELabQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
- (XcmsRGBi *)NULL));
-}
diff --git a/nx-X11/lib/X11/LabWpAj.c b/nx-X11/lib/X11/LabWpAj.c
deleted file mode 100644
index 0559fdee3..000000000
--- a/nx-X11/lib/X11/LabWpAj.c
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * CIELabWpAj.c
- *
- * DESCRIPTION
- * This file contains routine(s) that support white point
- * adjustment of color specifications in the CIE L*a*b* color
- * space.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * EXTERNS
- */
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELabWhiteShiftColors
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELabWhiteShiftColors(
- XcmsCCC ccc,
- XcmsColor *pWhitePtFrom,
- XcmsColor *pWhitePtTo,
- XcmsColorFormat destSpecFmt,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Adjust color specifications in XcmsColor structures for
- * differences in white points.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression,
- * XcmsSuccessWithCompression if succeeded with gamut
- * compression.
- */
-{
- if (pWhitePtFrom == NULL || pWhitePtTo == NULL || pColors_in_out == NULL) {
- return(0);
- }
-
- /*
- * Convert to CIELab using pWhitePtFrom
- */
- if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
- nColors, XcmsCIELabFormat, pCompressed) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Convert from CIELab to destSpecFmt using pWhitePtTo
- */
- return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out,
- pWhitePtTo, nColors, destSpecFmt, pCompressed));
-}
diff --git a/nx-X11/lib/X11/LiHosts.c b/nx-X11/lib/X11/LiHosts.c
deleted file mode 100644
index 29c36ffb5..000000000
--- a/nx-X11/lib/X11/LiHosts.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-X Window System is a trademark of The Open Group.
-
-*/
-
-/*
- * Copyright 2004 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-/* This can really be considered an os dependent routine */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-/*
- * can be freed using XFree.
- */
-
-XHostAddress *XListHosts (
- register Display *dpy,
- int *nhosts, /* RETURN */
- Bool *enabled) /* RETURN */
-{
- register XHostAddress *outbuf = NULL, *op;
- xListHostsReply reply;
- unsigned char *buf, *bp;
- register unsigned i;
- _X_UNUSED register xListHostsReq *req;
- XServerInterpretedAddress *sip;
-
- *nhosts = 0;
- LockDisplay(dpy);
- GetReq (ListHosts, req);
-
- if (!_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (XHostAddress *) NULL;
- }
-
- if (reply.nHosts) {
- unsigned long nbytes = reply.length << 2; /* number of bytes in reply */
- const unsigned long max_hosts = INT_MAX /
- (sizeof(XHostAddress) + sizeof(XServerInterpretedAddress));
-
- if (reply.nHosts < max_hosts) {
- unsigned long hostbytes = reply.nHosts *
- (sizeof(XHostAddress) + sizeof(XServerInterpretedAddress));
-
- if (reply.length < (INT_MAX >> 2) &&
- (hostbytes >> 2) < ((INT_MAX >> 2) - reply.length))
- outbuf = Xmalloc(nbytes + hostbytes);
- }
-
- if (! outbuf) {
- _XEatDataWords(dpy, reply.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (XHostAddress *) NULL;
- }
- op = outbuf;
- sip = (XServerInterpretedAddress *)
- (((unsigned char *) outbuf) + (reply.nHosts * sizeof(XHostAddress)));
- bp = buf = ((unsigned char *) sip)
- + (reply.nHosts * sizeof(XServerInterpretedAddress));
-
- _XRead (dpy, (char *) buf, nbytes);
-
- for (i = 0; i < reply.nHosts; i++) {
- op->family = ((xHostEntry *) bp)->family;
- op->length =((xHostEntry *) bp)->length;
- if (op->family == FamilyServerInterpreted) {
- char *tp = (char *) (bp + SIZEOF(xHostEntry));
- char *vp = memchr(tp, 0, op->length);
-
- if (vp != NULL) {
- sip->type = tp;
- sip->typelength = vp - tp;
- sip->value = vp + 1;
- sip->valuelength = op->length - (sip->typelength + 1);
- } else {
- sip->type = sip->value = NULL;
- sip->typelength = sip->valuelength = 0;
- }
- op->address = (char *) sip;
- sip++;
- } else {
- op->address = (char *) (bp + SIZEOF(xHostEntry));
- }
- bp += SIZEOF(xHostEntry) + (((op->length + 3) >> 2) << 2);
- op++;
- }
- }
-
- *enabled = reply.enabled;
- *nhosts = reply.nHosts;
- UnlockDisplay(dpy);
- SyncHandle();
- return (outbuf);
-}
-
-
-
-
-
diff --git a/nx-X11/lib/X11/LiICmaps.c b/nx-X11/lib/X11/LiICmaps.c
deleted file mode 100644
index 45a2f2fd3..000000000
--- a/nx-X11/lib/X11/LiICmaps.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Colormap *XListInstalledColormaps(
- register Display *dpy,
- Window win,
- int *n) /* RETURN */
-{
- unsigned long nbytes;
- Colormap *cmaps;
- xListInstalledColormapsReply rep;
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(ListInstalledColormaps, win, req);
-
- if(_XReply(dpy, (xReply *) &rep, 0, xFalse) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- *n = 0;
- return((Colormap *) NULL);
- }
-
- if (rep.nColormaps) {
- nbytes = rep.nColormaps * sizeof(Colormap);
- cmaps = Xmalloc(nbytes);
- if (! cmaps) {
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return((Colormap *) NULL);
- }
- nbytes = rep.nColormaps << 2;
- _XRead32 (dpy, (long *) cmaps, nbytes);
- }
- else cmaps = (Colormap *) NULL;
-
- *n = rep.nColormaps;
- UnlockDisplay(dpy);
- SyncHandle();
- return(cmaps);
-}
-
diff --git a/nx-X11/lib/X11/LiProps.c b/nx-X11/lib/X11/LiProps.c
deleted file mode 100644
index d9c746563..000000000
--- a/nx-X11/lib/X11/LiProps.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Atom *XListProperties(
- register Display *dpy,
- Window window,
- int *n_props) /* RETURN */
-{
- unsigned long nbytes;
- xListPropertiesReply rep;
- Atom *properties;
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(ListProperties, window, req);
- if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- *n_props = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return ((Atom *) NULL);
- }
-
- if (rep.nProperties) {
- nbytes = rep.nProperties * sizeof(Atom);
- properties = Xmalloc (nbytes);
- if (! properties) {
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (Atom *) NULL;
- }
- nbytes = rep.nProperties << 2;
- _XRead32 (dpy, (long *) properties, nbytes);
- }
- else properties = (Atom *) NULL;
-
- *n_props = rep.nProperties;
- UnlockDisplay(dpy);
- SyncHandle();
- return (properties);
-}
diff --git a/nx-X11/lib/X11/ListExt.c b/nx-X11/lib/X11/ListExt.c
deleted file mode 100644
index 7fdf9932c..000000000
--- a/nx-X11/lib/X11/ListExt.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-char **XListExtensions(
- register Display *dpy,
- int *nextensions) /* RETURN */
-{
- xListExtensionsReply rep;
- char **list = NULL;
- char *ch = NULL;
- char *chend;
- int count = 0;
- register unsigned i;
- register int length;
- _X_UNUSED register xReq *req;
- unsigned long rlen = 0;
-
- LockDisplay(dpy);
- GetEmptyReq (ListExtensions, req);
-
- if (! _XReply (dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (char **) NULL;
- }
-
- if (rep.nExtensions) {
- list = Xmalloc (rep.nExtensions * sizeof (char *));
- if (rep.length > 0 && rep.length < (INT_MAX >> 2)) {
- rlen = rep.length << 2;
- ch = Xmalloc (rlen + 1);
- /* +1 to leave room for last null-terminator */
- }
-
- if ((!list) || (!ch)) {
- Xfree(list);
- Xfree(ch);
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (char **) NULL;
- }
-
- _XReadPad (dpy, ch, rlen);
- /*
- * unpack into null terminated strings.
- */
- chend = ch + (rlen + 1);
- length = *ch;
- for (i = 0; i < rep.nExtensions; i++) {
- if (ch + length < chend) {
- list[i] = ch+1; /* skip over length */
- ch += length + 1; /* find next length ... */
- if (ch <= chend) {
- length = *ch;
- *ch = '\0'; /* and replace with null-termination */
- count++;
- } else {
- list[i] = NULL;
- }
- } else
- list[i] = NULL;
- }
- }
-
- *nextensions = count;
- UnlockDisplay(dpy);
- SyncHandle();
- return (list);
-}
-
-int
-XFreeExtensionList (char **list)
-{
- if (list != NULL) {
- Xfree (list[0]-1);
- Xfree (list);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/LoadFont.c b/nx-X11/lib/X11/LoadFont.c
deleted file mode 100644
index f547976ba..000000000
--- a/nx-X11/lib/X11/LoadFont.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Font
-XLoadFont (
- register Display *dpy,
- _Xconst char *name)
-{
- register long nbytes;
- Font fid;
- register xOpenFontReq *req;
-
- if (_XF86LoadQueryLocaleFont(dpy, name, (XFontStruct **)0, &fid))
- return fid;
-
- LockDisplay(dpy);
- GetReq(OpenFont, req);
- nbytes = req->nbytes = name ? strlen(name) : 0;
- req->fid = fid = XAllocID(dpy);
- req->length += (nbytes+3)>>2;
- Data (dpy, name, nbytes);
- UnlockDisplay(dpy);
- SyncHandle();
- return (fid);
- /* can't return (req->fid) since request may have already been sent */
-}
-
diff --git a/nx-X11/lib/X11/LockDis.c b/nx-X11/lib/X11/LockDis.c
deleted file mode 100644
index 12dd97df0..000000000
--- a/nx-X11/lib/X11/LockDis.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*
-
-Copyright 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/*
- * Author: Stephen Gildea, MIT X Consortium
- *
- * XLockDis.c - multi-thread application-level locking routines
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#ifdef XTHREADS
-#include "locking.h"
-#endif
-
-void
-XLockDisplay(
- register Display* dpy)
-{
-#ifdef XTHREADS
- LockDisplay(dpy);
- if (dpy->lock)
- (*dpy->lock->user_lock_display)(dpy);
- /*
- * We want the threads in the reply queue to all get out before
- * XLockDisplay returns, in case they have any side effects the
- * caller of XLockDisplay was trying to protect against.
- * XLockDisplay puts itself at the head of the event waiters queue
- * to wait for all the replies to come in.
- */
- if (dpy->lock && dpy->lock->reply_awaiters) {
- struct _XCVList *cvl;
-
- cvl = (*dpy->lock->create_cvl)(dpy);
-
- /* stuff ourselves on the head of the queue */
- cvl->next = dpy->lock->event_awaiters;
- dpy->lock->event_awaiters = cvl;
-
- while (dpy->lock->reply_awaiters)
- ConditionWait(dpy, cvl->cv);
- UnlockNextEventReader(dpy); /* pass the signal on */
- }
- UnlockDisplay(dpy);
-#endif
-}
-
-void
-XUnlockDisplay(
- register Display* dpy)
-{
-#ifdef XTHREADS
- LockDisplay(dpy);
- if (dpy->lock)
- (*dpy->lock->user_unlock_display)(dpy);
- UnlockDisplay(dpy);
-#endif
-}
diff --git a/nx-X11/lib/X11/LookupCol.c b/nx-X11/lib/X11/LookupCol.c
deleted file mode 100644
index f7f969f56..000000000
--- a/nx-X11/lib/X11/LookupCol.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-
-Copyright 1985, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-
-Status
-XLookupColor (
- register Display *dpy,
- Colormap cmap,
- _Xconst char *spec,
- XColor *def,
- XColor *scr)
-{
- register int n;
- xLookupColorReply reply;
- register xLookupColorReq *req;
- XcmsCCC ccc;
- XcmsColor cmsColor_exact;
-
-#ifdef XCMS
- /*
- * Let's Attempt to use Xcms and i18n approach to Parse Color
- */
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- const char *tmpName = spec;
-
- switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
- XcmsRGBFormat)) {
- case XcmsSuccess:
- case XcmsSuccessWithCompression:
- _XcmsRGB_to_XColor(&cmsColor_exact, def, 1);
- memcpy((char *)scr, (char *)def, sizeof(XColor));
- _XUnresolveColor(ccc, scr);
- return(1);
- case XcmsFailure:
- case _XCMS_NEWNAME:
- /*
- * if the result was _XCMS_NEWNAME tmpName points to
- * a string in cmsColNm.c:pairs table, for example,
- * gray70 would become tekhvc:0.0/70.0/0.0
- */
- break;
- }
- }
-#endif
-
- /*
- * Xcms and i18n methods failed, so lets pass it to the server
- * for parsing.
- */
-
- n = strlen (spec);
- LockDisplay(dpy);
- GetReq (LookupColor, req);
- req->cmap = cmap;
- req->nbytes = n;
- req->length += (n + 3) >> 2;
- Data (dpy, spec, (long)n);
- if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
- def->red = reply.exactRed;
- def->green = reply.exactGreen;
- def->blue = reply.exactBlue;
-
- scr->red = reply.screenRed;
- scr->green = reply.screenGreen;
- scr->blue = reply.screenBlue;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return (1);
-}
diff --git a/nx-X11/lib/X11/LowerWin.c b/nx-X11/lib/X11/LowerWin.c
deleted file mode 100644
index d430e6fd7..000000000
--- a/nx-X11/lib/X11/LowerWin.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XLowerWindow(
- Display *dpy,
- Window w)
-{
- register xConfigureWindowReq *req;
- unsigned long val = Below; /* needed for macro */
-
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 4, req);
- req->window = w;
- req->mask = CWStackMode;
- OneDataCard32 (dpy, NEXTPTR(req,xConfigureWindowReq), val);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/Luv.c b/nx-X11/lib/X11/Luv.c
deleted file mode 100644
index 2bce977ea..000000000
--- a/nx-X11/lib/X11/Luv.c
+++ /dev/null
@@ -1,401 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * CIELuv.c
- *
- * DESCRIPTION
- * This file contains routines that support the CIE L*u*v*
- * color space to include conversions to and from the CIE
- * XYZ space.
- *
- * DOCUMENTATION
- * "TekColor Color Management System, System Implementor's Manual"
- * and
- * Fred W. Billmeyer & Max Saltzman, "Principles of Color
- * Technology", John Wily & Sons, Inc, 1981.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-#include <stdio.h> /* sscanf */
-
-
-/*
- * FORWARD DECLARATIONS
- */
-
-static int CIELuv_ParseString(register char *spec, XcmsColor *pColor);
-static Status XcmsCIELuv_ValidSpec(XcmsColor *pColor);
-
-/*
- * DEFINES
- * Internal definitions that need NOT be exported to any package
- * or program using this package.
- */
-#ifdef DBL_EPSILON
-# define XMY_DBL_EPSILON DBL_EPSILON
-#else
-# define XMY_DBL_EPSILON 0.00001
-#endif
-
-
-/*
- * LOCAL VARIABLES
- */
-
- /*
- * NULL terminated list of functions applied to get from CIELuv to CIEXYZ
- */
-static XcmsConversionProc Fl_CIELuv_to_CIEXYZ[] = {
- XcmsCIELuvToCIEuvY,
- XcmsCIEuvYToCIEXYZ,
- NULL
-};
-
- /*
- * NULL terminated list of functions applied to get from CIEXYZ to CIELuv
- */
-static XcmsConversionProc Fl_CIEXYZ_to_CIELuv[] = {
- XcmsCIEXYZToCIEuvY,
- XcmsCIEuvYToCIELuv,
- NULL
-};
-
-/*
- * GLOBALS
- */
-
- /*
- * CIE Luv Color Space
- */
-XcmsColorSpace XcmsCIELuvColorSpace =
- {
- _XcmsCIELuv_prefix, /* prefix */
- XcmsCIELuvFormat, /* id */
- CIELuv_ParseString, /* parseString */
- Fl_CIELuv_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_CIELuv, /* from_CIEXYZ */
- 1
- };
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CIELuv_ParseString
- *
- * SYNOPSIS
- */
-static int
-CIELuv_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsCIELuvFormat.
- * The assumed CIELuv string syntax is:
- * CIELuv:<L>/<u>/<v>
- * Where L, u, and v are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- * 0 if failed, non-zero otherwise.
- */
-{
- int n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (int)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsCIELuv_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIELuv.L_star,
- &pColor->spec.CIELuv.u_star,
- &pColor->spec.CIELuv.v_star) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIELuv.L_star,
- &pColor->spec.CIELuv.u_star,
- &pColor->spec.CIELuv.v_star) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
- pColor->format = XcmsCIELuvFormat;
- pColor->pixel = 0;
- return(XcmsCIELuv_ValidSpec(pColor));
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuv_ValidSpec
- *
- * SYNOPSIS
- */
-static Status
-XcmsCIELuv_ValidSpec(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks if color specification valid for CIE L*u*v*.
- *
- * RETURNS
- * XcmsFailure if invalid,
- * XcmsSuccess if valid.
- *
- */
-{
- if (pColor->format != XcmsCIELuvFormat
- ||
- (pColor->spec.CIELuv.L_star < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIELuv.L_star > 100.0 + XMY_DBL_EPSILON)) {
- return(XcmsFailure);
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIELuvToCIEuvY - convert CIELuv to CIEuvY
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELuvToCIEuvY(
- XcmsCCC ccc,
- XcmsColor *pLuv_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIELuv format to CIEuvY format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsColor *pColor = pColors_in_out;
- XcmsColor whitePt;
- XcmsCIEuvY uvY_return;
- XcmsFloat tmpVal;
- unsigned int i;
-
- /*
- * Check arguments
- */
- if (pLuv_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Make sure white point is in CIEuvY form
- */
- if (pLuv_WhitePt->format != XcmsCIEuvYFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pLuv_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL,
- 1, XcmsCIEuvYFormat)) {
- return(XcmsFailure);
- }
- pLuv_WhitePt = &whitePt;
- }
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (pLuv_WhitePt->spec.CIEuvY.Y != 1.0) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- /* Make sure original format is CIELuv and is valid */
- if (!XcmsCIELuv_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- if (pColor->spec.CIELuv.L_star < 7.99953624) {
- uvY_return.Y = pColor->spec.CIELuv.L_star / 903.29;
- } else {
- tmpVal = (pColor->spec.CIELuv.L_star + 16.0) / 116.0;
- uvY_return.Y = tmpVal * tmpVal * tmpVal; /* tmpVal ** 3 */
- }
-
-
-
- if (pColor->spec.CIELuv.L_star == 0.0) {
- uvY_return.u_prime = pLuv_WhitePt->spec.CIEuvY.u_prime;
- uvY_return.v_prime = pLuv_WhitePt->spec.CIEuvY.v_prime;
- } else {
- tmpVal = 13.0 * (pColor->spec.CIELuv.L_star / 100.0);
- uvY_return.u_prime = pColor->spec.CIELuv.u_star/tmpVal +
- pLuv_WhitePt->spec.CIEuvY.u_prime;
- uvY_return.v_prime = pColor->spec.CIELuv.v_star/tmpVal +
- pLuv_WhitePt->spec.CIEuvY.v_prime;
- }
- /* Copy result to pColor */
- memcpy((char *)&pColor->spec, (char *)&uvY_return, sizeof(XcmsCIEuvY));
-
- /* Identify that the format is now CIEuvY */
- pColor->format = XcmsCIEuvYFormat;
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIEuvYToCIELuv - convert CIEuvY to CIELuv
- *
- * SYNOPSIS
- */
-Status
-XcmsCIEuvYToCIELuv(
- XcmsCCC ccc,
- XcmsColor *pLuv_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIEuvY format to CIELab format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsColor *pColor = pColors_in_out;
- XcmsColor whitePt;
- XcmsCIELuv Luv_return;
- XcmsFloat tmpVal;
- unsigned int i;
-
- /*
- * Check arguments
- */
- if (pLuv_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Make sure white point is in CIEuvY form
- */
- if (pLuv_WhitePt->format != XcmsCIEuvYFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pLuv_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt,
- (XcmsColor *)NULL, 1, XcmsCIEuvYFormat)) {
- return(XcmsFailure);
- }
- pLuv_WhitePt = &whitePt;
- }
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (pLuv_WhitePt->spec.CIEuvY.Y != 1.0) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- if (!_XcmsCIEuvY_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- /* Now convert the uvY to Luv */
- Luv_return.L_star =
- (pColor->spec.CIEuvY.Y < 0.008856)
- ?
- (pColor->spec.CIEuvY.Y * 903.29)
- :
- ((XcmsFloat)(XCMS_CUBEROOT(pColor->spec.CIEuvY.Y) * 116.0) - 16.0);
- tmpVal = 13.0 * (Luv_return.L_star / 100.0);
- Luv_return.u_star = tmpVal *
- (pColor->spec.CIEuvY.u_prime - pLuv_WhitePt->spec.CIEuvY.u_prime);
- Luv_return.v_star = tmpVal *
- (pColor->spec.CIEuvY.v_prime - pLuv_WhitePt->spec.CIEuvY.v_prime);
-
- /* Copy result to pColor */
- memcpy((char *)&pColor->spec, (char *)&Luv_return, sizeof(XcmsCIELuv));
-
- /* Identify that the format is now CIEuvY */
- pColor->format = XcmsCIELuvFormat;
- }
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LuvGcC.c b/nx-X11/lib/X11/LuvGcC.c
deleted file mode 100644
index cadf4a8b2..000000000
--- a/nx-X11/lib/X11/LuvGcC.c
+++ /dev/null
@@ -1,127 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELuvGcC.c
- *
- * DESCRIPTION
- * Source for XcmsCIELuvClipuv() gamut compression routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvClipuv - Reduce the chroma for a hue and L*
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIELuvClipuv (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Reduce the Chroma for a specific hue and chroma to
- * to bring the given color into the gamut of the
- * specified device. As required of gamut compression
- * functions, this routine returns pColor_in_out
- * in XcmsCIEXYZFormat on successful completion.
- *
- * Since this routine works with the L* within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- Status retval;
- XcmsColor *pColor;
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < PseudoColor) {
- /*
- * GRAY !
- */
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIELuvFormat);
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIEXYZFormat);
- if (pCompressed) {
- *(pCompressed + i) = True;
- }
- return(XcmsSuccess);
- } else {
- if (pColor->format != XcmsCIELuvFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsCIELuvFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsCIELuvQueryMaxC(ccc,
- degrees(XCMS_CIELUV_PMETRIC_HUE(pColor->spec.CIELuv.u_star,
- pColor->spec.CIELuv.v_star)),
- pColor->spec.CIELuv.L_star,
- pColor) == XcmsFailure) {
- return(XcmsFailure);
- }
- retval = _XcmsDIConvertColors(ccc, pColor,
- &ccc->pPerScrnInfo->screenWhitePt, 1, XcmsCIEXYZFormat);
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/LuvGcL.c b/nx-X11/lib/X11/LuvGcL.c
deleted file mode 100644
index f5b6d99e4..000000000
--- a/nx-X11/lib/X11/LuvGcL.c
+++ /dev/null
@@ -1,174 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELuvGcL.c
- *
- * DESCRIPTION
- * Source for XcmsCIELuvClipL() gamut compression routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvClipL - Return the closest L*
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIELuvClipL (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Return the closest L* for a specific hue and chroma.
- * This routine takes any color as input and outputs
- * a CIE XYZ color.
- *
- * Since this routine works with the L* within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor *pColor;
- XcmsColor Luv_max;
- XcmsFloat hue, chroma, maxChroma;
- Status retval;
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* Inherit Screen WP */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut compression */
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor) {
- /*
- * GRAY !
- */
- return(XcmsFailure);
- } else {
- /* Convert from CIEXYZ to CIE L*u*v* format */
- if (_XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELuvFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- hue = XCMS_CIELUV_PMETRIC_HUE(pColor->spec.CIELuv.u_star,
- pColor->spec.CIELuv.v_star);
- chroma = XCMS_CIELUV_PMETRIC_CHROMA(pColor->spec.CIELuv.u_star,
- pColor->spec.CIELuv.v_star);
- /* Step 1: compute the maximum L* and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- memcpy((char *)&Luv_max, (char *)pColor, sizeof(XcmsColor));
- if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max,
- (XcmsRGBi *)NULL) == XcmsFailure) {
- return (XcmsFailure);
- }
- maxChroma = XCMS_CIELUV_PMETRIC_CHROMA(Luv_max.spec.CIELuv.u_star,
- Luv_max.spec.CIELuv.v_star);
-
- /* Now check and return the appropriate L* */
- if (chroma == maxChroma) {
- /* When the chroma input is equal to the maximum chroma */
- /* merely return the L* for that chroma. */
- memcpy((char *)pColor, (char *)&Luv_max, sizeof(XcmsColor));
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- } else if (chroma > maxChroma) {
- /* When the chroma input is greater than the maximum chroma */
- /* merely return the L* and chroma for the given hue. */
- memcpy((char *)pColor, (char *)&Luv_max, sizeof(XcmsColor));
- return (XcmsFailure);
- } else if (pColor->spec.CIELuv.L_star < Luv_max.spec.CIELuv.L_star) {
- /* Find the minimum lightness for the given chroma. */
- if (pColor->format != XcmsCIELuvFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- ScreenWhitePointOfCCC(ccc), 1, XcmsCIELuvFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsCIELuvQueryMinL(&myCCC, degrees(hue), chroma, pColor)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- } else {
- /* Find the maximum lightness for the given chroma. */
- if (pColor->format != XcmsCIELuvFormat) {
- if (_XcmsDIConvertColors(ccc, pColor,
- ScreenWhitePointOfCCC(ccc), 1, XcmsCIELuvFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (XcmsCIELuvQueryMaxL(&myCCC, degrees(hue), chroma, pColor)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- }
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- return(retval);
- }
-}
diff --git a/nx-X11/lib/X11/LuvGcLC.c b/nx-X11/lib/X11/LuvGcLC.c
deleted file mode 100644
index a9f8cbaf1..000000000
--- a/nx-X11/lib/X11/LuvGcLC.c
+++ /dev/null
@@ -1,223 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELuvGcLC.c
- *
- * DESCRIPTION
- * Source for XcmsCIELuvClipLuv() gamut
- * compression function.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * INTERNALS
- * Internal defines that need NOT be exported to any package or
- * program using this package.
- */
-#define MAXBISECTCOUNT 100
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvClipLuv - Return the closest L* and chroma
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIELuvClipLuv (
- XcmsCCC ccc,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- unsigned int i,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * This routine will find the closest L* and chroma
- * for a specific hue. The color input is converted to
- * CIE L*u*v* format and returned as CIE XYZ format.
- *
- * Since this routine works with the L* within
- * pColor_in_out intermediate results may be returned
- * even though it may be invalid.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- Status retval;
- XcmsCCCRec myCCC;
- XcmsColor *pColor;
- XcmsColor Luv_max;
- XcmsFloat hue, chroma, maxChroma;
- XcmsFloat Chroma, bestChroma, Lstar, maxLstar, saveLstar;
- XcmsFloat bestLstar, bestustar, bestvstar;
- XcmsFloat nT, saveDist, tmpDist;
- XcmsRGBi rgb_max;
- int nCount, nMaxCount, nI, nILast;
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;/* inherit screen white */
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut compression func */
-
- /*
- * Color specification passed as input can be assumed to:
- * 1. Be in XcmsCIEXYZFormat
- * 2. Already be white point adjusted for the Screen White Point.
- * This means that the white point now associated with this
- * color spec is the Screen White Point (even if the
- * ccc->clientWhitePt differs).
- */
-
- pColor = pColors_in_out + i;
-
- if (ccc->visual->class < StaticColor) {
- /*
- * GRAY !
- */
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIELuvFormat);
- _XcmsDIConvertColors(ccc, pColor, ScreenWhitePointOfCCC(ccc),
- 1, XcmsCIEXYZFormat);
- if (pCompressed) {
- *(pCompressed + i) = True;
- }
- return(XcmsSuccess);
- }
-
- /* Convert from CIEXYZ to CIELuv format */
- if (_XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELuvFormat)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Step 1: compute the maximum L* and chroma for this hue. */
- /* This copy may be overkill but it preserves the pixel etc. */
- saveLstar = pColor->spec.CIELuv.L_star;
- hue = XCMS_CIELUV_PMETRIC_HUE(pColor->spec.CIELuv.u_star,
- pColor->spec.CIELuv.v_star);
- chroma = XCMS_CIELUV_PMETRIC_CHROMA(pColor->spec.CIELuv.u_star,
- pColor->spec.CIELuv.v_star);
- memcpy((char *)&Luv_max, (char *)pColor, sizeof(XcmsColor));
- if (_XcmsCIELuvQueryMaxLCRGB (&myCCC, hue, &Luv_max, &rgb_max)
- == XcmsFailure) {
- return (XcmsFailure);
- }
- maxLstar = Luv_max.spec.CIELuv.L_star;
-
- /* Now check and return the appropriate L* */
- if (saveLstar == maxLstar) {
- /* When the L* input is equal to the maximum L* */
- /* merely return the maximum Luv point. */
- memcpy((char *)pColor, (char *)&Luv_max, sizeof(XcmsColor));
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
- } else {
- /* return the closest point on the hue leaf. */
- /* must do a bisection here to compute the delta e. */
- maxChroma = XCMS_CIELUV_PMETRIC_CHROMA(Luv_max.spec.CIELuv.u_star,
- Luv_max.spec.CIELuv.v_star);
- nMaxCount = MAXBISECTCOUNT;
- nI = nMaxCount / 2;
- bestLstar = Lstar = pColor->spec.CIELuv.L_star;
- bestustar = pColor->spec.CIELuv.u_star;
- bestvstar = pColor->spec.CIELuv.v_star;
- bestChroma = Chroma = chroma;
- saveDist = XCMS_SQRT(((Chroma - maxChroma) * (Chroma - maxChroma)) +
- ((Lstar - maxLstar) * (Lstar - maxLstar)));
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- nT = (XcmsFloat) nI / (XcmsFloat) nMaxCount;
- if (saveLstar > maxLstar) {
- pColor->spec.RGBi.red = rgb_max.red * (1.0 - nT) + nT;
- pColor->spec.RGBi.green = rgb_max.green * (1.0 - nT) + nT;
- pColor->spec.RGBi.blue = rgb_max.blue * (1.0 - nT) + nT;
- } else {
- pColor->spec.RGBi.red = rgb_max.red - (rgb_max.red * nT);
- pColor->spec.RGBi.green = rgb_max.green - (rgb_max.green * nT);
- pColor->spec.RGBi.blue = rgb_max.blue - (rgb_max.blue * nT);
- }
- pColor->format = XcmsRGBiFormat;
-
- /* Convert from RGBi to CIE Luv */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELuvFormat,
- (Bool *) NULL) == XcmsFailure) {
- return (XcmsFailure);
- }
- chroma = XCMS_CIELUV_PMETRIC_CHROMA(pColor->spec.CIELuv.u_star,
- pColor->spec.CIELuv.v_star);
- tmpDist = XCMS_SQRT(((Chroma - chroma) * (Chroma - chroma)) +
- ((Lstar - pColor->spec.CIELuv.L_star) *
- (Lstar - pColor->spec.CIELuv.L_star)));
- nILast = nI;
- if (tmpDist > saveDist) {
- nI /= 2;
- } else {
- nI = (nMaxCount + nI) / 2;
- saveDist = tmpDist;
- bestLstar = pColor->spec.CIELuv.L_star;
- bestustar = pColor->spec.CIELuv.u_star;
- bestvstar = pColor->spec.CIELuv.v_star;
- bestChroma = chroma;
- }
- if (nI == nILast || nI == 0) {
- break;
- }
- }
- if (bestChroma >= maxChroma) {
- pColor->spec.CIELuv.L_star = maxLstar;
- pColor->spec.CIELuv.u_star = Luv_max.spec.CIELuv.u_star;
- pColor->spec.CIELuv.v_star = Luv_max.spec.CIELuv.v_star;
- } else {
- pColor->spec.CIELuv.L_star = bestLstar;
- pColor->spec.CIELuv.u_star = bestustar;
- pColor->spec.CIELuv.v_star = bestvstar;
- }
- retval = _XcmsDIConvertColors(&myCCC, pColor,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIEXYZFormat);
-
- if (retval != XcmsFailure && pCompressed != NULL) {
- *(pCompressed + i) = True;
- }
- }
- return(retval);
-}
diff --git a/nx-X11/lib/X11/LuvMnL.c b/nx-X11/lib/X11/LuvMnL.c
deleted file mode 100644
index b873fa652..000000000
--- a/nx-X11/lib/X11/LuvMnL.c
+++ /dev/null
@@ -1,216 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELuvMnL.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELuvQueryMinL() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS (XcmsFloat)0.001
-#define START_L_STAR (XcmsFloat)40.0
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvQueryMinL - Compute max Lstar for a hue and chroma
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELuvQueryMinL(
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue angle in degrees */
- XcmsFloat chroma,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum Lstar for a specified hue_angle and chroma.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded with no modifications
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor max_lc, tmp, prev;
- XcmsFloat max_chroma, tmp_chroma;
- XcmsFloat hue, nT, nChroma, lastChroma, prevChroma;
- XcmsFloat rFactor;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* setup the CCC to use for the conversions. */
- memcpy ((char *) &myCCC, (char *) ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc) NULL;
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- hue = radians(hue_angle);
- tmp.spec.CIELuv.L_star = START_L_STAR;
- tmp.spec.CIELuv.u_star = XCMS_CIEUSTAROFHUE(hue, chroma);
- tmp.spec.CIELuv.v_star = XCMS_CIEVSTAROFHUE(hue, chroma);
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsCIELuvFormat;
-
- /* Step 1: Obtain the maximum L_star and chroma for this hue. */
- if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- max_chroma = XCMS_CIELUV_PMETRIC_CHROMA(max_lc.spec.CIELuv.u_star,
- max_lc.spec.CIELuv.v_star);
-
- if (max_chroma <= chroma) {
- /*
- * If the chroma is greater than the chroma for the
- * maximum L/chroma point then the L_star is the
- * the L_star for the maximum L_star/chroma point.
- * This is an error but I return the best approximation I can.
- * Thus the inconsistency.
- */
- memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
-
- /*
- * If the chroma is equal to the chroma for the
- * maximum L_star/chroma point then the L_star is the
- * the L_star for the maximum L* and chroma point.
- */
- /* if (max_chroma == chroma) {
- * memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- * return(XcmsSuccess);
- * }
- */
-
- /* must do a bisection here to compute the maximum L* */
- /* save the structure input so that any elements that */
- /* are not touched are recopied later in the routine. */
- nChroma = chroma;
- tmp_chroma = max_chroma;
- lastChroma = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prevChroma = lastChroma;
- lastChroma = tmp_chroma;
- nT = (nChroma - max_chroma) / max_chroma * rFactor;
- memcpy ((char *)&prev, (char *)&tmp, sizeof(XcmsColor));
- tmp.spec.RGBi.red = rgb_saved.red + (rgb_saved.red * nT);
- tmp.spec.RGBi.green = rgb_saved.green + (rgb_saved.green * nT);
- tmp.spec.RGBi.blue = rgb_saved.blue + (rgb_saved.blue * nT);
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to CIELuv */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELuvFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Now check the return against what is expected */
- tmp_chroma = XCMS_CIELUV_PMETRIC_CHROMA(tmp.spec.CIELuv.u_star,
- tmp.spec.CIELuv.v_star);
- if (tmp_chroma <= chroma + EPS && tmp_chroma >= chroma - EPS) {
- /* Found It! */
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
- nChroma += chroma - tmp_chroma;
- if (nChroma > max_chroma) {
- nChroma = max_chroma;
- rFactor *= 0.5; /* selective relaxation employed */
- } else if (nChroma < 0.0) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- return(XcmsSuccess);
- } else if (tmp_chroma <= prevChroma + EPS &&
- tmp_chroma >= prevChroma - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- }
- }
-
- if (nCount >= nMaxCount) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- }
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LuvMxC.c b/nx-X11/lib/X11/LuvMxC.c
deleted file mode 100644
index a67251477..000000000
--- a/nx-X11/lib/X11/LuvMxC.c
+++ /dev/null
@@ -1,204 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * CIELuvMxC.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELuvQueryMaxC() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS (XcmsFloat)0.001
-#define START_CHROMA (XcmsFloat)2.2
-#define TOPL (XcmsFloat)100.0
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvQueryMaxC - max chroma for a hue_angle and L_star
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELuvQueryMaxC(
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue angle in degrees */
- XcmsFloat L_star,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum chroma for a specific hue_angle and L_star.
- * The returned format is in XcmsCIELuvFormat.
- *
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor tmp;
- XcmsColor max_lc;
- XcmsFloat n_L_star, last_L_star, prev_L_star;
- XcmsFloat hue, lastuStar, lastvStar, /*lastChroma,*/ maxDist, nT, rFactor;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC and inherit screen white Pt */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;/* no gamut comp func */
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- hue = radians(hue_angle);
- tmp.spec.CIELuv.L_star = L_star;
- tmp.spec.CIELuv.u_star = XCMS_CIEUSTAROFHUE(hue, START_CHROMA);
- tmp.spec.CIELuv.v_star = XCMS_CIEVSTAROFHUE(hue, START_CHROMA);
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsCIELuvFormat;
-
- /* Step 1: compute the maximum L_star and chroma for this hue. */
- memcpy((char *)&max_lc, (char *)&tmp, sizeof(XcmsColor));
- if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Step 2: Do a bisection here to compute the maximum chroma
- * Note the differences between when the point to be found
- * is above the maximum LC point and when it is below.
- */
- if (L_star <= max_lc.spec.CIELuv.L_star) {
- maxDist = max_lc.spec.CIELuv.L_star;
- } else {
- maxDist = TOPL - max_lc.spec.CIELuv.L_star;
- }
-
- n_L_star = L_star;
- last_L_star = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prev_L_star = last_L_star;
- last_L_star = tmp.spec.CIELuv.L_star;
-/* lastChroma = XCMS_CIELUV_PMETRIC_CHROMA(tmp.spec.CIELuv.u_star, */
-/* tmp.spec.CIELuv.v_star); */
- lastuStar = tmp.spec.CIELuv.u_star;
- lastvStar = tmp.spec.CIELuv.v_star;
- nT = (n_L_star - max_lc.spec.CIELuv.L_star) / maxDist * rFactor;
- /* printf("(n_L_star, nT) = %lf %lf ", n_L_star, nT); */
- if (nT > 0) {
- tmp.spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- tmp.spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- tmp.spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- } else {
- tmp.spec.RGBi.red = rgb_saved.red + (rgb_saved.red * nT);
- tmp.spec.RGBi.green = rgb_saved.green + (rgb_saved.green * nT);
- tmp.spec.RGBi.blue = rgb_saved.blue + (rgb_saved.blue * nT);
- }
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to CIELuv */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELuvFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Now check if we've reached the target L_star
- */
- /* printf("result Lstar = %lf\n", tmp.spec.CIELuv.L_star); */
- if (tmp.spec.CIELuv.L_star <= L_star + EPS &&
- tmp.spec.CIELuv.L_star >= L_star - EPS) {
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
- }
- if (nT > 0) {
- n_L_star += ((TOPL - n_L_star) *
- (L_star - tmp.spec.CIELuv.L_star)) / (TOPL - L_star);
- } else {
- n_L_star *= L_star / tmp.spec.CIELuv.L_star;
- }
- if (tmp.spec.CIELuv.L_star <= prev_L_star + EPS &&
- tmp.spec.CIELuv.L_star >= prev_L_star - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- /* printf("rFactor = %lf\n", rFactor); */
- }
- }
- if (XCMS_FABS(last_L_star - L_star) <
- XCMS_FABS(tmp.spec.CIELuv.L_star - L_star)) {
- tmp.spec.CIELuv.u_star = lastuStar;
- tmp.spec.CIELuv.v_star = lastvStar;
-/* tmp.spec.CIELuv.u_star = XCMS_CIEUSTAROFHUE(hue, lastChroma); */
-/* tmp.spec.CIELuv.v_star = XCMS_CIEVSTAROFHUE(hue, lastChroma); */
- }
- tmp.spec.CIELuv.L_star = L_star;
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LuvMxL.c b/nx-X11/lib/X11/LuvMxL.c
deleted file mode 100644
index d1d495b08..000000000
--- a/nx-X11/lib/X11/LuvMxL.c
+++ /dev/null
@@ -1,216 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIELuvMxL.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELuvQueryMaxL() gamut boundary
- * querying routine.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <math.h>
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MAXBISECTCOUNT 100
-#define EPS (XcmsFloat)0.001
-#define START_L_STAR (XcmsFloat)40.0
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvQueryMaxL - Compute max Lstar for a hue and chroma
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELuvQueryMaxL(
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue angle in degrees */
- XcmsFloat chroma,
- XcmsColor *pColor_return)
-/*
- * DESCRIPTION
- * Return the maximum Lstar for a specified hue_angle and chroma.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded with no modifications
- *
- */
-{
- XcmsCCCRec myCCC;
- XcmsColor max_lc, tmp, prev;
- XcmsFloat max_chroma, tmp_chroma;
- XcmsFloat hue, nT, nChroma, lastChroma, prevChroma;
- XcmsFloat rFactor;
- XcmsRGBi rgb_saved;
- int nCount, nMaxCount;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* setup the CCC to use for the conversions. */
- memcpy ((char *) &myCCC, (char *) ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc) NULL;
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- hue = radians(hue_angle);
- tmp.spec.CIELuv.L_star = START_L_STAR;
- tmp.spec.CIELuv.u_star = XCMS_CIEUSTAROFHUE(hue, chroma);
- tmp.spec.CIELuv.v_star = XCMS_CIEVSTAROFHUE(hue, chroma);
- tmp.pixel = pColor_return->pixel;
- tmp.format = XcmsCIELuvFormat;
-
- /* Step 1: Obtain the maximum L_star and chroma for this hue. */
- if (_XcmsCIELuvQueryMaxLCRGB(&myCCC, hue, &max_lc, &rgb_saved)
- == XcmsFailure) {
- return(XcmsFailure);
- }
-
- max_chroma = XCMS_CIELUV_PMETRIC_CHROMA(max_lc.spec.CIELuv.u_star,
- max_lc.spec.CIELuv.v_star);
-
- if (max_chroma <= chroma) {
- /*
- * If the chroma is greater than the chroma for the
- * maximum L/chroma point then the L_star is the
- * the L_star for the maximum L_star/chroma point.
- * This is an error but I return the best approximation I can.
- * Thus the inconsistency.
- */
- memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
-
- /*
- * If the chroma is equal to the chroma for the
- * maximum L_star/chroma point then the L_star is the
- * the L_star for the maximum L* and chroma point.
- */
- /* if (max_chroma == chroma) {
- * memcpy ((char *) pColor_return, (char *) &max_lc, sizeof (XcmsColor));
- * return(XcmsSuccess);
- * }
- */
-
- /* must do a bisection here to compute the maximum L* */
- /* save the structure input so that any elements that */
- /* are not touched are recopied later in the routine. */
- nChroma = chroma;
- tmp_chroma = max_chroma;
- lastChroma = -1.0;
- nMaxCount = MAXBISECTCOUNT;
- rFactor = 1.0;
-
- for (nCount = 0; nCount < nMaxCount; nCount++) {
- prevChroma = lastChroma;
- lastChroma = tmp_chroma;
- nT = (1.0 - (nChroma / max_chroma)) * rFactor;
- memcpy ((char *)&prev, (char *)&tmp, sizeof(XcmsColor));
- tmp.spec.RGBi.red = rgb_saved.red * (1.0 - nT) + nT;
- tmp.spec.RGBi.green = rgb_saved.green * (1.0 - nT) + nT;
- tmp.spec.RGBi.blue = rgb_saved.blue * (1.0 - nT) + nT;
- tmp.format = XcmsRGBiFormat;
-
- /* convert from RGB to CIELuv */
- if (_XcmsConvertColorsWithWhitePt(&myCCC, &tmp,
- ScreenWhitePointOfCCC(&myCCC), 1, XcmsCIELuvFormat,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /* Now check the return against what is expected */
- tmp_chroma = XCMS_CIELUV_PMETRIC_CHROMA(tmp.spec.CIELuv.u_star,
- tmp.spec.CIELuv.v_star);
- if (tmp_chroma <= chroma + EPS && tmp_chroma >= chroma - EPS) {
- /* Found It! */
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
- }
- nChroma += chroma - tmp_chroma;
- if (nChroma > max_chroma) {
- nChroma = max_chroma;
- rFactor *= 0.5; /* selective relaxation employed */
- } else if (nChroma < 0.0) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- return(XcmsSuccess);
- } else if (tmp_chroma <= prevChroma + EPS &&
- tmp_chroma >= prevChroma - EPS) {
- rFactor *= 0.5; /* selective relaxation employed */
- }
- }
-
- if (nCount >= nMaxCount) {
- if (XCMS_FABS(lastChroma - chroma) <
- XCMS_FABS(tmp_chroma - chroma)) {
- memcpy ((char *)pColor_return, (char *)&prev,
- sizeof(XcmsColor));
- } else {
- memcpy ((char *)pColor_return, (char *)&tmp,
- sizeof(XcmsColor));
- }
- }
- memcpy ((char *) pColor_return, (char *) &tmp, sizeof (XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/LuvMxLC.c b/nx-X11/lib/X11/LuvMxLC.c
deleted file mode 100644
index 60b954916..000000000
--- a/nx-X11/lib/X11/LuvMxLC.c
+++ /dev/null
@@ -1,218 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * CIELuvMxVC.c
- *
- * DESCRIPTION
- * Source for the XcmsCIELuvQueryMaxLC() gamut boundary
- * querying routine.
- *
- * DOCUMENTATION
- * "TekColor Color Management System, System Implementor's Manual"
- * and
- * Fred W. Billmeyer & Max Saltzman, "Principles of Color
- * Technology", John Wily & Sons, Inc, 1981.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define MIN(x,y) ((x) > (y) ? (y) : (x))
-#define MIN3(x,y,z) ((x) > (MIN((y), (z))) ? (MIN((y), (z))) : (x))
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#define MAX3(x,y,z) ((x) > (MAX((y), (z))) ? (x) : (MAX((y), (z))))
-#define START_LSTAR (XcmsFloat)40.0
-#define START_CHROMA (XcmsFloat)2.2
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsCIELuvQueryMaxLCRGB - Compute maximum L* and chroma.
- *
- * SYNOPSIS
- */
-Status
-_XcmsCIELuvQueryMaxLCRGB(
- XcmsCCC ccc,
- XcmsFloat hue, /* hue in radians */
- XcmsColor *pColor_return,
- XcmsRGBi *pRGB_return)
-/*
- * DESCRIPTION
- * Return the maximum psychometric chroma for a specified
- * hue angle(radians), and the corresponding L*. This is computed
- * by a binary search of all possible chromas. An assumption
- * is made that there are no local maxima. Use the unrounded
- * Max psychometric chroma because the difference check can be
- * small.
- *
- * NOTE: No local CCC is used because this is a private
- * routine and all routines that call it are expected
- * to behave properly, i.e. send a local CCC with
- * no white adjust function and no gamut compression
- * function.
- *
- * This routine only accepts hue as input and outputs
- * Luv and RGBi.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsFloat nSmall, nLarge;
- XcmsColor tmp;
-
- tmp.format = XcmsCIELuvFormat;
- /* Use some unreachable color on the given hue angle */
- tmp.spec.CIELuv.L_star = START_LSTAR;
- tmp.spec.CIELuv.u_star = XCMS_CIEUSTAROFHUE(hue, START_CHROMA);
- tmp.spec.CIELuv.v_star = XCMS_CIEVSTAROFHUE(hue, START_CHROMA);
- /*
- * Convert from Luv to RGB
- *
- * Note that the CIEXYZ to RGBi conversion routine must stuff the
- * out of bounds RGBi values in tmp when the ccc->gamutCompProc
- * is NULL.
- */
- if ((_XcmsConvertColorsWithWhitePt(ccc, &tmp, ScreenWhitePointOfCCC(ccc),
- (unsigned int)1, XcmsRGBiFormat, (Bool *) NULL)
- == XcmsFailure) && tmp.format != XcmsRGBiFormat) {
- return (XcmsFailure);
- }
-
- /* Now pick the smallest RGB */
- nSmall = MIN3(tmp.spec.RGBi.red,
- tmp.spec.RGBi.green,
- tmp.spec.RGBi.blue);
- /* Make the smallest RGB equal to zero */
- tmp.spec.RGBi.red -= nSmall;
- tmp.spec.RGBi.green -= nSmall;
- tmp.spec.RGBi.blue -= nSmall;
-
- /* Now pick the largest RGB */
- nLarge = MAX3(tmp.spec.RGBi.red,
- tmp.spec.RGBi.green,
- tmp.spec.RGBi.blue);
- /* Scale the RGB values based on the largest one */
- tmp.spec.RGBi.red /= nLarge;
- tmp.spec.RGBi.green /= nLarge;
- tmp.spec.RGBi.blue /= nLarge;
- tmp.format = XcmsRGBiFormat;
-
- /* If the calling routine wants RGB value give them the ones used. */
- if (pRGB_return) {
- pRGB_return->red = tmp.spec.RGBi.red;
- pRGB_return->green = tmp.spec.RGBi.green;
- pRGB_return->blue = tmp.spec.RGBi.blue;
- }
-
- /* Convert from RGBi to Luv */
- if (_XcmsConvertColorsWithWhitePt(ccc, &tmp,
- ScreenWhitePointOfCCC(ccc), 1, XcmsCIELuvFormat, (Bool *) NULL)
- == XcmsFailure) {
- return (XcmsFailure);
- }
-
- memcpy((char *)pColor_return, (char *)&tmp, sizeof(XcmsColor));
- return (XcmsSuccess);
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvQueryMaxLC - Compute maximum L* and chroma.
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELuvQueryMaxLC (
- XcmsCCC ccc,
- XcmsFloat hue_angle, /* hue angle in degrees */
- XcmsColor *pColor_return)
-
-/*
- * DESCRIPTION
- * Return the point of maximum chroma for the specified
- * hue angle.
- *
- * ASSUMPTIONS
- * This routine assumes that the white point associated with
- * the color specification is the Screen White Point. The
- * Screen White Point will also be associated with the
- * returned color specification.
- *
- * RETURNS
- * XcmsFailure - Failure
- * XcmsSuccess - Succeeded
- *
- */
-{
- XcmsCCCRec myCCC;
-
- /*
- * Check Arguments
- */
- if (ccc == NULL || pColor_return == NULL) {
- return(XcmsFailure);
- }
-
- /* Use my own CCC */
- memcpy ((char *)&myCCC, (char *)ccc, sizeof(XcmsCCCRec));
- myCCC.clientWhitePt.format = XcmsUndefinedFormat;
- myCCC.gamutCompProc = (XcmsCompressionProc)NULL;
-
- while (hue_angle < 0.0) {
- hue_angle += 360.0;
- }
- while (hue_angle >= 360.0) {
- hue_angle -= 360.0;
- }
-
- return(_XcmsCIELuvQueryMaxLCRGB (&myCCC, radians(hue_angle), pColor_return,
- (XcmsRGBi *)NULL));
-}
diff --git a/nx-X11/lib/X11/LuvWpAj.c b/nx-X11/lib/X11/LuvWpAj.c
deleted file mode 100644
index aa2a3f462..000000000
--- a/nx-X11/lib/X11/LuvWpAj.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * CIELuvWpAj.c
- *
- * DESCRIPTION
- * This file contains routine(s) that support white point
- * adjustment of color specifications in the CIE CIELuv.color
- * space.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELuvWhiteShiftColors
- *
- * SYNOPSIS
- */
-Status
-XcmsCIELuvWhiteShiftColors(
- XcmsCCC ccc,
- XcmsColor *pWhitePtFrom,
- XcmsColor *pWhitePtTo,
- XcmsColorFormat destSpecFmt,
- XcmsColor *pColors_in_out,
- unsigned int nColors,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Adjusts color specifications in an array of XcmsColor
- * structures for white point differences.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded without gamut compression,
- * XcmsSuccessWithCompression if succeeded with
- * gamut compression.
- */
-{
- if (pWhitePtFrom == NULL || pWhitePtTo == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Convert to CIELuv using pWhitePtFrom
- * We can ignore return value for compression because we are converting
- * to XcmsCIELuvFormat which is device-independent, not device-dependent.
- */
- if (_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtFrom,
- nColors, XcmsCIELuvFormat, pCompressed) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Convert from CIELuv to destSpecFmt using pWhitePtTo
- */
- return(_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePtTo,
- nColors, destSpecFmt, pCompressed));
-}
diff --git a/nx-X11/lib/X11/Macros.c b/nx-X11/lib/X11/Macros.c
deleted file mode 100644
index e29dcd4e8..000000000
--- a/nx-X11/lib/X11/Macros.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#define XUTIL_DEFINE_FUNCTIONS
-#include "Xutil.h"
-#if USE_XCB
-#include "Xxcbint.h"
-#endif
-
-/*
- * This file makes full definitions of routines for each macro.
- * We do not expect C programs to use these, but other languages may
- * need them.
- */
-
-int XConnectionNumber(Display *dpy) { return (ConnectionNumber(dpy)); }
-
-Window XRootWindow (Display *dpy, int scr)
-{
- return (RootWindow(dpy,scr));
-}
-
-int XDefaultScreen(Display *dpy) { return (DefaultScreen(dpy)); }
-
-Window XDefaultRootWindow (Display *dpy)
-{
- return (RootWindow(dpy,DefaultScreen(dpy)));
-}
-
-Visual *XDefaultVisual(Display *dpy, int scr)
-{
- return (DefaultVisual(dpy, scr));
-}
-
-GC XDefaultGC(Display *dpy, int scr)
-{
- return (DefaultGC(dpy,scr));
-}
-
-unsigned long XBlackPixel(Display *dpy, int scr)
-{
- return (BlackPixel(dpy, scr));
-}
-
-unsigned long XWhitePixel(Display *dpy, int scr)
-{
- return (WhitePixel(dpy,scr));
-}
-
-unsigned long XAllPlanes(void) { return AllPlanes; }
-
-int XQLength(Display *dpy) { return (QLength(dpy)); }
-
-int XDisplayWidth(Display *dpy, int scr)
-{
- return (DisplayWidth(dpy,scr));
-}
-
-int XDisplayHeight(Display *dpy, int scr)
-{
- return (DisplayHeight(dpy, scr));
-}
-
-int XDisplayWidthMM(Display *dpy, int scr)
-{
- return (DisplayWidthMM(dpy, scr));
-}
-
-int XDisplayHeightMM(Display *dpy, int scr)
-{
- return (DisplayHeightMM(dpy, scr));
-}
-
-int XDisplayPlanes(Display *dpy, int scr)
-{
- return (DisplayPlanes(dpy, scr));
-}
-
-int XDisplayCells(Display *dpy, int scr)
-{
- return (DisplayCells (dpy, scr));
-}
-
-int XScreenCount(Display *dpy) { return (ScreenCount(dpy)); }
-
-char *XServerVendor(Display *dpy) { return (ServerVendor(dpy)); }
-
-int XProtocolVersion(Display *dpy) { return (ProtocolVersion(dpy)); }
-
-int XProtocolRevision(Display *dpy) { return (ProtocolRevision(dpy));}
-
-int XVendorRelease(Display *dpy) { return (VendorRelease(dpy)); }
-
-char *XDisplayString(Display *dpy) { return (DisplayString(dpy)); }
-
-int XDefaultDepth(Display *dpy, int scr)
-{
- return(DefaultDepth(dpy, scr));
-}
-
-Colormap XDefaultColormap(Display *dpy, int scr)
-{
- return (DefaultColormap(dpy, scr));
-}
-
-int XBitmapUnit(Display *dpy) { return (BitmapUnit(dpy)); }
-
-int XBitmapBitOrder(Display *dpy) { return (BitmapBitOrder(dpy)); }
-
-int XBitmapPad(Display *dpy) { return (BitmapPad(dpy)); }
-
-int XImageByteOrder(Display *dpy) { return (ImageByteOrder(dpy)); }
-
-#if !USE_XCB
-unsigned long XNextRequest(Display *dpy)
-{
- return (NextRequest(dpy));
-}
-#else
-/* XNextRequest() differs from the rest of the functions here because it is
- * no longer a macro wrapper - when libX11 is being used mixed together
- * with direct use of xcb, the next request field of the Display structure will
- * not be updated. We can't fix the NextRequest() macro in any easy way,
- * but we can at least make XNextRequest() do the right thing.
- */
-unsigned long XNextRequest(Display *dpy)
-{
- unsigned long next_request;
- LockDisplay(dpy);
- next_request = _XNextRequest(dpy);
- UnlockDisplay(dpy);
-
- return next_request;
-}
-#endif
-
-unsigned long XLastKnownRequestProcessed(Display *dpy)
-{
- return (LastKnownRequestProcessed(dpy));
-}
-
-/* screen oriented macros (toolkit) */
-Screen *XScreenOfDisplay(Display *dpy, int scr)
-{
- return (ScreenOfDisplay(dpy, scr));
-}
-
-Screen *XDefaultScreenOfDisplay(Display *dpy)
-{
- return (DefaultScreenOfDisplay(dpy));
-}
-
-Display *XDisplayOfScreen(Screen *s) { return (DisplayOfScreen(s)); }
-
-Window XRootWindowOfScreen(Screen *s) { return (RootWindowOfScreen(s)); }
-
-unsigned long XBlackPixelOfScreen(Screen *s)
-{
- return (BlackPixelOfScreen(s));
-}
-
-unsigned long XWhitePixelOfScreen(Screen *s)
-{
- return (WhitePixelOfScreen(s));
-}
-
-Colormap XDefaultColormapOfScreen(Screen *s)
-{
- return (DefaultColormapOfScreen(s));
-}
-
-int XDefaultDepthOfScreen(Screen *s)
-{
- return (DefaultDepthOfScreen(s));
-}
-
-GC XDefaultGCOfScreen(Screen *s)
-{
- return (DefaultGCOfScreen(s));
-}
-
-Visual *XDefaultVisualOfScreen(Screen *s)
-{
- return (DefaultVisualOfScreen(s));
-}
-
-int XWidthOfScreen(Screen *s) { return (WidthOfScreen(s)); }
-
-int XHeightOfScreen(Screen *s) { return (HeightOfScreen(s)); }
-
-int XWidthMMOfScreen(Screen *s) { return (WidthMMOfScreen(s)); }
-
-int XHeightMMOfScreen(Screen *s) { return (HeightMMOfScreen(s)); }
-
-int XPlanesOfScreen(Screen *s) { return (PlanesOfScreen(s)); }
-
-int XCellsOfScreen(Screen *s) { return (CellsOfScreen(s)); }
-
-int XMinCmapsOfScreen(Screen *s) { return (MinCmapsOfScreen(s)); }
-
-int XMaxCmapsOfScreen(Screen *s) { return (MaxCmapsOfScreen(s)); }
-
-Bool XDoesSaveUnders(Screen *s) { return (DoesSaveUnders(s)); }
-
-int XDoesBackingStore(Screen *s) { return (DoesBackingStore(s)); }
-
-long XEventMaskOfScreen(Screen *s) { return (EventMaskOfScreen(s)); }
-
-int XScreenNumberOfScreen (register Screen *scr)
-{
- register Display *dpy = scr->display;
- register Screen *dpyscr = dpy->screens;
- register int i;
-
- for (i = 0; i < dpy->nscreens; i++, dpyscr++) {
- if (scr == dpyscr) return i;
- }
- return -1;
-}
-
-/*
- * These macros are used to give some sugar to the image routines so that
- * naive people are more comfortable with them.
- */
-#undef XDestroyImage
-int
-XDestroyImage(
- XImage *ximage)
-{
- return((*((ximage)->f.destroy_image))((ximage)));
-}
-#undef XGetPixel
-unsigned long XGetPixel(
- XImage *ximage,
- int x, int y)
-{
- return ((*((ximage)->f.get_pixel))((ximage), (x), (y)));
-}
-#undef XPutPixel
-int XPutPixel(
- XImage *ximage,
- int x, int y,
- unsigned long pixel)
-{
- return((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)));
-}
-#undef XSubImage
-XImage *XSubImage(
- XImage *ximage,
- int x, int y,
- unsigned int width, unsigned int height)
-{
- return((*((ximage)->f.sub_image))((ximage), (x),
- (y), (width), (height)));
-}
-#undef XAddPixel
-int XAddPixel(
- XImage *ximage,
- long value)
-{
- return((*((ximage)->f.add_pixel))((ximage), (value)));
-}
-
-
-int
-XNoOp (register Display *dpy)
-{
- _X_UNUSED register xReq *req;
-
- LockDisplay(dpy);
- GetEmptyReq(NoOperation, req);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/MapRaised.c b/nx-X11/lib/X11/MapRaised.c
deleted file mode 100644
index 6ad6aef08..000000000
--- a/nx-X11/lib/X11/MapRaised.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XMapRaised (
- register Display *dpy,
- Window w)
-{
- register xConfigureWindowReq *req;
- register xResourceReq *req2;
- unsigned long val = Above; /* needed for macro */
-
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 4, req);
- req->window = w;
- req->mask = CWStackMode;
- OneDataCard32 (dpy, NEXTPTR(req,xConfigureWindowReq), val);
- GetResReq (MapWindow, w, req2);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/MapSubs.c b/nx-X11/lib/X11/MapSubs.c
deleted file mode 100644
index 14e8b8af5..000000000
--- a/nx-X11/lib/X11/MapSubs.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XMapSubwindows(
- register Display *dpy,
- Window win)
-{
- register xResourceReq *req;
- LockDisplay(dpy);
- GetResReq(MapSubwindows, win, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/MapWindow.c b/nx-X11/lib/X11/MapWindow.c
deleted file mode 100644
index cc041ff51..000000000
--- a/nx-X11/lib/X11/MapWindow.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XMapWindow (
- register Display *dpy,
- Window w)
-{
- register xResourceReq *req;
- LockDisplay (dpy);
- GetResReq(MapWindow, w, req);
- UnlockDisplay (dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/MaskEvent.c b/nx-X11/lib/X11/MaskEvent.c
deleted file mode 100644
index 1fadc487e..000000000
--- a/nx-X11/lib/X11/MaskEvent.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-extern long const _Xevent_to_mask[];
-#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
-#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
- Button4MotionMask|Button5MotionMask)
-
-/*
- * return the next event in the queue matching one of the events in the mask.
- * If no event, flush output, and wait until match succeeds.
- * Events earlier in the queue are not discarded.
- */
-
-int
-XMaskEvent (
- register Display *dpy,
- long mask, /* Selected event mask. */
- register XEvent *event) /* XEvent to be filled in. */
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- prev = NULL;
- while (1) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if ((qelt->event.type < GenericEvent) &&
- (_Xevent_to_mask[qelt->event.type] & mask) &&
- ((qelt->event.type != MotionNotify) ||
- (mask & AllPointers) ||
- (mask & AllButtons & qelt->event.xmotion.state))) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- UnlockDisplay(dpy);
- return 0;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- _XReadEvents(dpy);
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockDisplay(dpy);
- return 0;
- }
-#endif
- }
-}
diff --git a/nx-X11/lib/X11/Misc.c b/nx-X11/lib/X11/Misc.c
deleted file mode 100644
index c3a028408..000000000
--- a/nx-X11/lib/X11/Misc.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-long XMaxRequestSize(Display *dpy)
-{
- return dpy->max_request_size;
-}
-
-char *XResourceManagerString(Display *dpy)
-{
- return dpy->xdefaults;
-}
-
-unsigned long XDisplayMotionBufferSize(Display *dpy)
-{
- return dpy->motion_buffer;
-}
-
-int
-XDisplayKeycodes(
- Display *dpy,
- int *min_keycode_return,
- int *max_keycode_return)
-{
- *min_keycode_return = dpy->min_keycode;
- *max_keycode_return = dpy->max_keycode;
- return 1;
-}
-
-VisualID XVisualIDFromVisual(Visual *visual)
-{
- return visual->visualid;
-}
-
-long XExtendedMaxRequestSize(Display *dpy)
-{
- return dpy->bigreq_size;
-}
diff --git a/nx-X11/lib/X11/ModMap.c b/nx-X11/lib/X11/ModMap.c
deleted file mode 100644
index ca15dde25..000000000
--- a/nx-X11/lib/X11/ModMap.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <limits.h>
-
-XModifierKeymap *
-XGetModifierMapping(register Display *dpy)
-{
- xGetModifierMappingReply rep;
- _X_UNUSED register xReq *req;
- unsigned long nbytes;
- XModifierKeymap *res;
-
- LockDisplay(dpy);
- GetEmptyReq(GetModifierMapping, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xFalse);
-
- if (rep.length < (INT_MAX >> 2) &&
- (rep.length >> 1) == rep.numKeyPerModifier) {
- nbytes = (unsigned long)rep.length << 2;
- res = Xmalloc(sizeof (XModifierKeymap));
- if (res)
- res->modifiermap = Xmalloc (nbytes);
- } else
- res = NULL;
- if ((! res) || (! res->modifiermap)) {
- Xfree(res);
- res = (XModifierKeymap *) NULL;
- _XEatDataWords(dpy, rep.length);
- } else {
- _XReadPad(dpy, (char *) res->modifiermap, (long) nbytes);
- res->max_keypermod = rep.numKeyPerModifier;
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return (res);
-}
-
-/*
- * Returns:
- * MappingSuccess (0) Success
- * MappingBusy (1) Busy - one or more old or new modifiers are down
- * MappingFailed (2) Failed - one or more new modifiers unacceptable
- */
-int
-XSetModifierMapping(
- register Display *dpy,
- register XModifierKeymap *modifier_map)
-{
- register xSetModifierMappingReq *req;
- xSetModifierMappingReply rep;
- int mapSize = modifier_map->max_keypermod << 3; /* 8 modifiers */
-
- LockDisplay(dpy);
- GetReq(SetModifierMapping, req);
- req->length += mapSize >> 2;
- req->numKeyPerModifier = modifier_map->max_keypermod;
-
- Data(dpy, (const char *)modifier_map->modifiermap, mapSize);
-
- (void) _XReply(dpy, (xReply *) & rep,
- (SIZEOF(xSetModifierMappingReply) - SIZEOF(xReply)) >> 2, xTrue);
- UnlockDisplay(dpy);
- SyncHandle();
- return (rep.success);
-}
-
-XModifierKeymap *
-XNewModifiermap(int keyspermodifier)
-{
- XModifierKeymap *res = Xmalloc((sizeof (XModifierKeymap)));
- if (res) {
- res->max_keypermod = keyspermodifier;
- res->modifiermap = (keyspermodifier > 0 ?
- Xmalloc(8 * keyspermodifier)
- : (KeyCode *) NULL);
- if (keyspermodifier && (res->modifiermap == NULL)) {
- Xfree(res);
- return (XModifierKeymap *) NULL;
- }
- }
- return (res);
-}
-
-
-int
-XFreeModifiermap(XModifierKeymap *map)
-{
- if (map) {
- Xfree(map->modifiermap);
- Xfree(map);
- }
- return 1;
-}
-
-XModifierKeymap *
-XInsertModifiermapEntry(XModifierKeymap *map,
-#if NeedWidePrototypes
- unsigned int keycode,
-#else
- KeyCode keycode,
-#endif
- int modifier)
-{
- XModifierKeymap *newmap;
- int i,
- row = modifier * map->max_keypermod,
- newrow,
- lastrow;
-
- for (i=0; i<map->max_keypermod; i++) {
- if (map->modifiermap[ row+i ] == keycode)
- return(map); /* already in the map */
- if (map->modifiermap[ row+i ] == 0) {
- map->modifiermap[ row+i ] = keycode;
- return(map); /* we added it without stretching the map */
- }
- }
-
- /* stretch the map */
- if ((newmap = XNewModifiermap(map->max_keypermod+1)) == NULL)
- return (XModifierKeymap *) NULL;
- newrow = row = 0;
- lastrow = newmap->max_keypermod * 8;
- while (newrow < lastrow) {
- for (i=0; i<map->max_keypermod; i++)
- newmap->modifiermap[ newrow+i ] = map->modifiermap[ row+i ];
- newmap->modifiermap[ newrow+i ] = 0;
- row += map->max_keypermod;
- newrow += newmap->max_keypermod;
- }
- (void) XFreeModifiermap(map);
- newrow = newmap->max_keypermod * modifier + newmap->max_keypermod - 1;
- newmap->modifiermap[ newrow ] = keycode;
- return(newmap);
-}
-
-XModifierKeymap *
-XDeleteModifiermapEntry(XModifierKeymap *map,
-#if NeedWidePrototypes
- unsigned int keycode,
-#else
- KeyCode keycode,
-#endif
- int modifier)
-{
- int i,
- row = modifier * map->max_keypermod;
-
- for (i=0; i<map->max_keypermod; i++) {
- if (map->modifiermap[ row+i ] == keycode)
- map->modifiermap[ row+i ] = 0;
- }
- /* should we shrink the map?? */
- return (map);
-}
diff --git a/nx-X11/lib/X11/MoveWin.c b/nx-X11/lib/X11/MoveWin.c
deleted file mode 100644
index 2eb2283be..000000000
--- a/nx-X11/lib/X11/MoveWin.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XMoveWindow (
- register Display *dpy,
- Window w,
- int x,
- int y)
-{
- register xConfigureWindowReq *req;
-
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 8, req);
-
- req->window = w;
- req->mask = CWX | CWY;
-
- {
- CARD32 *valuePtr = (CARD32 *) NEXTPTR(req,xConfigureWindowReq);
- *valuePtr++ = x;
- *valuePtr = y;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/NextEvent.c b/nx-X11/lib/X11/NextEvent.c
deleted file mode 100644
index d3048aee2..000000000
--- a/nx-X11/lib/X11/NextEvent.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Return next event in queue, or if none, flush output and wait for
- * events.
- */
-
-int
-XNextEvent (
- register Display *dpy,
- register XEvent *event)
-{
- register _XQEvent *qelt;
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- if (dpy->head == NULL)
- _XReadEvents(dpy);
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockDisplay(dpy);
- return 0;
- }
-#endif
- qelt = dpy->head;
- *event = qelt->event;
- _XDeq(dpy, NULL, qelt);
- _XStoreEventCookie(dpy, event);
- UnlockDisplay(dpy);
- return 0;
-}
-
diff --git a/nx-X11/lib/X11/OCWrap.c b/nx-X11/lib/X11/OCWrap.c
deleted file mode 100644
index fe23a3495..000000000
--- a/nx-X11/lib/X11/OCWrap.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-XOC
-XCreateOC(XOM om, ...)
-{
- va_list var;
- XlcArgList args;
- XOC oc;
- int num_args;
-
- va_start(var, om);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, om);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (XOC) NULL;
-
- oc = (*om->methods->create_oc)(om, args, num_args);
-
- Xfree(args);
-
- if (oc) {
- oc->core.next = om->core.oc_list;
- om->core.oc_list = oc;
- }
-
- return oc;
-}
-
-void
-XDestroyOC(XOC oc)
-{
- XOC prev, oc_list;
-
- prev = oc_list = oc->core.om->core.oc_list;
- if (oc_list == oc)
- oc->core.om->core.oc_list = oc_list->core.next;
- else {
- while ((oc_list = oc_list->core.next)) {
- if (oc_list == oc) {
- prev->core.next = oc_list->core.next;
- break;
- }
- prev = oc_list;
- }
- }
-
- (*oc->methods->destroy)(oc);
-}
-
-XOM
-XOMOfOC(XOC oc)
-{
- return oc->core.om;
-}
-
-char *
-XSetOCValues(XOC oc, ...)
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
-
- va_start(var, oc);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, oc);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- ret = (*oc->methods->set_values)(oc, args, num_args);
-
- Xfree(args);
-
- return ret;
-}
-
-char *
-XGetOCValues(XOC oc, ...)
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
-
- va_start(var, oc);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, oc);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- ret = (*oc->methods->get_values)(oc, args, num_args);
-
- Xfree(args);
-
- return ret;
-}
diff --git a/nx-X11/lib/X11/OMWrap.c b/nx-X11/lib/X11/OMWrap.c
deleted file mode 100644
index 045ca16bc..000000000
--- a/nx-X11/lib/X11/OMWrap.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-XOM
-XOpenOM(Display *dpy, XrmDatabase rdb, _Xconst char *res_name,
- _Xconst char *res_class)
-{
- XLCd lcd = _XOpenLC((char *) NULL);
-
- if (lcd == NULL)
- return (XOM) NULL;
-
- if (lcd->methods->open_om)
- return (*lcd->methods->open_om)(lcd, dpy, rdb, res_name, res_class);
-
- return (XOM) NULL;
-}
-
-Status
-XCloseOM(XOM om)
-{
- XOC oc, next;
- XLCd lcd = om->core.lcd;
-
- next = om->core.oc_list;
-
- while ((oc = next)) {
- next = oc->core.next;
- (*oc->methods->destroy)(oc);
- }
-
- om->core.oc_list = NULL;
-
- _XCloseLC(lcd);
-
- return (*om->methods->close)(om);
-}
-
-char *
-XSetOMValues(XOM om, ...)
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
-
- va_start(var, om);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, om);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- ret = (*om->methods->set_values)(om, args, num_args);
-
- Xfree(args);
-
- return ret;
-}
-
-char *
-XGetOMValues(XOM om, ...)
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
-
- va_start(var, om);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, om);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- ret = (*om->methods->get_values)(om, args, num_args);
-
- Xfree(args);
-
- return ret;
-}
-
-Display *
-XDisplayOfOM(XOM om)
-{
- return om->core.display;
-}
-
-char *
-XLocaleOfOM(XOM om)
-{
- return om->core.lcd->core->name;
-}
diff --git a/nx-X11/lib/X11/OfCCC.c b/nx-X11/lib/X11/OfCCC.c
deleted file mode 100644
index 06fc3d7a1..000000000
--- a/nx-X11/lib/X11/OfCCC.c
+++ /dev/null
@@ -1,162 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsOfCCC.c - Color Conversion Context Querying Routines
- *
- * DESCRIPTION
- * Routines to query components of a Color Conversion
- * Context structure.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlib.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsDisplayOfCCC
- *
- * SYNOPSIS
- */
-
-Display *
-XcmsDisplayOfCCC(
- XcmsCCC ccc)
-/*
- * DESCRIPTION
- * Queries the Display of the specified CCC.
- *
- * RETURNS
- * Pointer to the Display.
- *
- */
-{
- return(ccc->dpy);
-}
-
-
-/*
- * NAME
- * XcmsVisualOfCCC
- *
- * SYNOPSIS
- */
-
-Visual *
-XcmsVisualOfCCC(
- XcmsCCC ccc)
-/*
- * DESCRIPTION
- * Queries the Visual of the specified CCC.
- *
- * RETURNS
- * Pointer to the Visual.
- *
- */
-{
- return(ccc->visual);
-}
-
-
-/*
- * NAME
- * XcmsScreenNumberOfCCC
- *
- * SYNOPSIS
- */
-
-int
-XcmsScreenNumberOfCCC(
- XcmsCCC ccc)
-/*
- * DESCRIPTION
- * Queries the screen number of the specified CCC.
- *
- * RETURNS
- * screen number.
- *
- */
-{
- return(ccc->screenNumber);
-}
-
-
-/*
- * NAME
- * XcmsScreenWhitePointOfCCC
- *
- * SYNOPSIS
- */
-
-XcmsColor *
-XcmsScreenWhitePointOfCCC(
- XcmsCCC ccc)
-/*
- * DESCRIPTION
- * Queries the screen white point of the specified CCC.
- *
- * RETURNS
- * Pointer to the XcmsColor containing the screen white point.
- *
- */
-{
- return(&ccc->pPerScrnInfo->screenWhitePt);
-}
-
-
-/*
- * NAME
- * XcmsClientWhitePointOfCCC
- *
- * SYNOPSIS
- */
-
-XcmsColor *
-XcmsClientWhitePointOfCCC(
- XcmsCCC ccc)
-/*
- * DESCRIPTION
- * Queries the client white point of the specified CCC.
- *
- * RETURNS
- * Pointer to the XcmsColor containing the client white point.
- *
- */
-{
- return(&ccc->clientWhitePt);
-}
diff --git a/nx-X11/lib/X11/OpenDis.c b/nx-X11/lib/X11/OpenDis.c
deleted file mode 100644
index 965924650..000000000
--- a/nx-X11/lib/X11/OpenDis.c
+++ /dev/null
@@ -1,990 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* nx-X11, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
-/*
-
-Copyright 1985, 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#if USE_XCB
-#include "Xxcbint.h"
-#else /* !USE_XCB */
-#include <nx-X11/Xtrans/Xtrans.h>
-#include <nx-X11/extensions/bigreqstr.h>
-#endif /* USE_XCB */
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xresource.h>
-#include <stdio.h>
-#include "Xintconn.h"
-
-#ifdef XKB
-#include "XKBlib.h"
-#endif /* XKB */
-
-#ifdef NX_TRANS_SOCKET
-extern void *_X11TransSocketProxyConnInfo(XtransConnInfo);
-#endif
-
-#if !USE_XCB
-#define bignamelen (sizeof(XBigReqExtensionName) - 1)
-
-typedef struct {
- unsigned long seq;
- int opcode;
-} _XBigReqState;
-#endif /* !USE_XCB */
-
-#ifdef XTHREADS
-#include "locking.h"
-int (*_XInitDisplayLock_fn)(Display *dpy) = NULL;
-void (*_XFreeDisplayLock_fn)(Display *dpy) = NULL;
-
-#define InitDisplayLock(d) (_XInitDisplayLock_fn ? (*_XInitDisplayLock_fn)(d) : Success)
-#define FreeDisplayLock(d) if (_XFreeDisplayLock_fn) (*_XFreeDisplayLock_fn)(d)
-#else
-#define InitDisplayLock(dis) Success
-#define FreeDisplayLock(dis)
-#endif /* XTHREADS */
-
-static xReq _dummy_request = {
- 0, 0, 0
-};
-
-static void OutOfMemory(Display *dpy, char *setup);
-#if !USE_XCB
-static Bool _XBigReqHandler(Display *dpy, xReply *rep, char *buf, int len,
- XPointer data);
-#endif /* !USE_XCB */
-
-/*
- * Connects to a server, creates a Display object and returns a pointer to
- * the newly created Display back to the caller.
- */
-Display *
-XOpenDisplay (
- register _Xconst char *display)
-{
- register Display *dpy; /* New Display object being created. */
- register int i;
- int j, k; /* random iterator indexes */
- char *display_name; /* pointer to display name */
-#if !USE_XCB
- int endian; /* to determine which endian. */
- xConnClientPrefix client; /* client information */
- int idisplay; /* display number */
- int prefixread = 0; /* setup prefix already read? */
- char *conn_auth_name, *conn_auth_data;
- int conn_auth_namelen, conn_auth_datalen;
-#endif /* !USE_XCB */
- char *setup = NULL; /* memory allocated at startup */
- char *fullname = NULL; /* expanded name of display */
- int iscreen; /* screen number */
- xConnSetupPrefix prefix; /* prefix information */
- int vendorlen; /* length of vendor string */
- union {
- xConnSetup *setup;
- char *failure;
- char *vendor;
- xPixmapFormat *sf;
- xWindowRoot *rp;
- xDepth *dp;
- xVisualType *vp;
- } u; /* proto data returned from server */
- long setuplength; /* number of bytes in setup message */
- long usedbytes = 0; /* number of bytes we have processed */
- unsigned long mask;
- long int conn_buf_size;
- char *xlib_buffer_size;
-
-#if !USE_XCB
- bzero((char *) &client, sizeof(client));
- bzero((char *) &prefix, sizeof(prefix));
-#endif /* !USE_XCB */
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "\nXOpenDisplay: Called with display [%s].\n", display);
-#endif
- /*
- * If the display specifier string supplied as an argument to this
- * routine is NULL or a pointer to NULL, read the DISPLAY variable.
- */
- if (display == NULL || *display == '\0') {
- if ((display_name = getenv("DISPLAY")) == NULL) {
- /* Oops! No DISPLAY environment variable - error. */
- return(NULL);
- }
- }
- else {
- /* Display is non-NULL, copy the pointer */
- display_name = (char *)display;
- }
-
-/*
- * Set the default error handlers. This allows the global variables to
- * default to NULL for use with shared libraries.
- */
- if (_XErrorFunction == NULL) (void) XSetErrorHandler (NULL);
- if (_XIOErrorFunction == NULL) (void) XSetIOErrorHandler (NULL);
-
-/*
- * Attempt to allocate a display structure. Return NULL if allocation fails.
- */
- if ((dpy = Xcalloc(1, sizeof(Display))) == NULL) {
- return(NULL);
- }
-
-/*
- * Call the Connect routine to get the transport connection object.
- * If NULL is returned, the connection failed. The connect routine
- * will set fullname to point to the expanded name.
- */
-
-#if USE_XCB
- if(!_XConnectXCB(dpy, display, &fullname, &iscreen)) {
- /* Try falling back on other transports if no transport specified */
- const char *slash = strrchr(display_name, '/');
- if(slash == NULL) {
- const char *protocols[] = {"local", "unix", "tcp", "inet6", "inet", NULL};
- const char **s;
- size_t buf_size = strlen(display_name) + 7; // max strlen + 2 (null + /)
- char *buf = Xmalloc(buf_size * sizeof(char));
-
- if(buf) {
- for(s = protocols; buf && *s; s++) {
- snprintf(buf, buf_size, "%s/%s", *s, display_name);
- if(_XConnectXCB(dpy, buf, &fullname, &iscreen))
- goto fallback_success;
- }
- Xfree(buf);
- }
- }
-
- dpy->display_name = fullname;
- OutOfMemory(dpy, NULL);
- return NULL;
- }
-fallback_success:
-#else /* !USE_XCB */
- if ((dpy->trans_conn = _X11TransConnectDisplay (
- display_name, &fullname, &idisplay,
- &iscreen, &conn_auth_name,
- &conn_auth_namelen, &conn_auth_data,
- &conn_auth_datalen)) == NULL) {
- Xfree ((char *) dpy);
- return(NULL);
- }
-
- dpy->fd = _X11TransGetConnectionNumber (dpy->trans_conn);
-#endif /* USE_XCB */
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "\nXOpenDisplay: Connected display with dpy->fd = [%d].\n", dpy->fd);
-#endif
- /* Initialize as much of the display structure as we can.
- * Initialize pointers to NULL so that XFreeDisplayStructure will
- * work if we run out of memory before we finish initializing.
- */
- dpy->display_name = fullname;
- dpy->keysyms = (KeySym *) NULL;
- dpy->modifiermap = NULL;
- dpy->lock_meaning = NoSymbol;
- dpy->keysyms_per_keycode = 0;
- dpy->xdefaults = (char *)NULL;
- dpy->scratch_length = 0L;
- dpy->scratch_buffer = NULL;
- dpy->key_bindings = NULL;
- dpy->ext_procs = (_XExtension *)NULL;
- dpy->ext_data = (XExtData *)NULL;
- dpy->ext_number = 0;
- dpy->event_vec[X_Error] = _XUnknownWireEvent;
- dpy->event_vec[X_Reply] = _XUnknownWireEvent;
- dpy->wire_vec[X_Error] = _XUnknownNativeEvent;
- dpy->wire_vec[X_Reply] = _XUnknownNativeEvent;
- for (i = KeyPress; i < LASTEvent; i++) {
- dpy->event_vec[i] = _XWireToEvent;
- dpy->wire_vec[i] = NULL;
- }
- for (i = LASTEvent; i < 128; i++) {
- dpy->event_vec[i] = _XUnknownWireEvent;
- dpy->wire_vec[i] = _XUnknownNativeEvent;
- }
- dpy->resource_id = 0;
- dpy->db = (struct _XrmHashBucketRec *)NULL;
- dpy->cursor_font = None;
- dpy->flags = 0;
- dpy->async_handlers = NULL;
- dpy->screens = NULL;
- dpy->vendor = NULL;
- dpy->buffer = NULL;
- dpy->atoms = NULL;
- dpy->error_vec = NULL;
- dpy->context_db = NULL;
- dpy->free_funcs = NULL;
- dpy->pixmap_format = NULL;
- dpy->cms.clientCmaps = NULL;
- dpy->cms.defaultCCCs = NULL;
- dpy->cms.perVisualIntensityMaps = NULL;
- dpy->im_filters = NULL;
- dpy->bigreq_size = 0;
- dpy->lock = NULL;
- dpy->lock_fns = NULL;
- dpy->qfree = NULL;
- dpy->next_event_serial_num = 1;
- dpy->im_fd_info = NULL;
- dpy->im_fd_length = 0;
- dpy->conn_watchers = NULL;
- dpy->watcher_count = 0;
- dpy->filedes = NULL;
- dpy->flushes = NULL;
- dpy->xcmisc_opcode = 0;
- dpy->xkb_info = NULL;
-
-/*
- * Setup other information in this display structure.
- */
- dpy->vnumber = X_PROTOCOL;
- dpy->resource_alloc = _XAllocID;
- dpy->idlist_alloc = _XAllocIDs;
- dpy->synchandler = NULL;
- dpy->savedsynchandler = NULL;
- dpy->request = 0;
- dpy->last_request_read = 0;
- dpy->default_screen = iscreen; /* Value returned by ConnectDisplay */
- dpy->last_req = (char *)&_dummy_request;
-
- /* Initialize the display lock */
- if (InitDisplayLock(dpy) != 0) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
- if (!_XPollfdCacheInit(dpy)) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
- /* Set up the output buffers. */
-#ifndef XLIBDEFAULTBUFSIZE
-#define XLIBDEFAULTBUFSIZE 16384 /* 16k */
-#endif
-#ifndef XLIBMINBUFSIZE
-#define XLIBMINBUFSIZE BUFSIZE /* old default buffer size */
-#endif
- xlib_buffer_size = getenv("XLIBBUFFERSIZE");
-
-#ifdef __sun /* Backwards compatibility for old Solaris libX11 name */
- if (xlib_buffer_size == NULL)
- xlib_buffer_size = getenv("XSUNBUFFERSIZE");
-#endif
-
- if (xlib_buffer_size == NULL)
- conn_buf_size = XLIBDEFAULTBUFSIZE;
- else
- conn_buf_size = 1024 * strtol(xlib_buffer_size, NULL, 10);
- if (conn_buf_size < XLIBMINBUFSIZE)
- conn_buf_size = XLIBMINBUFSIZE;
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf (stderr, "Xlib: Running with XLIBBUFFERSIZE [%d] XLIBMINBUFSIZE [%d] "
- "buffer size [%ld].\n", XLIBDEFAULTBUFSIZE, XLIBMINBUFSIZE, conn_buf_size);
-#endif
-
- if ((dpy->bufptr = dpy->buffer = Xcalloc(1, conn_buf_size)) == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
- dpy->bufmax = dpy->buffer + conn_buf_size;
-#if USE_XCB
- dpy->xcb->real_bufmax = dpy->bufmax;
- dpy->bufmax = dpy->buffer;
-#endif
-
- /* Set up the input event queue and input event queue parameters. */
- dpy->head = dpy->tail = NULL;
- dpy->qlen = 0;
-
- /* Set up free-function record */
- if ((dpy->free_funcs = Xcalloc(1, sizeof(_XFreeFuncRec))) == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
-#if !USE_XCB
-/*
- * The xConnClientPrefix describes the initial connection setup information
- * and is followed by the authorization information. Sites that are interested
- * in security are strongly encouraged to use an authentication and
- * authorization system such as Kerberos.
- */
- endian = 1;
- if (*(char *) &endian)
- client.byteOrder = '\154'; /* 'l' */
- else
- client.byteOrder = '\102'; /* 'B' */
- client.majorVersion = X_PROTOCOL;
- client.minorVersion = X_PROTOCOL_REVISION;
- client.nbytesAuthProto = conn_auth_namelen;
- client.nbytesAuthString = conn_auth_datalen;
- prefixread = _XSendClientPrefix(dpy, &client,
- conn_auth_name, conn_auth_data,
- &prefix);
- if (prefixread < 0)
- {
- _XDisconnectDisplay (dpy->trans_conn);
- Xfree ((char *)dpy);
- return(NULL);
- }
- if (conn_auth_name) Xfree(conn_auth_name);
- if (conn_auth_data) Xfree(conn_auth_data);
-/*
- * Now see if connection was accepted...
- */
- /* these internal functions expect the display to be locked */
- LockDisplay(dpy);
-
- if (prefixread == 0)
- _XRead (dpy, (char *)&prefix,(long)SIZEOF(xConnSetupPrefix));
-
- /* an Authenticate reply we weren't expecting? */
- if (prefix.success != xTrue && prefix.success != xFalse) {
- fprintf (stderr,
- "Xlib: unexpected connection setup reply from server, type %d.\r\n",
- prefix.success);
- _XDisconnectDisplay (dpy->trans_conn);
- Xfree ((char *)dpy);
- return(NULL);
- }
-
- if (prefix.majorVersion != X_PROTOCOL) {
- /* XXX - printing messages marks a bad programming interface */
-#ifdef NX_TRANS_SOCKET
- if (_X11TransSocketProxyConnInfo(dpy->trans_conn) == NULL) {
- fprintf (stderr, "Xlib: client uses different protocol version (%d) "
- "than server (%d)!\r\n", X_PROTOCOL, prefix.majorVersion);
- }
-#else
- fprintf (stderr,
- "Xlib: client uses different protocol version (%d) than server (%d)!\r\n",
- X_PROTOCOL, prefix.majorVersion);
-#endif
- _XDisconnectDisplay (dpy->trans_conn);
- Xfree ((char *)dpy);
- return(NULL);
- }
-#endif /* !USE_XCB */
-
-#if USE_XCB
- {
- const struct xcb_setup_t *xcbsetup = xcb_get_setup(dpy->xcb->connection);
- memcpy(&prefix, xcbsetup, sizeof(prefix));
- setuplength = prefix.length << 2;
- setup = (char *) xcbsetup;
- setup += SIZEOF(xConnSetupPrefix);
- u.setup = (xConnSetup *) setup;
- }
-#else /* !USE_XCB */
- setuplength = prefix.length << 2;
- if ( (u.setup = (xConnSetup *)
- (setup = Xmalloc ((unsigned) setuplength))) == NULL) {
- _XDisconnectDisplay (dpy->trans_conn);
- Xfree ((char *)dpy);
- return(NULL);
- }
- _XRead (dpy, (char *)u.setup, setuplength);
-
-/*
- * If the connection was not accepted by the server due to problems,
- * give error message to the user....
- */
- if (prefix.success != xTrue) {
- /* XXX - printing messages marks a bad programming interface */
- fprintf (stderr,
- "Xlib: connection to \"%s\" refused by server\r\nXlib: ",
- fullname);
-
- if (prefix.lengthReason > setuplength) {
- fprintf (stderr, "Xlib: Broken initial reply: length of reason > length of packet\r\n");
- }else{
- (void) fwrite (u.failure, (size_t)sizeof(char),
- (size_t)prefix.lengthReason, stderr);
- (void) fwrite ("\r\n", sizeof(char), 2, stderr);
- }
-
- OutOfMemory(dpy, setup);
- return (NULL);
- }
-#endif /* USE_XCB */
-
-/*
- * Check if the reply was long enough to get any information out of it.
- */
- usedbytes = sz_xConnSetup;
- if (setuplength < usedbytes ) {
- fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
- OutOfMemory(dpy, setup);
- return (NULL);
- }
-
-/*
- * We succeeded at authorization, so let us move the data into
- * the display structure.
- */
- dpy->proto_major_version= prefix.majorVersion;
- dpy->proto_minor_version= prefix.minorVersion;
- dpy->release = u.setup->release;
- dpy->resource_base = u.setup->ridBase;
- dpy->resource_mask = u.setup->ridMask;
- dpy->min_keycode = u.setup->minKeyCode;
- dpy->max_keycode = u.setup->maxKeyCode;
- dpy->motion_buffer = u.setup->motionBufferSize;
- dpy->nformats = u.setup->numFormats;
- dpy->nscreens = u.setup->numRoots;
- dpy->byte_order = u.setup->imageByteOrder;
- dpy->bitmap_unit = u.setup->bitmapScanlineUnit;
- dpy->bitmap_pad = u.setup->bitmapScanlinePad;
- dpy->bitmap_bit_order = u.setup->bitmapBitOrder;
- dpy->max_request_size = u.setup->maxRequestSize;
- mask = dpy->resource_mask;
- dpy->resource_shift = 0;
- if (!mask)
- {
- fprintf (stderr, "Xlib: connection to \"%s\" invalid setup\n",
- fullname);
- OutOfMemory(dpy, setup);
- return (NULL);
- }
-
- while (!(mask & 1)) {
- dpy->resource_shift++;
- mask = mask >> 1;
- }
- dpy->resource_max = (dpy->resource_mask >> dpy->resource_shift) - 5;
-/*
- * now extract the vendor string... String must be null terminated,
- * padded to multiple of 4 bytes.
- */
- /* Check for a sane vendor string length */
- if (u.setup->nbytesVendor > 256) {
- OutOfMemory(dpy, setup);
- return (NULL);
- }
-
- dpy->vendor = Xmalloc(u.setup->nbytesVendor + 1);
- if (dpy->vendor == NULL) {
- OutOfMemory(dpy, setup);
- return (NULL);
- }
- vendorlen = u.setup->nbytesVendor;
-
-/*
- * validate setup length
- */
- usedbytes += (vendorlen + 3) & ~3;
- if (setuplength < usedbytes) {
- fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
- OutOfMemory(dpy, setup);
- return (NULL);
- }
-
- u.setup = (xConnSetup *) (((char *) u.setup) + sz_xConnSetup);
- (void) strncpy(dpy->vendor, u.vendor, vendorlen);
- dpy->vendor[vendorlen] = '\0';
- vendorlen = (vendorlen + 3) & ~3; /* round up */
- u.vendor += vendorlen;
-
-/*
- * Now iterate down setup information.....
- */
- dpy->pixmap_format = Xcalloc(dpy->nformats, sizeof(ScreenFormat));
- if (dpy->pixmap_format == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-/*
- * First decode the Z axis Screen format information.
- */
- usedbytes += dpy->nformats * sz_xPixmapFormat;
-
- if (setuplength < usedbytes) {
- fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
- for (i = 0; i < dpy->nformats; i++) {
- register ScreenFormat *fmt = &dpy->pixmap_format[i];
- fmt->depth = u.sf->depth;
- fmt->bits_per_pixel = u.sf->bitsPerPixel;
- fmt->scanline_pad = u.sf->scanLinePad;
- fmt->ext_data = NULL;
- u.sf = (xPixmapFormat *) (((char *) u.sf) + sz_xPixmapFormat);
- }
-
-/*
- * next the Screen structures.
- */
- dpy->screens = Xcalloc(dpy->nscreens, sizeof(Screen));
- if (dpy->screens == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
-/*
- * Now go deal with each screen structure.
- */
- for (i = 0; i < dpy->nscreens; i++) {
- register Screen *sp = &dpy->screens[i];
- VisualID root_visualID;
-
- usedbytes += sz_xWindowRoot;
- if (setuplength < usedbytes) {
- fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
- root_visualID = u.rp->rootVisualID;
- sp->display = dpy;
- sp->root = u.rp->windowId;
- sp->cmap = u.rp->defaultColormap;
- sp->white_pixel = u.rp->whitePixel;
- sp->black_pixel = u.rp->blackPixel;
- sp->root_input_mask = u.rp->currentInputMask;
- sp->width = u.rp->pixWidth;
- sp->height = u.rp->pixHeight;
- sp->mwidth = u.rp->mmWidth;
- sp->mheight = u.rp->mmHeight;
- sp->min_maps = u.rp->minInstalledMaps;
- sp->max_maps = u.rp->maxInstalledMaps;
- sp->backing_store= u.rp->backingStore;
- sp->save_unders = u.rp->saveUnders;
- sp->root_depth = u.rp->rootDepth;
- sp->ndepths = u.rp->nDepths;
- sp->ext_data = NULL;
- u.rp = (xWindowRoot *) (((char *) u.rp) + sz_xWindowRoot);
-/*
- * lets set up the depth structures.
- */
- sp->depths = Xcalloc(sp->ndepths, sizeof(Depth));
- if (sp->depths == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
- /*
- * for all depths on this screen.
- */
- for (j = 0; j < sp->ndepths; j++) {
- Depth *dp = &sp->depths[j];
-
- usedbytes += sz_xDepth;
- if (setuplength < usedbytes) {
- fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
- dp->depth = u.dp->depth;
- dp->nvisuals = u.dp->nVisuals;
- u.dp = (xDepth *) (((char *) u.dp) + sz_xDepth);
- if (dp->nvisuals > 0) {
- dp->visuals = Xcalloc(dp->nvisuals, sizeof(Visual));
- if (dp->visuals == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
- for (k = 0; k < dp->nvisuals; k++) {
- register Visual *vp = &dp->visuals[k];
-
- usedbytes += sz_xVisualType;
- if (setuplength < usedbytes) {
- fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
- OutOfMemory (dpy, setup);
- return(NULL);
- }
-
- vp->visualid = u.vp->visualID;
- vp->class = u.vp->class;
- vp->bits_per_rgb= u.vp->bitsPerRGB;
- vp->map_entries = u.vp->colormapEntries;
- vp->red_mask = u.vp->redMask;
- vp->green_mask = u.vp->greenMask;
- vp->blue_mask = u.vp->blueMask;
- vp->ext_data = NULL;
- u.vp = (xVisualType *) (((char *) u.vp) +
- sz_xVisualType);
- }
- if (dp->depth == 32 && getenv ("XLIB_SKIP_ARGB_VISUALS"))
- {
- Xfree (dp->visuals);
- dp->visuals = NULL;
- dp->nvisuals = 0;
- }
- } else {
- dp->visuals = (Visual *) NULL;
- }
- }
- sp->root_visual = _XVIDtoVisual(dpy, root_visualID);
- }
-
- if(usedbytes != setuplength){
- /* Sanity check, shouldn't happen. */
- fprintf(stderr, "Xlib: Did not parse entire setup message: "
- "parsed: %ld, message: %ld\n",
- usedbytes, setuplength);
- OutOfMemory(dpy, setup);
- return(NULL);
- }
-
-/*
- * Now start talking to the server to setup all other information...
- */
-
-#if !USE_XCB
- Xfree (setup); /* all finished with setup information */
-#endif /* !USE_XCB */
-
-/*
- * Make sure default screen is legal.
- */
- if (iscreen >= dpy->nscreens) {
- OutOfMemory(dpy, (char *) NULL);
- return(NULL);
- }
-
-#if !USE_XCB
-/*
- * finished calling internal routines, now unlock for external routines
- */
- UnlockDisplay(dpy);
-#endif /* !USE_XCB */
-
-#if USE_XCB
-/*
- * get availability of large requests
- */
- dpy->bigreq_size = xcb_get_maximum_request_length(dpy->xcb->connection);
- if(dpy->bigreq_size <= dpy->max_request_size)
- dpy->bigreq_size = 0;
-#endif /* USE_XCB */
-
-/*
- * Set up other stuff clients are always going to use.
- */
- for (i = 0; i < dpy->nscreens; i++) {
- register Screen *sp = &dpy->screens[i];
- XGCValues values;
- values.foreground = sp->black_pixel;
- values.background = sp->white_pixel;
- if ((sp->default_gc = XCreateGC (dpy, sp->root,
- GCForeground|GCBackground,
- &values)) == NULL) {
- OutOfMemory(dpy, (char *) NULL);
- return (NULL);
- }
- }
-/*
- * call into synchronization routine so that all programs can be
- * forced synchronous
- */
- (void) XSynchronize(dpy, _Xdebug);
-
-/*
- * get the resource manager database off the root window.
- */
- LockDisplay(dpy);
- {
- xGetPropertyReply reply;
- xGetPropertyReq *req;
-#if !USE_XCB
- _XAsyncHandler async;
- _XBigReqState async_state;
- xQueryExtensionReq *qreq;
- xBigReqEnableReq *breq;
- xBigReqEnableReply brep;
-
- GetReq(QueryExtension, qreq);
- async_state.seq = dpy->request;
- async_state.opcode = 0;
- async.next = dpy->async_handlers;
- async.handler = _XBigReqHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
- qreq->nbytes = bignamelen;
- qreq->length += (bignamelen+3)>>2;
- Data(dpy, XBigReqExtensionName, bignamelen);
-#endif /* !USE_XCB */
-
- GetReq (GetProperty, req);
- req->window = RootWindow(dpy, 0);
- req->property = XA_RESOURCE_MANAGER;
- req->type = XA_STRING;
- req->delete = False;
- req->longOffset = 0;
- req->longLength = 100000000L;
-
- if (_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
- if (reply.format == 8 && reply.propertyType == XA_STRING &&
- (reply.nItems + 1 > 0) &&
- (reply.nItems <= req->longLength * 4) &&
- (dpy->xdefaults = Xmalloc (reply.nItems + 1))) {
- _XReadPad (dpy, dpy->xdefaults, reply.nItems);
- dpy->xdefaults[reply.nItems] = '\0';
- }
- else if (reply.propertyType != None)
- _XEatDataWords(dpy, reply.length);
- }
-#if !USE_XCB
- DeqAsyncHandler(dpy, &async);
- if (async_state.opcode) {
- GetReq(BigReqEnable, breq);
- breq->reqType = async_state.opcode;
- breq->brReqType = X_BigReqEnable;
- if (_XReply(dpy, (xReply *)&brep, 0, xFalse))
- dpy->bigreq_size = brep.max_request_size;
- }
-#endif /* !USE_XCB */
- }
- UnlockDisplay(dpy);
-
-#ifdef MOTIFBC
- {
- extern Display *_XHeadOfDisplayList;
- _XHeadOfDisplayList = dpy;
- }
-#endif
-#ifdef XKB
- XkbUseExtension(dpy,NULL,NULL);
-#endif
-/*
- * and return successfully
- */
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "XOpenDisplay: Returning display at [%p].\n", dpy);
-#endif
- return(dpy);
-}
-
-#if !USE_XCB
-static Bool
-_XBigReqHandler(
- register Display *dpy,
- register xReply *rep,
- char *buf,
- int len,
- XPointer data)
-{
- _XBigReqState *state;
- xQueryExtensionReply replbuf;
- xQueryExtensionReply *repl;
-
- state = (_XBigReqState *)data;
- if (dpy->last_request_read != state->seq)
- return False;
- if (rep->generic.type == X_Error)
- return True;
- repl = (xQueryExtensionReply *)
- _XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
- (SIZEOF(xQueryExtensionReply) - SIZEOF(xReply)) >> 2,
- True);
- if (repl->present)
- state->opcode = repl->major_opcode;
- return True;
-}
-#endif /* !USE_XCB */
-
-
-/* XFreeDisplayStructure frees all the storage associated with a
- * Display. It is used by XOpenDisplay if it runs out of memory,
- * and also by XCloseDisplay. It needs to check whether all pointers
- * are non-NULL before dereferencing them, since it may be called
- * by XOpenDisplay before the Display structure is fully formed.
- * XOpenDisplay must be sure to initialize all the pointers to NULL
- * before the first possible call on this.
- */
-
-void _XFreeDisplayStructure(Display *dpy)
-{
- /* move all cookies in the EQ to the jar, then free them. */
- if (dpy->qfree) {
- _XQEvent *qelt = dpy->qfree;
- while (qelt) {
- if (_XIsEventCookie(dpy, &qelt->event))
- _XStoreEventCookie(dpy, &qelt->event);
- qelt = qelt->next;
- }
- }
- if (dpy->cookiejar)
- _XFreeEventCookies(dpy);
- while (dpy->ext_procs) {
- _XExtension *ext = dpy->ext_procs;
- dpy->ext_procs = ext->next;
- Xfree (ext->name);
- Xfree (ext);
- }
- if (dpy->im_filters)
- (*dpy->free_funcs->im_filters)(dpy);
- if (dpy->cms.clientCmaps)
- (*dpy->free_funcs->clientCmaps)(dpy);
- if (dpy->cms.defaultCCCs)
- (*dpy->free_funcs->defaultCCCs)(dpy);
- if (dpy->cms.perVisualIntensityMaps)
- (*dpy->free_funcs->intensityMaps)(dpy);
- if (dpy->atoms)
- (*dpy->free_funcs->atoms)(dpy);
- if (dpy->modifiermap)
- (*dpy->free_funcs->modifiermap)(dpy->modifiermap);
- if (dpy->key_bindings)
- (*dpy->free_funcs->key_bindings)(dpy);
- if (dpy->context_db)
- (*dpy->free_funcs->context_db)(dpy);
- if (dpy->xkb_info)
- (*dpy->free_funcs->xkb)(dpy);
-
- /* if RM database was allocated by XGetDefault() free it */
- if (dpy->db && (dpy->flags & XlibDisplayDfltRMDB))
- XrmDestroyDatabase(dpy->db);
-
- if (dpy->screens) {
- register int i;
-
- for (i = 0; i < dpy->nscreens; i++) {
- Screen *sp = &dpy->screens[i];
-
- if (sp->depths) {
- register int j;
-
- for (j = 0; j < sp->ndepths; j++) {
- Depth *dp = &sp->depths[j];
-
- if (dp->visuals) {
- register int k;
-
- for (k = 0; k < dp->nvisuals; k++)
- _XFreeExtData (dp->visuals[k].ext_data);
- Xfree (dp->visuals);
- }
- }
-
- Xfree (sp->depths);
- }
-
- _XFreeExtData (sp->ext_data);
- }
-
- Xfree (dpy->screens);
- }
-
- if (dpy->pixmap_format) {
- register int i;
-
- for (i = 0; i < dpy->nformats; i++)
- _XFreeExtData (dpy->pixmap_format[i].ext_data);
- Xfree (dpy->pixmap_format);
- }
-
- free(dpy->display_name);
-
- Xfree (dpy->vendor);
- Xfree (dpy->buffer);
- Xfree (dpy->keysyms);
- Xfree (dpy->xdefaults);
- Xfree (dpy->error_vec);
-
- _XFreeExtData (dpy->ext_data);
-
- Xfree (dpy->free_funcs);
- Xfree (dpy->scratch_buffer);
- FreeDisplayLock(dpy);
-
- if (dpy->qfree) {
- register _XQEvent *qelt = dpy->qfree;
-
- while (qelt) {
- register _XQEvent *qnxt = qelt->next;
- Xfree (qelt);
- qelt = qnxt;
- }
- }
- while (dpy->im_fd_info) {
- struct _XConnectionInfo *conni = dpy->im_fd_info;
- dpy->im_fd_info = conni->next;
- Xfree (conni->watch_data);
- Xfree (conni);
- }
- if (dpy->conn_watchers) {
- struct _XConnWatchInfo *watcher = dpy->conn_watchers;
- dpy->conn_watchers = watcher->next;
- Xfree (watcher);
- }
-
- Xfree (dpy->filedes);
-
-#if USE_XCB
- _XFreeX11XCBStructure(dpy);
-#endif /* USE_XCB */
-
- Xfree (dpy);
-}
-
-/* OutOfMemory is called if malloc fails. XOpenDisplay returns NULL
- after this returns. */
-
-static void OutOfMemory(Display *dpy, char *setup)
-{
-#if USE_XCB
- if(dpy->xcb->connection)
- xcb_disconnect(dpy->xcb->connection);
-#else /* !USE_XCB */
- _XDisconnectDisplay (dpy->trans_conn);
-#endif /* USE_XCB */
- _XFreeDisplayStructure (dpy);
-#if !USE_XCB
- if (setup) Xfree (setup);
-#endif /* !USE_XCB */
-}
diff --git a/nx-X11/lib/X11/ParseCmd.c b/nx-X11/lib/X11/ParseCmd.c
deleted file mode 100644
index b4bb97654..000000000
--- a/nx-X11/lib/X11/ParseCmd.c
+++ /dev/null
@@ -1,225 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-/* XrmParseCommand()
-
- Parse command line and store argument values into resource database
-
- Allows any un-ambiguous abbreviation for an option name, but requires
- that the table be ordered with any options that are prefixes of
- other options appearing before the longer version in the table.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xresource.h>
-#include <stdio.h>
-
-
-static void _XReportParseError(XrmOptionDescRec *arg, const char *msg)
-{
- (void) fprintf(stderr, "Error parsing argument \"%s\" (%s); %s\n",
- arg->option, arg->specifier, msg);
- exit(1);
-}
-
-void
-XrmParseCommand(
- XrmDatabase *pdb, /* data base */
- register XrmOptionDescList options, /* pointer to table of valid options */
- int num_options, /* number of options */
- _Xconst char *prefix, /* name to prefix resources with */
- int *argc, /* address of argument count */
- char **argv) /* argument list (command line) */
-{
- int foundOption;
- char **argsave;
- register int i, myargc;
- XrmBinding bindings[100];
- XrmQuark quarks[100];
- XrmBinding *start_bindings;
- XrmQuark *start_quarks;
- char *optP, *argP = NULL, optchar, argchar = 0;
- int matches;
- enum {DontCare, Check, NotSorted, Sorted} table_is_sorted;
- char **argend;
-
-#define PutCommandResource(value_str) \
- { \
- XrmStringToBindingQuarkList( \
- options[i].specifier, start_bindings, start_quarks); \
- XrmQPutStringResource(pdb, bindings, quarks, value_str); \
- } /* PutCommandResource */
-
- myargc = (*argc);
- argend = argv + myargc;
- argsave = ++argv;
-
- /* Initialize bindings/quark list with prefix (typically app name). */
- quarks[0] = XrmStringToName(prefix);
- bindings[0] = XrmBindTightly;
- start_quarks = quarks+1;
- start_bindings = bindings+1;
-
- table_is_sorted = (myargc > 2) ? Check : DontCare;
- for (--myargc; myargc > 0; --myargc, ++argv) {
- foundOption = False;
- matches = 0;
- for (i=0; i < num_options; ++i) {
- /* checking the sort order first insures we don't have to
- re-do the check if the arg hits on the last entry in
- the table. Useful because usually '=' is the last entry
- and users frequently specify geometry early in the command */
- if (table_is_sorted == Check && i > 0 &&
- strcmp(options[i].option, options[i-1].option) < 0) {
- table_is_sorted = NotSorted;
- }
- for (argP = *argv, optP = options[i].option;
- (optchar = *optP++) &&
- (argchar = *argP++) &&
- argchar == optchar;);
- if (!optchar) {
- if (!*argP ||
- options[i].argKind == XrmoptionStickyArg ||
- options[i].argKind == XrmoptionIsArg) {
- /* give preference to exact matches, StickyArg and IsArg */
- matches = 1;
- foundOption = i;
- break;
- }
- }
- else if (!argchar) {
- /* may be an abbreviation for this option */
- matches++;
- foundOption = i;
- }
- else if (table_is_sorted == Sorted && optchar > argchar) {
- break;
- }
- if (table_is_sorted == Check && i > 0 &&
- strcmp(options[i].option, options[i-1].option) < 0) {
- table_is_sorted = NotSorted;
- }
- }
- if (table_is_sorted == Check && i >= (num_options-1))
- table_is_sorted = Sorted;
- if (matches == 1) {
- i = foundOption;
- switch (options[i].argKind){
- case XrmoptionNoArg:
- --(*argc);
- PutCommandResource(options[i].value);
- break;
-
- case XrmoptionIsArg:
- --(*argc);
- PutCommandResource(*argv);
- break;
-
- case XrmoptionStickyArg:
- --(*argc);
- PutCommandResource(argP);
- break;
-
- case XrmoptionSepArg:
- if (myargc > 1) {
- ++argv; --myargc; --(*argc); --(*argc);
- PutCommandResource(*argv);
- } else
- (*argsave++) = (*argv);
- break;
-
- case XrmoptionResArg:
- if (myargc > 1) {
- ++argv; --myargc; --(*argc); --(*argc);
- XrmPutLineResource(pdb, *argv);
- } else
- (*argsave++) = (*argv);
- break;
-
- case XrmoptionSkipArg:
- if (myargc > 1) {
- --myargc;
- (*argsave++) = (*argv++);
- }
- (*argsave++) = (*argv);
- break;
-
- case XrmoptionSkipLine:
- for (; myargc > 0; myargc--)
- (*argsave++) = (*argv++);
- break;
-
- case XrmoptionSkipNArgs:
- {
- register int j = 1 + (long) options[i].value;
-
- if (j > myargc) j = myargc;
- for (; j > 0; j--) {
- (*argsave++) = (*argv++);
- myargc--;
- }
- argv--; /* went one too far before */
- myargc++;
- }
- break;
-
- default:
- _XReportParseError (&options[i], "unknown kind");
- break;
- }
- }
- else
- (*argsave++) = (*argv); /*compress arglist*/
- }
-
- if (argsave < argend)
- (*argsave)=NULL; /* put NULL terminator on compressed argv */
-}
diff --git a/nx-X11/lib/X11/ParseCol.c b/nx-X11/lib/X11/ParseCol.c
deleted file mode 100644
index e997b1b8c..000000000
--- a/nx-X11/lib/X11/ParseCol.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-
-Copyright 1985, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-
-Status
-XParseColor (
- register Display *dpy,
- Colormap cmap,
- _Xconst char *spec,
- XColor *def)
-{
- register int n, i;
- int r, g, b;
- char c;
- XcmsCCC ccc;
- XcmsColor cmsColor;
-
- if (!spec) return(0);
- n = strlen (spec);
- if (*spec == '#') {
- /*
- * RGB
- */
- spec++;
- n--;
- if (n != 3 && n != 6 && n != 9 && n != 12)
- return (0);
- n /= 3;
- g = b = 0;
- do {
- r = g;
- g = b;
- b = 0;
- for (i = n; --i >= 0; ) {
- c = *spec++;
- b <<= 4;
- if (c >= '0' && c <= '9')
- b |= c - '0';
- else if (c >= 'A' && c <= 'F')
- b |= c - ('A' - 10);
- else if (c >= 'a' && c <= 'f')
- b |= c - ('a' - 10);
- else return (0);
- }
- } while (*spec != '\0');
- n <<= 2;
- n = 16 - n;
- def->red = r << n;
- def->green = g << n;
- def->blue = b << n;
- def->flags = DoRed | DoGreen | DoBlue;
- return (1);
- }
-
-
-#ifdef XCMS
- /*
- * Let's Attempt to use Xcms and i18n approach to Parse Color
- */
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- const char *tmpName = spec;
-
- switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor,
- XcmsRGBFormat)) {
- case XcmsSuccess:
- case XcmsSuccessWithCompression:
- cmsColor.pixel = def->pixel;
- _XcmsRGB_to_XColor(&cmsColor, def, 1);
- return(1);
- case XcmsFailure:
- case _XCMS_NEWNAME:
- /*
- * if the result was _XCMS_NEWNAME tmpName points to
- * a string in cmsColNm.c:pairs table, for example,
- * gray70 would become tekhvc:0.0/70.0/0.0
- */
- break;
- }
- }
-#endif
-
- /*
- * Xcms and i18n methods failed, so lets pass it to the server
- * for parsing.
- */
- {
- xLookupColorReply reply;
- register xLookupColorReq *req;
- LockDisplay(dpy);
- GetReq (LookupColor, req);
- req->cmap = cmap;
- req->nbytes = n = strlen(spec);
- req->length += (n + 3) >> 2;
- Data (dpy, spec, (long)n);
- if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
- def->red = reply.exactRed;
- def->green = reply.exactGreen;
- def->blue = reply.exactBlue;
- def->flags = DoRed | DoGreen | DoBlue;
- UnlockDisplay(dpy);
- SyncHandle();
- return (1);
- }
-}
diff --git a/nx-X11/lib/X11/ParseGeom.c b/nx-X11/lib/X11/ParseGeom.c
deleted file mode 100644
index dfd812fc9..000000000
--- a/nx-X11/lib/X11/ParseGeom.c
+++ /dev/null
@@ -1,162 +0,0 @@
-
-/*
-
-Copyright 1985, 1986, 1987,1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-
-/*
- * XParseGeometry parses strings of the form
- * "=<width>x<height>{+-}<xoffset>{+-}<yoffset>", where
- * width, height, xoffset, and yoffset are unsigned integers.
- * Example: "=80x24+300-49"
- * The equal sign is optional.
- * It returns a bitmask that indicates which of the four values
- * were actually found in the string. For each value found,
- * the corresponding argument is updated; for each value
- * not found, the corresponding argument is left unchanged.
- */
-
-static int
-ReadInteger(char *string, char **NextString)
-{
- register int Result = 0;
- int Sign = 1;
-
- if (*string == '+')
- string++;
- else if (*string == '-')
- {
- string++;
- Sign = -1;
- }
- for (; (*string >= '0') && (*string <= '9'); string++)
- {
- Result = (Result * 10) + (*string - '0');
- }
- *NextString = string;
- if (Sign >= 0)
- return (Result);
- else
- return (-Result);
-}
-
-int
-XParseGeometry (
-_Xconst char *string,
-int *x,
-int *y,
-unsigned int *width, /* RETURN */
-unsigned int *height) /* RETURN */
-{
- int mask = NoValue;
- register char *strind;
- unsigned int tempWidth = 0, tempHeight = 0;
- int tempX = 0, tempY = 0;
- char *nextCharacter;
-
- if ( (string == NULL) || (*string == '\0')) return(mask);
- if (*string == '=')
- string++; /* ignore possible '=' at beg of geometry spec */
-
- strind = (char *)string;
- if (*strind != '+' && *strind != '-' && *strind != 'x') {
- tempWidth = ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
- return (0);
- strind = nextCharacter;
- mask |= WidthValue;
- }
-
- if (*strind == 'x' || *strind == 'X') {
- strind++;
- tempHeight = ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
- return (0);
- strind = nextCharacter;
- mask |= HeightValue;
- }
-
- if ((*strind == '+') || (*strind == '-')) {
- if (*strind == '-') {
- strind++;
- tempX = -ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
- return (0);
- strind = nextCharacter;
- mask |= XNegative;
-
- }
- else
- { strind++;
- tempX = ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
- return(0);
- strind = nextCharacter;
- }
- mask |= XValue;
- if ((*strind == '+') || (*strind == '-')) {
- if (*strind == '-') {
- strind++;
- tempY = -ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
- return(0);
- strind = nextCharacter;
- mask |= YNegative;
-
- }
- else
- {
- strind++;
- tempY = ReadInteger(strind, &nextCharacter);
- if (strind == nextCharacter)
- return(0);
- strind = nextCharacter;
- }
- mask |= YValue;
- }
- }
-
- /* If strind isn't at the end of the string the it's an invalid
- geometry specification. */
-
- if (*strind != '\0') return (0);
-
- if (mask & XValue)
- *x = tempX;
- if (mask & YValue)
- *y = tempY;
- if (mask & WidthValue)
- *width = tempWidth;
- if (mask & HeightValue)
- *height = tempHeight;
- return (mask);
-}
diff --git a/nx-X11/lib/X11/PeekEvent.c b/nx-X11/lib/X11/PeekEvent.c
deleted file mode 100644
index ffbaa05b4..000000000
--- a/nx-X11/lib/X11/PeekEvent.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * Return the next event in the queue,
- * BUT do not remove it from the queue.
- * If none found, flush and wait until there is an event to peek.
- */
-
-int
-XPeekEvent (
- register Display *dpy,
- register XEvent *event)
-{
- XEvent copy;
- LockDisplay(dpy);
- if (dpy->head == NULL)
- _XReadEvents(dpy);
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockDisplay(dpy);
- return 1;
- }
-#endif
- *event = (dpy->head)->event;
- if (_XCopyEventCookie(dpy, &event->xcookie, &copy.xcookie)) {
- _XStoreEventCookie(dpy, &copy);
- *event = copy;
- }
- UnlockDisplay(dpy);
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/PeekIfEv.c b/nx-X11/lib/X11/PeekIfEv.c
deleted file mode 100644
index f2f2cede4..000000000
--- a/nx-X11/lib/X11/PeekIfEv.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * return the next event in the queue that satisfies the predicate.
- * BUT do not remove it from the queue.
- * If none found, flush, and then wait until one satisfies the predicate.
- */
-
-int
-XPeekIfEvent (
- register Display *dpy,
- register XEvent *event,
- Bool (*predicate)(
- Display* /* display */,
- XEvent* /* event */,
- char* /* arg */
- ),
- char *arg)
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
-
- LockDisplay(dpy);
- prev = NULL;
- while (1) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if(qelt->qserial_num > qe_serial
- && (*predicate)(dpy, &qelt->event, arg)) {
- XEvent copy;
- *event = qelt->event;
- if (_XCopyEventCookie(dpy, &event->xcookie, &copy.xcookie)) {
- _XStoreEventCookie(dpy, &copy);
- *event = copy;
- }
- UnlockDisplay(dpy);
- return 0;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- _XReadEvents(dpy);
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockDisplay(dpy);
- return 0;
- }
-#endif
- }
-}
-
diff --git a/nx-X11/lib/X11/Pending.c b/nx-X11/lib/X11/Pending.c
deleted file mode 100644
index d3804c629..000000000
--- a/nx-X11/lib/X11/Pending.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
-#include <stdio.h>
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* Read in pending events if needed and return the number of queued events. */
-
-int XEventsQueued (
- register Display *dpy,
- int mode)
-{
- int ret_val;
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "\nXEventsQueued: Called with a display at [%p].\n", (void *)dpy);
-#endif
-
- LockDisplay(dpy);
- if (dpy->qlen || (mode == QueuedAlready))
- ret_val = dpy->qlen;
- else
- ret_val = _XEventsQueued (dpy, mode);
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_TEST)
- fprintf(stderr, "\nXEventsQueued: Going to unlock the display at [%p].\n", (void *)dpy);
-#endif
- UnlockDisplay(dpy);
- return ret_val;
-}
-
-int XPending (register Display *dpy)
-{
- int ret_val;
- LockDisplay(dpy);
- if (dpy->qlen)
- ret_val = dpy->qlen;
- else
- ret_val = _XEventsQueued (dpy, QueuedAfterFlush);
- UnlockDisplay(dpy);
- return ret_val;
-}
diff --git a/nx-X11/lib/X11/PixFormats.c b/nx-X11/lib/X11/PixFormats.c
deleted file mode 100644
index 6d9f64d2c..000000000
--- a/nx-X11/lib/X11/PixFormats.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <stdio.h>
-
-/*
- * XListPixmapFormats - return info from connection setup
- */
-
-XPixmapFormatValues *XListPixmapFormats (
- Display *dpy,
- int *count) /* RETURN */
-{
- XPixmapFormatValues *formats =
- Xmalloc(dpy->nformats * sizeof (XPixmapFormatValues));
-
- if (formats) {
- register int i;
- register XPixmapFormatValues *f;
- register ScreenFormat *sf;
-
- /*
- * copy data from internal Xlib data structure in display
- */
- for (i = dpy->nformats, f = formats, sf = dpy->pixmap_format; i > 0;
- i--, f++, sf++) {
- f->depth = sf->depth;
- f->bits_per_pixel = sf->bits_per_pixel;
- f->scanline_pad = sf->scanline_pad;
- }
-
- *count = dpy->nformats;
- }
- return formats;
-}
diff --git a/nx-X11/lib/X11/PmapBgnd.c b/nx-X11/lib/X11/PmapBgnd.c
deleted file mode 100644
index 9c5155833..000000000
--- a/nx-X11/lib/X11/PmapBgnd.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetWindowBackgroundPixmap(
- register Display *dpy,
- Window w,
- Pixmap pixmap)
-{
- register xChangeWindowAttributesReq *req;
- LockDisplay (dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWBackPixmap;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), pixmap);
- UnlockDisplay (dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/PmapBord.c b/nx-X11/lib/X11/PmapBord.c
deleted file mode 100644
index 7e1be616e..000000000
--- a/nx-X11/lib/X11/PmapBord.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetWindowBorderPixmap(
- register Display *dpy,
- Window w,
- Pixmap pixmap)
-{
- register xChangeWindowAttributesReq *req;
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWBorderPixmap;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), pixmap);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/PolyReg.c b/nx-X11/lib/X11/PolyReg.c
deleted file mode 100644
index cb30f8422..000000000
--- a/nx-X11/lib/X11/PolyReg.c
+++ /dev/null
@@ -1,635 +0,0 @@
-/************************************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-************************************************************************/
-
-#define LARGE_COORDINATE 1000000
-#define SMALL_COORDINATE -LARGE_COORDINATE
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-#include <nx-X11/Xregion.h>
-#include "poly.h"
-
-/*
- * InsertEdgeInET
- *
- * Insert the given edge into the edge table.
- * First we must find the correct bucket in the
- * Edge table, then find the right slot in the
- * bucket. Finally, we can insert it.
- *
- */
-static void
-InsertEdgeInET(
- EdgeTable *ET,
- EdgeTableEntry *ETE,
- int scanline,
- ScanLineListBlock **SLLBlock,
- int *iSLLBlock)
-{
- register EdgeTableEntry *start, *prev;
- register ScanLineList *pSLL, *pPrevSLL;
- ScanLineListBlock *tmpSLLBlock;
-
- /*
- * find the right bucket to put the edge into
- */
- pPrevSLL = &ET->scanlines;
- pSLL = pPrevSLL->next;
- while (pSLL && (pSLL->scanline < scanline))
- {
- pPrevSLL = pSLL;
- pSLL = pSLL->next;
- }
-
- /*
- * reassign pSLL (pointer to ScanLineList) if necessary
- */
- if ((!pSLL) || (pSLL->scanline > scanline))
- {
- if (*iSLLBlock > SLLSPERBLOCK-1)
- {
- tmpSLLBlock = Xmalloc(sizeof(ScanLineListBlock));
- (*SLLBlock)->next = tmpSLLBlock;
- tmpSLLBlock->next = (ScanLineListBlock *)NULL;
- *SLLBlock = tmpSLLBlock;
- *iSLLBlock = 0;
- }
- pSLL = &((*SLLBlock)->SLLs[(*iSLLBlock)++]);
-
- pSLL->next = pPrevSLL->next;
- pSLL->edgelist = (EdgeTableEntry *)NULL;
- pPrevSLL->next = pSLL;
- }
- pSLL->scanline = scanline;
-
- /*
- * now insert the edge in the right bucket
- */
- prev = (EdgeTableEntry *)NULL;
- start = pSLL->edgelist;
- while (start && (start->bres.minor_axis < ETE->bres.minor_axis))
- {
- prev = start;
- start = start->next;
- }
- ETE->next = start;
-
- if (prev)
- prev->next = ETE;
- else
- pSLL->edgelist = ETE;
-}
-
-/*
- * CreateEdgeTable
- *
- * This routine creates the edge table for
- * scan converting polygons.
- * The Edge Table (ET) looks like:
- *
- * EdgeTable
- * --------
- * | ymax | ScanLineLists
- * |scanline|-->------------>-------------->...
- * -------- |scanline| |scanline|
- * |edgelist| |edgelist|
- * --------- ---------
- * | |
- * | |
- * V V
- * list of ETEs list of ETEs
- *
- * where ETE is an EdgeTableEntry data structure,
- * and there is one ScanLineList per scanline at
- * which an edge is initially entered.
- *
- */
-
-static void
-CreateETandAET(
- register int count,
- register XPoint *pts,
- EdgeTable *ET,
- EdgeTableEntry *AET,
- register EdgeTableEntry *pETEs,
- ScanLineListBlock *pSLLBlock)
-{
- register XPoint *top, *bottom;
- register XPoint *PrevPt, *CurrPt;
- int iSLLBlock = 0;
- int dy;
-
- if (count < 2) return;
-
- /*
- * initialize the Active Edge Table
- */
- AET->next = (EdgeTableEntry *)NULL;
- AET->back = (EdgeTableEntry *)NULL;
- AET->nextWETE = (EdgeTableEntry *)NULL;
- AET->bres.minor_axis = SMALL_COORDINATE;
-
- /*
- * initialize the Edge Table.
- */
- ET->scanlines.next = (ScanLineList *)NULL;
- ET->ymax = SMALL_COORDINATE;
- ET->ymin = LARGE_COORDINATE;
- pSLLBlock->next = (ScanLineListBlock *)NULL;
-
- PrevPt = &pts[count-1];
-
- /*
- * for each vertex in the array of points.
- * In this loop we are dealing with two vertices at
- * a time -- these make up one edge of the polygon.
- */
- while (count--)
- {
- CurrPt = pts++;
-
- /*
- * find out which point is above and which is below.
- */
- if (PrevPt->y > CurrPt->y)
- {
- bottom = PrevPt, top = CurrPt;
- pETEs->ClockWise = 0;
- }
- else
- {
- bottom = CurrPt, top = PrevPt;
- pETEs->ClockWise = 1;
- }
-
- /*
- * don't add horizontal edges to the Edge table.
- */
- if (bottom->y != top->y)
- {
- pETEs->ymax = bottom->y-1; /* -1 so we don't get last scanline */
-
- /*
- * initialize integer edge algorithm
- */
- dy = bottom->y - top->y;
- BRESINITPGONSTRUCT(dy, top->x, bottom->x, pETEs->bres);
-
- InsertEdgeInET(ET, pETEs, top->y, &pSLLBlock, &iSLLBlock);
-
- if (PrevPt->y > ET->ymax)
- ET->ymax = PrevPt->y;
- if (PrevPt->y < ET->ymin)
- ET->ymin = PrevPt->y;
- pETEs++;
- }
-
- PrevPt = CurrPt;
- }
-}
-
-/*
- * loadAET
- *
- * This routine moves EdgeTableEntries from the
- * EdgeTable into the Active Edge Table,
- * leaving them sorted by smaller x coordinate.
- *
- */
-
-static void
-loadAET(
- register EdgeTableEntry *AET,
- register EdgeTableEntry *ETEs)
-{
- register EdgeTableEntry *pPrevAET;
- register EdgeTableEntry *tmp;
-
- pPrevAET = AET;
- AET = AET->next;
- while (ETEs)
- {
- while (AET && (AET->bres.minor_axis < ETEs->bres.minor_axis))
- {
- pPrevAET = AET;
- AET = AET->next;
- }
- tmp = ETEs->next;
- ETEs->next = AET;
- if (AET)
- AET->back = ETEs;
- ETEs->back = pPrevAET;
- pPrevAET->next = ETEs;
- pPrevAET = ETEs;
-
- ETEs = tmp;
- }
-}
-
-/*
- * computeWAET
- *
- * This routine links the AET by the
- * nextWETE (winding EdgeTableEntry) link for
- * use by the winding number rule. The final
- * Active Edge Table (AET) might look something
- * like:
- *
- * AET
- * ---------- --------- ---------
- * |ymax | |ymax | |ymax |
- * | ... | |... | |... |
- * |next |->|next |->|next |->...
- * |nextWETE| |nextWETE| |nextWETE|
- * --------- --------- ^--------
- * | | |
- * V-------------------> V---> ...
- *
- */
-static void
-computeWAET(
- register EdgeTableEntry *AET)
-{
- register EdgeTableEntry *pWETE;
- register int inside = 1;
- register int isInside = 0;
-
- AET->nextWETE = (EdgeTableEntry *)NULL;
- pWETE = AET;
- AET = AET->next;
- while (AET)
- {
- if (AET->ClockWise)
- isInside++;
- else
- isInside--;
-
- if ((!inside && !isInside) ||
- ( inside && isInside))
- {
- pWETE->nextWETE = AET;
- pWETE = AET;
- inside = !inside;
- }
- AET = AET->next;
- }
- pWETE->nextWETE = (EdgeTableEntry *)NULL;
-}
-
-/*
- * InsertionSort
- *
- * Just a simple insertion sort using
- * pointers and back pointers to sort the Active
- * Edge Table.
- *
- */
-
-static int
-InsertionSort(
- register EdgeTableEntry *AET)
-{
- register EdgeTableEntry *pETEchase;
- register EdgeTableEntry *pETEinsert;
- register EdgeTableEntry *pETEchaseBackTMP;
- register int changed = 0;
-
- AET = AET->next;
- while (AET)
- {
- pETEinsert = AET;
- pETEchase = AET;
- while (pETEchase->back->bres.minor_axis > AET->bres.minor_axis)
- pETEchase = pETEchase->back;
-
- AET = AET->next;
- if (pETEchase != pETEinsert)
- {
- pETEchaseBackTMP = pETEchase->back;
- pETEinsert->back->next = AET;
- if (AET)
- AET->back = pETEinsert->back;
- pETEinsert->next = pETEchase;
- pETEchase->back->next = pETEinsert;
- pETEchase->back = pETEinsert;
- pETEinsert->back = pETEchaseBackTMP;
- changed = 1;
- }
- }
- return(changed);
-}
-
-/*
- * Clean up our act.
- */
-static void
-FreeStorage(
- register ScanLineListBlock *pSLLBlock)
-{
- register ScanLineListBlock *tmpSLLBlock;
-
- while (pSLLBlock)
- {
- tmpSLLBlock = pSLLBlock->next;
- Xfree(pSLLBlock);
- pSLLBlock = tmpSLLBlock;
- }
-}
-
-/*
- * Create an array of rectangles from a list of points.
- * If indeed these things (POINTS, RECTS) are the same,
- * then this proc is still needed, because it allocates
- * storage for the array, which was allocated on the
- * stack by the calling procedure.
- *
- */
-static int PtsToRegion(
- register int numFullPtBlocks,
- register int iCurPtBlock,
- POINTBLOCK *FirstPtBlock,
- REGION *reg)
-{
- register BOX *rects;
- register XPoint *pts;
- register POINTBLOCK *CurPtBlock;
- register int i;
- register BOX *extents;
- register int numRects;
- BOX *prevRects = reg->rects;
-
- extents = &reg->extents;
-
- numRects = ((numFullPtBlocks * NUMPTSTOBUFFER) + iCurPtBlock) >> 1;
-
- if (!(reg->rects = Xrealloc(reg->rects, sizeof(BOX) * numRects))) {
- Xfree(prevRects);
- return(0);
- }
-
- reg->size = numRects;
- CurPtBlock = FirstPtBlock;
- rects = reg->rects - 1;
- numRects = 0;
- extents->x1 = MAXSHORT, extents->x2 = MINSHORT;
-
- for ( ; numFullPtBlocks >= 0; numFullPtBlocks--) {
- /* the loop uses 2 points per iteration */
- i = NUMPTSTOBUFFER >> 1;
- if (!numFullPtBlocks)
- i = iCurPtBlock >> 1;
- for (pts = CurPtBlock->pts; i--; pts += 2) {
- if (pts->x == pts[1].x)
- continue;
- if (numRects && pts->x == rects->x1 && pts->y == rects->y2 &&
- pts[1].x == rects->x2 &&
- (numRects == 1 || rects[-1].y1 != rects->y1) &&
- (i && pts[2].y > pts[1].y)) {
- rects->y2 = pts[1].y + 1;
- continue;
- }
- numRects++;
- rects++;
- rects->x1 = pts->x; rects->y1 = pts->y;
- rects->x2 = pts[1].x; rects->y2 = pts[1].y + 1;
- if (rects->x1 < extents->x1)
- extents->x1 = rects->x1;
- if (rects->x2 > extents->x2)
- extents->x2 = rects->x2;
- }
- CurPtBlock = CurPtBlock->next;
- }
-
- if (numRects) {
- extents->y1 = reg->rects->y1;
- extents->y2 = rects->y2;
- } else {
- extents->x1 = 0;
- extents->y1 = 0;
- extents->x2 = 0;
- extents->y2 = 0;
- }
- reg->numRects = numRects;
-
- return(TRUE);
-}
-
-/*
- * polytoregion
- *
- * Scan converts a polygon by returning a run-length
- * encoding of the resultant bitmap -- the run-length
- * encoding is in the form of an array of rectangles.
- */
-Region
-XPolygonRegion(
- XPoint *Pts, /* the pts */
- int Count, /* number of pts */
- int rule) /* winding rule */
-{
- Region region;
- register EdgeTableEntry *pAET; /* Active Edge Table */
- register int y; /* current scanline */
- register int iPts = 0; /* number of pts in buffer */
- register EdgeTableEntry *pWETE; /* Winding Edge Table Entry*/
- register ScanLineList *pSLL; /* current scanLineList */
- register XPoint *pts; /* output buffer */
- EdgeTableEntry *pPrevAET; /* ptr to previous AET */
- EdgeTable ET; /* header node for ET */
- EdgeTableEntry AET; /* header node for AET */
- EdgeTableEntry *pETEs; /* EdgeTableEntries pool */
- ScanLineListBlock SLLBlock; /* header for scanlinelist */
- int fixWAET = FALSE;
- POINTBLOCK FirstPtBlock, *curPtBlock; /* PtBlock buffers */
- POINTBLOCK *tmpPtBlock;
- int numFullPtBlocks = 0;
-
- if (! (region = XCreateRegion())) return (Region) NULL;
-
- /* special case a rectangle */
- pts = Pts;
- if (((Count == 4) ||
- ((Count == 5) && (pts[4].x == pts[0].x) && (pts[4].y == pts[0].y))) &&
- (((pts[0].y == pts[1].y) &&
- (pts[1].x == pts[2].x) &&
- (pts[2].y == pts[3].y) &&
- (pts[3].x == pts[0].x)) ||
- ((pts[0].x == pts[1].x) &&
- (pts[1].y == pts[2].y) &&
- (pts[2].x == pts[3].x) &&
- (pts[3].y == pts[0].y)))) {
- region->extents.x1 = min(pts[0].x, pts[2].x);
- region->extents.y1 = min(pts[0].y, pts[2].y);
- region->extents.x2 = max(pts[0].x, pts[2].x);
- region->extents.y2 = max(pts[0].y, pts[2].y);
- if ((region->extents.x1 != region->extents.x2) &&
- (region->extents.y1 != region->extents.y2)) {
- region->numRects = 1;
- *(region->rects) = region->extents;
- }
- return(region);
- }
-
- if (Count < 2) return region;
-
- if (! (pETEs = Xmalloc(sizeof(EdgeTableEntry) * Count))) {
- XDestroyRegion(region);
- return (Region) NULL;
- }
-
- pts = FirstPtBlock.pts;
- CreateETandAET(Count, Pts, &ET, &AET, pETEs, &SLLBlock);
- pSLL = ET.scanlines.next;
- curPtBlock = &FirstPtBlock;
-
- if (rule == EvenOddRule) {
- /*
- * for each scanline
- */
- for (y = ET.ymin; y < ET.ymax; y++) {
- /*
- * Add a new edge to the active edge table when we
- * get to the next edge.
- */
- if (pSLL != NULL && y == pSLL->scanline) {
- loadAET(&AET, pSLL->edgelist);
- pSLL = pSLL->next;
- }
- pPrevAET = &AET;
- pAET = AET.next;
-
- /*
- * for each active edge
- */
- while (pAET) {
- pts->x = pAET->bres.minor_axis, pts->y = y;
- pts++, iPts++;
-
- /*
- * send out the buffer
- */
- if (iPts == NUMPTSTOBUFFER) {
- tmpPtBlock = Xmalloc(sizeof(POINTBLOCK));
- curPtBlock->next = tmpPtBlock;
- curPtBlock = tmpPtBlock;
- pts = curPtBlock->pts;
- numFullPtBlocks++;
- iPts = 0;
- }
- EVALUATEEDGEEVENODD(pAET, pPrevAET, y);
- }
- (void) InsertionSort(&AET);
- }
- }
- else {
- /*
- * for each scanline
- */
- for (y = ET.ymin; y < ET.ymax; y++) {
- /*
- * Add a new edge to the active edge table when we
- * get to the next edge.
- */
- if (pSLL != NULL && y == pSLL->scanline) {
- loadAET(&AET, pSLL->edgelist);
- computeWAET(&AET);
- pSLL = pSLL->next;
- }
- pPrevAET = &AET;
- pAET = AET.next;
- pWETE = pAET;
-
- /*
- * for each active edge
- */
- while (pAET) {
- /*
- * add to the buffer only those edges that
- * are in the Winding active edge table.
- */
- if (pWETE == pAET) {
- pts->x = pAET->bres.minor_axis, pts->y = y;
- pts++, iPts++;
-
- /*
- * send out the buffer
- */
- if (iPts == NUMPTSTOBUFFER) {
- tmpPtBlock = Xmalloc(sizeof(POINTBLOCK));
- curPtBlock->next = tmpPtBlock;
- curPtBlock = tmpPtBlock;
- pts = curPtBlock->pts;
- numFullPtBlocks++; iPts = 0;
- }
- pWETE = pWETE->nextWETE;
- }
- EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET);
- }
-
- /*
- * recompute the winding active edge table if
- * we just resorted or have exited an edge.
- */
- if (InsertionSort(&AET) || fixWAET) {
- computeWAET(&AET);
- fixWAET = FALSE;
- }
- }
- }
- FreeStorage(SLLBlock.next);
- (void) PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region);
- for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) {
- tmpPtBlock = curPtBlock->next;
- Xfree(curPtBlock);
- curPtBlock = tmpPtBlock;
- }
- Xfree(pETEs);
- return(region);
-}
diff --git a/nx-X11/lib/X11/PolyTxt.c b/nx-X11/lib/X11/PolyTxt.c
deleted file mode 100644
index 471383b57..000000000
--- a/nx-X11/lib/X11/PolyTxt.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawText(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- XTextItem *items,
- int nitems)
-{
- register int i;
- register XTextItem *item;
- int length = 0;
- register xPolyText8Req *req;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq (PolyText8, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->x = x;
- req->y = y;
-
- item = items;
- for (i=0; i < nitems; i++) {
- if (item->font)
- length += 5; /* a 255 byte, plus size of Font id */
- if (item->delta)
- {
- if (item->delta > 0)
- {
- length += SIZEOF(xTextElt) * ((item->delta + 126) / 127);
- }
- else
- {
- length += SIZEOF(xTextElt) * ((-item->delta + 127) / 128);
- }
- }
- if (item->nchars > 0)
- {
- length += SIZEOF(xTextElt) * ((item->nchars + 253) / 254 - 1);
- if (!item->delta) length += SIZEOF(xTextElt);
- length += item->nchars;
- }
- item++;
- }
-
- req->length += (length + 3)>>2; /* convert to number of 32-bit words */
-
-
- /*
- * If the entire request does not fit into the remaining space in the
- * buffer, flush the buffer first. If the request does fit into the
- * empty buffer, then we won't have to flush it at the end to keep
- * the buffer 32-bit aligned.
- */
-
- if (dpy->bufptr + length > dpy->bufmax)
- _XFlush (dpy);
-
- item = items;
- for (i=0; i< nitems; i++) {
-
- if (item->font) {
- /* to mark a font shift, write a 255 byte followed by
- the 4 bytes of font ID, big-end first */
- register unsigned char *f;
- BufAlloc (unsigned char *, f, 5);
-
- f[0] = 255;
- f[1] = (item->font & 0xff000000) >> 24;
- f[2] = (item->font & 0x00ff0000) >> 16;
- f[3] = (item->font & 0x0000ff00) >> 8;
- f[4] = item->font & 0x000000ff;
-
- /* update GC shadow */
- gc->values.font = item->font;
- }
-
- {
- int nbytes = SIZEOF(xTextElt);
- int PartialNChars = item->nchars;
- int PartialDelta = item->delta;
- /* register xTextElt *elt; */
- int FirstTimeThrough = True;
- char *CharacterOffset = item->chars;
- char *tbuf = NULL;
-
- while((PartialDelta < -128) || (PartialDelta > 127))
- {
- int nb = SIZEOF(xTextElt);
-
- BufAlloc (char *, tbuf, nb);
- *tbuf = 0; /* elt->len */
- if (PartialDelta > 0 )
- {
- *(tbuf+1) = 127; /* elt->delta */
- PartialDelta = PartialDelta - 127;
- }
- else
- {
- /* -128 = 0x8, need to be careful of signed chars... */
- *((unsigned char *)(tbuf+1)) = 0x80; /* elt->delta */
- PartialDelta = PartialDelta + 128;
- }
- }
- if (PartialDelta)
- {
- BufAlloc (char *, tbuf , nbytes);
- *tbuf = 0; /* elt->len */
- *(tbuf+1) = PartialDelta; /* elt->delta */
- }
- while(PartialNChars > 254)
- {
- nbytes = 254;
- if (FirstTimeThrough)
- {
- FirstTimeThrough = False;
- if (!item->delta)
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (char *, tbuf, nbytes);
- *(tbuf+1) = 0; /* elt->delta */
- }
- else
- {
- char *DummyChar;
- BufAlloc(char *, DummyChar, nbytes);
- }
- }
- else
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (char *, tbuf, nbytes);
- *(tbuf+1) = 0; /* elt->delta */
- }
- /* watch out for signs on chars */
- *(unsigned char *)tbuf = 254; /* elt->len */
- memcpy (tbuf+2 , CharacterOffset, 254);
- PartialNChars = PartialNChars - 254;
- CharacterOffset += 254;
-
- }
- if (PartialNChars)
- {
- nbytes = PartialNChars;
- if (FirstTimeThrough)
- {
- FirstTimeThrough = False;
- if (!item->delta)
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (char *, tbuf, nbytes);
- *(tbuf+1) = 0; /* elt->delta */
- }
- else
- {
- char *DummyChar;
- BufAlloc(char *, DummyChar, nbytes);
- }
- }
- else
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (char *, tbuf, nbytes);
- *(tbuf+1) = 0; /* elt->delta */
- }
- *tbuf = PartialNChars; /* elt->len */
- memcpy (tbuf+2 , CharacterOffset, PartialNChars);
- }
- }
- item++;
- }
-
- /* Pad request out to a 32-bit boundary */
-
- if (length &= 3) {
- char *pad;
- /*
- * BufAlloc is a macro that uses its last argument more than
- * once, otherwise I'd write "BufAlloc (char *, pad, 4-length)"
- */
- length = 4 - length;
- BufAlloc (char *, pad, length);
- /*
- * if there are 3 bytes of padding, the first byte MUST be 0
- * so the pad bytes aren't mistaken for a final xTextElt
- */
- *pad = 0;
- }
-
- /*
- * If the buffer pointer is not now pointing to a 32-bit boundary,
- * we must flush the buffer so that it does point to a 32-bit boundary
- * at the end of this routine.
- */
-
- if ((dpy->bufptr - dpy->buffer) & 3)
- _XFlush (dpy);
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
diff --git a/nx-X11/lib/X11/PolyTxt16.c b/nx-X11/lib/X11/PolyTxt16.c
deleted file mode 100644
index 2e4be1673..000000000
--- a/nx-X11/lib/X11/PolyTxt16.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawText16(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- XTextItem16 *items,
- int nitems)
-{
- register int i;
- register XTextItem16 *item;
- int length = 0;
- register xPolyText16Req *req;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq (PolyText16, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->x = x;
- req->y = y;
-
- item = items;
- for (i=0; i < nitems; i++) {
- if (item->font)
- length += 5; /* a 255 byte, plus size of Font id */
- if (item->delta)
- {
- if (item->delta > 0)
- {
- length += SIZEOF(xTextElt) * ((item->delta + 126) / 127);
- }
- else
- {
- length += SIZEOF(xTextElt) * ((-item->delta + 127) / 128);
- }
- }
- if (item->nchars > 0)
- {
- length += SIZEOF(xTextElt) * ((item->nchars + 253) / 254 - 1);
- if (!item->delta) length += SIZEOF(xTextElt);
- length += item->nchars << 1;
- }
- item++;
- }
-
- req->length += (length + 3)>>2; /* convert to number of 32-bit words */
-
-
- /*
- * If the entire request does not fit into the remaining space in the
- * buffer, flush the buffer first. If the request does fit into the
- * empty buffer, then we won't have to flush it at the end to keep
- * the buffer 32-bit aligned.
- */
-
- if (dpy->bufptr + length > dpy->bufmax)
- _XFlush (dpy);
-
- item = items;
- for (i=0; i< nitems; i++) {
-
- if (item->font) {
- /* to mark a font shift, write a 255 byte followed by
- the 4 bytes of font ID, big-end first */
- register unsigned char *f;
- BufAlloc (unsigned char *, f, 5);
-
- f[0] = 255;
- f[1] = (item->font & 0xff000000) >> 24;
- f[2] = (item->font & 0x00ff0000) >> 16;
- f[3] = (item->font & 0x0000ff00) >> 8;
- f[4] = item->font & 0x000000ff;
-
- /* update GC shadow */
- gc->values.font = item->font;
- }
-
- {
- int nbytes = SIZEOF(xTextElt);
- int PartialNChars = item->nchars;
- int PartialDelta = item->delta;
- register xTextElt *elt = NULL;
- int FirstTimeThrough = True;
- XChar2b *CharacterOffset = item->chars;
-
- while((PartialDelta < -128) || (PartialDelta > 127))
- {
- int nb = SIZEOF(xTextElt);
-
- BufAlloc (xTextElt *, elt, nb);
- elt->len = 0;
- if (PartialDelta > 0 )
- {
- elt->delta = 127;
- PartialDelta = PartialDelta - 127;
- }
- else
- {
- elt->delta = -128;
- PartialDelta = PartialDelta + 128;
- }
- }
- if (PartialDelta)
- {
- BufAlloc (xTextElt *, elt, nbytes);
- elt->len = 0;
- elt->delta = PartialDelta;
- }
- while(PartialNChars > 254)
- {
- nbytes = 254 * 2;
- if (FirstTimeThrough)
- {
- FirstTimeThrough = False;
- if (!item->delta)
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (xTextElt *, elt, nbytes);
- elt->delta = 0;
- }
- else
- {
- char *DummyChar;
- BufAlloc(char *, DummyChar, nbytes);
-#ifdef lint
- DummyChar = DummyChar;
-#endif
- }
- }
- else
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (xTextElt *, elt, nbytes);
- elt->delta = 0;
- }
- elt->len = 254;
-
- memcpy ((char *) (elt + 1), (char *)CharacterOffset, 254 * 2);
- PartialNChars = PartialNChars - 254;
- CharacterOffset += 254;
-
- }
- if (PartialNChars)
- {
- nbytes = PartialNChars * 2;
- if (FirstTimeThrough)
- {
- FirstTimeThrough = False;
- if (!item->delta)
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (xTextElt *, elt, nbytes);
- elt->delta = 0;
- }
- else
- {
- char *DummyChar;
- BufAlloc(char *, DummyChar, nbytes);
-#ifdef lint
- DummyChar = DummyChar;
-#endif
- }
- }
- else
- {
- nbytes += SIZEOF(xTextElt);
- BufAlloc (xTextElt *, elt, nbytes);
- elt->delta = 0;
- }
- elt->len = PartialNChars;
-
- memcpy ((char *) (elt + 1), (char *)CharacterOffset,
- PartialNChars *
-2);
- }
- }
- item++;
- }
-
- /* Pad request out to a 32-bit boundary */
-
- if (length &= 3) {
- char *pad;
- /*
- * BufAlloc is a macro that uses its last argument more than
- * once, otherwise I'd write "BufAlloc (char *, pad, 4-length)"
- */
- length = 4 - length;
- BufAlloc (char *, pad, length);
- /*
- * if there are 3 bytes of padding, the first byte MUST be 0
- * so the pad bytes aren't mistaken for a final xTextElt
- */
- *pad = 0;
- }
-
- /*
- * If the buffer pointer is not now pointing to a 32-bit boundary,
- * we must flush the buffer so that it does point to a 32-bit boundary
- * at the end of this routine.
- */
-
- if ((dpy->bufptr - dpy->buffer) & 3)
- _XFlush (dpy);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
-
-
-
diff --git a/nx-X11/lib/X11/PrOfId.c b/nx-X11/lib/X11/PrOfId.c
deleted file mode 100644
index a96d28cec..000000000
--- a/nx-X11/lib/X11/PrOfId.c
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsPrOfId.c
- *
- * DESCRIPTION
- * Source for XcmsPrefixOfFormat()
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/*
- * NAME
- * XcmsPrefixOfId
- *
- * SYNOPSIS
- */
-char *
-XcmsPrefixOfFormat(
- XcmsColorFormat id)
-/*
- * DESCRIPTION
- * Returns the color space prefix for the specified color
- * space ID if the color space is found in the Color
- * Conversion Context.
- *
- * RETURNS
- * Returns a color space prefix.
- *
- * CAVEATS
- * Space is allocated for the returned string, therefore,
- * the application is responsible for freeing (using XFree)
- * the space.
- *
- */
-{
- XcmsColorSpace **papColorSpaces;
-
- /*
- * First try Device-Independent color spaces
- */
- papColorSpaces = _XcmsDIColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if ((*papColorSpaces)->id == id) {
- return strdup((*papColorSpaces)->prefix);
- }
- papColorSpaces++;
- }
- }
-
- /*
- * Next try Device-Dependent color spaces
- */
- papColorSpaces = _XcmsDDColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if ((*papColorSpaces)->id == id) {
- return strdup((*papColorSpaces)->prefix);
- }
- papColorSpaces++;
- }
- }
-
- return(NULL);
-}
diff --git a/nx-X11/lib/X11/PropAlloc.c b/nx-X11/lib/X11/PropAlloc.c
deleted file mode 100644
index 87817d88a..000000000
--- a/nx-X11/lib/X11/PropAlloc.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-#include <stdio.h>
-
-
-/*
- * Routines for allocating space for structures that are expected to get
- * longer at some point.
- */
-
-XSizeHints *XAllocSizeHints (void)
-{
- return Xcalloc (1, sizeof (XSizeHints));
-}
-
-
-XStandardColormap *XAllocStandardColormap (void)
-{
- return Xcalloc (1, sizeof (XStandardColormap));
-}
-
-
-XWMHints *XAllocWMHints (void)
-{
- return Xcalloc (1, sizeof (XWMHints));
-}
-
-
-XClassHint *XAllocClassHint (void)
-{
- return Xcalloc (1, sizeof (XClassHint));
-}
-
-
-XIconSize *XAllocIconSize (void)
-{
- return Xcalloc (1, sizeof (XIconSize));
-}
-
-
diff --git a/nx-X11/lib/X11/PutBEvent.c b/nx-X11/lib/X11/PutBEvent.c
deleted file mode 100644
index 1768e032c..000000000
--- a/nx-X11/lib/X11/PutBEvent.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/* XPutBackEvent puts an event back at the head of the queue. */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-_XPutBackEvent (
- register Display *dpy,
- register XEvent *event)
- {
- register _XQEvent *qelt;
- XEvent store = *event;
-
- if (!dpy->qfree) {
- if ((dpy->qfree = Xmalloc (sizeof (_XQEvent))) == NULL) {
- return 0;
- }
- dpy->qfree->next = NULL;
- }
-
- /* unclaimed cookie? */
- if (_XIsEventCookie(dpy, event))
- {
- XEvent copy = {0};
- /* if not claimed, then just fetch and store again */
- if (!event->xcookie.data) {
- _XFetchEventCookie(dpy, &event->xcookie);
- store = *event;
- } else { /* if claimed, copy, client must free */
- _XCopyEventCookie(dpy, &event->xcookie, &copy.xcookie);
- store = copy;
- }
- }
-
- qelt = dpy->qfree;
- dpy->qfree = qelt->next;
- qelt->qserial_num = dpy->next_event_serial_num++;
- qelt->next = dpy->head;
- qelt->event = store;
- dpy->head = qelt;
- if (dpy->tail == NULL)
- dpy->tail = qelt;
- dpy->qlen++;
- return 0;
- }
-
-int
-XPutBackEvent (
- register Display * dpy,
- register XEvent *event)
- {
- int ret;
-
- LockDisplay(dpy);
- ret = _XPutBackEvent(dpy, event);
- UnlockDisplay(dpy);
- return ret;
- }
diff --git a/nx-X11/lib/X11/PutImage.c b/nx-X11/lib/X11/PutImage.c
deleted file mode 100644
index daf172cf0..000000000
--- a/nx-X11/lib/X11/PutImage.c
+++ /dev/null
@@ -1,1030 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-#include <stdio.h>
-#include "Cr.h"
-#include "ImUtil.h"
-
-#if defined(__STDC__) && ((defined(sun) && defined(SVR4)) || defined(WIN32))
-#define RConst /**/
-#else
-#define RConst const
-#endif
-
-/* assumes pad is a power of 2 */
-#define ROUNDUP(nbytes, pad) (((nbytes) + ((pad) - 1)) & ~(long)((pad) - 1))
-
-static unsigned char const _reverse_byte[0x100] = {
- 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
- 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
- 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
- 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
- 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
- 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
- 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
- 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
- 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
- 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
- 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
- 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
- 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
- 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
- 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
- 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
- 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
- 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
- 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
- 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
- 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
- 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
- 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
- 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
- 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
- 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
- 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
- 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
- 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
- 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
- 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
- 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
-};
-
-static unsigned char const _reverse_nibs[0x100] = {
- 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
- 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0,
- 0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71,
- 0x81, 0x91, 0xa1, 0xb1, 0xc1, 0xd1, 0xe1, 0xf1,
- 0x02, 0x12, 0x22, 0x32, 0x42, 0x52, 0x62, 0x72,
- 0x82, 0x92, 0xa2, 0xb2, 0xc2, 0xd2, 0xe2, 0xf2,
- 0x03, 0x13, 0x23, 0x33, 0x43, 0x53, 0x63, 0x73,
- 0x83, 0x93, 0xa3, 0xb3, 0xc3, 0xd3, 0xe3, 0xf3,
- 0x04, 0x14, 0x24, 0x34, 0x44, 0x54, 0x64, 0x74,
- 0x84, 0x94, 0xa4, 0xb4, 0xc4, 0xd4, 0xe4, 0xf4,
- 0x05, 0x15, 0x25, 0x35, 0x45, 0x55, 0x65, 0x75,
- 0x85, 0x95, 0xa5, 0xb5, 0xc5, 0xd5, 0xe5, 0xf5,
- 0x06, 0x16, 0x26, 0x36, 0x46, 0x56, 0x66, 0x76,
- 0x86, 0x96, 0xa6, 0xb6, 0xc6, 0xd6, 0xe6, 0xf6,
- 0x07, 0x17, 0x27, 0x37, 0x47, 0x57, 0x67, 0x77,
- 0x87, 0x97, 0xa7, 0xb7, 0xc7, 0xd7, 0xe7, 0xf7,
- 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x68, 0x78,
- 0x88, 0x98, 0xa8, 0xb8, 0xc8, 0xd8, 0xe8, 0xf8,
- 0x09, 0x19, 0x29, 0x39, 0x49, 0x59, 0x69, 0x79,
- 0x89, 0x99, 0xa9, 0xb9, 0xc9, 0xd9, 0xe9, 0xf9,
- 0x0a, 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a,
- 0x8a, 0x9a, 0xaa, 0xba, 0xca, 0xda, 0xea, 0xfa,
- 0x0b, 0x1b, 0x2b, 0x3b, 0x4b, 0x5b, 0x6b, 0x7b,
- 0x8b, 0x9b, 0xab, 0xbb, 0xcb, 0xdb, 0xeb, 0xfb,
- 0x0c, 0x1c, 0x2c, 0x3c, 0x4c, 0x5c, 0x6c, 0x7c,
- 0x8c, 0x9c, 0xac, 0xbc, 0xcc, 0xdc, 0xec, 0xfc,
- 0x0d, 0x1d, 0x2d, 0x3d, 0x4d, 0x5d, 0x6d, 0x7d,
- 0x8d, 0x9d, 0xad, 0xbd, 0xcd, 0xdd, 0xed, 0xfd,
- 0x0e, 0x1e, 0x2e, 0x3e, 0x4e, 0x5e, 0x6e, 0x7e,
- 0x8e, 0x9e, 0xae, 0xbe, 0xce, 0xde, 0xee, 0xfe,
- 0x0f, 0x1f, 0x2f, 0x3f, 0x4f, 0x5f, 0x6f, 0x7f,
- 0x8f, 0x9f, 0xaf, 0xbf, 0xcf, 0xdf, 0xef, 0xff
-};
-
-int
-_XReverse_Bytes(
- register unsigned char *bpt,
- register int nb)
-{
- do {
- *bpt = _reverse_byte[*bpt];
- bpt++;
- } while (--nb > 0);
- return 0;
-}
-
-
-/* XXX the following functions are declared int instead of void because various
- * compilers and lints complain about later initialization of SwapFunc and/or
- * (swapfunc == NoSwap) when void is used.
- */
-
-/*ARGSUSED*/
-static void
-NoSwap (
- register unsigned char *src,
- register unsigned char *dest,
- long srclen,
- long srcinc,
- long destinc,
- unsigned int height,
- int half_order)
-{
- long h = height;
-
- if (srcinc == destinc)
- memcpy((char *)dest, (char *)src, (int)(srcinc * (h - 1) + srclen));
- else
- for (; --h >= 0; src += srcinc, dest += destinc)
- memcpy((char *)dest, (char *)src, (int)srclen);
-}
-
-static void
-SwapTwoBytes (
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- long length = ROUNDUP(srclen, 2);
- register long h, n;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 2;
- if (half_order == MSBFirst)
- *(dest + length) = *(src + length + 1);
- else
- *(dest + length + 1) = *(src + length);
- }
- for (n = length; n > 0; n -= 2, src += 2) {
- *dest++ = *(src + 1);
- *dest++ = *src;
- }
- }
-}
-
-static void
-SwapThreeBytes (
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int byte_order)
-{
- long length = ((srclen + 2) / 3) * 3;
- register long h, n;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 3;
- if ((srclen - length) == 2)
- *(dest + length + 1) = *(src + length + 1);
- if (byte_order == MSBFirst)
- *(dest + length) = *(src + length + 2);
- else
- *(dest + length + 2) = *(src + length);
- }
- for (n = length; n > 0; n -= 3, src += 3) {
- *dest++ = *(src + 2);
- *dest++ = *(src + 1);
- *dest++ = *src;
- }
- }
-}
-
-static void
-SwapFourBytes (
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- long length = ROUNDUP(srclen, 4);
- register long h, n;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 4;
- if (half_order == MSBFirst)
- *(dest + length) = *(src + length + 3);
- if (((half_order == LSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == MSBFirst) && (srclen & 2)))
- *(dest + length + 1) = *(src + length + 2);
- if (((half_order == MSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == LSBFirst) && (srclen & 2)))
- *(dest + length + 2) = *(src + length + 1);
- if (half_order == LSBFirst)
- *(dest + length + 3) = *(src + length);
- }
- for (n = length; n > 0; n -= 4, src += 4) {
- *dest++ = *(src + 3);
- *dest++ = *(src + 2);
- *dest++ = *(src + 1);
- *dest++ = *src;
- }
- }
-}
-
-static void
-SwapWords (
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- long length = ROUNDUP(srclen, 4);
- register long h, n;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 4;
- if (half_order == MSBFirst)
- *(dest + length + 1) = *(src + length + 3);
- if (((half_order == LSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == MSBFirst) && (srclen & 2)))
- *(dest + length) = *(src + length + 2);
- if (((half_order == MSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == LSBFirst) && (srclen & 2)))
- *(dest + length + 3) = *(src + length + 1);
- if (half_order == LSBFirst)
- *(dest + length + 2) = *(src + length);
- }
- for (n = length; n > 0; n -= 4, src += 2) {
- *dest++ = *(src + 2);
- *dest++ = *(src + 3);
- *dest++ = *src++;
- *dest++ = *src++;
- }
- }
-}
-
-static void
-SwapNibbles(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height)
-{
- register long h, n;
- register const unsigned char *rev = _reverse_nibs;
-
- srcinc -= srclen;
- destinc -= srclen;
- for (h = height; --h >= 0; src += srcinc, dest += destinc)
- for (n = srclen; --n >= 0; )
- *dest++ = rev[*src++];
-}
-
-static void
-ShiftNibblesLeft (
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int nibble_order)
-{
- register long h, n;
- register unsigned char c1, c2;
-
- srcinc -= srclen;
- destinc -= srclen;
- if (nibble_order == MSBFirst) {
- for (h = height; --h >= 0; src += srcinc, dest += destinc)
- for (n = srclen; --n >= 0; ) {
- c1 = *src++;
- c2 = *src;
- *dest++ = ((c1 & 0x0f) << 4) | ((c2 & (unsigned)0xf0) >> 4);
- }
- } else {
- for (h = height; --h >= 0; src += srcinc, dest += destinc)
- for (n = srclen; --n >= 0; ) {
- c1 = *src++;
- c2 = *src;
- *dest++ = ((c2 & 0x0f) << 4) | ((c1 & (unsigned)0xf0) >> 4);
- }
- }
-}
-
-/*ARGSUSED*/
-static void
-SwapBits(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- register long h, n;
- register const unsigned char *rev = _reverse_byte;
-
- srcinc -= srclen;
- destinc -= srclen;
- for (h = height; --h >= 0; src += srcinc, dest += destinc)
- for (n = srclen; --n >= 0; )
- *dest++ = rev[*src++];
-}
-
-static void
-SwapBitsAndTwoBytes(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- long length = ROUNDUP(srclen, 2);
- register long h, n;
- register const unsigned char *rev = _reverse_byte;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 2;
- if (half_order == MSBFirst)
- *(dest + length) = rev[*(src + length + 1)];
- else
- *(dest + length + 1) = rev[*(src + length)];
- }
- for (n = length; n > 0; n -= 2, src += 2) {
- *dest++ = rev[*(src + 1)];
- *dest++ = rev[*src];
- }
- }
-}
-
-static void
-SwapBitsAndFourBytes(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- long length = ROUNDUP(srclen, 4);
- register long h, n;
- register const unsigned char *rev = _reverse_byte;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 4;
- if (half_order == MSBFirst)
- *(dest + length) = rev[*(src + length + 3)];
- if (((half_order == LSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == MSBFirst) && (srclen & 2)))
- *(dest + length + 1) = rev[*(src + length + 2)];
- if (((half_order == MSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == LSBFirst) && (srclen & 2)))
- *(dest + length + 2) = rev[*(src + length + 1)];
- if (half_order == LSBFirst)
- *(dest + length + 3) = rev[*(src + length)];
- }
- for (n = length; n > 0; n -= 4, src += 4) {
- *dest++ = rev[*(src + 3)];
- *dest++ = rev[*(src + 2)];
- *dest++ = rev[*(src + 1)];
- *dest++ = rev[*src];
- }
- }
-}
-
-static void
-SwapBitsAndWords(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen, long srcinc, long destinc,
- unsigned int height,
- int half_order)
-{
- long length = ROUNDUP(srclen, 4);
- register long h, n;
- register const unsigned char *rev = _reverse_byte;
-
- srcinc -= length;
- destinc -= length;
- for (h = height; --h >= 0; src += srcinc, dest += destinc) {
- if ((h == 0) && (srclen != length)) {
- length -= 4;
- if (half_order == MSBFirst)
- *(dest + length + 1) = rev[*(src + length + 3)];
- if (((half_order == LSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == MSBFirst) && (srclen & 2)))
- *(dest + length) = rev[*(src + length + 2)];
- if (((half_order == MSBFirst) && ((srclen - length) == 3)) ||
- ((half_order == LSBFirst) && (srclen & 2)))
- *(dest + length + 3) = rev[*(src + length + 1)];
- if (half_order == LSBFirst)
- *(dest + length + 2) = rev[*(src + length)];
- }
- for (n = length; n > 0; n -= 4, src += 2) {
- *dest++ = rev[*(src + 2)];
- *dest++ = rev[*(src + 3)];
- *dest++ = rev[*src++];
- *dest++ = rev[*src++];
- }
- }
-}
-
-/*
-
-The following table gives the bit ordering within bytes (when accessed
-sequentially) for a scanline containing 32 bits, with bits numbered 0 to
-31, where bit 0 should be leftmost on the display. For a given byte
-labelled A-B, A is for the most significant bit of the byte, and B is
-for the least significant bit.
-
-legend:
- 1 scanline-unit = 8
- 2 scanline-unit = 16
- 4 scanline-unit = 32
- M byte-order = MostSignificant
- L byte-order = LeastSignificant
- m bit-order = MostSignificant
- l bit-order = LeastSignificant
-
-
-format ordering
-
-1Mm 00-07 08-15 16-23 24-31
-2Mm 00-07 08-15 16-23 24-31
-4Mm 00-07 08-15 16-23 24-31
-1Ml 07-00 15-08 23-16 31-24
-2Ml 15-08 07-00 31-24 23-16
-4Ml 31-24 23-16 15-08 07-00
-1Lm 00-07 08-15 16-23 24-31
-2Lm 08-15 00-07 24-31 16-23
-4Lm 24-31 16-23 08-15 00-07
-1Ll 07-00 15-08 23-16 31-24
-2Ll 07-00 15-08 23-16 31-24
-4Ll 07-00 15-08 23-16 31-24
-
-
-The following table gives the required conversion between any two
-formats. It is based strictly on the table above. If you believe one,
-you should believe the other.
-
-legend:
- n no changes
- s reverse 8-bit units within 16-bit units
- l reverse 8-bit units within 32-bit units
- w reverse 16-bit units within 32-bit units
- R reverse bits within 8-bit units
- S s+R
- L l+R
- W w+R
-
-*/
-
-static void (* RConst (SwapFunction[12][12]))(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen,
- long srcinc,
- long destinc,
- unsigned int height,
- int half_order) = {
-#define n NoSwap,
-#define s SwapTwoBytes,
-#define l SwapFourBytes,
-#define w SwapWords,
-#define R SwapBits,
-#define S SwapBitsAndTwoBytes,
-#define L SwapBitsAndFourBytes,
-#define W SwapBitsAndWords,
-
-/* 1Mm 2Mm 4Mm 1Ml 2Ml 4Ml 1Lm 2Lm 4Lm 1Ll 2Ll 4Ll */
-/* 1Mm */ { n n n R S L n s l R R R },
-/* 2Mm */ { n n n R S L n s l R R R },
-/* 4Mm */ { n n n R S L n s l R R R },
-/* 1Ml */ { R R R n s l R S L n n n },
-/* 2Ml */ { S S S s n w S R W s s s },
-/* 4Ml */ { L L L l w n L W R l l l },
-/* 1Lm */ { n n n R S L n s l R R R },
-/* 2Lm */ { s s s S R W s n w S S S },
-/* 4Lm */ { l l l L W R l w n L L L },
-/* 1Ll */ { R R R n s l R S L n n n },
-/* 2Ll */ { R R R n s l R S L n n n },
-/* 4Ll */ { R R R n s l R S L n n n }
-
-#undef n
-#undef s
-#undef l
-#undef w
-#undef R
-#undef S
-#undef L
-#undef W
-
-};
-
-/* Of course, the table above is a lie. We also need to factor in the
- * order of the source data to cope with swapping half of a unit at the
- * end of a scanline, since we are trying to avoid de-ref'ing off the
- * end of the source.
- *
- * Defines whether the first half of a unit has the first half of the data
- */
-static int const HalfOrder[12] = {
- LSBFirst, /* 1Mm */
- LSBFirst, /* 2Mm */
- LSBFirst, /* 4Mm */
- LSBFirst, /* 1Ml */
- MSBFirst, /* 2Ml */
- MSBFirst, /* 4Ml */
- LSBFirst, /* 1Lm */
- MSBFirst, /* 2Lm */
- MSBFirst, /* 4Lm */
- LSBFirst, /* 1Ll */
- LSBFirst, /* 2Ll */
- LSBFirst /* 4Ll */
- };
-
-/* Finally, for SwapWords cases, the half order depends not just on the source
- * but also on the destination scanline unit. Use of this table changes some
- * MSBFirsts to LSBFirsts that are "do not care" (because the function will be
- * NoSwap or SwapBits) in addition to changing the desired ones.
- */
-
-static int const HalfOrderWord[12] = {
- MSBFirst, /* 1Mm */
- MSBFirst, /* 2Mm */
- MSBFirst, /* 4Mm */
- MSBFirst, /* 1Ml */
- MSBFirst, /* 2Ml */
- LSBFirst, /* 4Ml */
- MSBFirst, /* 1Lm */
- MSBFirst, /* 2Lm */
- LSBFirst, /* 4Lm */
- MSBFirst, /* 1Ll */
- MSBFirst, /* 2Ll */
- MSBFirst /* 4Ll */
- };
-
-/*
- * This macro creates a value from 0 to 11 suitable for indexing
- * into the table above.
- */
-#define ComposeIndex(bitmap_unit, bitmap_bit_order, byte_order) \
- (((bitmap_unit == 32) ? 2 : ((bitmap_unit == 16) ? 1 : 0)) \
- + (((bitmap_bit_order == MSBFirst) ? 0 : 3) \
- + ((byte_order == MSBFirst) ? 0 : 6)))
-
-/* Cancel a GetReq operation, before doing _XSend or Data */
-
-#define UnGetReq(name)\
- dpy->bufptr -= SIZEOF(x##name##Req);\
- dpy->request--
-
-static void
-SendXYImage(
- register Display *dpy,
- register xPutImageReq *req,
- register XImage *image,
- int req_xoffset, int req_yoffset)
-{
- register int j;
- long total_xoffset, bytes_per_src, bytes_per_dest, length;
- long bytes_per_line, bytes_per_src_plane, bytes_per_dest_plane;
- char *src, *dest, *buf;
- char *extra = (char *)NULL;
- register void (*swapfunc)(
- register unsigned char *src,
- register unsigned char *dest,
- long srclen,
- long srcinc,
- long destinc,
- unsigned int height,
- int half_order);
- int half_order;
-
- total_xoffset = image->xoffset + req_xoffset;
- req->leftPad = total_xoffset & (dpy->bitmap_unit - 1);
- total_xoffset = (unsigned)(total_xoffset - req->leftPad) >> 3;
- /* The protocol requires left-pad of zero on all ZPixmap, even
- * though the 1-bit case is identical to bitmap format. This is a
- * bug in the protocol, caused because 1-bit ZPixmap was added late
- * in the game. Hairy shifting code compensation isn't worth it,
- * just use XYPixmap format instead.
- */
- if ((req->leftPad != 0) && (req->format == ZPixmap))
- req->format = XYPixmap;
- bytes_per_dest = (unsigned long)ROUNDUP((long)req->width + req->leftPad,
- dpy->bitmap_pad) >> 3;
- bytes_per_dest_plane = bytes_per_dest * req->height;
- length = bytes_per_dest_plane * image->depth;
- req->length += (length + 3) >> 2;
-
- swapfunc = SwapFunction[ComposeIndex(image->bitmap_unit,
- image->bitmap_bit_order,
- image->byte_order)]
- [ComposeIndex(dpy->bitmap_unit,
- dpy->bitmap_bit_order,
- dpy->byte_order)];
- half_order = HalfOrder[ComposeIndex(image->bitmap_unit,
- image->bitmap_bit_order,
- image->byte_order)];
- if (half_order == MSBFirst)
- half_order = HalfOrderWord[ComposeIndex(dpy->bitmap_unit,
- dpy->bitmap_bit_order,
- dpy->byte_order)];
-
- src = image->data + (image->bytes_per_line * req_yoffset) + total_xoffset;
-
- /* when total_xoffset > 0, we have to worry about stepping off the
- * end of image->data.
- */
- if ((swapfunc == NoSwap) &&
- (image->bytes_per_line == bytes_per_dest) &&
- (((total_xoffset == 0) &&
- ((image->depth == 1) || (image->height == req->height))) ||
- ((image->depth == 1) &&
- ((req_yoffset + req->height) < (unsigned)image->height)))) {
- Data(dpy, src, length);
- return;
- }
-
- length = ROUNDUP(length, 4);
- if ((dpy->bufptr + length) > dpy->bufmax) {
- if ((buf = _XAllocScratch(dpy, length)) == NULL) {
- UnGetReq(PutImage);
- return;
- }
- }
- else
- buf = dpy->bufptr;
-
- bytes_per_src = (req->width + req->leftPad + (unsigned)7) >> 3;
- bytes_per_line = image->bytes_per_line;
- bytes_per_src_plane = bytes_per_line * image->height;
- total_xoffset &= (image->bitmap_unit - 1) >> 3;
-
- if ((total_xoffset > 0) &&
- (image->byte_order != image->bitmap_bit_order)) {
- char *temp;
- long bytes_per_temp_plane, temp_length;
-
- bytes_per_line = bytes_per_src + total_xoffset;
- src -= total_xoffset;
- bytes_per_temp_plane = bytes_per_line * req->height;
- temp_length = ROUNDUP(bytes_per_temp_plane * image->depth, 4);
- if (buf == dpy->bufptr) {
- if (! (temp = _XAllocScratch(dpy, temp_length))) {
- UnGetReq(PutImage);
- return;
- }
- }
- else
- if ((extra = temp = Xmalloc(temp_length)) == NULL) {
- UnGetReq(PutImage);
- return;
- }
-
- swapfunc = SwapFunction[ComposeIndex(image->bitmap_unit,
- image->bitmap_bit_order,
- image->byte_order)]
- [ComposeIndex(image->bitmap_unit,
- dpy->byte_order,
- dpy->byte_order)];
- for (dest = temp, j = image->depth;
- --j >= 0;
- src += bytes_per_src_plane, dest += bytes_per_temp_plane)
- (*swapfunc)((unsigned char *)src, (unsigned char *)dest,
- bytes_per_line, (long)image->bytes_per_line,
- bytes_per_line, req->height, half_order);
- swapfunc = SwapFunction[ComposeIndex(image->bitmap_unit,
- dpy->byte_order,
- dpy->byte_order)]
- [ComposeIndex(dpy->bitmap_unit,
- dpy->bitmap_bit_order,
- dpy->byte_order)];
- half_order = HalfOrder[ComposeIndex(image->bitmap_unit,
- dpy->byte_order,
- dpy->byte_order)];
- src = temp + total_xoffset;
- bytes_per_src_plane = bytes_per_temp_plane;
- }
-
- for (dest = buf, j = image->depth;
- --j >= 0;
- src += bytes_per_src_plane, dest += bytes_per_dest_plane)
- (*swapfunc)((unsigned char *)src, (unsigned char *)dest,
- bytes_per_src, bytes_per_line,
- bytes_per_dest, req->height, half_order);
-
- Xfree(extra);
-
- if (buf == dpy->bufptr)
- dpy->bufptr += length;
- else
- _XSend(dpy, buf, length);
- }
-
-static void
-SendZImage(
- register Display *dpy,
- register xPutImageReq *req,
- register XImage *image,
- int req_xoffset, int req_yoffset,
- int dest_bits_per_pixel, int dest_scanline_pad)
-{
- long bytes_per_src, bytes_per_dest, length;
- unsigned char *src, *dest;
- unsigned char *shifted_src = NULL;
-
- req->leftPad = 0;
- bytes_per_src = ROUNDUP((long)req->width * image->bits_per_pixel, 8) >> 3;
- bytes_per_dest = ROUNDUP((long)req->width * dest_bits_per_pixel,
- dest_scanline_pad) >> 3;
- length = bytes_per_dest * req->height;
- req->length += (length + 3) >> 2;
-
- src = (unsigned char *)image->data +
- (req_yoffset * image->bytes_per_line) +
- ((req_xoffset * image->bits_per_pixel) >> 3);
- if ((image->bits_per_pixel == 4) && ((unsigned int) req_xoffset & 0x01)) {
- if (! (shifted_src = Xmalloc(req->height * image->bytes_per_line))) {
- UnGetReq(PutImage);
- return;
- }
-
- ShiftNibblesLeft(src, shifted_src, bytes_per_src,
- (long) image->bytes_per_line,
- (long) image->bytes_per_line, req->height,
- image->byte_order);
- src = shifted_src;
- }
-
- /* when req_xoffset > 0, we have to worry about stepping off the
- * end of image->data.
- */
- if (((image->byte_order == dpy->byte_order) ||
- (image->bits_per_pixel == 8)) &&
- ((long)image->bytes_per_line == bytes_per_dest) &&
- ((req_xoffset == 0) ||
- ((req_yoffset + req->height) < (unsigned)image->height))) {
- Data(dpy, (char *)src, length);
- Xfree(shifted_src);
- return;
- }
-
- length = ROUNDUP(length, 4);
- if ((dpy->bufptr + length) <= dpy->bufmax)
- dest = (unsigned char *)dpy->bufptr;
- else
- if ((dest = (unsigned char *)
- _XAllocScratch(dpy, length)) == NULL) {
- Xfree(shifted_src);
- UnGetReq(PutImage);
- return;
- }
-
- if ((image->byte_order == dpy->byte_order) ||
- (image->bits_per_pixel == 8))
- NoSwap(src, dest, bytes_per_src, (long)image->bytes_per_line,
- bytes_per_dest, req->height, image->byte_order);
- else if (image->bits_per_pixel == 32)
- SwapFourBytes(src, dest, bytes_per_src, (long)image->bytes_per_line,
- bytes_per_dest, req->height, image->byte_order);
- else if (image->bits_per_pixel == 24)
- SwapThreeBytes(src, dest, bytes_per_src, (long)image->bytes_per_line,
- bytes_per_dest, req->height, image->byte_order);
- else if (image->bits_per_pixel == 16)
- SwapTwoBytes(src, dest, bytes_per_src, (long)image->bytes_per_line,
- bytes_per_dest, req->height, image->byte_order);
- else
- SwapNibbles(src, dest, bytes_per_src, (long)image->bytes_per_line,
- bytes_per_dest, req->height);
-
- if (dest == (unsigned char *)dpy->bufptr)
- dpy->bufptr += length;
- else
- _XSend(dpy, (char *)dest, length);
-
- Xfree(shifted_src);
-}
-
-static void
-PutImageRequest(
- register Display *dpy,
- Drawable d,
- GC gc,
- register XImage *image,
- int req_xoffset, int req_yoffset,
- int x, int y,
- unsigned int req_width, unsigned int req_height,
- int dest_bits_per_pixel, int dest_scanline_pad)
-{
- register xPutImageReq *req;
-
- GetReq(PutImage, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->dstX = x;
- req->dstY = y;
- req->width = req_width;
- req->height = req_height;
- req->depth = image->depth;
- req->format = image->format;
- if ((image->bits_per_pixel == 1) || (image->format != ZPixmap))
- SendXYImage(dpy, req, image, req_xoffset, req_yoffset);
- else
- SendZImage(dpy, req, image, req_xoffset, req_yoffset,
- dest_bits_per_pixel, dest_scanline_pad);
-}
-
-static void
-PutSubImage (
- register Display *dpy,
- Drawable d,
- GC gc,
- register XImage *image,
- int req_xoffset,
- int req_yoffset,
- int x, int y,
- unsigned int req_width,
- unsigned int req_height,
- int dest_bits_per_pixel,
- int dest_scanline_pad)
-{
- int left_pad, BytesPerRow, Available;
-
- if ((req_width == 0) || (req_height == 0))
- return;
-
- Available = ((65536 < dpy->max_request_size) ? (65536 << 2)
- : (dpy->max_request_size << 2))
- - SIZEOF(xPutImageReq);
-
- if ((image->bits_per_pixel == 1) || (image->format != ZPixmap)) {
- left_pad = (image->xoffset + req_xoffset) & (dpy->bitmap_unit - 1);
- BytesPerRow = (ROUNDUP((long)req_width + left_pad,
- dpy->bitmap_pad) >> 3) * image->depth;
- } else {
- left_pad = 0;
- BytesPerRow = ROUNDUP((long)req_width * dest_bits_per_pixel,
- dest_scanline_pad) >> 3;
- }
-
- if ((BytesPerRow * req_height) <= Available) {
- PutImageRequest(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
- req_width, req_height,
- dest_bits_per_pixel, dest_scanline_pad);
- } else if (req_height > 1) {
- int SubImageHeight = Available / BytesPerRow;
-
- if (SubImageHeight == 0)
- SubImageHeight = 1;
-
- PutSubImage(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
- req_width, (unsigned int) SubImageHeight,
- dest_bits_per_pixel, dest_scanline_pad);
-
- PutSubImage(dpy, d, gc, image, req_xoffset,
- req_yoffset + SubImageHeight, x, y + SubImageHeight,
- req_width, req_height - SubImageHeight,
- dest_bits_per_pixel, dest_scanline_pad);
- } else {
- int SubImageWidth = (((Available << 3) / dest_scanline_pad)
- * dest_scanline_pad) - left_pad;
-
- PutSubImage(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
- (unsigned int) SubImageWidth, 1,
- dest_bits_per_pixel, dest_scanline_pad);
-
- PutSubImage(dpy, d, gc, image, req_xoffset + SubImageWidth,
- req_yoffset, x + SubImageWidth, y,
- req_width - SubImageWidth, 1,
- dest_bits_per_pixel, dest_scanline_pad);
- }
-}
-
-
-int
-XPutImage (
- register Display *dpy,
- Drawable d,
- GC gc,
- register XImage *image,
- int req_xoffset,
- int req_yoffset,
- int x,
- int y,
- unsigned int req_width,
- unsigned int req_height)
-
-{
- long width = req_width;
- long height = req_height;
- int dest_bits_per_pixel, dest_scanline_pad;
-
- if (req_xoffset < 0) {
- width += req_xoffset;
- req_xoffset = 0;
- }
- if (req_yoffset < 0) {
- height += req_yoffset;
- req_yoffset = 0;
- }
- if ((req_xoffset + width) > image->width)
- width = image->width - req_xoffset;
- if ((req_yoffset + height) > image->height)
- height = image->height - req_yoffset;
- if ((width <= 0) || (height <= 0))
- return 0;
-
- if ((image->bits_per_pixel == 1) || (image->format != ZPixmap)) {
- dest_bits_per_pixel = 1;
- dest_scanline_pad = dpy->bitmap_pad;
- } else {
- register int n;
- register ScreenFormat *format;
-
- dest_bits_per_pixel = image->bits_per_pixel;
- dest_scanline_pad = image->bitmap_pad;
- for (n = dpy->nformats, format = dpy->pixmap_format; --n >= 0; format++)
- if (format->depth == image->depth) {
- dest_bits_per_pixel = format->bits_per_pixel;
- dest_scanline_pad = format->scanline_pad;
- }
- if (dest_bits_per_pixel != image->bits_per_pixel) {
- XImage img;
- register long i, j;
- /* XXX slow, but works */
- img.width = width;
- img.height = height;
- img.xoffset = 0;
- img.format = ZPixmap;
- img.byte_order = dpy->byte_order;
- img.bitmap_unit = dpy->bitmap_unit;
- img.bitmap_bit_order = dpy->bitmap_bit_order;
- img.bitmap_pad = dest_scanline_pad;
- img.depth = image->depth;
- img.bits_per_pixel = dest_bits_per_pixel;
- img.bytes_per_line = ROUNDUP((dest_bits_per_pixel * width),
- dest_scanline_pad) >> 3;
- img.data = Xmalloc(img.bytes_per_line * height);
- if (img.data == NULL)
- return 0;
- _XInitImageFuncPtrs(&img);
- for (j = height; --j >= 0; )
- for (i = width; --i >= 0; )
- XPutPixel(&img, i, j, XGetPixel(image, req_xoffset + i,
- req_yoffset + j));
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- PutSubImage(dpy, d, gc, &img, 0, 0, x, y,
- (unsigned int) width, (unsigned int) height,
- dest_bits_per_pixel, dest_scanline_pad);
- UnlockDisplay(dpy);
- SyncHandle();
- Xfree(img.data);
- return 0;
- }
- }
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
-
- PutSubImage(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
- (unsigned int) width, (unsigned int) height,
- dest_bits_per_pixel, dest_scanline_pad);
-
- UnlockDisplay(dpy);
- SyncHandle();
-#ifdef USE_DYNAMIC_XCURSOR
- if (image->bits_per_pixel == 1 &&
- x == 0 && y == 0 &&
- width == image->width && height == image->height &&
- gc->values.function == GXcopy &&
- (gc->values.plane_mask & 1))
- {
- _XNoticePutBitmap (dpy, d, image);
- }
-#endif
- return 0;
-}
diff --git a/nx-X11/lib/X11/QBlack.c b/nx-X11/lib/X11/QBlack.c
deleted file mode 100644
index d7a69d399..000000000
--- a/nx-X11/lib/X11/QBlack.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQBlack.c - Query Black
- *
- * DESCRIPTION
- * Routine to obtain a color specification for zero
- * red, green, and blue intensities.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsQueryBlack
- *
- * SYNOPSIS
- */
-
-Status
-XcmsQueryBlack(
- XcmsCCC ccc,
- XcmsColorFormat target_format,
- XcmsColor *pColor_ret)
-/*
- * DESCRIPTION
- * Returns the color specification in the target format for
- * zero intensity red, green, and blue.
- *
- * RETURNS
- * Returns XcmsSuccess, if failed; otherwise XcmsFailure
- *
- */
-{
- XcmsColor tmp;
-
- tmp.format = XcmsRGBiFormat;
- tmp.pixel = 0;
- tmp.spec.RGBi.red = 0.0;
- tmp.spec.RGBi.green = 0.0;
- tmp.spec.RGBi.blue = 0.0;
- if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
- return(XcmsFailure);
- }
- memcpy((char *)pColor_ret, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/QBlue.c b/nx-X11/lib/X11/QBlue.c
deleted file mode 100644
index 4555344e6..000000000
--- a/nx-X11/lib/X11/QBlue.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQBlue.c - Query Blue
- *
- * DESCRIPTION
- * Routine to obtain a color specification for full
- * blue intensity and zero red and green intensities.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsQueryBlue
- *
- * SYNOPSIS
- */
-
-Status
-XcmsQueryBlue(
- XcmsCCC ccc,
- XcmsColorFormat target_format,
- XcmsColor *pColor_ret)
-/*
- * DESCRIPTION
- * Returns the color specification in the target format for
- * full intensity blue and zero intensity red and green.
- *
- * RETURNS
- * Returns XcmsSuccess, if failed; otherwise XcmsFailure
- *
- */
-{
- XcmsColor tmp;
-
- tmp.format = XcmsRGBiFormat;
- tmp.pixel = 0;
- tmp.spec.RGBi.red = 0.0;
- tmp.spec.RGBi.green = 0.0;
- tmp.spec.RGBi.blue = 1.0;
- if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
- return(XcmsFailure);
- }
- memcpy((char *)pColor_ret, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/QGreen.c b/nx-X11/lib/X11/QGreen.c
deleted file mode 100644
index 0c888358a..000000000
--- a/nx-X11/lib/X11/QGreen.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQGreen.c - Query Green
- *
- * DESCRIPTION
- * Routine to obtain a color specification for full
- * green intensity and zero red and blue intensities.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsQueryGreen
- *
- * SYNOPSIS
- */
-
-Status
-XcmsQueryGreen(
- XcmsCCC ccc,
- XcmsColorFormat target_format,
- XcmsColor *pColor_ret)
-/*
- * DESCRIPTION
- * Returns the color specification in the target format for
- * full intensity green and zero intensity red and blue.
- *
- * RETURNS
- * Returns XcmsSuccess, if failed; otherwise XcmsFailure
- *
- */
-{
- XcmsColor tmp;
-
- tmp.format = XcmsRGBiFormat;
- tmp.pixel = 0;
- tmp.spec.RGBi.red = 0.0;
- tmp.spec.RGBi.green = 1.0;
- tmp.spec.RGBi.blue = 0.0;
- if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
- return(XcmsFailure);
- }
- memcpy((char *)pColor_ret, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/QRed.c b/nx-X11/lib/X11/QRed.c
deleted file mode 100644
index 357380d60..000000000
--- a/nx-X11/lib/X11/QRed.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQRed.c - Query Red
- *
- * DESCRIPTION
- * Routine to obtain a color specification for full
- * red intensity and zero green and blue intensities.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsQueryRed
- *
- * SYNOPSIS
- */
-
-Status
-XcmsQueryRed(
- XcmsCCC ccc,
- XcmsColorFormat target_format,
- XcmsColor *pColor_ret)
-/*
- * DESCRIPTION
- * Returns the color specification in the target format for
- * full intensity red and zero intensity green and blue.
- *
- * RETURNS
- * Returns XcmsSuccess, if failed; otherwise XcmsFailure
- *
- */
-{
- XcmsColor tmp;
-
- tmp.format = XcmsRGBiFormat;
- tmp.pixel = 0;
- tmp.spec.RGBi.red = 1.0;
- tmp.spec.RGBi.green = 0.0;
- tmp.spec.RGBi.blue = 0.0;
- if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
- return(XcmsFailure);
- }
- memcpy((char *)pColor_ret, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/QWhite.c b/nx-X11/lib/X11/QWhite.c
deleted file mode 100644
index 36b764c9d..000000000
--- a/nx-X11/lib/X11/QWhite.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQWhite.c - Query White
- *
- * DESCRIPTION
- * Routine to obtain a color specification for full
- * red, green, and blue intensities.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsQueryWhite
- *
- * SYNOPSIS
- */
-
-Status
-XcmsQueryWhite(
- XcmsCCC ccc,
- XcmsColorFormat target_format,
- XcmsColor *pColor_ret)
-/*
- * DESCRIPTION
- * Returns the color specification in the target format for
- * full intensity red, green, and blue.
- *
- * RETURNS
- * Returns XcmsSuccess, if failed; otherwise XcmsFailure
- *
- */
-{
- XcmsColor tmp;
-
- tmp.format = XcmsRGBiFormat;
- tmp.pixel = 0;
- tmp.spec.RGBi.red = 1.0;
- tmp.spec.RGBi.green = 1.0;
- tmp.spec.RGBi.blue = 1.0;
- if (XcmsConvertColors(ccc, &tmp, 1, target_format, NULL) != XcmsSuccess) {
- return(XcmsFailure);
- }
- memcpy((char *)pColor_ret, (char *)&tmp, sizeof(XcmsColor));
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/QuBest.c b/nx-X11/lib/X11/QuBest.c
deleted file mode 100644
index 97b1f116b..000000000
--- a/nx-X11/lib/X11/QuBest.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XQueryBestSize(
- register Display *dpy,
- int class,
- Drawable drawable,
- unsigned int width,
- unsigned int height,
- unsigned int *ret_width,
- unsigned int *ret_height)
-{
- xQueryBestSizeReply rep;
- register xQueryBestSizeReq *req;
-
- LockDisplay(dpy);
- GetReq(QueryBestSize, req);
- req->class = class;
- req->drawable = drawable;
- req->width = width;
- req->height = height;
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
- *ret_width = rep.width;
- *ret_height = rep.height;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/QuCol.c b/nx-X11/lib/X11/QuCol.c
deleted file mode 100644
index b4c1cd33a..000000000
--- a/nx-X11/lib/X11/QuCol.c
+++ /dev/null
@@ -1,78 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQuCol.c
- *
- * DESCRIPTION
- * Source for XcmsQueryColors
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsQueryColor - Query Color
- *
- * SYNOPSIS
- */
-Status
-XcmsQueryColor(
- Display *dpy,
- Colormap colormap,
- XcmsColor *pXcmsColor_in_out,
- XcmsColorFormat result_format)
-/*
- * DESCRIPTION
- * This routine uses XQueryColor to obtain the X RGB values
- * stored in the specified colormap for the specified pixel.
- * The X RGB values are then converted to the target format as
- * specified by the format component of the XcmsColor structure.
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded.
- *
- * Returns a color specification of the color stored in the
- * specified pixel.
- */
-{
- return(_XcmsSetGetColor(XQueryColor, dpy, colormap,
- pXcmsColor_in_out, result_format, (Bool *) NULL));
-}
diff --git a/nx-X11/lib/X11/QuColor.c b/nx-X11/lib/X11/QuColor.c
deleted file mode 100644
index 4638095c0..000000000
--- a/nx-X11/lib/X11/QuColor.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XQueryColor(
- register Display *dpy,
- Colormap cmap,
- XColor *def) /* RETURN */
-{
- xrgb color;
- xQueryColorsReply rep;
- register xQueryColorsReq *req;
- unsigned long val = def->pixel; /* needed for macro below */
-
- LockDisplay(dpy);
- GetReqExtra(QueryColors, 4, req); /* a pixel (CARD32) is 4 bytes */
- req->cmap = cmap;
-
- OneDataCard32 (dpy, NEXTPTR(req,xQueryColorsReq), val);
-
- if (_XReply(dpy, (xReply *) &rep, 0, xFalse) != 0) {
-
- _XRead(dpy, (char *)&color, (long) SIZEOF(xrgb));
-
- def->red = color.red;
- def->blue = color.blue;
- def->green = color.green;
- def->flags = DoRed | DoGreen | DoBlue;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/QuColors.c b/nx-X11/lib/X11/QuColors.c
deleted file mode 100644
index 0b9bc508f..000000000
--- a/nx-X11/lib/X11/QuColors.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-static void
-_XQueryColors(
- register Display *dpy,
- Colormap cmap,
- XColor *defs, /* RETURN */
- int ncolors)
-{
- register int i;
- xQueryColorsReply rep;
- register xQueryColorsReq *req;
-
- GetReq(QueryColors, req);
-
- req->cmap = cmap;
- SetReqLen(req, ncolors, ncolors); /* each pixel is a CARD32 */
-
- for (i = 0; i < ncolors; i++)
- Data32 (dpy, (long *)&defs[i].pixel, 4L);
- /* XXX this isn't very efficient */
-
- if (_XReply(dpy, (xReply *) &rep, 0, xFalse) != 0) {
- unsigned long nbytes = (long) ncolors * SIZEOF(xrgb);
- xrgb *color = Xmalloc(nbytes);
- if (color != NULL) {
-
- _XRead(dpy, (char *) color, nbytes);
-
- for (i = 0; i < ncolors; i++) {
- register XColor *def = &defs[i];
- register xrgb *rgb = &color[i];
- def->red = rgb->red;
- def->green = rgb->green;
- def->blue = rgb->blue;
- def->flags = DoRed | DoGreen | DoBlue;
- }
- Xfree(color);
- }
- else
- _XEatDataWords(dpy, rep.length);
- }
-}
-
-int
-XQueryColors(
- register Display * const dpy,
- const Colormap cmap,
- XColor *defs, /* RETURN */
- int ncolors)
-{
- int n;
-
- if (dpy->bigreq_size > 0)
- n = dpy->bigreq_size - (sizeof (xQueryColorsReq) >> 2) - 1;
- else
- n = dpy->max_request_size - (sizeof (xQueryColorsReq) >> 2);
-
- LockDisplay(dpy);
- while (ncolors >= n) {
- _XQueryColors(dpy, cmap, defs, n);
- defs += n;
- ncolors -= n;
- }
- if (ncolors > 0)
- _XQueryColors(dpy, cmap, defs, ncolors);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/QuCols.c b/nx-X11/lib/X11/QuCols.c
deleted file mode 100644
index 25a38b818..000000000
--- a/nx-X11/lib/X11/QuCols.c
+++ /dev/null
@@ -1,78 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsQuCol.c
- *
- * DESCRIPTION
- * Source for XcmsQueryColors
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-/*
- * NAME
- * XcmsQueryColors - Query Colors
- *
- * SYNOPSIS
- */
-Status
-XcmsQueryColors(
- Display *dpy,
- Colormap colormap,
- XcmsColor *pXcmsColors_in_out,
- unsigned int nColors,
- XcmsColorFormat result_format)
-/*
- * DESCRIPTION
- * This routine uses XQueryColors to obtain the X RGB values
- * stored in the specified colormap for the specified pixels.
- * The X RGB values are then converted to the target format as
- * specified by the format component of the XcmsColor structure.
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded.
- *
- * Returns the color specifications of the colors stored in the
- * specified pixels.
- */
-{
- return(_XcmsSetGetColors(XQueryColors, dpy, colormap,
- pXcmsColors_in_out, nColors, result_format, (Bool *) NULL));
-}
diff --git a/nx-X11/lib/X11/QuCurShp.c b/nx-X11/lib/X11/QuCurShp.c
deleted file mode 100644
index bb17c42fc..000000000
--- a/nx-X11/lib/X11/QuCurShp.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XQueryBestCursor(
- register Display *dpy,
- Drawable drawable,
- unsigned int width,
- unsigned int height,
- unsigned int *ret_width,
- unsigned int *ret_height)
-{
- xQueryBestSizeReply rep;
- register xQueryBestSizeReq *req;
-
- LockDisplay(dpy);
- GetReq(QueryBestSize, req);
- req->class = CursorShape;
- req->drawable = drawable;
- req->width = width;
- req->height = height;
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
- *ret_width = rep.width;
- *ret_height = rep.height;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/QuExt.c b/nx-X11/lib/X11/QuExt.c
deleted file mode 100644
index 4e230e776..000000000
--- a/nx-X11/lib/X11/QuExt.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Bool
-XQueryExtension(
- register Display *dpy,
- _Xconst char *name,
- int *major_opcode, /* RETURN */
- int *first_event, /* RETURN */
- int *first_error) /* RETURN */
-{
- xQueryExtensionReply rep;
- register xQueryExtensionReq *req;
-
- LockDisplay(dpy);
- GetReq(QueryExtension, req);
- req->nbytes = name ? strlen(name) : 0;
- req->length += (req->nbytes+(unsigned)3)>>2;
- _XSend(dpy, name, (long)req->nbytes);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- *major_opcode = rep.major_opcode;
- *first_event = rep.first_event;
- *first_error = rep.first_error;
- UnlockDisplay(dpy);
- SyncHandle();
- return (rep.present);
-}
-
diff --git a/nx-X11/lib/X11/QuKeybd.c b/nx-X11/lib/X11/QuKeybd.c
deleted file mode 100644
index 0a2d4d0fc..000000000
--- a/nx-X11/lib/X11/QuKeybd.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-struct kmap {
- char map[32];
-};
-
-int
-XQueryKeymap(
- register Display *dpy,
- char keys[32])
-{
- xQueryKeymapReply rep;
- _X_UNUSED register xReq *req;
-
- LockDisplay(dpy);
- GetEmptyReq(QueryKeymap, req);
- (void) _XReply(dpy, (xReply *)&rep,
- (SIZEOF(xQueryKeymapReply) - SIZEOF(xReply)) >> 2, xTrue);
- *(struct kmap *) keys = *(struct kmap *)rep.map; /* faster than memcpy */
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/QuPntr.c b/nx-X11/lib/X11/QuPntr.c
deleted file mode 100644
index e1379a6f5..000000000
--- a/nx-X11/lib/X11/QuPntr.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Bool XQueryPointer(
- register Display *dpy,
- Window w,
- Window *root,
- Window *child,
- int *root_x,
- int *root_y,
- int *win_x,
- int *win_y,
- unsigned int *mask)
-{
- xQueryPointerReply rep;
- xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(QueryPointer, w, req);
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return(False);
- }
-
- *root = rep.root;
- *child = rep.child;
- *root_x = cvtINT16toInt (rep.rootX);
- *root_y = cvtINT16toInt (rep.rootY);
- *win_x = cvtINT16toInt (rep.winX);
- *win_y = cvtINT16toInt (rep.winY);
- *mask = rep.mask;
- UnlockDisplay(dpy);
- SyncHandle();
- return (rep.sameScreen);
-}
-
diff --git a/nx-X11/lib/X11/QuStipShp.c b/nx-X11/lib/X11/QuStipShp.c
deleted file mode 100644
index 9f612fcb1..000000000
--- a/nx-X11/lib/X11/QuStipShp.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XQueryBestStipple(
- register Display *dpy,
- Drawable drawable,
- unsigned int width,
- unsigned int height,
- unsigned int *ret_width,
- unsigned int *ret_height)
-{
- xQueryBestSizeReply rep;
- register xQueryBestSizeReq *req;
-
- LockDisplay(dpy);
- GetReq(QueryBestSize, req);
- req->class = StippleShape;
- req->drawable = drawable;
- req->width = width;
- req->height = height;
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
- *ret_width = rep.width;
- *ret_height = rep.height;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/QuTextE16.c b/nx-X11/lib/X11/QuTextE16.c
deleted file mode 100644
index e458bc52c..000000000
--- a/nx-X11/lib/X11/QuTextE16.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-
-Copyright 1986, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XQueryTextExtents16 (
- register Display *dpy,
- Font fid,
- _Xconst XChar2b *string,
- register int nchars,
- int *dir,
- int *font_ascent,
- int *font_descent,
- register XCharStruct *overall)
-{
- register long i;
- register unsigned char *ptr;
- char *buf;
- xQueryTextExtentsReply rep;
- long nbytes;
- register xQueryTextExtentsReq *req;
-
- LockDisplay(dpy);
- nbytes = nchars << 1;
- GetReq(QueryTextExtents, req);
- req->fid = fid;
- if ((buf = _XAllocScratch (dpy, (unsigned long) nbytes))) {
- req->length += (nbytes + 3)>>2;
- req->oddLength = nchars & 1;
- for (ptr = (unsigned char *)buf, i = nchars; --i >= 0; string++) {
- *ptr++ = string->byte1;
- *ptr++ = string->byte2;
- }
- Data (dpy, buf, nbytes);
- }
- if (!_XReply (dpy, (xReply *)&rep, 0, xTrue) || !buf) {
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
- *dir = rep.drawDirection;
- *font_ascent = cvtINT16toInt (rep.fontAscent);
- *font_descent = cvtINT16toInt (rep.fontDescent);
- overall->ascent = (short) cvtINT16toShort (rep.overallAscent);
- overall->descent = (short) cvtINT16toShort (rep.overallDescent);
- /* XXX bogus - we're throwing away information!!! */
- overall->width = (short) cvtINT32toInt (rep.overallWidth);
- overall->lbearing = (short) cvtINT32toInt (rep.overallLeft);
- overall->rbearing = (short) cvtINT32toInt (rep.overallRight);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/QuTextExt.c b/nx-X11/lib/X11/QuTextExt.c
deleted file mode 100644
index 8a17dbb27..000000000
--- a/nx-X11/lib/X11/QuTextExt.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-
-Copyright 1986, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XQueryTextExtents (
- register Display *dpy,
- Font fid,
- register _Xconst char *string,
- register int nchars,
- int *dir,
- int *font_ascent,
- int *font_descent,
- register XCharStruct *overall)
-{
- register int i;
- register char *ptr;
- char *buf;
- xQueryTextExtentsReply rep;
- long nbytes;
- register xQueryTextExtentsReq *req;
-
- LockDisplay(dpy);
- nbytes = nchars << 1;
- GetReq(QueryTextExtents, req);
- req->fid = fid;
- if ((buf = _XAllocScratch (dpy, (unsigned long) nbytes))) {
- req->length += (nbytes + 3)>>2;
- req->oddLength = nchars & 1;
- for (ptr = buf, i = nchars; --i >= 0;) {
- *ptr++ = 0;
- *ptr++ = *string++;
- }
- Data (dpy, buf, nbytes);
- }
- if (!_XReply (dpy, (xReply *)&rep, 0, xTrue) || !buf) {
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
- *dir = rep.drawDirection;
- *font_ascent = cvtINT16toInt (rep.fontAscent);
- *font_descent = cvtINT16toInt (rep.fontDescent);
- overall->ascent = (short) cvtINT16toShort (rep.overallAscent);
- overall->descent = (short) cvtINT16toShort (rep.overallDescent);
- /* XXX bogus - we're throwing away information!!! */
- overall->width = (short) cvtINT32toInt (rep.overallWidth);
- overall->lbearing = (short) cvtINT32toInt (rep.overallLeft);
- overall->rbearing = (short) cvtINT32toInt (rep.overallRight);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/QuTileShp.c b/nx-X11/lib/X11/QuTileShp.c
deleted file mode 100644
index f713f4248..000000000
--- a/nx-X11/lib/X11/QuTileShp.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XQueryBestTile(
- register Display *dpy,
- Drawable drawable,
- unsigned int width,
- unsigned int height,
- unsigned int *ret_width,
- unsigned int *ret_height)
-{
- xQueryBestSizeReply rep;
- register xQueryBestSizeReq *req;
-
- LockDisplay(dpy);
- GetReq(QueryBestSize, req);
- req->class = TileShape;
- req->drawable = drawable;
- req->width = width;
- req->height = height;
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return(0);
- }
-
- *ret_width = rep.width;
- *ret_height = rep.height;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/QuTree.c b/nx-X11/lib/X11/QuTree.c
deleted file mode 100644
index 8da2ae261..000000000
--- a/nx-X11/lib/X11/QuTree.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Status XQueryTree (
- register Display *dpy,
- Window w,
- Window *root, /* RETURN */
- Window *parent, /* RETURN */
- Window **children, /* RETURN */
- unsigned int *nchildren) /* RETURN */
-{
- unsigned long nbytes;
- xQueryTreeReply rep;
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(QueryTree, w, req);
- if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
-
- *children = (Window *) NULL;
- if (rep.nChildren != 0) {
- nbytes = rep.nChildren * sizeof(Window);
- *children = Xmalloc(nbytes);
- if (! *children) {
- _XEatDataWords(dpy, rep.length);
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
- nbytes = rep.nChildren << 2;
- _XRead32 (dpy, (long *) *children, nbytes);
- }
- *parent = rep.parent;
- *root = rep.root;
- *nchildren = rep.nChildren;
- UnlockDisplay(dpy);
- SyncHandle();
- return (1);
-}
-
diff --git a/nx-X11/lib/X11/Quarks.c b/nx-X11/lib/X11/Quarks.c
deleted file mode 100644
index 132ec6f67..000000000
--- a/nx-X11/lib/X11/Quarks.c
+++ /dev/null
@@ -1,408 +0,0 @@
-
-/***********************************************************
-Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1987, 1988, 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xresource.h>
-#include "Xresinternal.h"
-
-/* Not cost effective, at least for vanilla MIT clients */
-/* #define PERMQ */
-
-#ifdef PERMQ
-typedef unsigned char Bits;
-#endif
-typedef unsigned long Entry; /* dont confuse with EntryRec from Xintatom.h */
-
-static XrmQuark nextQuark = 1; /* next available quark number */
-static unsigned long quarkMask = 0;
-static Entry zero = 0;
-static Entry *quarkTable = &zero; /* crock */
-static unsigned long quarkRehash;
-static XrmString **stringTable = NULL;
-#ifdef PERMQ
-static Bits **permTable = NULL;
-#endif
-static XrmQuark nextUniq = -1; /* next quark from XrmUniqueQuark */
-
-#define QUANTUMSHIFT 8
-#define QUANTUMMASK ((1 << QUANTUMSHIFT) - 1)
-#define CHUNKPER 8
-#define CHUNKMASK ((CHUNKPER << QUANTUMSHIFT) - 1)
-
-#define LARGEQUARK ((Entry)0x80000000L)
-#define QUARKSHIFT 18
-#define QUARKMASK ((LARGEQUARK - 1) >> QUARKSHIFT)
-#define XSIGMASK ((1L << QUARKSHIFT) - 1)
-
-#define STRQUANTSIZE (sizeof(XrmString) * (QUANTUMMASK + 1))
-#ifdef PERMQ
-#define QUANTSIZE (STRQUANTSIZE + \
- (sizeof(Bits) * ((QUANTUMMASK + 1) >> 3))
-#else
-#define QUANTSIZE STRQUANTSIZE
-#endif
-
-#define HASH(sig) ((sig) & quarkMask)
-#define REHASHVAL(sig) ((((sig) % quarkRehash) + 2) | 1)
-#define REHASH(idx,rehash) ((idx + rehash) & quarkMask)
-#define NAME(q) stringTable[(q) >> QUANTUMSHIFT][(q) & QUANTUMMASK]
-#ifdef PERMQ
-#define BYTEREF(q) permTable[(q) >> QUANTUMSHIFT][((q) & QUANTUMMASK) >> 3]
-#define ISPERM(q) (BYTEREF(q) & (1 << ((q) & 7)))
-#define SETPERM(q) BYTEREF(q) |= (1 << ((q) & 7))
-#define CLEARPERM(q) BYTEREF(q) &= ~(1 << ((q) & 7))
-#endif
-
-/* Permanent memory allocation */
-
-#define WALIGN sizeof(unsigned long)
-#define DALIGN sizeof(double)
-
-#define NEVERFREETABLESIZE ((8192-12) & ~(DALIGN-1))
-static char *neverFreeTable = NULL;
-static int neverFreeTableSize = 0;
-
-static char *permalloc(unsigned int length)
-{
- char *ret;
-
- if (neverFreeTableSize < length) {
- if (length >= NEVERFREETABLESIZE)
- return Xmalloc(length);
- if (! (ret = Xmalloc(NEVERFREETABLESIZE)))
- return (char *) NULL;
- neverFreeTableSize = NEVERFREETABLESIZE;
- neverFreeTable = ret;
- }
- ret = neverFreeTable;
- neverFreeTable += length;
- neverFreeTableSize -= length;
- return(ret);
-}
-
-typedef struct {char a; double b;} TestType1;
-typedef struct {char a; unsigned long b;} TestType2;
-
-#ifdef XTHREADS
-static char *_Xpermalloc(unsigned int length);
-
-char *Xpermalloc(unsigned int length)
-{
- char *p;
-
- _XLockMutex(_Xglobal_lock);
- p = _Xpermalloc(length);
- _XUnlockMutex(_Xglobal_lock);
- return p;
-}
-#define Xpermalloc _Xpermalloc
-
-static
-#endif /* XTHREADS */
-char *Xpermalloc(unsigned int length)
-{
- int i;
-
- if (neverFreeTableSize && length < NEVERFREETABLESIZE) {
- if ((sizeof(TestType1) !=
- (sizeof(TestType2) - sizeof(unsigned long) + sizeof(double))) &&
- !(length & (DALIGN-1)) &&
- ((i = (NEVERFREETABLESIZE - neverFreeTableSize) & (DALIGN-1)))) {
- neverFreeTableSize -= DALIGN - i;
- neverFreeTable += DALIGN - i;
- } else
- if ((i = (NEVERFREETABLESIZE - neverFreeTableSize) & (WALIGN-1))) {
- neverFreeTableSize -= WALIGN - i;
- neverFreeTable += WALIGN - i;
- }
- }
- return permalloc(length);
-}
-
-static Bool
-ExpandQuarkTable(void)
-{
- unsigned long oldmask, newmask;
- register char c, *s;
- register Entry *oldentries, *entries;
- register Entry entry;
- register int oldidx, newidx, rehash;
- Signature sig;
- XrmQuark q;
-
- oldentries = quarkTable;
- if ((oldmask = quarkMask))
- newmask = (oldmask << 1) + 1;
- else {
- if (!stringTable) {
- stringTable = Xmalloc(sizeof(XrmString *) * CHUNKPER);
- if (!stringTable)
- return False;
- stringTable[0] = (XrmString *)NULL;
- }
-#ifdef PERMQ
- if (!permTable)
- permTable = Xmalloc(sizeof(Bits *) * CHUNKPER);
- if (!permTable)
- return False;
-#endif
- stringTable[0] = (XrmString *)Xpermalloc(QUANTSIZE);
- if (!stringTable[0])
- return False;
-#ifdef PERMQ
- permTable[0] = (Bits *)((char *)stringTable[0] + STRQUANTSIZE);
-#endif
- newmask = 0x1ff;
- }
- entries = Xcalloc(newmask + 1, sizeof(Entry));
- if (!entries)
- return False;
- quarkTable = entries;
- quarkMask = newmask;
- quarkRehash = quarkMask - 2;
- for (oldidx = 0; oldidx <= oldmask; oldidx++) {
- if ((entry = oldentries[oldidx])) {
- if (entry & LARGEQUARK)
- q = entry & (LARGEQUARK-1);
- else
- q = (entry >> QUARKSHIFT) & QUARKMASK;
- for (sig = 0, s = NAME(q); (c = *s++); )
- sig = (sig << 1) + c;
- newidx = HASH(sig);
- if (entries[newidx]) {
- rehash = REHASHVAL(sig);
- do {
- newidx = REHASH(newidx, rehash);
- } while (entries[newidx]);
- }
- entries[newidx] = entry;
- }
- }
- if (oldmask)
- Xfree(oldentries);
- return True;
-}
-
-XrmQuark
-_XrmInternalStringToQuark(
- register _Xconst char *name, register int len, register Signature sig,
- Bool permstring)
-{
- register XrmQuark q;
- register Entry entry;
- register int idx, rehash;
- register int i;
- register char *s1, *s2;
- char *new;
-
- rehash = 0;
- idx = HASH(sig);
- _XLockMutex(_Xglobal_lock);
- while ((entry = quarkTable[idx])) {
- if (entry & LARGEQUARK)
- q = entry & (LARGEQUARK-1);
- else {
- if ((entry - sig) & XSIGMASK)
- goto nomatch;
- q = (entry >> QUARKSHIFT) & QUARKMASK;
- }
- for (i = len, s1 = (char *)name, s2 = NAME(q); --i >= 0; ) {
- if (*s1++ != *s2++)
- goto nomatch;
- }
- if (*s2) {
-nomatch: if (!rehash)
- rehash = REHASHVAL(sig);
- idx = REHASH(idx, rehash);
- continue;
- }
-#ifdef PERMQ
- if (permstring && !ISPERM(q)) {
- Xfree(NAME(q));
- NAME(q) = (char *)name;
- SETPERM(q);
- }
-#endif
- _XUnlockMutex(_Xglobal_lock);
- return q;
- }
- if (nextUniq == nextQuark)
- goto fail;
- if ((nextQuark + (nextQuark >> 2)) > quarkMask) {
- if (!ExpandQuarkTable())
- goto fail;
- _XUnlockMutex(_Xglobal_lock);
- return _XrmInternalStringToQuark(name, len, sig, permstring);
- }
- q = nextQuark;
- if (!(q & QUANTUMMASK)) {
- if (!(q & CHUNKMASK)) {
- if (!(new = Xrealloc(stringTable,
- sizeof(XrmString *) *
- ((q >> QUANTUMSHIFT) + CHUNKPER))))
- goto fail;
- stringTable = (XrmString **)new;
-#ifdef PERMQ
- if (!(new = Xrealloc(permTable,
- sizeof(Bits *) *
- ((q >> QUANTUMSHIFT) + CHUNKPER))))
- goto fail;
- permTable = (Bits **)new;
-#endif
- }
- new = Xpermalloc(QUANTSIZE);
- if (!new)
- goto fail;
- stringTable[q >> QUANTUMSHIFT] = (XrmString *)new;
-#ifdef PERMQ
- permTable[q >> QUANTUMSHIFT] = (Bits *)(new + STRQUANTSIZE);
-#endif
- }
- if (!permstring) {
- s2 = (char *)name;
-#ifdef PERMQ
- name = Xmalloc(len+1);
-#else
- name = permalloc(len+1);
-#endif
- if (!name)
- goto fail;
- for (i = len, s1 = (char *)name; --i >= 0; )
- *s1++ = *s2++;
- *s1++ = '\0';
-#ifdef PERMQ
- CLEARPERM(q);
- }
- else {
- SETPERM(q);
-#endif
- }
- NAME(q) = (char *)name;
- if (q <= QUARKMASK)
- entry = (q << QUARKSHIFT) | (sig & XSIGMASK);
- else
- entry = q | LARGEQUARK;
- quarkTable[idx] = entry;
- nextQuark++;
- _XUnlockMutex(_Xglobal_lock);
- return q;
- fail:
- _XUnlockMutex(_Xglobal_lock);
- return NULLQUARK;
-}
-
-XrmQuark
-XrmStringToQuark(
- _Xconst char *name)
-{
- register char c, *tname;
- register Signature sig = 0;
-
- if (!name)
- return (NULLQUARK);
-
- for (tname = (char *)name; (c = *tname++); )
- sig = (sig << 1) + c;
-
- return _XrmInternalStringToQuark(name, tname-(char *)name-1, sig, False);
-}
-
-XrmQuark
-XrmPermStringToQuark(
- _Xconst char *name)
-{
- register char c, *tname;
- register Signature sig = 0;
-
- if (!name)
- return (NULLQUARK);
-
- for (tname = (char *)name; (c = *tname++); )
- sig = (sig << 1) + c;
-
- return _XrmInternalStringToQuark(name, tname-(char *)name-1, sig, True);
-}
-
-XrmQuark XrmUniqueQuark(void)
-{
- XrmQuark q;
-
- _XLockMutex(_Xglobal_lock);
- if (nextUniq == nextQuark)
- q = NULLQUARK;
- else
- q = nextUniq--;
- _XUnlockMutex(_Xglobal_lock);
- return q;
-}
-
-XrmString XrmQuarkToString(register XrmQuark quark)
-{
- XrmString s;
-
- _XLockMutex(_Xglobal_lock);
- if (quark <= 0 || quark >= nextQuark)
- s = NULLSTRING;
- else {
-#ifdef PERMQ
- /* We have to mark the quark as permanent, since the caller might hold
- * onto the string pointer forver.
- */
- SETPERM(quark);
-#endif
- s = NAME(quark);
- }
- _XUnlockMutex(_Xglobal_lock);
- return s;
-}
diff --git a/nx-X11/lib/X11/RaiseWin.c b/nx-X11/lib/X11/RaiseWin.c
deleted file mode 100644
index f431db579..000000000
--- a/nx-X11/lib/X11/RaiseWin.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XRaiseWindow (
- register Display *dpy,
- Window w)
-{
- register xConfigureWindowReq *req;
- unsigned long val = Above; /* needed for macro below */
-
- LockDisplay(dpy);
- GetReqExtra(ConfigureWindow, 4, req);
- req->window = w;
- req->mask = CWStackMode;
- OneDataCard32 (dpy, NEXTPTR(req,xConfigureWindowReq), val);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/RdBitF.c b/nx-X11/lib/X11/RdBitF.c
deleted file mode 100644
index 319a0ee0b..000000000
--- a/nx-X11/lib/X11/RdBitF.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- * Code to read bitmaps from disk files. Interprets
- * data from X10 and X11 bitmap files and creates
- * Pixmap representations of files. Returns Pixmap
- * ID and specifics about image.
- *
- * Modified for speedup by Jim Becker, changed image
- * data parsing logic (removed some fscanf()s).
- * Aug 5, 1988
- *
- * Note that this file and ../Xmu/RdBitF.c look very similar.... Keep them
- * that way (but don't use common source code so that people can have one
- * without the other).
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xos.h>
-#include "Xutil.h"
-#include <stdio.h>
-#include <ctype.h>
-
-
-#define MAX_SIZE 255
-
-/* shared data for the image read/parse logic */
-static const short hexTable[256] = {
- ['0'] = 0, ['1'] = 1,
- ['2'] = 2, ['3'] = 3,
- ['4'] = 4, ['5'] = 5,
- ['6'] = 6, ['7'] = 7,
- ['8'] = 8, ['9'] = 9,
- ['A'] = 10, ['B'] = 11,
- ['C'] = 12, ['D'] = 13,
- ['E'] = 14, ['F'] = 15,
- ['a'] = 10, ['b'] = 11,
- ['c'] = 12, ['d'] = 13,
- ['e'] = 14, ['f'] = 15,
-
- [' '] = -1, [','] = -1,
- ['}'] = -1, ['\n'] = -1,
- ['\t'] = -1
-};
-
-/*
- * read next hex value in the input stream, return -1 if EOF
- */
-static int
-NextInt (
- FILE *fstream)
-{
- int ch;
- int value = 0;
- int gotone = 0;
- int done = 0;
-
- /* loop, accumulate hex value until find delimiter */
- /* skip any initial delimiters found in read stream */
-
- while (!done) {
- ch = getc(fstream);
- if (ch == EOF) {
- value = -1;
- done++;
- } else {
- /* trim high bits, check type and accumulate */
- ch &= 0xff;
- if (isascii(ch) && isxdigit(ch)) {
- value = (value << 4) + hexTable[ch];
- gotone++;
- } else if ((hexTable[ch]) < 0 && gotone)
- done++;
- }
- }
- return value;
-}
-
-int
-XReadBitmapFileData (
- _Xconst char *filename,
- unsigned int *width, /* RETURNED */
- unsigned int *height, /* RETURNED */
- unsigned char **data, /* RETURNED */
- int *x_hot, /* RETURNED */
- int *y_hot) /* RETURNED */
-{
- FILE *fstream; /* handle on file */
- unsigned char *bits = NULL; /* working variable */
- char line[MAX_SIZE]; /* input line from file */
- int size; /* number of bytes of data */
- char name_and_type[MAX_SIZE]; /* an input line */
- char *type; /* for parsing */
- int value; /* from an input line */
- int version10p; /* boolean, old format */
- int padding; /* to handle alignment */
- int bytes_per_line; /* per scanline of data */
- unsigned int ww = 0; /* width */
- unsigned int hh = 0; /* height */
- int hx = -1; /* x hotspot */
- int hy = -1; /* y hotspot */
-
- if (!(fstream = fopen(filename, "r")))
- return BitmapOpenFailed;
-
- /* error cleanup and return macro */
-#define RETURN(code) \
-{ Xfree (bits); fclose (fstream); return code; }
-
- while (fgets(line, MAX_SIZE, fstream)) {
- if (strlen(line) == MAX_SIZE-1)
- RETURN (BitmapFileInvalid);
- if (sscanf(line,"#define %s %d",name_and_type,&value) == 2) {
- if (!(type = strrchr(name_and_type, '_')))
- type = name_and_type;
- else
- type++;
-
- if (!strcmp("width", type))
- ww = (unsigned int) value;
- if (!strcmp("height", type))
- hh = (unsigned int) value;
- if (!strcmp("hot", type)) {
- if (type-- == name_and_type || type-- == name_and_type)
- continue;
- if (!strcmp("x_hot", type))
- hx = value;
- if (!strcmp("y_hot", type))
- hy = value;
- }
- continue;
- }
-
- if (sscanf(line, "static short %s = {", name_and_type) == 1)
- version10p = 1;
- else if (sscanf(line,"static unsigned char %s = {",name_and_type) == 1)
- version10p = 0;
- else if (sscanf(line, "static char %s = {", name_and_type) == 1)
- version10p = 0;
- else
- continue;
-
- if (!(type = strrchr(name_and_type, '_')))
- type = name_and_type;
- else
- type++;
-
- if (strcmp("bits[]", type))
- continue;
-
- if (!ww || !hh)
- RETURN (BitmapFileInvalid);
-
- if ((ww % 16) && ((ww % 16) < 9) && version10p)
- padding = 1;
- else
- padding = 0;
-
- bytes_per_line = (ww+7)/8 + padding;
-
- size = bytes_per_line * hh;
- bits = Xmalloc (size);
- if (!bits)
- RETURN (BitmapNoMemory);
-
- if (version10p) {
- unsigned char *ptr;
- int bytes;
-
- for (bytes=0, ptr=bits; bytes<size; (bytes += 2)) {
- if ((value = NextInt(fstream)) < 0)
- RETURN (BitmapFileInvalid);
- *(ptr++) = value;
- if (!padding || ((bytes+2) % bytes_per_line))
- *(ptr++) = value >> 8;
- }
- } else {
- unsigned char *ptr;
- int bytes;
-
- for (bytes=0, ptr=bits; bytes<size; bytes++, ptr++) {
- if ((value = NextInt(fstream)) < 0)
- RETURN (BitmapFileInvalid);
- *ptr=value;
- }
- }
-
- /* If we got to this point, we read a full bitmap file. Break so we don't
- * start reading another one from the same file and leak the memory
- * allocated for the previous one. */
- break;
- } /* end while */
-
- fclose(fstream);
- if (!bits)
- return (BitmapFileInvalid);
-
- *data = bits;
- *width = ww;
- *height = hh;
- if (x_hot) *x_hot = hx;
- if (y_hot) *y_hot = hy;
-
- return (BitmapSuccess);
-}
-
-int
-XReadBitmapFile (
- Display *display,
- Drawable d,
- _Xconst char *filename,
- unsigned int *width, /* RETURNED */
- unsigned int *height, /* RETURNED */
- Pixmap *pixmap, /* RETURNED */
- int *x_hot, /* RETURNED */
- int *y_hot) /* RETURNED */
-{
- unsigned char *data;
- int res;
-
- res = XReadBitmapFileData(filename, width, height, &data, x_hot, y_hot);
- if (res != BitmapSuccess)
- return res;
- *pixmap = XCreateBitmapFromData(display, d, (char *)data, *width, *height);
- Xfree(data);
- if (*pixmap == None)
- return (BitmapNoMemory);
- return (BitmapSuccess);
-}
diff --git a/nx-X11/lib/X11/RecolorC.c b/nx-X11/lib/X11/RecolorC.c
deleted file mode 100644
index a54b48cb8..000000000
--- a/nx-X11/lib/X11/RecolorC.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XRecolorCursor(
- register Display *dpy,
- Cursor cursor,
- XColor *foreground,
- XColor *background)
-{
- register xRecolorCursorReq *req;
-
- LockDisplay(dpy);
- GetReq(RecolorCursor, req);
- req->cursor = cursor;
- req->foreRed = foreground->red;
- req->foreGreen = foreground->green;
- req->foreBlue = foreground->blue;
- req->backRed = background->red;
- req->backGreen = background->green;
- req->backBlue = background->blue;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/ReconfWM.c b/nx-X11/lib/X11/ReconfWM.c
deleted file mode 100644
index b3d8624cf..000000000
--- a/nx-X11/lib/X11/ReconfWM.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define AllMaskBits (CWX|CWY|CWWidth|CWHeight|\
- CWBorderWidth|CWSibling|CWStackMode)
-
-Status XReconfigureWMWindow (
- register Display *dpy,
- Window w,
- int screen,
- unsigned int mask,
- XWindowChanges *changes)
-{
- Window root = RootWindow (dpy, screen);
- _XAsyncHandler async;
- _XAsyncErrorState async_state;
-
- /*
- * Only need to go through the trouble if we are actually changing the
- * stacking mode.
- */
- if (!(mask & CWStackMode)) {
- XConfigureWindow (dpy, w, mask, changes);
- return True;
- }
-
-
- /*
- * We need to inline XConfigureWindow and XSync so that everything is done
- * while the display is locked.
- */
-
- LockDisplay(dpy);
-
- /*
- * XConfigureWindow (dpy, w, mask, changes);
- */
- {
- unsigned long values[7];
- register unsigned long *value = values;
- long nvalues;
- register xConfigureWindowReq *req;
-
- GetReq(ConfigureWindow, req);
-
- async_state.min_sequence_number = dpy->request;
- async_state.max_sequence_number = dpy->request;
- async_state.error_code = BadMatch;
- async_state.major_opcode = X_ConfigureWindow;
- async_state.minor_opcode = 0;
- async_state.error_count = 0;
- async.next = dpy->async_handlers;
- async.handler = _XAsyncErrorHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
-
- req->window = w;
- mask &= AllMaskBits;
- req->mask = mask;
-
- if (mask & CWX) *value++ = changes->x;
- if (mask & CWY) *value++ = changes->y;
- if (mask & CWWidth) *value++ = changes->width;
- if (mask & CWHeight) *value++ = changes->height;
- if (mask & CWBorderWidth) *value++ = changes->border_width;
- if (mask & CWSibling) *value++ = changes->sibling;
- if (mask & CWStackMode) *value++ = changes->stack_mode;
- req->length += (nvalues = value - values);
- nvalues <<= 2; /* watch out for macros... */
- Data32 (dpy, (long *) values, nvalues);
- }
-
- /*
- * XSync (dpy, 0)
- */
- {
- xGetInputFocusReply rep;
- _X_UNUSED register xReq *req;
-
- GetEmptyReq(GetInputFocus, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- }
-
- DeqAsyncHandler(dpy, &async);
- UnlockDisplay(dpy);
- SyncHandle();
-
-
- /*
- * If the request succeeded, then everything is okay; otherwise, send event
- */
- if (!async_state.error_count)
- return True;
- else {
- XConfigureRequestEvent ev = {
- .type = ConfigureRequest,
- .window = w,
- .parent = root,
- .value_mask = (mask & AllMaskBits),
- .x = changes->x,
- .y = changes->y,
- .width = changes->width,
- .height = changes->height,
- .border_width = changes->border_width,
- .above = changes->sibling,
- .detail = changes->stack_mode,
- };
- return (XSendEvent (dpy, root, False,
- SubstructureRedirectMask|SubstructureNotifyMask,
- (XEvent *)&ev));
- }
-}
diff --git a/nx-X11/lib/X11/ReconfWin.c b/nx-X11/lib/X11/ReconfWin.c
deleted file mode 100644
index bfa99f528..000000000
--- a/nx-X11/lib/X11/ReconfWin.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define AllMaskBits (CWX|CWY|CWWidth|CWHeight|\
- CWBorderWidth|CWSibling|CWStackMode)
-
-int
-XConfigureWindow(
- register Display *dpy,
- Window w,
- unsigned int mask,
- XWindowChanges *changes)
-{
- unsigned long values[7];
- register unsigned long *value = values;
- long nvalues;
- register xConfigureWindowReq *req;
-
- LockDisplay(dpy);
- GetReq(ConfigureWindow, req);
- req->window = w;
- mask &= AllMaskBits;
- req->mask = mask;
-
- if (mask & CWX)
- *value++ = changes->x;
-
- if (mask & CWY)
- *value++ = changes->y;
-
- if (mask & CWWidth)
- *value++ = changes->width;
-
- if (mask & CWHeight)
- *value++ = changes->height;
-
- if (mask & CWBorderWidth)
- *value++ = changes->border_width;
-
- if (mask & CWSibling)
- *value++ = changes->sibling;
-
- if (mask & CWStackMode)
- *value++ = changes->stack_mode;
-
- req->length += (nvalues = value - values);
-
- nvalues <<= 2; /* watch out for macros... */
- Data32 (dpy, (long *) values, nvalues);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
diff --git a/nx-X11/lib/X11/Region.c b/nx-X11/lib/X11/Region.c
deleted file mode 100644
index 28fa3e416..000000000
--- a/nx-X11/lib/X11/Region.c
+++ /dev/null
@@ -1,1605 +0,0 @@
-/************************************************************************
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-************************************************************************/
-/*
- * The functions in this file implement the Region abstraction, similar to one
- * used in the X11 sample server. A Region is simply an area, as the name
- * implies, and is implemented as a "y-x-banded" array of rectangles. To
- * explain: Each Region is made up of a certain number of rectangles sorted
- * by y coordinate first, and then by x coordinate.
- *
- * Furthermore, the rectangles are banded such that every rectangle with a
- * given upper-left y coordinate (y1) will have the same lower-right y
- * coordinate (y2) and vice versa. If a rectangle has scanlines in a band, it
- * will span the entire vertical distance of the band. This means that some
- * areas that could be merged into a taller rectangle will be represented as
- * several shorter rectangles to account for shorter rectangles to its left
- * or right but within its "vertical scope".
- *
- * An added constraint on the rectangles is that they must cover as much
- * horizontal area as possible. E.g. no two rectangles in a band are allowed
- * to touch.
- *
- * Whenever possible, bands will be merged together to cover a greater vertical
- * distance (and thus reduce the number of rectangles). Two bands can be merged
- * only if the bottom of one touches the top of the other and they have
- * rectangles in the same places (of the same width, of course). This maintains
- * the y-x-banding that's so nice to have...
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-#include <nx-X11/Xregion.h>
-#include "poly.h"
-
-#ifdef DEBUG
-#include <stdio.h>
-#define assert(expr) {if (!(expr)) fprintf(stderr,\
-"Assertion failed file %s, line %d: expr\n", __FILE__, __LINE__); }
-#else
-#define assert(expr)
-#endif
-
-typedef int (*overlapProcp)(
- register Region pReg,
- register BoxPtr r1,
- BoxPtr r1End,
- register BoxPtr r2,
- BoxPtr r2End,
- short y1,
- short y2);
-
-typedef int (*nonOverlapProcp)(
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2);
-
-static void miRegionOp(
- register Region newReg, /* Place to store result */
- Region reg1, /* First region in operation */
- Region reg2, /* 2d region in operation */
- int (*overlapFunc)(
- register Region pReg,
- register BoxPtr r1,
- BoxPtr r1End,
- register BoxPtr r2,
- BoxPtr r2End,
- short y1,
- short y2), /* Function to call for over-
- * lapping bands */
- int (*nonOverlap1Func)(
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2), /* Function to call for non-
- * overlapping bands in region
- * 1 */
- int (*nonOverlap2Func)(
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2)); /* Function to call for non-
- * overlapping bands in region
- * 2 */
-
-
-/* Create a new empty region */
-Region
-XCreateRegion(void)
-{
- Region temp;
-
- if (! (temp = Xmalloc(sizeof( REGION ))))
- return (Region) NULL;
- if (! (temp->rects = Xmalloc(sizeof( BOX )))) {
- Xfree(temp);
- return (Region) NULL;
- }
- temp->numRects = 0;
- temp->extents.x1 = 0;
- temp->extents.y1 = 0;
- temp->extents.x2 = 0;
- temp->extents.y2 = 0;
- temp->size = 1;
- return( temp );
-}
-
-int
-XClipBox(
- Region r,
- XRectangle *rect)
-{
- rect->x = r->extents.x1;
- rect->y = r->extents.y1;
- rect->width = r->extents.x2 - r->extents.x1;
- rect->height = r->extents.y2 - r->extents.y1;
- return 1;
-}
-
-int
-XUnionRectWithRegion(
- register XRectangle *rect,
- Region source, Region dest)
-{
- REGION region;
-
- if (!rect->width || !rect->height)
- return 0;
- region.rects = &region.extents;
- region.numRects = 1;
- region.extents.x1 = rect->x;
- region.extents.y1 = rect->y;
- region.extents.x2 = rect->x + rect->width;
- region.extents.y2 = rect->y + rect->height;
- region.size = 1;
-
- return XUnionRegion(&region, source, dest);
-}
-
-/*-
- *-----------------------------------------------------------------------
- * miSetExtents --
- * Reset the extents of a region to what they should be. Called by
- * miSubtract and miIntersect b/c they can't figure it out along the
- * way or do so easily, as miUnion can.
- *
- * Results:
- * None.
- *
- * Side Effects:
- * The region's 'extents' structure is overwritten.
- *
- *-----------------------------------------------------------------------
- */
-static void
-miSetExtents (
- Region pReg)
-{
- register BoxPtr pBox,
- pBoxEnd,
- pExtents;
-
- if (pReg->numRects == 0)
- {
- pReg->extents.x1 = 0;
- pReg->extents.y1 = 0;
- pReg->extents.x2 = 0;
- pReg->extents.y2 = 0;
- return;
- }
-
- pExtents = &pReg->extents;
- pBox = pReg->rects;
- pBoxEnd = &pBox[pReg->numRects - 1];
-
- /*
- * Since pBox is the first rectangle in the region, it must have the
- * smallest y1 and since pBoxEnd is the last rectangle in the region,
- * it must have the largest y2, because of banding. Initialize x1 and
- * x2 from pBox and pBoxEnd, resp., as good things to initialize them
- * to...
- */
- pExtents->x1 = pBox->x1;
- pExtents->y1 = pBox->y1;
- pExtents->x2 = pBoxEnd->x2;
- pExtents->y2 = pBoxEnd->y2;
-
- assert(pExtents->y1 < pExtents->y2);
- while (pBox <= pBoxEnd)
- {
- if (pBox->x1 < pExtents->x1)
- {
- pExtents->x1 = pBox->x1;
- }
- if (pBox->x2 > pExtents->x2)
- {
- pExtents->x2 = pBox->x2;
- }
- pBox++;
- }
- assert(pExtents->x1 < pExtents->x2);
-}
-
-int
-XSetRegion(
- Display *dpy,
- GC gc,
- register Region r)
-{
- register int i;
- register XRectangle *xr, *pr;
- register BOX *pb;
- unsigned long total;
-
- LockDisplay (dpy);
- total = r->numRects * sizeof (XRectangle);
- if ((xr = (XRectangle *) _XAllocTemp(dpy, total))) {
- for (pr = xr, pb = r->rects, i = r->numRects; --i >= 0; pr++, pb++) {
- pr->x = pb->x1;
- pr->y = pb->y1;
- pr->width = pb->x2 - pb->x1;
- pr->height = pb->y2 - pb->y1;
- }
- }
- if (xr || !r->numRects)
- _XSetClipRectangles(dpy, gc, 0, 0, xr, r->numRects, YXBanded);
- if (xr)
- _XFreeTemp(dpy, (char *)xr, total);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-int
-XDestroyRegion(
- Region r)
-{
- Xfree( (char *) r->rects );
- Xfree( (char *) r );
- return 1;
-}
-
-
-/* TranslateRegion(pRegion, x, y)
- translates in place
- added by raymond
-*/
-
-int
-XOffsetRegion(
- register Region pRegion,
- register int x,
- register int y)
-{
- register int nbox;
- register BOX *pbox;
-
- pbox = pRegion->rects;
- nbox = pRegion->numRects;
-
- while(nbox--)
- {
- pbox->x1 += x;
- pbox->x2 += x;
- pbox->y1 += y;
- pbox->y2 += y;
- pbox++;
- }
- pRegion->extents.x1 += x;
- pRegion->extents.x2 += x;
- pRegion->extents.y1 += y;
- pRegion->extents.y2 += y;
- return 1;
-}
-
-/*
- Utility procedure Compress:
- Replace r by the region r', where
- p in r' iff (Quantifer m <= dx) (p + m in r), and
- Quantifier is Exists if grow is TRUE, For all if grow is FALSE, and
- (x,y) + m = (x+m,y) if xdir is TRUE; (x,y+m) if xdir is FALSE.
-
- Thus, if xdir is TRUE and grow is FALSE, r is replaced by the region
- of all points p such that p and the next dx points on the same
- horizontal scan line are all in r. We do this using by noting
- that p is the head of a run of length 2^i + k iff p is the head
- of a run of length 2^i and p+2^i is the head of a run of length
- k. Thus, the loop invariant: s contains the region corresponding
- to the runs of length shift. r contains the region corresponding
- to the runs of length 1 + dxo & (shift-1), where dxo is the original
- value of dx. dx = dxo & ~(shift-1). As parameters, s and t are
- scratch regions, so that we don't have to allocate them on every
- call.
-*/
-
-#define ZOpRegion(a,b,c) if (grow) XUnionRegion(a,b,c); \
- else XIntersectRegion(a,b,c)
-#define ZShiftRegion(a,b) if (xdir) XOffsetRegion(a,b,0); \
- else XOffsetRegion(a,0,b)
-#define ZCopyRegion(a,b) XUnionRegion(a,a,b)
-
-static void
-Compress(
- Region r, Region s, Region t,
- register unsigned dx,
- register int xdir, register int grow)
-{
- register unsigned shift = 1;
-
- ZCopyRegion(r, s);
- while (dx) {
- if (dx & shift) {
- ZShiftRegion(r, -(int)shift);
- ZOpRegion(r, s, r);
- dx -= shift;
- if (!dx) break;
- }
- ZCopyRegion(s, t);
- ZShiftRegion(s, -(int)shift);
- ZOpRegion(s, t, s);
- shift <<= 1;
- }
-}
-
-#undef ZOpRegion
-#undef ZShiftRegion
-#undef ZCopyRegion
-
-int
-XShrinkRegion(
- Region r,
- int dx, int dy)
-{
- Region s, t;
- int grow;
-
- if (!dx && !dy) return 0;
- if (! (s = XCreateRegion()) )
- return 0;
- if (! (t = XCreateRegion()) ) {
- XDestroyRegion(s);
- return 0;
- }
- if ((grow = (dx < 0))) dx = -dx;
- if (dx) Compress(r, s, t, (unsigned) 2*dx, TRUE, grow);
- if ((grow = (dy < 0))) dy = -dy;
- if (dy) Compress(r, s, t, (unsigned) 2*dy, FALSE, grow);
- XOffsetRegion(r, dx, dy);
- XDestroyRegion(s);
- XDestroyRegion(t);
- return 0;
-}
-
-
-/*======================================================================
- * Region Intersection
- *====================================================================*/
-/*-
- *-----------------------------------------------------------------------
- * miIntersectO --
- * Handle an overlapping band for miIntersect.
- *
- * Results:
- * None.
- *
- * Side Effects:
- * Rectangles may be added to the region.
- *
- *-----------------------------------------------------------------------
- */
-/* static void*/
-static int
-miIntersectO (
- register Region pReg,
- register BoxPtr r1,
- BoxPtr r1End,
- register BoxPtr r2,
- BoxPtr r2End,
- short y1,
- short y2)
-{
- register short x1;
- register short x2;
- register BoxPtr pNextRect;
-
- pNextRect = &pReg->rects[pReg->numRects];
-
- while ((r1 != r1End) && (r2 != r2End))
- {
- x1 = max(r1->x1,r2->x1);
- x2 = min(r1->x2,r2->x2);
-
- /*
- * If there's any overlap between the two rectangles, add that
- * overlap to the new region.
- * There's no need to check for subsumption because the only way
- * such a need could arise is if some region has two rectangles
- * right next to each other. Since that should never happen...
- */
- if (x1 < x2)
- {
- assert(y1<y2);
-
- MEMCHECK(pReg, pNextRect, pReg->rects);
- pNextRect->x1 = x1;
- pNextRect->y1 = y1;
- pNextRect->x2 = x2;
- pNextRect->y2 = y2;
- pReg->numRects += 1;
- pNextRect++;
- assert(pReg->numRects <= pReg->size);
- }
-
- /*
- * Need to advance the pointers. Shift the one that extends
- * to the right the least, since the other still has a chance to
- * overlap with that region's next rectangle, if you see what I mean.
- */
- if (r1->x2 < r2->x2)
- {
- r1++;
- }
- else if (r2->x2 < r1->x2)
- {
- r2++;
- }
- else
- {
- r1++;
- r2++;
- }
- }
- return 0; /* lint */
-}
-
-int
-XIntersectRegion(
- Region reg1,
- Region reg2, /* source regions */
- register Region newReg) /* destination Region */
-{
- /* check for trivial reject */
- if ( (!(reg1->numRects)) || (!(reg2->numRects)) ||
- (!EXTENTCHECK(&reg1->extents, &reg2->extents)))
- newReg->numRects = 0;
- else
- miRegionOp (newReg, reg1, reg2,
- miIntersectO, NULL, NULL);
-
- /*
- * Can't alter newReg's extents before we call miRegionOp because
- * it might be one of the source regions and miRegionOp depends
- * on the extents of those regions being the same. Besides, this
- * way there's no checking against rectangles that will be nuked
- * due to coalescing, so we have to examine fewer rectangles.
- */
- miSetExtents(newReg);
- return 1;
-}
-
-static int
-miRegionCopy(
- register Region dstrgn,
- register Region rgn)
-
-{
- if (dstrgn != rgn) /* don't want to copy to itself */
- {
- if (dstrgn->size < rgn->numRects)
- {
- if (dstrgn->rects)
- {
- BOX *prevRects = dstrgn->rects;
-
- dstrgn->rects = Xrealloc(dstrgn->rects,
- rgn->numRects * (sizeof(BOX)));
- if (! dstrgn->rects) {
- Xfree(prevRects);
- dstrgn->size = 0;
- return 0;
- }
- }
- dstrgn->size = rgn->numRects;
- }
- dstrgn->numRects = rgn->numRects;
- dstrgn->extents.x1 = rgn->extents.x1;
- dstrgn->extents.y1 = rgn->extents.y1;
- dstrgn->extents.x2 = rgn->extents.x2;
- dstrgn->extents.y2 = rgn->extents.y2;
-
- memcpy((char *) dstrgn->rects, (char *) rgn->rects,
- (int) (rgn->numRects * sizeof(BOX)));
- }
- return 1;
-}
-
-/*======================================================================
- * Generic Region Operator
- *====================================================================*/
-
-/*-
- *-----------------------------------------------------------------------
- * miCoalesce --
- * Attempt to merge the boxes in the current band with those in the
- * previous one. Used only by miRegionOp.
- *
- * Results:
- * The new index for the previous band.
- *
- * Side Effects:
- * If coalescing takes place:
- * - rectangles in the previous band will have their y2 fields
- * altered.
- * - pReg->numRects will be decreased.
- *
- *-----------------------------------------------------------------------
- */
-/* static int*/
-static int
-miCoalesce(
- register Region pReg, /* Region to coalesce */
- int prevStart, /* Index of start of previous band */
- int curStart) /* Index of start of current band */
-{
- register BoxPtr pPrevBox; /* Current box in previous band */
- register BoxPtr pCurBox; /* Current box in current band */
- register BoxPtr pRegEnd; /* End of region */
- int curNumRects; /* Number of rectangles in current
- * band */
- int prevNumRects; /* Number of rectangles in previous
- * band */
- int bandY1; /* Y1 coordinate for current band */
-
- pRegEnd = &pReg->rects[pReg->numRects];
-
- pPrevBox = &pReg->rects[prevStart];
- prevNumRects = curStart - prevStart;
-
- /*
- * Figure out how many rectangles are in the current band. Have to do
- * this because multiple bands could have been added in miRegionOp
- * at the end when one region has been exhausted.
- */
- pCurBox = &pReg->rects[curStart];
- bandY1 = pCurBox->y1;
- for (curNumRects = 0;
- (pCurBox != pRegEnd) && (pCurBox->y1 == bandY1);
- curNumRects++)
- {
- pCurBox++;
- }
-
- if (pCurBox != pRegEnd)
- {
- /*
- * If more than one band was added, we have to find the start
- * of the last band added so the next coalescing job can start
- * at the right place... (given when multiple bands are added,
- * this may be pointless -- see above).
- */
- pRegEnd--;
- while (pRegEnd[-1].y1 == pRegEnd->y1)
- {
- pRegEnd--;
- }
- curStart = pRegEnd - pReg->rects;
- pRegEnd = pReg->rects + pReg->numRects;
- }
-
- if ((curNumRects == prevNumRects) && (curNumRects != 0)) {
- pCurBox -= curNumRects;
- /*
- * The bands may only be coalesced if the bottom of the previous
- * matches the top scanline of the current.
- */
- if (pPrevBox->y2 == pCurBox->y1)
- {
- /*
- * Make sure the bands have boxes in the same places. This
- * assumes that boxes have been added in such a way that they
- * cover the most area possible. I.e. two boxes in a band must
- * have some horizontal space between them.
- */
- do
- {
- if ((pPrevBox->x1 != pCurBox->x1) ||
- (pPrevBox->x2 != pCurBox->x2))
- {
- /*
- * The bands don't line up so they can't be coalesced.
- */
- return (curStart);
- }
- pPrevBox++;
- pCurBox++;
- prevNumRects -= 1;
- } while (prevNumRects != 0);
-
- pReg->numRects -= curNumRects;
- pCurBox -= curNumRects;
- pPrevBox -= curNumRects;
-
- /*
- * The bands may be merged, so set the bottom y of each box
- * in the previous band to that of the corresponding box in
- * the current band.
- */
- do
- {
- pPrevBox->y2 = pCurBox->y2;
- pPrevBox++;
- pCurBox++;
- curNumRects -= 1;
- } while (curNumRects != 0);
-
- /*
- * If only one band was added to the region, we have to backup
- * curStart to the start of the previous band.
- *
- * If more than one band was added to the region, copy the
- * other bands down. The assumption here is that the other bands
- * came from the same region as the current one and no further
- * coalescing can be done on them since it's all been done
- * already... curStart is already in the right place.
- */
- if (pCurBox == pRegEnd)
- {
- curStart = prevStart;
- }
- else
- {
- do
- {
- *pPrevBox++ = *pCurBox++;
- } while (pCurBox != pRegEnd);
- }
-
- }
- }
- return (curStart);
-}
-
-/*-
- *-----------------------------------------------------------------------
- * miRegionOp --
- * Apply an operation to two regions. Called by miUnion, miInverse,
- * miSubtract, miIntersect...
- *
- * Results:
- * None.
- *
- * Side Effects:
- * The new region is overwritten.
- *
- * Notes:
- * The idea behind this function is to view the two regions as sets.
- * Together they cover a rectangle of area that this function divides
- * into horizontal bands where points are covered only by one region
- * or by both. For the first case, the nonOverlapFunc is called with
- * each the band and the band's upper and lower extents. For the
- * second, the overlapFunc is called to process the entire band. It
- * is responsible for clipping the rectangles in the band, though
- * this function provides the boundaries.
- * At the end of each band, the new region is coalesced, if possible,
- * to reduce the number of rectangles in the region.
- *
- *-----------------------------------------------------------------------
- */
-/* static void*/
-static void
-miRegionOp(
- register Region newReg, /* Place to store result */
- Region reg1, /* First region in operation */
- Region reg2, /* 2d region in operation */
- int (*overlapFunc)(
- register Region pReg,
- register BoxPtr r1,
- BoxPtr r1End,
- register BoxPtr r2,
- BoxPtr r2End,
- short y1,
- short y2), /* Function to call for over-
- * lapping bands */
- int (*nonOverlap1Func)(
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2), /* Function to call for non-
- * overlapping bands in region
- * 1 */
- int (*nonOverlap2Func)(
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2)) /* Function to call for non-
- * overlapping bands in region
- * 2 */
-{
- register BoxPtr r1; /* Pointer into first region */
- register BoxPtr r2; /* Pointer into 2d region */
- BoxPtr r1End; /* End of 1st region */
- BoxPtr r2End; /* End of 2d region */
- register short ybot; /* Bottom of intersection */
- register short ytop; /* Top of intersection */
- BoxPtr oldRects; /* Old rects for newReg */
- int prevBand; /* Index of start of
- * previous band in newReg */
- int curBand; /* Index of start of current
- * band in newReg */
- register BoxPtr r1BandEnd; /* End of current band in r1 */
- register BoxPtr r2BandEnd; /* End of current band in r2 */
- short top; /* Top of non-overlapping
- * band */
- short bot; /* Bottom of non-overlapping
- * band */
-
- /*
- * Initialization:
- * set r1, r2, r1End and r2End appropriately, preserve the important
- * parts of the destination region until the end in case it's one of
- * the two source regions, then mark the "new" region empty, allocating
- * another array of rectangles for it to use.
- */
- r1 = reg1->rects;
- r2 = reg2->rects;
- r1End = r1 + reg1->numRects;
- r2End = r2 + reg2->numRects;
-
- oldRects = newReg->rects;
-
- EMPTY_REGION(newReg);
-
- /*
- * Allocate a reasonable number of rectangles for the new region. The idea
- * is to allocate enough so the individual functions don't need to
- * reallocate and copy the array, which is time consuming, yet we don't
- * have to worry about using too much memory. I hope to be able to
- * nuke the Xrealloc() at the end of this function eventually.
- */
- newReg->size = max(reg1->numRects,reg2->numRects) * 2;
-
- if (! (newReg->rects = Xmalloc (sizeof(BoxRec) * newReg->size))) {
- newReg->size = 0;
- return;
- }
-
- /*
- * Initialize ybot and ytop.
- * In the upcoming loop, ybot and ytop serve different functions depending
- * on whether the band being handled is an overlapping or non-overlapping
- * band.
- * In the case of a non-overlapping band (only one of the regions
- * has points in the band), ybot is the bottom of the most recent
- * intersection and thus clips the top of the rectangles in that band.
- * ytop is the top of the next intersection between the two regions and
- * serves to clip the bottom of the rectangles in the current band.
- * For an overlapping band (where the two regions intersect), ytop clips
- * the top of the rectangles of both regions and ybot clips the bottoms.
- */
- if (reg1->extents.y1 < reg2->extents.y1)
- ybot = reg1->extents.y1;
- else
- ybot = reg2->extents.y1;
-
- /*
- * prevBand serves to mark the start of the previous band so rectangles
- * can be coalesced into larger rectangles. qv. miCoalesce, above.
- * In the beginning, there is no previous band, so prevBand == curBand
- * (curBand is set later on, of course, but the first band will always
- * start at index 0). prevBand and curBand must be indices because of
- * the possible expansion, and resultant moving, of the new region's
- * array of rectangles.
- */
- prevBand = 0;
-
- do
- {
- curBand = newReg->numRects;
-
- /*
- * This algorithm proceeds one source-band (as opposed to a
- * destination band, which is determined by where the two regions
- * intersect) at a time. r1BandEnd and r2BandEnd serve to mark the
- * rectangle after the last one in the current band for their
- * respective regions.
- */
- r1BandEnd = r1;
- while ((r1BandEnd != r1End) && (r1BandEnd->y1 == r1->y1))
- {
- r1BandEnd++;
- }
-
- r2BandEnd = r2;
- while ((r2BandEnd != r2End) && (r2BandEnd->y1 == r2->y1))
- {
- r2BandEnd++;
- }
-
- /*
- * First handle the band that doesn't intersect, if any.
- *
- * Note that attention is restricted to one band in the
- * non-intersecting region at once, so if a region has n
- * bands between the current position and the next place it overlaps
- * the other, this entire loop will be passed through n times.
- */
- if (r1->y1 < r2->y1)
- {
- top = max(r1->y1,ybot);
- bot = min(r1->y2,r2->y1);
-
- if ((top != bot) && (nonOverlap1Func != NULL))
- {
- (* nonOverlap1Func) (newReg, r1, r1BandEnd, top, bot);
- }
-
- ytop = r2->y1;
- }
- else if (r2->y1 < r1->y1)
- {
- top = max(r2->y1,ybot);
- bot = min(r2->y2,r1->y1);
-
- if ((top != bot) && (nonOverlap2Func != NULL))
- {
- (* nonOverlap2Func) (newReg, r2, r2BandEnd, top, bot);
- }
-
- ytop = r1->y1;
- }
- else
- {
- ytop = r1->y1;
- }
-
- /*
- * If any rectangles got added to the region, try and coalesce them
- * with rectangles from the previous band. Note we could just do
- * this test in miCoalesce, but some machines incur a not
- * inconsiderable cost for function calls, so...
- */
- if (newReg->numRects != curBand)
- {
- prevBand = miCoalesce (newReg, prevBand, curBand);
- }
-
- /*
- * Now see if we've hit an intersecting band. The two bands only
- * intersect if ybot > ytop
- */
- ybot = min(r1->y2, r2->y2);
- curBand = newReg->numRects;
- if (ybot > ytop)
- {
- (* overlapFunc) (newReg, r1, r1BandEnd, r2, r2BandEnd, ytop, ybot);
-
- }
-
- if (newReg->numRects != curBand)
- {
- prevBand = miCoalesce (newReg, prevBand, curBand);
- }
-
- /*
- * If we've finished with a band (y2 == ybot) we skip forward
- * in the region to the next band.
- */
- if (r1->y2 == ybot)
- {
- r1 = r1BandEnd;
- }
- if (r2->y2 == ybot)
- {
- r2 = r2BandEnd;
- }
- } while ((r1 != r1End) && (r2 != r2End));
-
- /*
- * Deal with whichever region still has rectangles left.
- */
- curBand = newReg->numRects;
- if (r1 != r1End)
- {
- if (nonOverlap1Func != NULL)
- {
- do
- {
- r1BandEnd = r1;
- while ((r1BandEnd < r1End) && (r1BandEnd->y1 == r1->y1))
- {
- r1BandEnd++;
- }
- (* nonOverlap1Func) (newReg, r1, r1BandEnd,
- max(r1->y1,ybot), r1->y2);
- r1 = r1BandEnd;
- } while (r1 != r1End);
- }
- }
- else if ((r2 != r2End) && (nonOverlap2Func != NULL))
- {
- do
- {
- r2BandEnd = r2;
- while ((r2BandEnd < r2End) && (r2BandEnd->y1 == r2->y1))
- {
- r2BandEnd++;
- }
- (* nonOverlap2Func) (newReg, r2, r2BandEnd,
- max(r2->y1,ybot), r2->y2);
- r2 = r2BandEnd;
- } while (r2 != r2End);
- }
-
- if (newReg->numRects != curBand)
- {
- (void) miCoalesce (newReg, prevBand, curBand);
- }
-
- /*
- * A bit of cleanup. To keep regions from growing without bound,
- * we shrink the array of rectangles to match the new number of
- * rectangles in the region. This never goes to 0, however...
- *
- * Only do this stuff if the number of rectangles allocated is more than
- * twice the number of rectangles in the region (a simple optimization...).
- */
- if (newReg->numRects < (newReg->size >> 1))
- {
- if (REGION_NOT_EMPTY(newReg))
- {
- BoxPtr prev_rects = newReg->rects;
- newReg->rects = Xrealloc (newReg->rects,
- sizeof(BoxRec) * newReg->numRects);
- if (! newReg->rects)
- newReg->rects = prev_rects;
- else
- newReg->size = newReg->numRects;
- }
- else
- {
- /*
- * No point in doing the extra work involved in an Xrealloc if
- * the region is empty
- */
- newReg->size = 1;
- Xfree(newReg->rects);
- newReg->rects = Xmalloc(sizeof(BoxRec));
- }
- }
- Xfree (oldRects);
- return;
-}
-
-
-/*======================================================================
- * Region Union
- *====================================================================*/
-
-/*-
- *-----------------------------------------------------------------------
- * miUnionNonO --
- * Handle a non-overlapping band for the union operation. Just
- * Adds the rectangles into the region. Doesn't have to check for
- * subsumption or anything.
- *
- * Results:
- * None.
- *
- * Side Effects:
- * pReg->numRects is incremented and the final rectangles overwritten
- * with the rectangles we're passed.
- *
- *-----------------------------------------------------------------------
- */
-/* static void*/
-static int
-miUnionNonO (
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2)
-{
- register BoxPtr pNextRect;
-
- pNextRect = &pReg->rects[pReg->numRects];
-
- assert(y1 < y2);
-
- while (r != rEnd)
- {
- assert(r->x1 < r->x2);
- MEMCHECK(pReg, pNextRect, pReg->rects);
- pNextRect->x1 = r->x1;
- pNextRect->y1 = y1;
- pNextRect->x2 = r->x2;
- pNextRect->y2 = y2;
- pReg->numRects += 1;
- pNextRect++;
-
- assert(pReg->numRects<=pReg->size);
- r++;
- }
- return 0; /* lint */
-}
-
-
-/*-
- *-----------------------------------------------------------------------
- * miUnionO --
- * Handle an overlapping band for the union operation. Picks the
- * left-most rectangle each time and merges it into the region.
- *
- * Results:
- * None.
- *
- * Side Effects:
- * Rectangles are overwritten in pReg->rects and pReg->numRects will
- * be changed.
- *
- *-----------------------------------------------------------------------
- */
-
-/* static void*/
-static int
-miUnionO (
- register Region pReg,
- register BoxPtr r1,
- BoxPtr r1End,
- register BoxPtr r2,
- BoxPtr r2End,
- register short y1,
- register short y2)
-{
- register BoxPtr pNextRect;
-
- pNextRect = &pReg->rects[pReg->numRects];
-
-#define MERGERECT(r) \
- if ((pReg->numRects != 0) && \
- (pNextRect[-1].y1 == y1) && \
- (pNextRect[-1].y2 == y2) && \
- (pNextRect[-1].x2 >= r->x1)) \
- { \
- if (pNextRect[-1].x2 < r->x2) \
- { \
- pNextRect[-1].x2 = r->x2; \
- assert(pNextRect[-1].x1<pNextRect[-1].x2); \
- } \
- } \
- else \
- { \
- MEMCHECK(pReg, pNextRect, pReg->rects); \
- pNextRect->y1 = y1; \
- pNextRect->y2 = y2; \
- pNextRect->x1 = r->x1; \
- pNextRect->x2 = r->x2; \
- pReg->numRects += 1; \
- pNextRect += 1; \
- } \
- assert(pReg->numRects<=pReg->size);\
- r++;
-
- assert (y1<y2);
- while ((r1 != r1End) && (r2 != r2End))
- {
- if (r1->x1 < r2->x1)
- {
- MERGERECT(r1);
- }
- else
- {
- MERGERECT(r2);
- }
- }
-
- if (r1 != r1End)
- {
- do
- {
- MERGERECT(r1);
- } while (r1 != r1End);
- }
- else while (r2 != r2End)
- {
- MERGERECT(r2);
- }
- return 0; /* lint */
-}
-
-int
-XUnionRegion(
- Region reg1,
- Region reg2, /* source regions */
- Region newReg) /* destination Region */
-{
- /* checks all the simple cases */
-
- /*
- * Region 1 and 2 are the same or region 1 is empty
- */
- if ( (reg1 == reg2) || (!(reg1->numRects)) )
- {
- if (newReg != reg2)
- return miRegionCopy(newReg, reg2);
- return 1;
- }
-
- /*
- * if nothing to union (region 2 empty)
- */
- if (!(reg2->numRects))
- {
- if (newReg != reg1)
- return miRegionCopy(newReg, reg1);
- return 1;
- }
-
- /*
- * Region 1 completely subsumes region 2
- */
- if ((reg1->numRects == 1) &&
- (reg1->extents.x1 <= reg2->extents.x1) &&
- (reg1->extents.y1 <= reg2->extents.y1) &&
- (reg1->extents.x2 >= reg2->extents.x2) &&
- (reg1->extents.y2 >= reg2->extents.y2))
- {
- if (newReg != reg1)
- return miRegionCopy(newReg, reg1);
- return 1;
- }
-
- /*
- * Region 2 completely subsumes region 1
- */
- if ((reg2->numRects == 1) &&
- (reg2->extents.x1 <= reg1->extents.x1) &&
- (reg2->extents.y1 <= reg1->extents.y1) &&
- (reg2->extents.x2 >= reg1->extents.x2) &&
- (reg2->extents.y2 >= reg1->extents.y2))
- {
- if (newReg != reg2)
- return miRegionCopy(newReg, reg2);
- return 1;
- }
-
- miRegionOp (newReg, reg1, reg2, miUnionO,
- miUnionNonO, miUnionNonO);
-
- newReg->extents.x1 = min(reg1->extents.x1, reg2->extents.x1);
- newReg->extents.y1 = min(reg1->extents.y1, reg2->extents.y1);
- newReg->extents.x2 = max(reg1->extents.x2, reg2->extents.x2);
- newReg->extents.y2 = max(reg1->extents.y2, reg2->extents.y2);
-
- return 1;
-}
-
-
-/*======================================================================
- * Region Subtraction
- *====================================================================*/
-
-/*-
- *-----------------------------------------------------------------------
- * miSubtractNonO --
- * Deal with non-overlapping band for subtraction. Any parts from
- * region 2 we discard. Anything from region 1 we add to the region.
- *
- * Results:
- * None.
- *
- * Side Effects:
- * pReg may be affected.
- *
- *-----------------------------------------------------------------------
- */
-/* static void*/
-static int
-miSubtractNonO1 (
- register Region pReg,
- register BoxPtr r,
- BoxPtr rEnd,
- register short y1,
- register short y2)
-{
- register BoxPtr pNextRect;
-
- pNextRect = &pReg->rects[pReg->numRects];
-
- assert(y1<y2);
-
- while (r != rEnd)
- {
- assert(r->x1<r->x2);
- MEMCHECK(pReg, pNextRect, pReg->rects);
- pNextRect->x1 = r->x1;
- pNextRect->y1 = y1;
- pNextRect->x2 = r->x2;
- pNextRect->y2 = y2;
- pReg->numRects += 1;
- pNextRect++;
-
- assert(pReg->numRects <= pReg->size);
-
- r++;
- }
- return 0; /* lint */
-}
-
-/*-
- *-----------------------------------------------------------------------
- * miSubtractO --
- * Overlapping band subtraction. x1 is the left-most point not yet
- * checked.
- *
- * Results:
- * None.
- *
- * Side Effects:
- * pReg may have rectangles added to it.
- *
- *-----------------------------------------------------------------------
- */
-/* static void*/
-static int
-miSubtractO (
- register Region pReg,
- register BoxPtr r1,
- BoxPtr r1End,
- register BoxPtr r2,
- BoxPtr r2End,
- register short y1,
- register short y2)
-{
- register BoxPtr pNextRect;
- register int x1;
-
- x1 = r1->x1;
-
- assert(y1<y2);
- pNextRect = &pReg->rects[pReg->numRects];
-
- while ((r1 != r1End) && (r2 != r2End))
- {
- if (r2->x2 <= x1)
- {
- /*
- * Subtrahend missed the boat: go to next subtrahend.
- */
- r2++;
- }
- else if (r2->x1 <= x1)
- {
- /*
- * Subtrahend preceeds minuend: nuke left edge of minuend.
- */
- x1 = r2->x2;
- if (x1 >= r1->x2)
- {
- /*
- * Minuend completely covered: advance to next minuend and
- * reset left fence to edge of new minuend.
- */
- r1++;
- if (r1 != r1End)
- x1 = r1->x1;
- }
- else
- {
- /*
- * Subtrahend now used up since it doesn't extend beyond
- * minuend
- */
- r2++;
- }
- }
- else if (r2->x1 < r1->x2)
- {
- /*
- * Left part of subtrahend covers part of minuend: add uncovered
- * part of minuend to region and skip to next subtrahend.
- */
- assert(x1<r2->x1);
- MEMCHECK(pReg, pNextRect, pReg->rects);
- pNextRect->x1 = x1;
- pNextRect->y1 = y1;
- pNextRect->x2 = r2->x1;
- pNextRect->y2 = y2;
- pReg->numRects += 1;
- pNextRect++;
-
- assert(pReg->numRects<=pReg->size);
-
- x1 = r2->x2;
- if (x1 >= r1->x2)
- {
- /*
- * Minuend used up: advance to new...
- */
- r1++;
- if (r1 != r1End)
- x1 = r1->x1;
- }
- else
- {
- /*
- * Subtrahend used up
- */
- r2++;
- }
- }
- else
- {
- /*
- * Minuend used up: add any remaining piece before advancing.
- */
- if (r1->x2 > x1)
- {
- MEMCHECK(pReg, pNextRect, pReg->rects);
- pNextRect->x1 = x1;
- pNextRect->y1 = y1;
- pNextRect->x2 = r1->x2;
- pNextRect->y2 = y2;
- pReg->numRects += 1;
- pNextRect++;
- assert(pReg->numRects<=pReg->size);
- }
- r1++;
- if (r1 != r1End)
- x1 = r1->x1;
- }
- }
-
- /*
- * Add remaining minuend rectangles to region.
- */
- while (r1 != r1End)
- {
- assert(x1<r1->x2);
- MEMCHECK(pReg, pNextRect, pReg->rects);
- pNextRect->x1 = x1;
- pNextRect->y1 = y1;
- pNextRect->x2 = r1->x2;
- pNextRect->y2 = y2;
- pReg->numRects += 1;
- pNextRect++;
-
- assert(pReg->numRects<=pReg->size);
-
- r1++;
- if (r1 != r1End)
- {
- x1 = r1->x1;
- }
- }
- return 0; /* lint */
-}
-
-/*-
- *-----------------------------------------------------------------------
- * miSubtract --
- * Subtract regS from regM and leave the result in regD.
- * S stands for subtrahend, M for minuend and D for difference.
- *
- * Results:
- * TRUE.
- *
- * Side Effects:
- * regD is overwritten.
- *
- *-----------------------------------------------------------------------
- */
-
-int
-XSubtractRegion(
- Region regM,
- Region regS,
- register Region regD)
-{
- /* check for trivial reject */
- if ( (!(regM->numRects)) || (!(regS->numRects)) ||
- (!EXTENTCHECK(&regM->extents, &regS->extents)) )
- {
- return miRegionCopy(regD, regM);
- }
-
- miRegionOp (regD, regM, regS, miSubtractO,
- miSubtractNonO1, NULL);
-
- /*
- * Can't alter newReg's extents before we call miRegionOp because
- * it might be one of the source regions and miRegionOp depends
- * on the extents of those regions being the unaltered. Besides, this
- * way there's no checking against rectangles that will be nuked
- * due to coalescing, so we have to examine fewer rectangles.
- */
- miSetExtents (regD);
- return 1;
-}
-
-int
-XXorRegion(Region sra, Region srb, Region dr)
-{
- Region tra, trb;
-
- if (! (tra = XCreateRegion()) )
- return 0;
- if (! (trb = XCreateRegion()) ) {
- XDestroyRegion(tra);
- return 0;
- }
- (void) XSubtractRegion(sra,srb,tra);
- (void) XSubtractRegion(srb,sra,trb);
- (void) XUnionRegion(tra,trb,dr);
- XDestroyRegion(tra);
- XDestroyRegion(trb);
- return 0;
-}
-
-/*
- * Check to see if the region is empty. Assumes a region is passed
- * as a parameter
- */
-int
-XEmptyRegion(
- Region r)
-{
- if( r->numRects == 0 ) return TRUE;
- else return FALSE;
-}
-
-/*
- * Check to see if two regions are equal
- */
-int
-XEqualRegion(Region r1, Region r2)
-{
- int i;
-
- if( r1->numRects != r2->numRects ) return FALSE;
- else if( r1->numRects == 0 ) return TRUE;
- else if ( r1->extents.x1 != r2->extents.x1 ) return FALSE;
- else if ( r1->extents.x2 != r2->extents.x2 ) return FALSE;
- else if ( r1->extents.y1 != r2->extents.y1 ) return FALSE;
- else if ( r1->extents.y2 != r2->extents.y2 ) return FALSE;
- else for( i=0; i < r1->numRects; i++ ) {
- if ( r1->rects[i].x1 != r2->rects[i].x1 ) return FALSE;
- else if ( r1->rects[i].x2 != r2->rects[i].x2 ) return FALSE;
- else if ( r1->rects[i].y1 != r2->rects[i].y1 ) return FALSE;
- else if ( r1->rects[i].y2 != r2->rects[i].y2 ) return FALSE;
- }
- return TRUE;
-}
-
-int
-XPointInRegion(
- Region pRegion,
- int x, int y)
-{
- int i;
-
- if (pRegion->numRects == 0)
- return FALSE;
- if (!INBOX(pRegion->extents, x, y))
- return FALSE;
- for (i=0; i<pRegion->numRects; i++)
- {
- if (INBOX (pRegion->rects[i], x, y))
- return TRUE;
- }
- return FALSE;
-}
-
-int
-XRectInRegion(
- register Region region,
- int rx, int ry,
- unsigned int rwidth, unsigned int rheight)
-{
- register BoxPtr pbox;
- register BoxPtr pboxEnd;
- Box rect;
- register BoxPtr prect = &rect;
- int partIn, partOut;
-
- prect->x1 = rx;
- prect->y1 = ry;
- prect->x2 = rwidth + rx;
- prect->y2 = rheight + ry;
-
- /* this is (just) a useful optimization */
- if ((region->numRects == 0) || !EXTENTCHECK(&region->extents, prect))
- return(RectangleOut);
-
- partOut = FALSE;
- partIn = FALSE;
-
- /* can stop when both partOut and partIn are TRUE, or we reach prect->y2 */
- for (pbox = region->rects, pboxEnd = pbox + region->numRects;
- pbox < pboxEnd;
- pbox++)
- {
-
- if (pbox->y2 <= ry)
- continue; /* getting up to speed or skipping remainder of band */
-
- if (pbox->y1 > ry)
- {
- partOut = TRUE; /* missed part of rectangle above */
- if (partIn || (pbox->y1 >= prect->y2))
- break;
- ry = pbox->y1; /* x guaranteed to be == prect->x1 */
- }
-
- if (pbox->x2 <= rx)
- continue; /* not far enough over yet */
-
- if (pbox->x1 > rx)
- {
- partOut = TRUE; /* missed part of rectangle to left */
- if (partIn)
- break;
- }
-
- if (pbox->x1 < prect->x2)
- {
- partIn = TRUE; /* definitely overlap */
- if (partOut)
- break;
- }
-
- if (pbox->x2 >= prect->x2)
- {
- ry = pbox->y2; /* finished with this band */
- if (ry >= prect->y2)
- break;
- rx = prect->x1; /* reset x out to left again */
- } else
- {
- /*
- * Because boxes in a band are maximal width, if the first box
- * to overlap the rectangle doesn't completely cover it in that
- * band, the rectangle must be partially out, since some of it
- * will be uncovered in that band. partIn will have been set true
- * by now...
- */
- break;
- }
-
- }
-
- return(partIn ? ((ry < prect->y2) ? RectanglePart : RectangleIn) :
- RectangleOut);
-}
diff --git a/nx-X11/lib/X11/RegstFlt.c b/nx-X11/lib/X11/RegstFlt.c
deleted file mode 100644
index 077ea424c..000000000
--- a/nx-X11/lib/X11/RegstFlt.c
+++ /dev/null
@@ -1,155 +0,0 @@
-
- /*
- * Copyright 1990, 1991 by OMRON Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name OMRON not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. OMRON makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as is" without express or implied warranty.
- *
- * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL OMRON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Seiji Kuwari OMRON Corporation
- * kuwa@omron.co.jp
- * kuwa%omron.co.jp@uunet.uu.net
- */
-/*
-
-Copyright 1990, 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-static void
-_XFreeIMFilters(
- Display *display)
-{
- register XFilterEventList fl;
-
- while ((fl = display->im_filters)) {
- display->im_filters = fl->next;
- Xfree(fl);
- }
-}
-
-/*
- * Register a filter with the filter machinery by event mask.
- */
-void
-_XRegisterFilterByMask(
- Display *display,
- Window window,
- unsigned long event_mask,
- Bool (*filter)(
- Display*, Window, XEvent*, XPointer
- ),
- XPointer client_data)
-{
- XFilterEventRec *rec;
-
- rec = Xmalloc(sizeof(XFilterEventRec));
- if (!rec)
- return;
- rec->window = window;
- rec->event_mask = event_mask;
- rec->start_type = 0;
- rec->end_type = 0;
- rec->filter = filter;
- rec->client_data = client_data;
- LockDisplay(display);
- rec->next = display->im_filters;
- display->im_filters = rec;
- display->free_funcs->im_filters = _XFreeIMFilters;
- UnlockDisplay(display);
-}
-
-/*
- * Register a filter with the filter machinery by type code.
- */
-void
-_XRegisterFilterByType(
- Display *display,
- Window window,
- int start_type,
- int end_type,
- Bool (*filter)(
- Display*, Window, XEvent*, XPointer
- ),
- XPointer client_data)
-{
- XFilterEventRec *rec;
-
- rec = Xmalloc(sizeof(XFilterEventRec));
- if (!rec)
- return;
- rec->window = window;
- rec->event_mask = 0;
- rec->start_type = start_type;
- rec->end_type = end_type;
- rec->filter = filter;
- rec->client_data = client_data;
- LockDisplay(display);
- rec->next = display->im_filters;
- display->im_filters = rec;
- display->free_funcs->im_filters = _XFreeIMFilters;
- UnlockDisplay(display);
-}
-
-void
-_XUnregisterFilter(
- Display *display,
- Window window,
- Bool (*filter)(
- Display*, Window, XEvent*, XPointer
- ),
- XPointer client_data)
-{
- register XFilterEventList *prev, fl;
-
- for (prev = &display->im_filters; (fl = *prev); ) {
- if (fl->window == window &&
- fl->filter == filter && fl->client_data == client_data) {
- *prev = fl->next;
- Xfree(fl);
- } else
- prev = &fl->next;
- }
-}
diff --git a/nx-X11/lib/X11/RepWindow.c b/nx-X11/lib/X11/RepWindow.c
deleted file mode 100644
index 1fde8d80f..000000000
--- a/nx-X11/lib/X11/RepWindow.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XReparentWindow(
- register Display *dpy,
- Window w,
- Window p,
- int x,
- int y)
-{
- register xReparentWindowReq *req;
-
- LockDisplay(dpy);
- GetReq(ReparentWindow, req);
- req->window = w;
- req->parent = p;
- req->x = x;
- req->y = y;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/RestackWs.c b/nx-X11/lib/X11/RestackWs.c
deleted file mode 100644
index 52391ecd2..000000000
--- a/nx-X11/lib/X11/RestackWs.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XRestackWindows (
- register Display *dpy,
- register Window *windows,
- int n)
-{
- int i = 0;
-
- LockDisplay(dpy);
- while (windows++, ++i < n) {
- register xConfigureWindowReq *req;
-
- GetReqExtra (ConfigureWindow, 8, req);
- req->window = *windows;
- req->mask = CWSibling | CWStackMode;
- {
- register CARD32 *values = (CARD32 *)
- NEXTPTR(req,xConfigureWindowReq);
- *values++ = *(windows-1);
- *values = Below;
- }
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
-
-
-
-
diff --git a/nx-X11/lib/X11/RotProp.c b/nx-X11/lib/X11/RotProp.c
deleted file mode 100644
index 98d7dbd81..000000000
--- a/nx-X11/lib/X11/RotProp.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XRotateWindowProperties(
- register Display *dpy,
- Window w,
- Atom *properties,
- register int nprops,
- int npositions)
-{
- register long nbytes;
- register xRotatePropertiesReq *req;
-
- LockDisplay(dpy);
- GetReq (RotateProperties, req);
- req->window = w;
- req->nAtoms = nprops;
- req->nPositions = npositions;
-
- req->length += nprops;
- nbytes = nprops << 2;
-/* XXX Cray needs packing here.... */
- Data32 (dpy, (long *) properties, nbytes);
-
-
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
-
-
-
-
-
diff --git a/nx-X11/lib/X11/ScrResStr.c b/nx-X11/lib/X11/ScrResStr.c
deleted file mode 100644
index 1dd04a383..000000000
--- a/nx-X11/lib/X11/ScrResStr.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xatom.h>
-
-char *XScreenResourceString(Screen *screen)
-{
- Atom prop_name;
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long leftover;
- char *val = NULL;
-
- prop_name = XInternAtom(screen->display, "SCREEN_RESOURCES", True);
- if (prop_name &&
- XGetWindowProperty(screen->display, screen->root, prop_name,
- 0L, 100000000L, False,
- XA_STRING, &actual_type, &actual_format,
- &nitems, &leftover,
- (unsigned char **) &val) == Success) {
- if ((actual_type == XA_STRING) && (actual_format == 8))
- return val;
- Xfree(val);
- }
- return (char *)NULL;
-}
diff --git a/nx-X11/lib/X11/SelInput.c b/nx-X11/lib/X11/SelInput.c
deleted file mode 100644
index a3fa294f4..000000000
--- a/nx-X11/lib/X11/SelInput.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSelectInput (
- register Display *dpy,
- Window w,
- long mask)
-{
- register xChangeWindowAttributesReq *req;
-
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWEventMask;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), mask);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/SendEvent.c b/nx-X11/lib/X11/SendEvent.c
deleted file mode 100644
index 1de986007..000000000
--- a/nx-X11/lib/X11/SendEvent.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/*
- * In order to avoid all images requiring _XEventToWire, we install the
- * event converter here if it has never been installed.
- */
-Status
-XSendEvent(
- register Display *dpy,
- Window w,
- Bool propagate,
- long event_mask,
- XEvent *event)
-{
- register xSendEventReq *req;
- xEvent ev;
- register Status (**fp)(
- Display * /* dpy */,
- XEvent * /* re */,
- xEvent * /* event */);
- Status status;
-
- /* initialize all of the event's fields first, before setting
- * the meaningful ones later.
- */
- memset (&ev, 0, sizeof (ev));
-
- LockDisplay (dpy);
-
- /* call through display to find proper conversion routine */
-
- fp = &dpy->wire_vec[event->type & 0177];
- if (*fp == NULL) *fp = _XEventToWire;
- status = (**fp)(dpy, event, &ev);
-
- if (status) {
- GetReq(SendEvent, req);
- req->destination = w;
- req->propagate = propagate;
- req->eventMask = event_mask;
- req->event = ev;
- }
-
- UnlockDisplay(dpy);
- SyncHandle();
- return(status);
-}
diff --git a/nx-X11/lib/X11/SetBack.c b/nx-X11/lib/X11/SetBack.c
deleted file mode 100644
index 269d10cc7..000000000
--- a/nx-X11/lib/X11/SetBack.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetBackground (
- register Display *dpy,
- GC gc,
- unsigned long background) /* CARD32 */
-{
- LockDisplay(dpy);
- if (gc->values.background != background) {
- gc->values.background = background;
- gc->dirty |= GCBackground;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetCCC.c b/nx-X11/lib/X11/SetCCC.c
deleted file mode 100644
index e8171b4ea..000000000
--- a/nx-X11/lib/X11/SetCCC.c
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsSetCCC.c - Color Conversion Context Setting Routines
- *
- * DESCRIPTION
- * Routines to set components of a Color Conversion
- * Context structure.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcms.h"
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsSetWhitePoint
- *
- * SYNOPSIS
- */
-
-Status
-XcmsSetWhitePoint(
- XcmsCCC ccc,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Sets the Client White Point in the specified CCC.
- *
- * RETURNS
- * Returns XcmsSuccess if succeeded; otherwise XcmsFailure.
- *
- */
-{
- if (pColor == NULL || pColor->format == XcmsUndefinedFormat) {
- ccc->clientWhitePt.format = XcmsUndefinedFormat;
- } else if (pColor->format != XcmsCIEXYZFormat &&
- pColor->format != XcmsCIEuvYFormat &&
- pColor->format != XcmsCIExyYFormat) {
- return(XcmsFailure);
- } else {
- memcpy((char *)&ccc->clientWhitePt, (char *)pColor, sizeof(XcmsColor));
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsSetCompressionProc
- *
- * SYNOPSIS
- */
-
-XcmsCompressionProc
-XcmsSetCompressionProc(
- XcmsCCC ccc,
- XcmsCompressionProc compression_proc,
- XPointer client_data)
-/*
- * DESCRIPTION
- * Set the specified CCC's compression function and client data.
- *
- * RETURNS
- * Returns the old compression function.
- *
- */
-{
- XcmsCompressionProc old = ccc->gamutCompProc;
-
- ccc->gamutCompProc = compression_proc;
- ccc->gamutCompClientData = client_data;
- return(old);
-}
-
-
-/*
- * NAME
- * XcmsSetWhiteAdjustProc
- *
- * SYNOPSIS
- */
-
-XcmsWhiteAdjustProc
-XcmsSetWhiteAdjustProc(
- XcmsCCC ccc,
- XcmsWhiteAdjustProc white_adjust_proc,
- XPointer client_data )
-/*
- * DESCRIPTION
- * Set the specified CCC's white_adjust function and client data.
- *
- * RETURNS
- * Returns the old white_adjust function.
- *
- */
-{
- XcmsWhiteAdjustProc old = ccc->whitePtAdjProc;
-
- ccc->whitePtAdjProc = white_adjust_proc;
- ccc->whitePtAdjClientData = client_data;
- return(old);
-}
diff --git a/nx-X11/lib/X11/SetCRects.c b/nx-X11/lib/X11/SetCRects.c
deleted file mode 100644
index c7ad3fcf2..000000000
--- a/nx-X11/lib/X11/SetCRects.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* can only call when display is locked. */
-void _XSetClipRectangles (
- register Display *dpy,
- GC gc,
- int clip_x_origin, int clip_y_origin,
- XRectangle *rectangles,
- int n,
- int ordering)
-{
- register xSetClipRectanglesReq *req;
- register long len;
- unsigned long dirty;
- register _XExtension *ext;
-
- GetReq (SetClipRectangles, req);
- req->gc = gc->gid;
- req->xOrigin = gc->values.clip_x_origin = clip_x_origin;
- req->yOrigin = gc->values.clip_y_origin = clip_y_origin;
- req->ordering = ordering;
- len = ((long)n) << 1;
- SetReqLen(req, len, 1);
- len <<= 2;
- Data16 (dpy, (short *) rectangles, len);
- gc->rects = 1;
- dirty = gc->dirty & ~(GCClipMask | GCClipXOrigin | GCClipYOrigin);
- gc->dirty = GCClipMask | GCClipXOrigin | GCClipYOrigin;
- /* call out to any extensions interested */
- for (ext = dpy->ext_procs; ext; ext = ext->next)
- if (ext->flush_GC) (*ext->flush_GC)(dpy, gc, &ext->codes);
- gc->dirty = dirty;
-}
-
-int
-XSetClipRectangles (
- register Display *dpy,
- GC gc,
- int clip_x_origin,
- int clip_y_origin,
- XRectangle *rectangles,
- int n,
- int ordering)
-{
- LockDisplay(dpy);
- _XSetClipRectangles (dpy, gc, clip_x_origin, clip_y_origin, rectangles, n,
- ordering);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/SetClMask.c b/nx-X11/lib/X11/SetClMask.c
deleted file mode 100644
index 82cdb2cce..000000000
--- a/nx-X11/lib/X11/SetClMask.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetClipMask (
- register Display *dpy,
- GC gc,
- Pixmap mask)
-{
- LockDisplay(dpy);
- /* always update, since client may have changed pixmap contents */
- gc->values.clip_mask = mask;
- gc->dirty |= GCClipMask;
- gc->rects = 0;
- _XFlushGCCache(dpy, gc);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetClOrig.c b/nx-X11/lib/X11/SetClOrig.c
deleted file mode 100644
index 800e1570d..000000000
--- a/nx-X11/lib/X11/SetClOrig.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetClipOrigin (
- register Display *dpy,
- GC gc,
- int xorig,
- int yorig)
-{
- XGCValues *gv = &gc->values;
-
- LockDisplay(dpy);
- if (xorig != gv->clip_x_origin) {
- gv->clip_x_origin = xorig;
- gc->dirty |= GCClipXOrigin;
- }
- if (yorig != gv->clip_y_origin) {
- gv->clip_y_origin = yorig;
- gc->dirty |= GCClipYOrigin;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetDashes.c b/nx-X11/lib/X11/SetDashes.c
deleted file mode 100644
index ffe4a95ff..000000000
--- a/nx-X11/lib/X11/SetDashes.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetDashes (
- register Display *dpy,
- GC gc,
- int dash_offset,
- _Xconst char *list,
- int n)
- {
- register xSetDashesReq *req;
-
- LockDisplay(dpy);
- GetReq (SetDashes,req);
- req->gc = gc->gid;
- req->dashOffset = gc->values.dash_offset = dash_offset;
- req->nDashes = n;
- req->length += (n+3)>>2;
- gc->dashes = 1;
- gc->dirty &= ~(GCDashList | GCDashOffset);
- Data (dpy, list, (long)n);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
- }
-
diff --git a/nx-X11/lib/X11/SetFPath.c b/nx-X11/lib/X11/SetFPath.c
deleted file mode 100644
index 60aaef01e..000000000
--- a/nx-X11/lib/X11/SetFPath.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define safestrlen(s) ((s) ? strlen(s) : 0)
-
-int
-XSetFontPath (
- register Display *dpy,
- char **directories,
- int ndirs)
-{
- register int n = 0;
- register int i;
- register int nbytes;
- char *p;
- register xSetFontPathReq *req;
- int retCode;
-
- LockDisplay(dpy);
- GetReq (SetFontPath, req);
- req->nFonts = ndirs;
- for (i = 0; i < ndirs; i++) {
- n += safestrlen (directories[i]) + 1;
- }
- nbytes = (n + 3) & ~3;
- req->length += nbytes >> 2;
- if ((p = Xmalloc (nbytes))) {
- /*
- * pack into counted strings.
- */
- char *tmp = p;
-
- for (i = 0; i < ndirs; i++) {
- register int length = safestrlen (directories[i]);
- *p = length;
- memcpy (p + 1, directories[i], length);
- p += length + 1;
- }
- Data (dpy, tmp, nbytes);
- Xfree (tmp);
- retCode = 1;
- }
- else
- retCode = 0;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return (retCode);
-}
diff --git a/nx-X11/lib/X11/SetFont.c b/nx-X11/lib/X11/SetFont.c
deleted file mode 100644
index 33ffca02d..000000000
--- a/nx-X11/lib/X11/SetFont.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetFont (
- register Display *dpy,
- GC gc,
- Font font)
-{
- LockDisplay(dpy);
- if (gc->values.font != font) {
- gc->values.font = font;
- gc->dirty |= GCFont;
- _XFlushGCCache(dpy, gc);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetFore.c b/nx-X11/lib/X11/SetFore.c
deleted file mode 100644
index 50c9f1228..000000000
--- a/nx-X11/lib/X11/SetFore.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetForeground (
- register Display *dpy,
- GC gc,
- unsigned long foreground) /* CARD32 */
-{
- LockDisplay(dpy);
- if (gc->values.foreground != foreground) {
- gc->values.foreground = foreground;
- gc->dirty |= GCForeground;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetFunc.c b/nx-X11/lib/X11/SetFunc.c
deleted file mode 100644
index ffe4ec0cc..000000000
--- a/nx-X11/lib/X11/SetFunc.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetFunction (
- register Display *dpy,
- GC gc,
- int function)
-{
- LockDisplay(dpy);
- if (gc->values.function != function) {
- gc->values.function = function;
- gc->dirty |= GCFunction;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetGetCols.c b/nx-X11/lib/X11/SetGetCols.c
deleted file mode 100644
index 83fa4c200..000000000
--- a/nx-X11/lib/X11/SetGetCols.c
+++ /dev/null
@@ -1,301 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsSetGet.c
- *
- * DESCRIPTION
- * Source for _XcmsSetGetColors()
- *
- *
- */
-
-/*
- * EXTERNAL INCLUDES
- * Include files that must be exported to any package or
- * program using this package.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsSetColor -
- *
- * SYNOPSIS
- */
-Status
-_XcmsSetGetColor(
- Status (*xColorProc)(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* screen_in_out */),
- Display *dpy,
- Colormap cmap,
- XcmsColor *pColors_in_out,
- XcmsColorFormat result_format,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Routine containing code common to:
- * XcmsAllocColor
- * XcmsQueryColor
- * XcmsStoreColor
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded without gamut compression;
- * XcmsSuccessWithCompression if it succeeded with gamut
- * compression;
- */
-{
- XcmsCCC ccc;
- XColor XColors_in_out;
- Status retval = XcmsSuccess;
-
- /*
- * Argument Checking
- * 1. Assume xColorProc is correct
- * 2. Insure ccc not NULL
- * 3. Assume cmap correct (should be checked by Server)
- * 4. Insure pColors_in_out valid
- * 5. Assume method_in is valid (should be checked by Server)
- */
-
- if (dpy == NULL) {
- return(XcmsFailure);
- }
-
- if (result_format == XcmsUndefinedFormat) {
- return(XcmsFailure);
- }
-
- if ( !((*xColorProc == XAllocColor) || (*xColorProc == XStoreColor)
- || (*xColorProc == XQueryColor)) ) {
- return(XcmsFailure);
- }
-
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
- return(XcmsFailure);
- }
-
- if (*xColorProc == XQueryColor) {
- goto Query;
- }
-
- /*
- * Convert to RGB, adjusting for white point differences if necessary.
- */
- if ((retval = XcmsConvertColors(ccc, pColors_in_out, 1, XcmsRGBFormat,
- pCompressed)) == XcmsFailure) {
- return(XcmsFailure);
- }
-
-Query:
- /*
- * Convert XcmsColor to XColor structures
- */
- _XcmsRGB_to_XColor(pColors_in_out, &XColors_in_out, 1);
-
- /*
- * Now make appropriate X Call
- */
- if (*xColorProc == XAllocColor) {
- if ((*xColorProc)(ccc->dpy, cmap, &XColors_in_out) == 0) {
- return(XcmsFailure);
- }
- } else if ((*xColorProc == XQueryColor) || (*xColorProc == XStoreColor)) {
- /* Note: XQueryColor and XStoreColor do not return any Status */
- (*xColorProc)(ccc->dpy, cmap, &XColors_in_out);
- } else {
- return(XcmsFailure);
- }
-
- if ((*xColorProc == XStoreColor)) {
- return(retval);
- }
-
- /*
- * Now, convert the returned XColor (i.e., rgb) to XcmsColor structures
- */
- _XColor_to_XcmsRGB(ccc, &XColors_in_out, pColors_in_out, 1);
-
- /*
- * Then, convert XcmsColor structures to the original specification
- * format. Note that we must use NULL instead of passing
- * pCompressed.
- */
-
- if (result_format != XcmsRGBFormat) {
- if (XcmsConvertColors(ccc, pColors_in_out, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- return(retval);
-}
-
-/*
- * NAME
- * XcmsSetColors -
- *
- * SYNOPSIS
- */
-Status
-_XcmsSetGetColors(
- Status (*xColorProc)(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* screen_in_out */,
- int /* nColors */),
- Display *dpy,
- Colormap cmap,
- XcmsColor *pColors_in_out,
- int nColors,
- XcmsColorFormat result_format,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Routine containing code common to:
- * XcmsQueryColors
- * XcmsStoreColors
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded without gamut compression;
- * XcmsSuccessWithCompression if it succeeded with gamut
- * compression;
- */
-{
- XcmsCCC ccc;
- XColor *pXColors_in_out;
- Status retval = XcmsSuccess;
-
- /*
- * Argument Checking
- * 1. Assume xColorProc is correct
- * 2. Insure ccc not NULL
- * 3. Assume cmap correct (should be checked by Server)
- * 4. Insure pColors_in_out valid
- * 5. Assume method_in is valid (should be checked by Server)
- * 6. Insure nColors > 0
- */
-
- if (dpy == NULL) {
- return(XcmsFailure);
- }
-
- if (nColors == 0) {
- return(XcmsSuccess);
- }
-
- if (result_format == XcmsUndefinedFormat) {
- return(XcmsFailure);
- }
-
- if ( !((*xColorProc == XStoreColors) || (*xColorProc == XQueryColors)) ) {
- return(XcmsFailure);
- }
-
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Allocate space for XColors
- */
- if ((pXColors_in_out = Xcalloc(nColors, sizeof(XColor))) ==
- NULL) {
- return(XcmsFailure);
- }
-
- if (*xColorProc == XQueryColors) {
- goto Query;
- }
-
- /*
- * Convert to RGB, adjusting for white point differences if necessary.
- */
- if ((retval = XcmsConvertColors(ccc, pColors_in_out, nColors, XcmsRGBFormat,
- pCompressed)) == XcmsFailure) {
- Xfree(pXColors_in_out);
- return(XcmsFailure);
- }
-
-Query:
- /*
- * Convert XcmsColor to XColor structures
- */
- _XcmsRGB_to_XColor(pColors_in_out, pXColors_in_out, nColors);
-
- /*
- * Now make appropriate X Call
- */
- if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
- /* Note: XQueryColors and XStoreColors do not return any Status */
- (*xColorProc)(ccc->dpy, cmap, pXColors_in_out, nColors);
- } else {
- Xfree(pXColors_in_out);
- return(XcmsFailure);
- }
-
- if (*xColorProc == XStoreColors) {
- Xfree(pXColors_in_out);
- return(retval);
- }
-
- /*
- * Now, convert the returned XColor (i.e., rgb) to XcmsColor structures
- */
- _XColor_to_XcmsRGB(ccc, pXColors_in_out, pColors_in_out, nColors);
- Xfree(pXColors_in_out);
-
- /*
- * Then, convert XcmsColor structures to the original specification
- * format. Note that we must use NULL instead of passing
- * pCompressed.
- */
- if (result_format != XcmsRGBFormat) {
- if (XcmsConvertColors(ccc, pColors_in_out, nColors, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- return(retval);
-}
-
-/* ### EOF ### */
diff --git a/nx-X11/lib/X11/SetHints.c b/nx-X11/lib/X11/SetHints.c
deleted file mode 100644
index eed360f46..000000000
--- a/nx-X11/lib/X11/SetHints.c
+++ /dev/null
@@ -1,319 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-
-#define safestrlen(s) ((s) ? strlen(s) : 0)
-
-int
-XSetSizeHints( /* old routine */
- Display *dpy,
- Window w,
- XSizeHints *hints,
- Atom property)
-{
- xPropSizeHints prop;
- memset(&prop, 0, sizeof(prop));
- prop.flags = (hints->flags & (USPosition|USSize|PAllHints));
- if (hints->flags & (USPosition|PPosition)) {
- prop.x = hints->x;
- prop.y = hints->y;
- }
- if (hints->flags & (USSize|PSize)) {
- prop.width = hints->width;
- prop.height = hints->height;
- }
- if (hints->flags & PMinSize) {
- prop.minWidth = hints->min_width;
- prop.minHeight = hints->min_height;
- }
- if (hints->flags & PMaxSize) {
- prop.maxWidth = hints->max_width;
- prop.maxHeight = hints->max_height;
- }
- if (hints->flags & PResizeInc) {
- prop.widthInc = hints->width_inc;
- prop.heightInc = hints->height_inc;
- }
- if (hints->flags & PAspect) {
- prop.minAspectX = hints->min_aspect.x;
- prop.minAspectY = hints->min_aspect.y;
- prop.maxAspectX = hints->max_aspect.x;
- prop.maxAspectY = hints->max_aspect.y;
- }
- return XChangeProperty (dpy, w, property, XA_WM_SIZE_HINTS, 32,
- PropModeReplace, (unsigned char *) &prop,
- OldNumPropSizeElements);
-}
-
-/*
- * XSetWMHints sets the property
- * WM_HINTS type: WM_HINTS format:32
- */
-
-int
-XSetWMHints (
- Display *dpy,
- Window w,
- XWMHints *wmhints)
-{
- xPropWMHints prop;
- memset(&prop, 0, sizeof(prop));
- prop.flags = wmhints->flags;
- if (wmhints->flags & InputHint)
- prop.input = (wmhints->input == True ? 1 : 0);
- if (wmhints->flags & StateHint)
- prop.initialState = wmhints->initial_state;
- if (wmhints->flags & IconPixmapHint)
- prop.iconPixmap = wmhints->icon_pixmap;
- if (wmhints->flags & IconWindowHint)
- prop.iconWindow = wmhints->icon_window;
- if (wmhints->flags & IconPositionHint) {
- prop.iconX = wmhints->icon_x;
- prop.iconY = wmhints->icon_y;
- }
- if (wmhints->flags & IconMaskHint)
- prop.iconMask = wmhints->icon_mask;
- if (wmhints->flags & WindowGroupHint)
- prop.windowGroup = wmhints->window_group;
- return XChangeProperty (dpy, w, XA_WM_HINTS, XA_WM_HINTS, 32,
- PropModeReplace, (unsigned char *) &prop,
- NumPropWMHintsElements);
-}
-
-
-
-/*
- * XSetZoomHints sets the property
- * WM_ZOOM_HINTS type: WM_SIZE_HINTS format: 32
- */
-
-int
-XSetZoomHints (
- Display *dpy,
- Window w,
- XSizeHints *zhints)
-{
- return XSetSizeHints (dpy, w, zhints, XA_WM_ZOOM_HINTS);
-}
-
-
-/*
- * XSetNormalHints sets the property
- * WM_NORMAL_HINTS type: WM_SIZE_HINTS format: 32
- */
-
-int
-XSetNormalHints ( /* old routine */
- Display *dpy,
- Window w,
- XSizeHints *hints)
-{
- return XSetSizeHints (dpy, w, hints, XA_WM_NORMAL_HINTS);
-}
-
-
-
-/*
- * Note, the following is one of the few cases were we really do want sizeof
- * when examining a protocol structure. This is because the XChangeProperty
- * routine will take care of converting to host to network data structures.
- */
-
-int
-XSetIconSizes (
- Display *dpy,
- Window w, /* typically, root */
- XIconSize *list,
- int count) /* number of items on the list */
-{
- register int i;
- xPropIconSize *pp, *prop;
-#define size_of_the_real_thing sizeof /* avoid grepping screwups */
- unsigned nbytes = count * size_of_the_real_thing(xPropIconSize);
-#undef size_of_the_real_thing
- if ((prop = pp = Xmalloc (nbytes))) {
- for (i = 0; i < count; i++) {
- pp->minWidth = list->min_width;
- pp->minHeight = list->min_height;
- pp->maxWidth = list->max_width;
- pp->maxHeight = list->max_height;
- pp->widthInc = list->width_inc;
- pp->heightInc = list->height_inc;
- pp += 1;
- list += 1;
- }
- XChangeProperty (dpy, w, XA_WM_ICON_SIZE, XA_WM_ICON_SIZE, 32,
- PropModeReplace, (unsigned char *) prop,
- count * NumPropIconSizeElements);
- Xfree (prop);
- }
- return 1;
-}
-
-int
-XSetCommand (
- Display *dpy,
- Window w,
- char **argv,
- int argc)
-{
- register int i;
- register int nbytes;
- register char *buf, *bp;
- for (i = 0, nbytes = 0; i < argc; i++) {
- nbytes += safestrlen(argv[i]) + 1;
- }
- if ((bp = buf = Xmalloc(nbytes))) {
- /* copy arguments into single buffer */
- for (i = 0; i < argc; i++) {
- if (argv[i]) {
- (void) strcpy(bp, argv[i]);
- bp += strlen(argv[i]) + 1;
- }
- else
- *bp++ = '\0';
- }
- XChangeProperty (dpy, w, XA_WM_COMMAND, XA_STRING, 8,
- PropModeReplace, (unsigned char *)buf, nbytes);
- Xfree(buf);
- }
- return 1;
-}
-/*
- * XSetStandardProperties sets the following properties:
- * WM_NAME type: STRING format: 8
- * WM_ICON_NAME type: STRING format: 8
- * WM_HINTS type: WM_HINTS format: 32
- * WM_COMMAND type: STRING
- * WM_NORMAL_HINTS type: WM_SIZE_HINTS format: 32
- */
-
-int
-XSetStandardProperties (
- Display *dpy,
- Window w, /* window to decorate */
- _Xconst char *name, /* name of application */
- _Xconst char *icon_string,/* name string for icon */
- Pixmap icon_pixmap, /* pixmap to use as icon, or None */
- char **argv, /* command to be used to restart application */
- int argc, /* count of arguments */
- XSizeHints *hints) /* size hints for window in its normal state */
-{
- XWMHints phints;
- phints.flags = 0;
-
- if (name != NULL) XStoreName (dpy, w, name);
-
- if (icon_string != NULL) {
- XChangeProperty (dpy, w, XA_WM_ICON_NAME, XA_STRING, 8,
- PropModeReplace,
- (_Xconst unsigned char *)icon_string,
- safestrlen(icon_string));
- }
-
- if (icon_pixmap != None) {
- phints.icon_pixmap = icon_pixmap;
- phints.flags |= IconPixmapHint;
- }
- if (argv != NULL) XSetCommand(dpy, w, argv, argc);
-
- if (hints != NULL) XSetNormalHints(dpy, w, hints);
-
- if (phints.flags != 0) XSetWMHints(dpy, w, &phints);
-
- return 1;
-}
-
-int
-XSetTransientForHint(
- Display *dpy,
- Window w,
- Window propWindow)
-{
- return XChangeProperty(dpy, w, XA_WM_TRANSIENT_FOR, XA_WINDOW, 32,
- PropModeReplace, (unsigned char *) &propWindow, 1);
-}
-
-int
-XSetClassHint(
- Display *dpy,
- Window w,
- XClassHint *classhint)
-{
- char *class_string;
- char *s;
- int len_nm, len_cl;
-
- len_nm = safestrlen(classhint->res_name);
- len_cl = safestrlen(classhint->res_class);
- if ((class_string = s = Xmalloc(len_nm + len_cl + 2))) {
- if (len_nm) {
- strcpy(s, classhint->res_name);
- s += len_nm + 1;
- }
- else
- *s++ = '\0';
- if (len_cl)
- strcpy(s, classhint->res_class);
- else
- *s = '\0';
- XChangeProperty(dpy, w, XA_WM_CLASS, XA_STRING, 8,
- PropModeReplace, (unsigned char *) class_string,
- len_nm+len_cl+2);
- Xfree(class_string);
- }
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetIFocus.c b/nx-X11/lib/X11/SetIFocus.c
deleted file mode 100644
index bee96ca82..000000000
--- a/nx-X11/lib/X11/SetIFocus.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetInputFocus(
- register Display *dpy,
- Window focus,
- int revert_to,
- Time time)
-{
- register xSetInputFocusReq *req;
-
- LockDisplay(dpy);
- GetReq(SetInputFocus, req);
- req->focus = focus;
- req->revertTo = revert_to;
- req->time = time;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/SetLStyle.c b/nx-X11/lib/X11/SetLStyle.c
deleted file mode 100644
index 8b00fae9c..000000000
--- a/nx-X11/lib/X11/SetLStyle.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetLineAttributes(
- register Display *dpy,
- GC gc,
- unsigned int linewidth, /* CARD16 */
- int linestyle,
- int capstyle,
- int joinstyle)
-{
- XGCValues *gv = &gc->values;
-
- LockDisplay(dpy);
- if (linewidth != gv->line_width) {
- gv->line_width = linewidth;
- gc->dirty |= GCLineWidth;
- }
- if (linestyle != gv->line_style) {
- gv->line_style = linestyle;
- gc->dirty |= GCLineStyle;
- }
- if (capstyle != gv->cap_style) {
- gv->cap_style = capstyle;
- gc->dirty |= GCCapStyle;
- }
- if (joinstyle != gv->join_style) {
- gv->join_style = joinstyle;
- gc->dirty |= GCJoinStyle;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetLocale.c b/nx-X11/lib/X11/SetLocale.c
deleted file mode 100644
index 3bbfd3ee6..000000000
--- a/nx-X11/lib/X11/SetLocale.c
+++ /dev/null
@@ -1,188 +0,0 @@
-
-/*
- * Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
- * and Nippon Telegraph and Telephone Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of OMRON, NTT Software, and NTT
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. OMRON, NTT Software,
- * and NTT make no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OMRON, NTT SOFTWARE, AND NTT, DISCLAIM ALL WARRANTIES WITH REGARD
- * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL OMRON, NTT SOFTWARE, OR NTT, BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors: Li Yuhong OMRON Corporation
- * Tetsuya Kato NTT Software Corporation
- * Hiroshi Kuribayashi OMRON Corporation
- *
- */
-/*
-
-Copyright 1987,1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include <nx-X11/Xlocale.h>
-#include <nx-X11/Xos.h>
-#include "XlcPubI.h"
-
-#define MAXLOCALE 64 /* buffer size of locale name */
-
-
-#if defined(__DARWIN__) || defined(__APPLE__) || defined(__CYGWIN__)
-char *
-_Xsetlocale(
- int category,
- _Xconst char *name
-)
-{
- return setlocale(category, name);
-}
-#endif /* __DARWIN__ || __APPLE__ || __CYGWIN__ */
-
-/*
- * _XlcMapOSLocaleName is an implementation dependent routine that derives
- * the LC_CTYPE locale name as used in the sample implementation from that
- * returned by setlocale.
- *
- * Should match the code in Xt ExtractLocaleName.
- *
- * This function name is a bit of a misnomer. Even the siname parameter
- * name is a misnomer. On most modern operating systems this function is
- * a no-op, simply returning the osname; but on older operating systems
- * like Ultrix, or HPUX 9.x and earlier, when you set LANG=german.88591
- * then the string returned by setlocale(LC_ALL, "") will look something
- * like: "german.88591 german.88591 ... german.88591". Then this function
- * will pick out the LC_CTYPE component and return a pointer to that.
- */
-
-char *
-_XlcMapOSLocaleName(
- char *osname,
- char *siname)
-{
-
-/* FIXME: correct indentation levels after ancient platform clean-up */
-
-#if defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(ultrix) || defined(WIN32) || defined(linux)
-# ifdef ultrix
-# define SKIPCOUNT 2
-# define STARTCHAR '\001'
-# define ENDCHAR '\001'
-# else
-# if defined(WIN32)
-# define SKIPCOUNT 1
-# define STARTCHAR '='
-# define ENDCHAR ';'
-# define WHITEFILL
-# else
-# if defined(linux)
-# define STARTSTR "LC_CTYPE="
-# define ENDCHAR ';'
-# else
-# if !defined(sun) || defined(SVR4)
-# define STARTCHAR '/'
-# define ENDCHAR '/'
-# endif
-# endif
-# endif
-# endif
-
- char *start;
- char *end;
- int len;
-# ifdef SKIPCOUNT
- int n;
-# endif
-
- start = osname;
-# ifdef SKIPCOUNT
- for (n = SKIPCOUNT;
- --n >= 0 && start && (start = strchr (start, STARTCHAR));
- start++)
- ;
- if (!start)
- start = osname;
-# endif
-# ifdef STARTCHAR
- if (start && (start = strchr (start, STARTCHAR)))
-# elif defined (STARTSTR)
- if (start && (start = strstr (start,STARTSTR)))
-# endif
- {
-# ifdef STARTCHAR
- start++;
-# elif defined (STARTSTR)
- start += strlen(STARTSTR);
-# endif
- if ((end = strchr (start, ENDCHAR))) {
- len = end - start;
- if (len >= MAXLOCALE)
- len = MAXLOCALE - 1;
- strncpy(siname, start, len);
- *(siname + len) = '\0';
-# ifdef WHITEFILL
- for (start = siname; start = strchr(start, ' '); )
- *start++ = '-';
-# endif
- return siname;
- } else /* if no ENDCHAR is found we are at the end of the line */
- return start;
- }
-# ifdef WHITEFILL
- if (strchr(osname, ' ')) {
- len = strlen(osname);
- if (len >= MAXLOCALE - 1)
- len = MAXLOCALE - 1;
- strncpy(siname, osname, len);
- *(siname + len) = '\0';
- for (start = siname; start = strchr(start, ' '); )
- *start++ = '-';
- return siname;
- }
-# endif
-# undef STARTCHAR
-# undef ENDCHAR
-# undef WHITEFILL
-#endif
- return osname;
-}
-
diff --git a/nx-X11/lib/X11/SetNrmHint.c b/nx-X11/lib/X11/SetNrmHint.c
deleted file mode 100644
index 937f4eb6b..000000000
--- a/nx-X11/lib/X11/SetNrmHint.c
+++ /dev/null
@@ -1,127 +0,0 @@
-
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca,
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL AND WYSE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL DIGITAL OR WYSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-
-void XSetWMSizeHints (
- Display *dpy,
- Window w,
- XSizeHints *hints,
- Atom prop)
-{
- xPropSizeHints data;
-
- memset(&data, 0, sizeof(data));
- data.flags = (hints->flags &
- (USPosition|USSize|PPosition|PSize|PMinSize|PMaxSize|
- PResizeInc|PAspect|PBaseSize|PWinGravity));
-
- /*
- * The x, y, width, and height fields are obsolete; but, applications
- * that want to work with old window managers might set them.
- */
- if (hints->flags & (USPosition|PPosition)) {
- data.x = hints->x;
- data.y = hints->y;
- }
- if (hints->flags & (USSize|PSize)) {
- data.width = hints->width;
- data.height = hints->height;
- }
-
- if (hints->flags & PMinSize) {
- data.minWidth = hints->min_width;
- data.minHeight = hints->min_height;
- }
- if (hints->flags & PMaxSize) {
- data.maxWidth = hints->max_width;
- data.maxHeight = hints->max_height;
- }
- if (hints->flags & PResizeInc) {
- data.widthInc = hints->width_inc;
- data.heightInc = hints->height_inc;
- }
- if (hints->flags & PAspect) {
- data.minAspectX = hints->min_aspect.x;
- data.minAspectY = hints->min_aspect.y;
- data.maxAspectX = hints->max_aspect.x;
- data.maxAspectY = hints->max_aspect.y;
- }
- if (hints->flags & PBaseSize) {
- data.baseWidth = hints->base_width;
- data.baseHeight = hints->base_height;
- }
- if (hints->flags & PWinGravity) {
- data.winGravity = hints->win_gravity;
- }
-
- XChangeProperty (dpy, w, prop, XA_WM_SIZE_HINTS, 32,
- PropModeReplace, (unsigned char *) &data,
- NumPropSizeElements);
-}
-
-
-void XSetWMNormalHints (
- Display *dpy,
- Window w,
- XSizeHints *hints)
-{
- XSetWMSizeHints (dpy, w, hints, XA_WM_NORMAL_HINTS);
-}
-
diff --git a/nx-X11/lib/X11/SetPMask.c b/nx-X11/lib/X11/SetPMask.c
deleted file mode 100644
index 9f236b00b..000000000
--- a/nx-X11/lib/X11/SetPMask.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetPlaneMask (
- register Display *dpy,
- GC gc,
- unsigned long planemask) /* CARD32 */
-{
- LockDisplay(dpy);
- if (gc->values.plane_mask != planemask) {
- gc->values.plane_mask = planemask;
- gc->dirty |= GCPlaneMask;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetPntMap.c b/nx-X11/lib/X11/SetPntMap.c
deleted file mode 100644
index 14e104d6d..000000000
--- a/nx-X11/lib/X11/SetPntMap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-/* returns either DeviceMappingSuccess or DeviceMappingBusy */
-
-int
-XSetPointerMapping (
- register Display *dpy,
- _Xconst unsigned char *map,
- int nmaps)
- {
- register xSetPointerMappingReq *req;
- xSetPointerMappingReply rep;
-
- LockDisplay(dpy);
- GetReq (SetPointerMapping, req);
- req->nElts = nmaps;
- req->length += (nmaps + 3)>>2;
- Data (dpy, (_Xconst char *)map, (long) nmaps);
- if (_XReply (dpy, (xReply *)&rep, 0, xFalse) == 0)
- rep.success = MappingSuccess;
- UnlockDisplay(dpy);
- SyncHandle();
- return ((int) rep.success);
- }
-
-int
-XChangeKeyboardMapping (
- register Display *dpy,
- int first_keycode,
- int keysyms_per_keycode,
- KeySym *keysyms,
- int nkeycodes)
-{
- register long nbytes;
- register xChangeKeyboardMappingReq *req;
-
- LockDisplay(dpy);
- GetReq (ChangeKeyboardMapping, req);
- req->firstKeyCode = first_keycode;
- req->keyCodes = nkeycodes;
- req->keySymsPerKeyCode = keysyms_per_keycode;
- req->length += nkeycodes * keysyms_per_keycode;
- nbytes = keysyms_per_keycode * nkeycodes * 4;
- Data32 (dpy, (long *)keysyms, nbytes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
- }
-
diff --git a/nx-X11/lib/X11/SetRGBCMap.c b/nx-X11/lib/X11/SetRGBCMap.c
deleted file mode 100644
index f413c0d69..000000000
--- a/nx-X11/lib/X11/SetRGBCMap.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-
-void XSetRGBColormaps (
- Display *dpy,
- Window w,
- XStandardColormap *cmaps,
- int count,
- Atom property) /* XA_RGB_BEST_MAP, etc. */
-{
- register int i; /* iterator variable */
- register xPropStandardColormap *map; /* tmp variable, data in prop */
- register XStandardColormap *cmap; /* tmp variable, user data */
- xPropStandardColormap *data, tmpdata; /* scratch data */
- int mode = PropModeReplace; /* for partial writes */
- Bool alloced_scratch_space; /* do we need to free? */
-
-
- if (count < 1) return;
-
- /*
- * if doing more than one, allocate scratch space for it
- */
- if ((count > 1) && ((data = ((xPropStandardColormap *)
- Xmalloc(count*sizeof(xPropStandardColormap))))
- != NULL)) {
- alloced_scratch_space = True;
- } else {
- data = &tmpdata;
- alloced_scratch_space = False;
- }
-
-
- /*
- * Do the iteration. If using temp space put out each part of the prop;
- * otherwise, wait until the end and blast it all at once.
- */
- for (i = count, map = data, cmap = cmaps; i > 0; i--, cmap++) {
- map->colormap = cmap->colormap;
- map->red_max = cmap->red_max;
- map->red_mult = cmap->red_mult;
- map->green_max = cmap->green_max;
- map->green_mult = cmap->green_mult;
- map->blue_max = cmap->blue_max;
- map->blue_mult = cmap->blue_mult;
- map->base_pixel = cmap->base_pixel;
- map->visualid = cmap->visualid;
- map->killid = cmap->killid;
-
- if (alloced_scratch_space) {
- map++;
- } else {
- XChangeProperty (dpy, w, property, XA_RGB_COLOR_MAP, 32, mode,
- (unsigned char *) data,
- NumPropStandardColormapElements);
- mode = PropModeAppend;
- }
- }
-
- if (alloced_scratch_space) {
- XChangeProperty (dpy, w, property, XA_RGB_COLOR_MAP, 32,
- PropModeReplace, (unsigned char *) data,
- (int) (count * NumPropStandardColormapElements));
- Xfree (data);
- }
-}
diff --git a/nx-X11/lib/X11/SetSOwner.c b/nx-X11/lib/X11/SetSOwner.c
deleted file mode 100644
index bc8f56403..000000000
--- a/nx-X11/lib/X11/SetSOwner.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetSelectionOwner(
- register Display *dpy,
- Atom selection,
- Window owner,
- Time time)
-{
- register xSetSelectionOwnerReq *req;
-
- LockDisplay(dpy);
- GetReq(SetSelectionOwner,req);
- req->selection = selection;
- req->window = owner;
- req->time = time;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetSSaver.c b/nx-X11/lib/X11/SetSSaver.c
deleted file mode 100644
index adce749e1..000000000
--- a/nx-X11/lib/X11/SetSSaver.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetScreenSaver(
- register Display *dpy,
- int timeout,
- int interval,
- int prefer_blank,
- int allow_exp)
-
-{
- register xSetScreenSaverReq *req;
-
- LockDisplay(dpy);
- GetReq(SetScreenSaver, req);
- req->timeout = timeout;
- req->interval = interval;
- req->preferBlank = prefer_blank;
- req->allowExpose = allow_exp;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/SetStCmap.c b/nx-X11/lib/X11/SetStCmap.c
deleted file mode 100644
index 7b8aa862d..000000000
--- a/nx-X11/lib/X11/SetStCmap.c
+++ /dev/null
@@ -1,95 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include "Xatomtype.h"
-#include <nx-X11/Xatom.h>
-
-/*
- * WARNING
- *
- * This is a pre-ICCCM routine. It must not reference any of the new fields
- * in the XStandardColormap structure.
- */
-
-void XSetStandardColormap(
- Display *dpy,
- Window w,
- XStandardColormap *cmap,
- Atom property) /* XA_RGB_BEST_MAP, etc. */
-{
- Screen *sp;
- XStandardColormap stdcmap;
-
- sp = _XScreenOfWindow (dpy, w);
- if (!sp) {
- /* already caught the XGetGeometry error in _XScreenOfWindow */
- return;
- }
-
- stdcmap.colormap = cmap->colormap;
- stdcmap.red_max = cmap->red_max;
- stdcmap.red_mult = cmap->red_mult;
- stdcmap.green_max = cmap->green_max;
- stdcmap.green_mult = cmap->green_mult;
- stdcmap.blue_max = cmap->blue_max;
- stdcmap.blue_mult = cmap->blue_mult;
- stdcmap.base_pixel = cmap->base_pixel;
- stdcmap.visualid = sp->root_visual->visualid;
- stdcmap.killid = None; /* don't know how to kill this one */
-
-#ifdef XCMS
- XSetRGBColormaps (dpy, w, &stdcmap, 1, property);
-#endif
-
- return;
-}
diff --git a/nx-X11/lib/X11/SetState.c b/nx-X11/lib/X11/SetState.c
deleted file mode 100644
index e5aa21c05..000000000
--- a/nx-X11/lib/X11/SetState.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetState(
- register Display *dpy,
- GC gc,
- unsigned long foreground,
- unsigned long background,
- int function,
- unsigned long planemask)
-{
- XGCValues *gv = &gc->values;
-
- LockDisplay(dpy);
-
- if (function != gv->function) {
- gv->function = function;
- gc->dirty |= GCFunction;
- }
- if (planemask != gv->plane_mask) {
- gv->plane_mask = planemask;
- gc->dirty |= GCPlaneMask;
- }
- if (foreground != gv->foreground) {
- gv->foreground = foreground;
- gc->dirty |= GCForeground;
- }
- if (background != gv->background) {
- gv->background = background;
- gc->dirty |= GCBackground;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetStip.c b/nx-X11/lib/X11/SetStip.c
deleted file mode 100644
index e95882786..000000000
--- a/nx-X11/lib/X11/SetStip.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetStipple (
- register Display *dpy,
- GC gc,
- Pixmap stipple)
-{
- LockDisplay(dpy);
- /* always update, since client may have changed pixmap contents */
- gc->values.stipple = stipple;
- gc->dirty |= GCStipple;
- _XFlushGCCache(dpy, gc);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetTSOrig.c b/nx-X11/lib/X11/SetTSOrig.c
deleted file mode 100644
index 0117c818b..000000000
--- a/nx-X11/lib/X11/SetTSOrig.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetTSOrigin (
- register Display *dpy,
- GC gc,
- int x,
- int y)
-{
- XGCValues *gv = &gc->values;
-
- LockDisplay(dpy);
- if (x != gv->ts_x_origin) {
- gv->ts_x_origin = x;
- gc->dirty |= GCTileStipXOrigin;
- }
- if (y != gv->ts_y_origin) {
- gv->ts_y_origin = y;
- gc->dirty |= GCTileStipYOrigin;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetTile.c b/nx-X11/lib/X11/SetTile.c
deleted file mode 100644
index d32edff06..000000000
--- a/nx-X11/lib/X11/SetTile.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XSetTile (
- register Display *dpy,
- GC gc,
- Pixmap tile)
-{
- LockDisplay(dpy);
- /* always update, since client may have changed pixmap contents */
- gc->values.tile = tile;
- gc->dirty |= GCTile;
- _XFlushGCCache(dpy, gc);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/SetTxtProp.c b/nx-X11/lib/X11/SetTxtProp.c
deleted file mode 100644
index c3f272712..000000000
--- a/nx-X11/lib/X11/SetTxtProp.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Wyse not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xos.h>
-#include <stdio.h>
-
-void XSetTextProperty (
- Display *dpy,
- Window w,
- XTextProperty *tp,
- Atom property)
-{
- XChangeProperty (dpy, w, property, tp->encoding, tp->format,
- PropModeReplace, tp->value, tp->nitems);
-}
-
-void XSetWMName (
- Display *dpy,
- Window w,
- XTextProperty *tp)
-{
- XSetTextProperty (dpy, w, tp, XA_WM_NAME);
-}
-
-void XSetWMIconName (
- Display *dpy,
- Window w,
- XTextProperty *tp)
-{
- XSetTextProperty (dpy, w, tp, XA_WM_ICON_NAME);
-}
-
-void XSetWMClientMachine (
- Display *dpy,
- Window w,
- XTextProperty *tp)
-{
- XSetTextProperty (dpy, w, tp, XA_WM_CLIENT_MACHINE);
-}
-
diff --git a/nx-X11/lib/X11/SetWMCMapW.c b/nx-X11/lib/X11/SetWMCMapW.c
deleted file mode 100644
index 98d6c80b3..000000000
--- a/nx-X11/lib/X11/SetWMCMapW.c
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xatom.h>
-
-/*
- * XSetWMProtocols sets the property
- * WM_COLORMAP_WINDOWS type: WINDOW format:32
- */
-
-Status XSetWMColormapWindows (
- Display *dpy,
- Window w,
- Window *windows,
- int count)
-{
- Atom prop;
-
- prop = XInternAtom (dpy, "WM_COLORMAP_WINDOWS", False);
- if (prop == None) return False;
-
- XChangeProperty (dpy, w, prop, XA_WINDOW, 32,
- PropModeReplace, (unsigned char *) windows, count);
- return True;
-}
diff --git a/nx-X11/lib/X11/SetWMProto.c b/nx-X11/lib/X11/SetWMProto.c
deleted file mode 100644
index 14067b870..000000000
--- a/nx-X11/lib/X11/SetWMProto.c
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xatom.h>
-
-/*
- * XSetWMProtocols sets the property
- * WM_PROTOCOLS type: ATOM format: 32
- */
-
-Status XSetWMProtocols (
- Display *dpy,
- Window w,
- Atom *protocols,
- int count)
-{
- Atom prop;
-
- prop = XInternAtom (dpy, "WM_PROTOCOLS", False);
- if (prop == None) return False;
-
- XChangeProperty (dpy, w, prop, XA_ATOM, 32,
- PropModeReplace, (unsigned char *) protocols, count);
- return True;
-}
diff --git a/nx-X11/lib/X11/StBytes.c b/nx-X11/lib/X11/StBytes.c
deleted file mode 100644
index f058d354b..000000000
--- a/nx-X11/lib/X11/StBytes.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-
-/* insulate predefined atom numbers from cut routines */
-static const Atom n_to_atom[8] = {
- XA_CUT_BUFFER0,
- XA_CUT_BUFFER1,
- XA_CUT_BUFFER2,
- XA_CUT_BUFFER3,
- XA_CUT_BUFFER4,
- XA_CUT_BUFFER5,
- XA_CUT_BUFFER6,
- XA_CUT_BUFFER7};
-
-int
-XRotateBuffers (
- register Display *dpy,
- int rotate)
-{
- /* XRotateWindowProperties wants a non-const Atom*, but it doesn't
- * modify it, so this is safe.
- */
- return XRotateWindowProperties(dpy, RootWindow(dpy, 0), (Atom *)n_to_atom, 8, rotate);
-}
-
-char *XFetchBuffer (
- register Display *dpy,
- int *nbytes,
- register int buffer)
-{
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long leftover;
- unsigned char *data;
- *nbytes = 0;
- if ((buffer < 0) || (buffer > 7)) return (NULL);
-/* XXX should be (sizeof (maxint) - 1)/4 */
- if (XGetWindowProperty(dpy, RootWindow(dpy, 0), n_to_atom[buffer],
- 0L, 10000000L, False, XA_STRING,
- &actual_type, &actual_format, &nitems, &leftover, &data) != Success) {
- return (NULL);
- }
- if ( (actual_type == XA_STRING) && (actual_format != 32) ) {
- *nbytes = nitems;
- return((char *)data);
- }
- Xfree (data);
- return(NULL);
-}
-
-char *XFetchBytes (
- register Display *dpy,
- int *nbytes)
-{
- return (XFetchBuffer (dpy, nbytes, 0));
-}
-
-int
-XStoreBuffer (
- register Display *dpy,
- _Xconst char *bytes,
- int nbytes,
- register int buffer)
-{
- if ((buffer < 0) || (buffer > 7)) return 0;
- return XChangeProperty(dpy, RootWindow(dpy, 0), n_to_atom[buffer],
- XA_STRING, 8, PropModeReplace, (_Xconst unsigned char *) bytes, nbytes);
-}
-
-int
-XStoreBytes (
- register Display *dpy,
- _Xconst char *bytes,
- int nbytes)
-{
- return XStoreBuffer (dpy, bytes, nbytes, 0);
-}
diff --git a/nx-X11/lib/X11/StCol.c b/nx-X11/lib/X11/StCol.c
deleted file mode 100644
index 941ad0743..000000000
--- a/nx-X11/lib/X11/StCol.c
+++ /dev/null
@@ -1,82 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsStCol.c
- *
- * DESCRIPTION
- * Source for XcmsStoreColor
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsStoreColor - Store Color
- *
- * SYNOPSIS
- */
-Status
-XcmsStoreColor(
- Display *dpy,
- Colormap colormap,
- XcmsColor *pColor_in)
-/*
- * DESCRIPTION
- * Given a device-dependent or device-independent color
- * specification, this routine will convert it to X RGB
- * values then use it in a call to XStoreColor.
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded without gamut compression;
- * XcmsSuccessWithCompression if it succeeded with gamut
- * compression;
- *
- * Since XStoreColor has no return value this routine
- * does not return the color specification of the color actually
- * stored.
- */
-{
- XcmsColor tmpColor;
-
- tmpColor = *pColor_in;
- return(_XcmsSetGetColor(XStoreColor, dpy, colormap,
- &tmpColor, XcmsRGBFormat, (Bool *) NULL));
-}
diff --git a/nx-X11/lib/X11/StColor.c b/nx-X11/lib/X11/StColor.c
deleted file mode 100644
index d5a217fb0..000000000
--- a/nx-X11/lib/X11/StColor.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XStoreColor(
- register Display *dpy,
- Colormap cmap,
- XColor *def)
-{
- xColorItem *citem;
- register xStoreColorsReq *req;
-
- LockDisplay(dpy);
- GetReqExtra(StoreColors, SIZEOF(xColorItem), req); /* assume size is 4*n */
-
- req->cmap = cmap;
-
- citem = (xColorItem *) NEXTPTR(req,xStoreColorsReq);
-
- citem->pixel = def->pixel;
- citem->red = def->red;
- citem->green = def->green;
- citem->blue = def->blue;
- citem->flags = def->flags; /* do_red, do_green, do_blue */
-
-
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/StColors.c b/nx-X11/lib/X11/StColors.c
deleted file mode 100644
index 17a215cc0..000000000
--- a/nx-X11/lib/X11/StColors.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XStoreColors(
- register Display *dpy,
- Colormap cmap,
- XColor *defs,
- int ncolors)
-{
- register int i;
- xColorItem citem;
- register xStoreColorsReq *req;
-
- LockDisplay(dpy);
- GetReq(StoreColors, req);
-
- req->cmap = cmap;
-
- req->length += (ncolors * SIZEOF(xColorItem)) >> 2; /* assume size is 4*n */
-
- for (i = 0; i < ncolors; i++) {
- citem.pixel = defs[i].pixel;
- citem.red = defs[i].red;
- citem.green = defs[i].green;
- citem.blue = defs[i].blue;
- citem.flags = defs[i].flags;
-
- /* note that xColorItem doesn't contain all 16-bit quantities, so
- we can't use Data16 */
- Data(dpy, (char *)&citem, (long) SIZEOF(xColorItem));
- /* assume size is 4*n */
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/StCols.c b/nx-X11/lib/X11/StCols.c
deleted file mode 100644
index 42a29cd7f..000000000
--- a/nx-X11/lib/X11/StCols.c
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsStCols.c
- *
- * DESCRIPTION
- * Source for XcmsStoreColors
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsStoreColors - Store Colors
- *
- * SYNOPSIS
- */
-Status
-XcmsStoreColors(
- Display *dpy,
- Colormap colormap,
- XcmsColor *pColors_in,
- unsigned int nColors,
- Bool *pCompressed)
-/*
- * DESCRIPTION
- * Given device-dependent or device-independent color
- * specifications, this routine will convert them to X RGB
- * values then use it in a call to XStoreColors.
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded without gamut compression;
- * XcmsSuccessWithCompression if it succeeded with gamut
- * compression;
- *
- * Since XStoreColors has no return value, this routine
- * does not return color specifications of the colors actually
- * stored.
- */
-{
- XcmsColor Color1;
- XcmsColor *pColors_tmp;
- Status retval;
-
- /*
- * Make copy of array of color specifications so we don't
- * overwrite the contents.
- */
- if (nColors > 1) {
- pColors_tmp = Xmalloc(nColors * sizeof(XcmsColor));
- } else {
- pColors_tmp = &Color1;
- }
- memcpy((char *)pColors_tmp, (char *)pColors_in,
- nColors * sizeof(XcmsColor));
-
- /*
- * Call routine to store colors using the copied color structures
- */
- retval = _XcmsSetGetColors (XStoreColors, dpy, colormap,
- pColors_tmp, nColors, XcmsRGBFormat, pCompressed);
-
- /*
- * Free copies as needed.
- */
- if (nColors > 1) {
- Xfree(pColors_tmp);
- }
-
- /*
- * Ah, finally return.
- */
- return(retval);
-}
diff --git a/nx-X11/lib/X11/StNColor.c b/nx-X11/lib/X11/StNColor.c
deleted file mode 100644
index 8b821c3ef..000000000
--- a/nx-X11/lib/X11/StNColor.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-
-int
-XStoreNamedColor(
-register Display *dpy,
-Colormap cmap,
-_Xconst char *name, /* STRING8 */
-unsigned long pixel, /* CARD32 */
-int flags) /* DoRed, DoGreen, DoBlue */
-{
- unsigned int nbytes;
- register xStoreNamedColorReq *req;
- XcmsCCC ccc;
- XcmsColor cmsColor_exact;
- XColor scr_def;
-
-#ifdef XCMS
- /*
- * Let's Attempt to use Xcms approach to Parse Color
- */
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- if (_XcmsResolveColorString(ccc, &name, &cmsColor_exact,
- XcmsRGBFormat) >= XcmsSuccess) {
- _XcmsRGB_to_XColor(&cmsColor_exact, &scr_def, 1);
- scr_def.pixel = pixel;
- scr_def.flags = flags;
- return XStoreColor(dpy, cmap, &scr_def);
- }
- /*
- * Otherwise we failed; or name was changed with yet another
- * name. Thus pass name to the X Server.
- */
- }
-#endif
-
- /*
- * The Xcms and i18n methods failed, so lets pass it to the server
- * for parsing.
- */
-
- LockDisplay(dpy);
- GetReq(StoreNamedColor, req);
-
- req->cmap = cmap;
- req->flags = flags;
- req->pixel = pixel;
- req->nbytes = nbytes = strlen(name);
- req->length += (nbytes + 3) >> 2; /* round up to multiple of 4 */
- Data(dpy, name, (long)nbytes);
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
-}
-
-
diff --git a/nx-X11/lib/X11/StName.c b/nx-X11/lib/X11/StName.c
deleted file mode 100644
index a003a109e..000000000
--- a/nx-X11/lib/X11/StName.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-
-int
-XStoreName (
- register Display *dpy,
- Window w,
- _Xconst char *name)
-{
- return XChangeProperty(dpy, w, XA_WM_NAME, XA_STRING,
- 8, PropModeReplace, (_Xconst unsigned char *)name,
- name ? strlen(name) : 0);
-}
-
-int
-XSetIconName (
- register Display *dpy,
- Window w,
- _Xconst char *icon_name)
-{
- return XChangeProperty(dpy, w, XA_WM_ICON_NAME, XA_STRING, 8,
- PropModeReplace, (_Xconst unsigned char *)icon_name,
- icon_name ? strlen(icon_name) : 0);
-}
diff --git a/nx-X11/lib/X11/StrKeysym.c b/nx-X11/lib/X11/StrKeysym.c
deleted file mode 100644
index 125aceca3..000000000
--- a/nx-X11/lib/X11/StrKeysym.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <limits.h>
-#include "Xlibint.h"
-#include <nx-X11/Xresource.h>
-#include <nx-X11/keysymdef.h>
-#include "Xresinternal.h"
-
-#define NEEDKTABLE
-#include "ks_tables.h"
-#include "Key.h"
-
-#ifndef KEYSYMDB
-#ifndef XKEYSYMDB
-#define KEYSYMDB "/usr/lib/X11/XKeysymDB"
-#else
-#define KEYSYMDB XKEYSYMDB
-#endif
-#endif
-
-static Bool initialized;
-static XrmDatabase keysymdb;
-static XrmQuark Qkeysym[2];
-
-XrmDatabase
-_XInitKeysymDB(void)
-{
- if (!initialized)
- {
- const char *dbname;
-
- XrmInitialize();
- /* use and name of this env var is not part of the standard */
- /* implementation-dependent feature */
- dbname = getenv("XKEYSYMDB");
- if (!dbname)
- dbname = KEYSYMDB;
- keysymdb = XrmGetFileDatabase(dbname);
- if (keysymdb)
- Qkeysym[0] = XrmStringToQuark("Keysym");
- initialized = True;
- }
- return keysymdb;
-}
-
-KeySym
-XStringToKeysym(_Xconst char *s)
-{
- register int i, n;
- int h;
- register Signature sig = 0;
- register const char *p = s;
- register int c;
- register int idx;
- const unsigned char *entry;
- unsigned char sig1, sig2;
- KeySym val;
-
- while ((c = *p++))
- sig = (sig << 1) + c;
- i = sig % KTABLESIZE;
- h = i + 1;
- sig1 = (sig >> 8) & 0xff;
- sig2 = sig & 0xff;
- n = KMAXHASH;
- while ((idx = hashString[i]))
- {
- entry = &_XkeyTable[idx];
- if ((entry[0] == sig1) && (entry[1] == sig2) &&
- !strcmp(s, (const char *)entry + 6))
- {
- val = (entry[2] << 24) | (entry[3] << 16) |
- (entry[4] << 8) | entry[5];
- if (!val)
- val = XK_VoidSymbol;
- return val;
- }
- if (!--n)
- break;
- i += h;
- if (i >= KTABLESIZE)
- i -= KTABLESIZE;
- }
-
- if (!initialized)
- (void)_XInitKeysymDB();
- if (keysymdb)
- {
- XrmValue result;
- XrmRepresentation from_type;
- char c;
- XrmQuark names[2];
-
- names[0] = _XrmInternalStringToQuark(s, p - s - 1, sig, False);
- names[1] = NULLQUARK;
- (void)XrmQGetResource(keysymdb, names, Qkeysym, &from_type, &result);
- if (result.addr && (result.size > 1))
- {
- val = 0;
- for (i = 0; i < result.size - 1; i++)
- {
- c = ((char *)result.addr)[i];
- if ('0' <= c && c <= '9') val = (val<<4)+c-'0';
- else if ('a' <= c && c <= 'f') val = (val<<4)+c-'a'+10;
- else if ('A' <= c && c <= 'F') val = (val<<4)+c-'A'+10;
- else return NoSymbol;
- }
- return val;
- }
- }
-
- if (*s == 'U') {
- val = 0;
- for (p = &s[1]; *p; p++) {
- c = *p;
- if ('0' <= c && c <= '9') val = (val<<4)+c-'0';
- else if ('a' <= c && c <= 'f') val = (val<<4)+c-'a'+10;
- else if ('A' <= c && c <= 'F') val = (val<<4)+c-'A'+10;
- else return NoSymbol;
- if (val > 0x10ffff)
- return NoSymbol;
- }
- if (val < 0x20 || (val > 0x7e && val < 0xa0))
- return NoSymbol;
- if (val < 0x100)
- return val;
- return val | 0x01000000;
- }
-
- if (strlen(s) > 2 && s[0] == '0' && s[1] == 'x') {
- char *tmp = NULL;
- val = strtoul(s, &tmp, 16);
- if (val == ULONG_MAX || (tmp && *tmp != '\0'))
- return NoSymbol;
- else
- return val;
- }
-
- /* Stupid inconsistency between the headers and XKeysymDB: the former has
- * no separating underscore, while some XF86* syms in the latter did.
- * As a last ditch effort, try without. */
- if (strncmp(s, "XF86_", 5) == 0) {
- KeySym ret;
- char *tmp = strdup(s);
- if (!tmp)
- return NoSymbol;
- memmove(&tmp[4], &tmp[5], strlen(s) - 5 + 1);
- ret = XStringToKeysym(tmp);
- free(tmp);
- return ret;
- }
-
- return NoSymbol;
-}
diff --git a/nx-X11/lib/X11/StrToText.c b/nx-X11/lib/X11/StrToText.c
deleted file mode 100644
index ff33492f2..000000000
--- a/nx-X11/lib/X11/StrToText.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xutil.h>
-
-/*
- * XStringListToTextProperty - fill in TextProperty structure with
- * concatenated list of null-separated strings. Return True if successful
- * else False. Allocate room on end for trailing NULL, but don't include in
- * count.
- */
-
-Status XStringListToTextProperty (
- char **argv,
- int argc,
- XTextProperty *textprop)
-{
- register int i;
- register unsigned int nbytes;
- XTextProperty proto;
-
- /* figure out how much space we'll need for this list */
- for (i = 0, nbytes = 0; i < argc; i++) {
- nbytes += (unsigned) ((argv[i] ? strlen (argv[i]) : 0) + 1);
- }
-
- /* fill in a prototype containing results so far */
- proto.encoding = XA_STRING;
- proto.format = 8;
- if (nbytes)
- proto.nitems = nbytes - 1; /* subtract one for trailing <NUL> */
- else
- proto.nitems = 0;
- proto.value = NULL;
-
- /* build concatenated list of strings */
- if (nbytes > 0) {
- register char *buf = Xmalloc (nbytes);
- if (!buf) return False;
-
- proto.value = (unsigned char *) buf;
- for (i = 0; i < argc; i++) {
- char *arg = argv[i];
-
- if (arg) {
- (void) strcpy (buf, arg);
- buf += (strlen (arg) + 1);
- } else {
- *buf++ = '\0';
- }
- }
- } else {
- proto.value = Xmalloc (1); /* easier for client */
- if (!proto.value) return False;
-
- proto.value[0] = '\0';
- }
-
- /* we were successful, so set return value */
- *textprop = proto;
- return True;
-}
diff --git a/nx-X11/lib/X11/Sync.c b/nx-X11/lib/X11/Sync.c
deleted file mode 100644
index bc768d4f6..000000000
--- a/nx-X11/lib/X11/Sync.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-/* Synchronize with errors and events, optionally discarding pending events */
-
-int
-XSync (
- register Display *dpy,
- Bool discard)
-{
- xGetInputFocusReply rep;
- _X_UNUSED register xReq *req;
-
- LockDisplay(dpy);
- GetEmptyReq(GetInputFocus, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
-
- if (discard && dpy->head) {
- _XQEvent *qelt;
-
- for (qelt=dpy->head; qelt; qelt=qelt->next)
- qelt->qserial_num = 0;
-
- ((_XQEvent *)dpy->tail)->next = dpy->qfree;
- dpy->qfree = (_XQEvent *)dpy->head;
- dpy->head = dpy->tail = NULL;
- dpy->qlen = 0;
- }
- UnlockDisplay(dpy);
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/Synchro.c b/nx-X11/lib/X11/Synchro.c
deleted file mode 100644
index 930448ee9..000000000
--- a/nx-X11/lib/X11/Synchro.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-
-static int _XSyncFunction(register Display *dpy)
-{
- XSync(dpy,0);
- return 0;
-}
-
-int (*XSynchronize(Display *dpy, int onoff))(Display *)
-{
- int (*temp)(Display *);
- int (*func)(Display *) = NULL;
-
- if (onoff)
- func = _XSyncFunction;
-
- LockDisplay(dpy);
- if (dpy->flags & XlibDisplayPrivSync) {
- temp = dpy->savedsynchandler;
- dpy->savedsynchandler = func;
- } else {
- temp = dpy->synchandler;
- dpy->synchandler = func;
- }
- UnlockDisplay(dpy);
- return (temp);
-}
-
-int (*XSetAfterFunction(
- Display *dpy,
- int (*func)(
- Display*
- )
- ))(Display *)
-{
- int (*temp)(Display *);
-
- LockDisplay(dpy);
- if (dpy->flags & XlibDisplayPrivSync) {
- temp = dpy->savedsynchandler;
- dpy->savedsynchandler = func;
- } else {
- temp = dpy->synchandler;
- dpy->synchandler = func;
- }
- UnlockDisplay(dpy);
- return (temp);
-}
-
diff --git a/nx-X11/lib/X11/Text.c b/nx-X11/lib/X11/Text.c
deleted file mode 100644
index 223b1cf8b..000000000
--- a/nx-X11/lib/X11/Text.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawString(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- _Xconst char *string,
- int length)
-{
- int Datalength = 0;
- register xPolyText8Req *req;
-
- if (length <= 0)
- return 0;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq (PolyText8, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->x = x;
- req->y = y;
-
-
- Datalength += SIZEOF(xTextElt) * ((length + 253) / 254) + length;
-
-
- req->length += (Datalength + 3)>>2; /* convert to number of 32-bit words */
-
-
- /*
- * If the entire request does not fit into the remaining space in the
- * buffer, flush the buffer first. If the request does fit into the
- * empty buffer, then we won't have to flush it at the end to keep
- * the buffer 32-bit aligned.
- */
-
- if (dpy->bufptr + Datalength > dpy->bufmax)
- _XFlush (dpy);
-
- {
- int nbytes;
- int PartialNChars = length;
- /* register xTextElt *elt; */
- char *CharacterOffset = (char *)string;
- unsigned char *tbuf;
-
- while(PartialNChars > 254)
- {
- nbytes = 254 + SIZEOF(xTextElt);
- BufAlloc (unsigned char *, tbuf, nbytes);
-/* elt->delta = 0;
- * elt->len = 254;
- */
- *(unsigned char *)tbuf = 254;
- *(tbuf+1) = 0;
-/* memcpy ((char *) (elt + 1), CharacterOffset, 254);
- */
- memcpy ((char *)tbuf+2, CharacterOffset, 254);
- PartialNChars = PartialNChars - 254;
- CharacterOffset += 254;
- }
-
- if (PartialNChars)
- {
- nbytes = PartialNChars + SIZEOF(xTextElt);
- BufAlloc (unsigned char *, tbuf, nbytes);
-/* elt->delta = 0;
- * elt->len = PartialNChars;
- */
- *(unsigned char *)tbuf = PartialNChars;
- *(tbuf+1) = 0;
-/* memcpy ((char *) (elt + 1), CharacterOffset, PartialNChars);
- */
- memcpy ((char *)tbuf+2, CharacterOffset, PartialNChars);
- }
- }
-
- /* Pad request out to a 32-bit boundary */
-
- if (Datalength &= 3) {
- char *pad;
- /*
- * BufAlloc is a macro that uses its last argument more than
- * once, otherwise I'd write "BufAlloc (char *, pad, 4-length)"
- */
- length = 4 - Datalength;
- BufAlloc (char *, pad, length);
- /*
- * if there are 3 bytes of padding, the first byte MUST be 0
- * so the pad bytes aren't mistaken for a final xTextElt
- */
- *pad = 0;
- }
-
- /*
- * If the buffer pointer is not now pointing to a 32-bit boundary,
- * we must flush the buffer so that it does point to a 32-bit boundary
- * at the end of this routine.
- */
-
- if ((dpy->bufptr - dpy->buffer) & 3)
- _XFlush (dpy);
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
-}
diff --git a/nx-X11/lib/X11/Text16.c b/nx-X11/lib/X11/Text16.c
deleted file mode 100644
index 008a3f7a5..000000000
--- a/nx-X11/lib/X11/Text16.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XDrawString16(
- register Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- _Xconst XChar2b *string,
- int length)
-{
- int Datalength = 0;
- register xPolyText16Req *req;
-
- if (length <= 0)
- return 0;
-
- LockDisplay(dpy);
- FlushGC(dpy, gc);
- GetReq (PolyText16, req);
- req->drawable = d;
- req->gc = gc->gid;
- req->x = x;
- req->y = y;
-
-
- Datalength += SIZEOF(xTextElt) * ((length + 253) / 254) + (length << 1);
-
-
- req->length += (Datalength + 3)>>2; /* convert to number of 32-bit words */
-
-
- /*
- * If the entire request does not fit into the remaining space in the
- * buffer, flush the buffer first. If the request does fit into the
- * empty buffer, then we won't have to flush it at the end to keep
- * the buffer 32-bit aligned.
- */
-
- if (dpy->bufptr + Datalength > dpy->bufmax)
- _XFlush (dpy);
-
- {
- int nbytes;
- int PartialNChars = length;
- register xTextElt *elt;
- XChar2b *CharacterOffset = (XChar2b *)string;
-
- while(PartialNChars > 254)
- {
- nbytes = 254 * 2 + SIZEOF(xTextElt);
- BufAlloc (xTextElt *, elt, nbytes);
- elt->delta = 0;
- elt->len = 254;
- memcpy (((char *) elt) + 2, (char *)CharacterOffset, 254 * 2);
- PartialNChars = PartialNChars - 254;
- CharacterOffset += 254;
- }
-
- if (PartialNChars)
- {
- nbytes = PartialNChars * 2 + SIZEOF(xTextElt);
- BufAlloc (xTextElt *, elt, nbytes);
- elt->delta = 0;
- elt->len = PartialNChars;
- memcpy(((char *)elt) + 2, (char *)CharacterOffset, PartialNChars * 2);
- }
- }
-
- /* Pad request out to a 32-bit boundary */
-
- if (Datalength &= 3) {
- char *pad;
- /*
- * BufAlloc is a macro that uses its last argument more than
- * once, otherwise I'd write "BufAlloc (char *, pad, 4-length)"
- */
- length = 4 - Datalength;
- BufAlloc (char *, pad, length);
- /*
- * if there are 3 bytes of padding, the first byte MUST be 0
- * so the pad bytes aren't mistaken for a final xTextElt
- */
- *pad = 0;
- }
-
- /*
- * If the buffer pointer is not now pointing to a 32-bit boundary,
- * we must flush the buffer so that it does point to a 32-bit boundary
- * at the end of this routine.
- */
-
- if ((dpy->bufptr - dpy->buffer) & 3)
- _XFlush (dpy);
- UnlockDisplay(dpy);
- SyncHandle();
- return 0;
-}
-
diff --git a/nx-X11/lib/X11/TextExt.c b/nx-X11/lib/X11/TextExt.c
deleted file mode 100644
index b883b01b4..000000000
--- a/nx-X11/lib/X11/TextExt.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define min_byte2 min_char_or_byte2
-#define max_byte2 max_char_or_byte2
-
-
-/*
- * CI_GET_ROWZERO_CHAR_INFO_2D - do the same thing as CI_GET_CHAR_INFO_1D,
- * except that the font has more than one row. This is special case of more
- * general version used in XTextExt16.c since row == 0. This is used when
- * max_byte2 is not zero. A further optimization would do the check for
- * min_byte1 being zero ahead of time.
- */
-
-#define CI_GET_ROWZERO_CHAR_INFO_2D(fs,col,def,cs) \
-{ \
- cs = def; \
- if (fs->min_byte1 == 0 && \
- col >= fs->min_byte2 && col <= fs->max_byte2) { \
- if (fs->per_char == NULL) { \
- cs = &fs->min_bounds; \
- } else { \
- cs = &fs->per_char[(col - fs->min_byte2)]; \
- if (CI_NONEXISTCHAR(cs)) cs = def; \
- } \
- } \
-}
-
-
-/*
- * XTextExtents - compute the extents of string given as a sequences of eight
- * bit bytes. Since we know that the input characters will always be from the
- * first row of the font (i.e. byte1 == 0), we can do some optimizations beyond
- * what is done in XTextExtents16.
- */
-int
-XTextExtents (
- XFontStruct *fs,
- _Xconst char *string,
- int nchars,
- int *dir, /* RETURN font information */
- int *font_ascent, /* RETURN font information */
- int *font_descent, /* RETURN font information */
- register XCharStruct *overall) /* RETURN character information */
-{
- int i; /* iterator */
- Bool singlerow = (fs->max_byte1 == 0); /* optimization */
- int nfound = 0; /* number of characters found */
- XCharStruct *def; /* info about default char */
- unsigned char *us; /* be 8bit clean */
-
- if (singlerow) { /* optimization */
- CI_GET_DEFAULT_INFO_1D (fs, def);
- } else {
- CI_GET_DEFAULT_INFO_2D (fs, def);
- }
-
- *dir = fs->direction;
- *font_ascent = fs->ascent;
- *font_descent = fs->descent;
-
- /*
- * Iterate over the input string getting the appropriate * char struct.
- * The default (which may be null if there is no def_char) will be returned
- * if the character doesn't exist. On the first time * through the loop,
- * assign the values to overall; otherwise, compute * the new values.
- */
-
- for (i = 0, us = (unsigned char *) string; i < nchars; i++, us++) {
- register unsigned uc = (unsigned) *us; /* since about to do macro */
- register XCharStruct *cs;
-
- if (singlerow) { /* optimization */
- CI_GET_CHAR_INFO_1D (fs, uc, def, cs);
- } else {
- CI_GET_ROWZERO_CHAR_INFO_2D (fs, uc, def, cs);
- }
-
- if (cs) {
- if (nfound++ == 0) {
- *overall = *cs;
- } else {
- overall->ascent = max (overall->ascent, cs->ascent);
- overall->descent = max (overall->descent, cs->descent);
- overall->lbearing = min (overall->lbearing,
- overall->width + cs->lbearing);
- overall->rbearing = max (overall->rbearing,
- overall->width + cs->rbearing);
- overall->width += cs->width;
- }
- }
- }
-
- /*
- * if there were no characters, then set everything to 0
- */
- if (nfound == 0) {
- overall->width = overall->ascent = overall->descent =
- overall->lbearing = overall->rbearing = 0;
- }
-
- return 0;
-}
-
-
-/*
- * XTextWidth - compute the width of a string of eightbit bytes. This is a
- * subset of XTextExtents.
- */
-int
-XTextWidth (
- XFontStruct *fs,
- _Xconst char *string,
- int count)
-{
- int i; /* iterator */
- Bool singlerow = (fs->max_byte1 == 0); /* optimization */
- XCharStruct *def; /* info about default char */
- unsigned char *us; /* be 8bit clean */
- int width = 0; /* RETURN value */
-
- if (singlerow) { /* optimization */
- CI_GET_DEFAULT_INFO_1D (fs, def);
- } else {
- CI_GET_DEFAULT_INFO_2D (fs, def);
- }
-
- if (def && fs->min_bounds.width == fs->max_bounds.width)
- return (fs->min_bounds.width * count);
-
- /*
- * Iterate over all character in the input string; only consider characters
- * that exist.
- */
- for (i = 0, us = (unsigned char *) string; i < count; i++, us++) {
- register unsigned uc = (unsigned) *us; /* since about to do macro */
- register XCharStruct *cs;
-
- if (singlerow) { /* optimization */
- CI_GET_CHAR_INFO_1D (fs, uc, def, cs);
- } else {
- CI_GET_ROWZERO_CHAR_INFO_2D (fs, uc, def, cs);
- }
-
- if (cs) width += cs->width;
- }
-
- return width;
-}
-
-
-
-/*
- * _XTextHeight - compute the height of a string of eightbit bytes.
- */
-int
-_XTextHeight (
- XFontStruct *fs,
- _Xconst char *string,
- int count)
-{
- int i; /* iterator */
- Bool singlerow = (fs->max_byte1 == 0); /* optimization */
- XCharStruct *def; /* info about default char */
- unsigned char *us; /* be 8bit clean */
- int height = 0; /* RETURN value */
-
- if (singlerow) { /* optimization */
- CI_GET_DEFAULT_INFO_1D (fs, def);
- } else {
- CI_GET_DEFAULT_INFO_2D (fs, def);
- }
-
- if (def && (fs->min_bounds.ascent == fs->max_bounds.ascent)
- && (fs->min_bounds.descent == fs->max_bounds.descent))
- return ((fs->min_bounds.ascent + fs->min_bounds.descent) * count);
-
- /*
- * Iterate over all character in the input string; only consider characters
- * that exist.
- */
- for (i = 0, us = (unsigned char *) string; i < count; i++, us++) {
- register unsigned uc = (unsigned) *us; /* since about to do macro */
- register XCharStruct *cs;
-
- if (singlerow) { /* optimization */
- CI_GET_CHAR_INFO_1D (fs, uc, def, cs);
- } else {
- CI_GET_ROWZERO_CHAR_INFO_2D (fs, uc, def, cs);
- }
-
- if (cs) height += (cs->ascent + cs->descent);
- }
-
- return height;
-}
-
diff --git a/nx-X11/lib/X11/TextExt16.c b/nx-X11/lib/X11/TextExt16.c
deleted file mode 100644
index 01a0f32e4..000000000
--- a/nx-X11/lib/X11/TextExt16.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-#define min_byte2 min_char_or_byte2
-#define max_byte2 max_char_or_byte2
-
-/*
- * XTextExtents16 - compute the extents of string given as a sequence of
- * XChar2bs.
- */
-int
-XTextExtents16 (
- XFontStruct *fs,
- _Xconst XChar2b *string,
- int nchars,
- int *dir, /* RETURN font information */
- int *font_ascent, /* RETURN font information */
- int *font_descent, /* RETURN font information */
- register XCharStruct *overall) /* RETURN character information */
-{
- int i; /* iterator */
- Bool singlerow = (fs->max_byte1 == 0); /* optimization */
- int nfound = 0; /* number of characters found */
- XCharStruct *def; /* info about default char */
-
- if (singlerow) {
- CI_GET_DEFAULT_INFO_1D (fs, def);
- } else {
- CI_GET_DEFAULT_INFO_2D (fs, def);
- }
-
- *dir = fs->direction;
- *font_ascent = fs->ascent;
- *font_descent = fs->descent;
-
- /*
- * Iterate over the input string getting the appropriate * char struct.
- * The default (which may be null if there is no def_char) will be returned
- * if the character doesn't exist. On the first time * through the loop,
- * assign the values to overall; otherwise, compute * the new values.
- */
-
- for (i = 0; i < nchars; i++, string++) {
- register XCharStruct *cs;
- unsigned int r = (unsigned int) string->byte1; /* watch for macros */
- unsigned int c = (unsigned int) string->byte2; /* watch for macros */
-
- if (singlerow) {
- unsigned int ind = ((r << 8) | c); /* watch for macros */
- CI_GET_CHAR_INFO_1D (fs, ind, def, cs);
- } else {
- CI_GET_CHAR_INFO_2D (fs, r, c, def, cs);
- }
-
- if (cs) {
- if (nfound++ == 0) {
- *overall = *cs;
- } else {
- overall->ascent = max (overall->ascent, cs->ascent);
- overall->descent = max (overall->descent, cs->descent);
- overall->lbearing = min (overall->lbearing,
- overall->width + cs->lbearing);
- overall->rbearing = max (overall->rbearing,
- overall->width + cs->rbearing);
- overall->width += cs->width;
- }
- }
- }
-
- /*
- * if there were no characters, then set everything to 0
- */
- if (nfound == 0) {
- overall->width = overall->ascent = overall->descent =
- overall->lbearing = overall->rbearing = 0;
- }
-
- return 0;
-}
-
-
-/*
- * XTextWidth16 - compute the width of sequence of XChar2bs. This is a
- * subset of XTextExtents16.
- */
-int
-XTextWidth16 (
- XFontStruct *fs,
- _Xconst XChar2b *string,
- int count)
-{
- int i; /* iterator */
- Bool singlerow = (fs->max_byte1 == 0); /* optimization */
- XCharStruct *def; /* info about default char */
- int width = 0; /* RETURN value */
-
- if (singlerow) {
- CI_GET_DEFAULT_INFO_1D (fs, def);
- } else {
- CI_GET_DEFAULT_INFO_2D (fs, def);
- }
-
- if (def && fs->min_bounds.width == fs->max_bounds.width)
- return (fs->min_bounds.width * count);
-
- /*
- * Iterate over all character in the input string; only consider characters
- * that exist.
- */
- for (i = 0; i < count; i++, string++) {
- register XCharStruct *cs;
- unsigned int r = (unsigned int) string->byte1; /* watch for macros */
- unsigned int c = (unsigned int) string->byte2; /* watch for macros */
-
- if (singlerow) {
- unsigned int ind = ((r << 8) | c); /* watch for macros */
- CI_GET_CHAR_INFO_1D (fs, ind, def, cs);
- } else {
- CI_GET_CHAR_INFO_2D (fs, r, c, def, cs);
- }
-
- if (cs) width += cs->width;
- }
-
- return width;
-}
-
-
-/*
- * _XTextHeight16 - compute the height of sequence of XChar2bs.
- */
-int
-_XTextHeight16 (
- XFontStruct *fs,
- _Xconst XChar2b *string,
- int count)
-{
- int i; /* iterator */
- Bool singlerow = (fs->max_byte1 == 0); /* optimization */
- XCharStruct *def; /* info about default char */
- int height = 0; /* RETURN value */
-
- if (singlerow) {
- CI_GET_DEFAULT_INFO_1D (fs, def);
- } else {
- CI_GET_DEFAULT_INFO_2D (fs, def);
- }
-
- if (def && (fs->min_bounds.ascent == fs->max_bounds.ascent)
- && (fs->min_bounds.descent == fs->max_bounds.descent))
- return ((fs->min_bounds.ascent + fs->min_bounds.descent) * count);
-
- /*
- * Iterate over all character in the input string; only consider characters
- * that exist.
- */
- for (i = 0; i < count; i++, string++) {
- register XCharStruct *cs;
- unsigned int r = (unsigned int) string->byte1; /* watch for macros */
- unsigned int c = (unsigned int) string->byte2; /* watch for macros */
-
- if (singlerow) {
- unsigned int ind = ((r << 8) | c); /* watch for macros */
- CI_GET_CHAR_INFO_1D (fs, ind, def, cs);
- } else {
- CI_GET_CHAR_INFO_2D (fs, r, c, def, cs);
- }
-
- if (cs) height += (cs->ascent + cs->descent);
- }
-
- return height;
-}
-
diff --git a/nx-X11/lib/X11/TextToStr.c b/nx-X11/lib/X11/TextToStr.c
deleted file mode 100644
index 03f71558b..000000000
--- a/nx-X11/lib/X11/TextToStr.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xutil.h>
-
-
-/*
- * XTextPropertyToStringList - set list and count to contain data stored in
- * null-separated STRING property.
- */
-
-Status XTextPropertyToStringList (
- XTextProperty *tp,
- char ***list_return,
- int *count_return)
-{
- char **list; /* return value */
- int nelements; /* return value */
- register char *cp; /* temp variable */
- char *start; /* start of thing to copy */
- int i, j; /* iterator variables */
- int datalen = (int) tp->nitems; /* for convenience */
-
- /*
- * make sure we understand how to do it
- */
- if (tp->encoding != XA_STRING || tp->format != 8) return False;
-
- if (datalen == 0) {
- *list_return = NULL;
- *count_return = 0;
- return True;
- }
-
- /*
- * walk the list to figure out how many elements there are
- */
- nelements = 1; /* since null-separated */
- for (cp = (char *) tp->value, i = datalen; i > 0; cp++, i--) {
- if (*cp == '\0') nelements++;
- }
-
- /*
- * allocate list and duplicate
- */
- list = Xmalloc (nelements * sizeof (char *));
- if (!list) return False;
-
- start = Xmalloc ((datalen + 1) * sizeof (char)); /* for <NUL> */
- if (!start) {
- Xfree (list);
- return False;
- }
-
- /*
- * copy data
- */
- memcpy (start, (char *) tp->value, tp->nitems);
- start[datalen] = '\0';
-
- /*
- * walk down list setting value
- */
- for (cp = start, i = datalen + 1, j = 0; i > 0; cp++, i--) {
- if (*cp == '\0') {
- list[j] = start;
- start = (cp + 1);
- j++;
- }
- }
-
- /*
- * append final null pointer and then return data
- */
- *list_return = list;
- *count_return = nelements;
- return True;
-}
-
-
-void XFreeStringList (char **list)
-{
- if (list) {
- if (list[0]) Xfree (list[0]);
- Xfree (list);
- list = NULL;
- }
-}
-
diff --git a/nx-X11/lib/X11/TrCoords.c b/nx-X11/lib/X11/TrCoords.c
deleted file mode 100644
index 77c1f0672..000000000
--- a/nx-X11/lib/X11/TrCoords.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-Bool XTranslateCoordinates(
- register Display *dpy,
- Window src_win,
- Window dest_win,
- int src_x,
- int src_y,
- int *dst_x,
- int *dst_y,
- Window *child)
-{
- register xTranslateCoordsReq *req;
- xTranslateCoordsReply rep;
-
- LockDisplay(dpy);
- GetReq(TranslateCoords, req);
- req->srcWid = src_win;
- req->dstWid = dest_win;
- req->srcX = src_x;
- req->srcY = src_y;
- if (_XReply (dpy, (xReply *)&rep, 0, xTrue) == 0) {
- UnlockDisplay(dpy);
- SyncHandle();
- return(False);
- }
-
- *child = rep.child;
- *dst_x = cvtINT16toInt (rep.dstX);
- *dst_y = cvtINT16toInt (rep.dstY);
- UnlockDisplay(dpy);
- SyncHandle();
- return ((int)rep.sameScreen);
-}
-
diff --git a/nx-X11/lib/X11/UIThrStubs.c b/nx-X11/lib/X11/UIThrStubs.c
deleted file mode 100644
index 0c913d41f..000000000
--- a/nx-X11/lib/X11/UIThrStubs.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- *
- * Copyright (c) 1995 David E. Wexelblat. All rights reserved
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL DAVID E. WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of David E. Wexelblat shall
- * not be used in advertising or otherwise to promote the sale, use or
- * other dealings in this Software without prior written authorization
- * from David E. Wexelblat.
- *
- */
-
-/*
- * Stubs for thread functions needed by the X library. Supports
- * UnixWare 2.x threads; may support Solaris 2 threads as well, but not
- * tested. Defining things this way removes the dependency of the X
- * library on the threads library, but still supports threads if the user
- * specificies the thread library on the link line.
- */
-
-/*
- * Modifications by Carlos A M dos Santos, XFree86 Project, November 1999.
- *
- * Explanation from <X11/Xos_r.h>:
- * The structure below is complicated, mostly because P1003.1c (the
- * IEEE POSIX Threads spec) went through lots of drafts, and some
- * vendors shipped systems based on draft API that were changed later.
- * Unfortunately POSIX did not provide a feature-test macro for
- * distinguishing each of the drafts.
- */
-
-#ifdef CTHREADS
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <cthreads.h>
-typedef cthread_t xthread_t;
-#define xthread_self cthread_self
-#pragma weak cthread_self = _Xthr_self_stub_
-#define xmutex_init mutex_init
-#pragma weak mutex_init = _Xthr_zero_stub_
-#pragma weak mutex_clear = _Xthr_zero_stub_
-#pragma weak mutex_lock = _Xthr_zero_stub_
-#pragma weak mutex_unlock = _Xthr_zero_stub_
-#pragma weak condition_init = _Xthr_zero_stub_
-#pragma weak condition_clear = _Xthr_zero_stub_
-#pragma weak condition_wait = _Xthr_zero_stub_
-#pragma weak condition_signal = _Xthr_zero_stub_
-#pragma weak condition_broadcast = _Xthr_zero_stub_
-#else /* !CTHREADS */
-#if defined(SVR4)
-#include <thread.h>
-typedef thread_t xthread_t;
-#pragma weak thr_self = _Xthr_self_stub_
-#pragma weak mutex_init = _Xthr_zero_stub_
-#pragma weak mutex_destroy = _Xthr_zero_stub_
-#pragma weak mutex_lock = _Xthr_zero_stub_
-#pragma weak mutex_unlock = _Xthr_zero_stub_
-#pragma weak cond_init = _Xthr_zero_stub_
-#pragma weak cond_destroy = _Xthr_zero_stub_
-#pragma weak cond_wait = _Xthr_zero_stub_
-#pragma weak cond_signal = _Xthr_zero_stub_
-#pragma weak cond_broadcast = _Xthr_zero_stub_
-#else /* !SVR4 */
-#ifdef WIN32
-#include <nx-X11/Xthreads.h>
-#else /* !WIN32 */
-#ifdef USE_TIS_SUPPORT
-#include <tis.h>
-typedef pthread_t xthread_t;
-#pragma weak tis_self = _Xthr_self_stub_
-#pragma weak tis_mutex_init = _Xthr_zero_stub_
-#pragma weak tis_mutex_destroy = _Xthr_zero_stub_
-#pragma weak tis_mutex_lock = _Xthr_zero_stub_
-#pragma weak tis_mutex_unlock = _Xthr_zero_stub_
-#pragma weak tis_cond_init = _Xthr_zero_stub_
-#pragma weak tis_cond_destroy = _Xthr_zero_stub_
-#pragma weak tis_cond_wait = _Xthr_zero_stub_
-#pragma weak tis_cond_signal = _Xthr_zero_stub_
-#pragma weak tis_cond_broadcast = _Xthr_zero_stub_
-#else
-#include <pthread.h>
-typedef pthread_t xthread_t;
-#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-xthread_t pthread_self() __attribute__ ((weak, alias ("_Xthr_self_stub_")));
-int pthread_mutex_init() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_mutex_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_mutex_lock() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_mutex_unlock() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_cond_init() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_cond_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_cond_wait() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_cond_signal() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_cond_broadcast() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_key_create() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-void *pthread_getspecific() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-int pthread_setspecific() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
-#else /* __GNUC__ */
-#pragma weak pthread_self = _Xthr_self_stub_
-#pragma weak pthread_mutex_init = _Xthr_zero_stub_
-#pragma weak pthread_mutex_destroy = _Xthr_zero_stub_
-#pragma weak pthread_mutex_lock = _Xthr_zero_stub_
-#pragma weak pthread_mutex_unlock = _Xthr_zero_stub_
-#pragma weak pthread_cond_init = _Xthr_zero_stub_
-#pragma weak pthread_cond_destroy = _Xthr_zero_stub_
-#pragma weak pthread_cond_wait = _Xthr_zero_stub_
-#pragma weak pthread_cond_signal = _Xthr_zero_stub_
-#pragma weak pthread_cond_broadcast = _Xthr_zero_stub_
-/* These are added for libGL */
-#pragma weak pthread_key_create = _Xthr_zero_stub_
-#pragma weak pthread_getspecific = _Xthr_zero_stub_
-#pragma weak pthread_setspecific = _Xthr_zero_stub_
-#endif /* __GNUC__ */
-#if defined(_DECTHREADS_) || defined(linux)
-#pragma weak pthread_equal = _Xthr_equal_stub_ /* See Xthreads.h! */
-int
-_Xthr_equal_stub_()
-{
- return(1);
-}
-#endif /* _DECTHREADS_ || linux */
-#endif /* USE_TIS_SUPPORT */
-#endif /* WIN32 */
-#endif /* SVR4 */
-#endif /* CTHREADS */
-
-static xthread_t
-_Xthr_self_stub_()
-{
- static xthread_t _X_no_thread_id;
-
- return(_X_no_thread_id); /* defined by <X11/Xthreads.h> */
-}
-
-static int
-_Xthr_zero_stub_()
-{
- return(0);
-}
diff --git a/nx-X11/lib/X11/UNDEFINED.c b/nx-X11/lib/X11/UNDEFINED.c
deleted file mode 100644
index 7b1bdb68c..000000000
--- a/nx-X11/lib/X11/UNDEFINED.c
+++ /dev/null
@@ -1,131 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * UNDEFINED.c
- *
- * DESCRIPTION
- * UNDEFINED Color Space
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-/*
- * FORWARD DECLARATIONS
- */
-static int DummyParseStringProc(
- char* /* color_string */,
- XcmsColor* /* color_return */
- );
-static Status ReturnZero(
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
- );
-
-
-/*
- * LOCALS VARIABLES
- */
-
-static Status (*(Fl_ReturnZero[]))(
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
- ) = {
- ReturnZero,
- NULL
-};
-
-
-/*
- * GLOBALS
- * Variables declared in this package that are allowed
- * to be used globally.
- */
- /*
- * UNDEFINED Color Space
- */
-XcmsColorSpace XcmsUNDEFINEDColorSpace =
- {
- "undefined", /* prefix */
- XcmsUndefinedFormat, /* id */
- &DummyParseStringProc, /* parseString */
- Fl_ReturnZero, /* to_CIEXYZ */
- Fl_ReturnZero /* from_CIEXYZ */
- };
-
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * ReturnZero
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-static Status
-ReturnZero(
- XcmsCCC ccc /* ccc */,
- XcmsColor* white /* white_point */,
- XcmsColor* colors /* colors */,
- unsigned int ncolors /* ncolors */
- )
-/*
- * DESCRIPTION
- * Does nothing.
- *
- * RETURNS
- * 0
- *
- */
-{
- return(0);
-}
-
-static int DummyParseStringProc(
- char* color_string /* color_string */,
- XcmsColor* color_return /* color_return */
- )
-{
- return(0);
-}
-
-/* ### EOF ### */
diff --git a/nx-X11/lib/X11/UndefCurs.c b/nx-X11/lib/X11/UndefCurs.c
deleted file mode 100644
index 1d46ff946..000000000
--- a/nx-X11/lib/X11/UndefCurs.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUndefineCursor (
- register Display *dpy,
- Window w)
-{
- register xChangeWindowAttributesReq *req;
- unsigned long defcurs = None;
-
- LockDisplay(dpy);
- GetReqExtra (ChangeWindowAttributes, 4, req);
- req->window = w;
- req->valueMask = CWCursor;
- OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), defcurs);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/UngrabBut.c b/nx-X11/lib/X11/UngrabBut.c
deleted file mode 100644
index 13545ed98..000000000
--- a/nx-X11/lib/X11/UngrabBut.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUngrabButton(
- register Display *dpy,
- unsigned int button, /* CARD8 */
- unsigned int modifiers, /* CARD16 */
- Window grab_window)
-{
- register xUngrabButtonReq *req;
-
- LockDisplay(dpy);
- GetReq(UngrabButton, req);
- req->button = button;
- req->modifiers = modifiers;
- req->grabWindow = grab_window;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/UngrabKbd.c b/nx-X11/lib/X11/UngrabKbd.c
deleted file mode 100644
index 974e8a324..000000000
--- a/nx-X11/lib/X11/UngrabKbd.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUngrabKeyboard (
- register Display *dpy,
- Time time)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(UngrabKeyboard, time, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/UngrabKey.c b/nx-X11/lib/X11/UngrabKey.c
deleted file mode 100644
index 919c4e76c..000000000
--- a/nx-X11/lib/X11/UngrabKey.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUngrabKey(
- register Display *dpy,
- int key,
- unsigned int modifiers,
- Window grab_window)
-{
- register xUngrabKeyReq *req;
-
- LockDisplay(dpy);
- GetReq(UngrabKey, req);
- req->grabWindow = grab_window;
- req->modifiers = modifiers;
- req->key = key;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
-
-
diff --git a/nx-X11/lib/X11/UngrabPtr.c b/nx-X11/lib/X11/UngrabPtr.c
deleted file mode 100644
index 16417921c..000000000
--- a/nx-X11/lib/X11/UngrabPtr.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUngrabPointer(
- register Display *dpy,
- Time time)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(UngrabPointer, time, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/UngrabSvr.c b/nx-X11/lib/X11/UngrabSvr.c
deleted file mode 100644
index 20ad9aa35..000000000
--- a/nx-X11/lib/X11/UngrabSvr.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUngrabServer (
- register Display *dpy)
-{
- _X_UNUSED register xReq *req;
-
- LockDisplay(dpy);
- GetEmptyReq(UngrabServer, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/UninsCmap.c b/nx-X11/lib/X11/UninsCmap.c
deleted file mode 100644
index db574ef7c..000000000
--- a/nx-X11/lib/X11/UninsCmap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUninstallColormap(
- register Display *dpy,
- Colormap cmap)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(UninstallColormap, cmap, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/UnldFont.c b/nx-X11/lib/X11/UnldFont.c
deleted file mode 100644
index a4f69fee4..000000000
--- a/nx-X11/lib/X11/UnldFont.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUnloadFont(
- register Display *dpy,
- Font font)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(CloseFont, font, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/UnmapSubs.c b/nx-X11/lib/X11/UnmapSubs.c
deleted file mode 100644
index 7490a70e9..000000000
--- a/nx-X11/lib/X11/UnmapSubs.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUnmapSubwindows(
- register Display *dpy,
- Window win)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(UnmapSubwindows,win, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
diff --git a/nx-X11/lib/X11/UnmapWin.c b/nx-X11/lib/X11/UnmapWin.c
deleted file mode 100644
index 51ae16319..000000000
--- a/nx-X11/lib/X11/UnmapWin.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XUnmapWindow (
- register Display *dpy,
- Window w)
-{
- register xResourceReq *req;
-
- LockDisplay(dpy);
- GetResReq(UnmapWindow, w, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/VisUtil.c b/nx-X11/lib/X11/VisUtil.c
deleted file mode 100644
index 17ca3631f..000000000
--- a/nx-X11/lib/X11/VisUtil.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-#include <stdio.h>
-/*
- * This procedure returns a list of visual information structures
- * that match the specified attributes given in the visual information
- * template.
- *
- * If no visuals exist that match the specified attributes, a NULL is
- * returned.
- *
- * The choices for visual_info_mask are:
- *
- * VisualNoMask
- * VisualIDMask
- * VisualScreenMask
- * VisualDepthMask
- * VisualClassMask
- * VisualRedMaskMask
- * VisualGreenMaskMask
- * VisualBlueMaskMask
- * VisualColormapSizeMask
- * VisualBitsPerRGBMask
- * VisualAllMask
- */
-
-XVisualInfo *XGetVisualInfo(
- Display *dpy,
- register long visual_info_mask,
- register XVisualInfo *visual_info_template,
- int *nitems) /* RETURN */
-{
-
- register Visual *vp;
- register Depth *dp;
- Screen *sp;
- int ii,screen_s,screen_e,total,count;
- register XVisualInfo *vip,*vip_base;
-
- /* NOTE: NO HIGH PERFORMING CODE TO BE FOUND HERE */
-
- LockDisplay(dpy);
-
- /* ALLOCATE THE ORIGINAL BUFFER; REALLOCED LATER IF OVERFLOW OCCURS;
- FREED AT END IF NO VISUALS ARE FOUND */
-
- count = 0;
- total = 10;
- if (! (vip_base = vip = Xmalloc(sizeof(XVisualInfo) * total))) {
- UnlockDisplay(dpy);
- return (XVisualInfo *) NULL;
- }
-
- /* DETERMINE IF WE DO ALL SCREENS OR ONLY ONE */
-
- screen_s = 0;
- screen_e = dpy->nscreens;
- if (visual_info_mask & VisualScreenMask)
- {
- screen_s = visual_info_template->screen;
- if (screen_s < 0 || screen_s >= screen_e)
- screen_e = screen_s;
- else
- screen_e = screen_s + 1;
- }
-
- /* LOOP THROUGH SCREENS */
-
- for (ii=screen_s; ii<screen_e; ii++)
- {
- sp = (Screen *)(&dpy->screens[ii]);
-
- /* LOOP THROUGH DEPTHS */
-
- for (dp=sp->depths; dp < (sp->depths + sp->ndepths); dp++)
- {
- if ((visual_info_mask & VisualDepthMask) &&
- (dp->depth != visual_info_template->depth)) continue;
-
- /* LOOP THROUGH VISUALS */
-
- if (dp->visuals) {
- for (vp=dp->visuals; vp<(dp->visuals + dp->nvisuals); vp++) {
- if ((visual_info_mask & VisualIDMask) &&
- (vp->visualid != visual_info_template->visualid)) continue;
- if ((visual_info_mask & VisualClassMask) &&
- (vp->class != visual_info_template->class)) continue;
- if ((visual_info_mask & VisualRedMaskMask) &&
- (vp->red_mask != visual_info_template->red_mask)) continue;
- if ((visual_info_mask & VisualGreenMaskMask) &&
- (vp->green_mask != visual_info_template->green_mask)) continue;
- if ((visual_info_mask & VisualBlueMaskMask) &&
- (vp->blue_mask != visual_info_template->blue_mask)) continue;
- if ((visual_info_mask & VisualColormapSizeMask) &&
- (vp->map_entries != visual_info_template->colormap_size)) continue;
- if ((visual_info_mask & VisualBitsPerRGBMask) &&
- (vp->bits_per_rgb != visual_info_template->bits_per_rgb)) continue;
-
- /* YEA!!! WE FOUND A GOOD ONE */
-
- if (count+1 > total)
- {
- XVisualInfo *old_vip_base = vip_base;
- total += 10;
- if (! (vip_base = Xrealloc(vip_base,
- sizeof(XVisualInfo) * total))) {
- Xfree(old_vip_base);
- UnlockDisplay(dpy);
- return (XVisualInfo *) NULL;
- }
- vip = &vip_base[count];
- }
-
- count++;
-
- vip->visual = _XVIDtoVisual(dpy, vp->visualid);
- vip->visualid = vp->visualid;
- vip->screen = ii;
- vip->depth = dp->depth;
- vip->class = vp->class;
- vip->red_mask = vp->red_mask;
- vip->green_mask = vp->green_mask;
- vip->blue_mask = vp->blue_mask;
- vip->colormap_size = vp->map_entries;
- vip->bits_per_rgb = vp->bits_per_rgb;
-
- vip++;
-
- } /* END OF LOOP ON VISUALS */
- } /* END OF IF THERE ARE ANY VISUALS AT THIS DEPTH */
-
- } /* END OF LOOP ON DEPTHS */
-
- } /* END OF LOOP ON SCREENS */
-
- UnlockDisplay(dpy);
-
- if (count)
- {
- *nitems = count;
- return vip_base;
- }
-
- Xfree(vip_base);
- *nitems = 0;
- return NULL;
-}
-
-
-/*
- * This procedure will return the visual information for a visual
- * that matches the specified depth and class for a screen. Since
- * multiple visuals may exist that match the specified depth and
- * class, which visual chosen is undefined.
- *
- * If a visual is found, True is returned as the function value,
- * otherwise False is returned.
- */
-
-Status XMatchVisualInfo(
- Display *dpy,
- int screen,
- int depth,
- int class,
- XVisualInfo *visual_info) /* RETURNED */
-{
-
- Visual *vp;
- Depth *dp;
- Screen *sp;
- int ii,jj;
-
- if (screen < 0 || screen >= dpy->nscreens)
- return False;
-
- LockDisplay(dpy);
-
- sp = (Screen *)(&dpy->screens[screen]);
-
- dp = sp->depths;
-
- for (ii=0; ii < sp->ndepths; ii++)
- {
-
- /* LOOK THROUGH DEPTHS FOR THE WANTED DEPTH */
-
- if (dp->depth == depth)
- {
- vp = dp->visuals;
-
- /* LOOK THROUGH VISUALS FOR THE WANTED CLASS */
-
- /* if nvisuals == 0 then vp will be NULL */
- for (jj=0; jj<dp->nvisuals; jj++)
- {
- if (vp->class == class)
- {
- visual_info->visual = _XVIDtoVisual(dpy, vp->visualid);
- visual_info->visualid = vp->visualid;
- visual_info->screen = screen;
- visual_info->depth = depth;
- visual_info->class = vp->class;
- visual_info->red_mask = vp->red_mask;
- visual_info->green_mask = vp->green_mask;
- visual_info->blue_mask = vp->blue_mask;
- visual_info->colormap_size = vp->map_entries;
- visual_info->bits_per_rgb = vp->bits_per_rgb;
- UnlockDisplay(dpy);
- return True;
- }
- vp++;
- }
- }
-
- dp++;
-
- }
-
- UnlockDisplay(dpy);
-
- return False;
-
-}
diff --git a/nx-X11/lib/X11/WMGeom.c b/nx-X11/lib/X11/WMGeom.c
deleted file mode 100644
index 7947536f5..000000000
--- a/nx-X11/lib/X11/WMGeom.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xutil.h"
-
-static int _GeometryMaskToGravity(
- int mask);
-
-/*
- * This routine given a user supplied positional argument and a default
- * argument (fully qualified) will return the position the window should take
- * as well as the gravity to be set in the WM_NORMAL_HINTS size hints.
- * Always sets all return values and returns a mask describing which fields
- * were set by the user or'ed with whether or not the x and y values should
- * be considered "negative".
- */
-
-int
-XWMGeometry (
- Display *dpy, /* user's display connection */
- int screen, /* screen on which to do computation */
- _Xconst char *user_geom, /* user provided geometry spec */
- _Xconst char *def_geom, /* default geometry spec for window */
- unsigned int bwidth, /* border width */
- XSizeHints *hints, /* usually WM_NORMAL_HINTS */
- int *x_return, /* location of window */
- int *y_return, /* location of window */
- int *width_return, /* size of window */
- int *height_return, /* size of window */
- int *gravity_return) /* gravity of window */
-{
- int ux, uy; /* returned values from parse */
- unsigned int uwidth, uheight; /* returned values from parse */
- int umask; /* parse mask of returned values */
- int dx, dy; /* default values from parse */
- unsigned int dwidth, dheight; /* default values from parse */
- int dmask; /* parse mask of returned values */
- int base_width, base_height; /* valid amounts */
- int min_width, min_height; /* valid amounts */
- int width_inc, height_inc; /* valid amounts */
- int rx, ry, rwidth, rheight; /* return values */
- int rmask; /* return mask */
-
- /*
- * Get the base sizes and increments. Section 4.1.2.3 of the ICCCM
- * states that the base and minimum sizes are defaults for each other.
- * If neither is given, then the base sizes should be 0. These parameters
- * control the sets of sizes that window managers should allow for the
- * window according to the following formulae:
- *
- * width = base_width + (i * width_inc)
- * height = base_height + (j * height_inc)
- */
- base_width = ((hints->flags & PBaseSize) ? hints->base_width :
- ((hints->flags & PMinSize) ? hints->min_width : 0));
- base_height = ((hints->flags & PBaseSize) ? hints->base_height :
- ((hints->flags & PMinSize) ? hints->min_height : 0));
- min_width = ((hints->flags & PMinSize) ? hints->min_width : base_width);
- min_height = ((hints->flags & PMinSize) ? hints->min_height : base_height);
- width_inc = (hints->flags & PResizeInc) ? hints->width_inc : 1;
- height_inc = (hints->flags & PResizeInc) ? hints->height_inc : 1;
-
-
- /*
- * parse the two geometry masks
- */
- rmask = umask = XParseGeometry (user_geom, &ux, &uy, &uwidth, &uheight);
- dmask = XParseGeometry (def_geom, &dx, &dy, &dwidth, &dheight);
-
-
- /*
- * get the width and height:
- * 1. if user-specified, then take that value
- * 2. else, if program-specified, then take that value
- * 3. else, take 1
- * 4. multiply by the size increment
- * 5. and add to the base size
- */
- rwidth = ((((umask & WidthValue) ? uwidth :
- ((dmask & WidthValue) ? dwidth : 1)) * width_inc) +
- base_width);
- rheight = ((((umask & HeightValue) ? uheight :
- ((dmask & HeightValue) ? dheight : 1)) * height_inc) +
- base_height);
-
- /*
- * Make sure computed size is within limits. Note that we always do the
- * lower bounds check since the base size (which defaults to 0) should
- * be used if a minimum size isn't specified.
- */
- if (rwidth < min_width) rwidth = min_width;
- if (rheight < min_height) rheight = min_height;
-
- if (hints->flags & PMaxSize) {
- if (rwidth > hints->max_width) rwidth = hints->max_width;
- if (rheight > hints->max_height) rheight = hints->max_height;
- }
-
-
- /*
- * Compute the location. Set the negative flags in the return mask
- * (and watch out for borders), if necessary.
- */
- if (umask & XValue) {
- rx = ((umask & XNegative) ?
- (DisplayWidth (dpy, screen) + ux - rwidth - 2 * bwidth) : ux);
- } else if (dmask & XValue) {
- if (dmask & XNegative) {
- rx = (DisplayWidth (dpy, screen) + dx - rwidth - 2 * bwidth);
- rmask |= XNegative;
- } else
- rx = dx;
- } else {
- rx = 0; /* gotta choose something... */
- }
-
- if (umask & YValue) {
- ry = ((umask & YNegative) ?
- (DisplayHeight(dpy, screen) + uy - rheight - 2 * bwidth) : uy);
- } else if (dmask & YValue) {
- if (dmask & YNegative) {
- ry = (DisplayHeight(dpy, screen) + dy - rheight - 2 * bwidth);
- rmask |= YNegative;
- } else
- ry = dy;
- } else {
- ry = 0; /* gotta choose something... */
- }
-
-
- /*
- * All finished, so set the return variables.
- */
- *x_return = rx;
- *y_return = ry;
- *width_return = rwidth;
- *height_return = rheight;
- *gravity_return = _GeometryMaskToGravity (rmask);
- return rmask;
-}
-
-
-static int _GeometryMaskToGravity(
- int mask)
-{
- switch (mask & (XNegative|YNegative)) {
- case 0:
- return NorthWestGravity;
- case XNegative:
- return NorthEastGravity;
- case YNegative:
- return SouthWestGravity;
- default:
- return SouthEastGravity;
- }
-}
diff --git a/nx-X11/lib/X11/WMProps.c b/nx-X11/lib/X11/WMProps.c
deleted file mode 100644
index e77f7ba56..000000000
--- a/nx-X11/lib/X11/WMProps.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-
-Copyright 1987, 1988, 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.,
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Wyse not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xlocale.h>
-
-
-/*
- * XSetWMProperties sets the following properties:
- * WM_NAME type: TEXT format: varies?
- * WM_ICON_NAME type: TEXT format: varies?
- * WM_HINTS type: WM_HINTS format: 32
- * WM_COMMAND type: TEXT format: varies?
- * WM_CLIENT_MACHINE type: TEXT format: varies?
- * WM_NORMAL_HINTS type: WM_SIZE_HINTS format: 32
- * WM_CLASS type: STRING/STRING format: 8
- * WM_LOCALE_NAME type: STRING format: 8
- */
-
-void XSetWMProperties (
- Display *dpy,
- Window w, /* window to decorate */
- XTextProperty *windowName, /* name of application */
- XTextProperty *iconName, /* name string for icon */
- char **argv, /* command line */
- int argc, /* size of command line */
- XSizeHints *sizeHints, /* size hints for window in its normal state */
- XWMHints *wmHints, /* miscelaneous window manager hints */
- XClassHint *classHints) /* resource name and class */
-{
- XTextProperty textprop;
- char hostName[256];
- int len = _XGetHostname (hostName, sizeof hostName);
- char *locale;
-
- /* set names of window and icon */
- if (windowName) XSetWMName (dpy, w, windowName);
- if (iconName) XSetWMIconName (dpy, w, iconName);
-
- /* set the command if given */
- if (argv) {
- /*
- * for UNIX and other operating systems which use nul-terminated
- * arrays of STRINGs.
- */
- XSetCommand (dpy, w, argv, argc);
- }
-
- /* set the name of the machine on which this application is running */
- textprop.value = (unsigned char *) hostName;
- textprop.encoding = XA_STRING;
- textprop.format = 8;
- textprop.nitems = len;
- XSetWMClientMachine (dpy, w, &textprop);
-
- /* set hints about how geometry and window manager interaction */
- if (sizeHints) XSetWMNormalHints (dpy, w, sizeHints);
- if (wmHints) XSetWMHints (dpy, w, wmHints);
- if (classHints) {
- XClassHint tmp;
-
- if (!classHints->res_name) {
- tmp.res_name = getenv ("RESOURCE_NAME");
- if (!tmp.res_name && argv && argv[0]) {
- /*
- * UNIX uses /dir/subdir/.../basename; other operating
- * systems will have to change this.
- */
- char *cp = strrchr (argv[0], '/');
- tmp.res_name = (cp ? cp + 1 : argv[0]);
- }
- tmp.res_class = classHints->res_class;
- classHints = &tmp;
- }
- XSetClassHint (dpy, w, classHints);
- }
-
- locale = setlocale(LC_CTYPE, (char *)NULL);
- if (locale)
- XChangeProperty (dpy, w, XInternAtom(dpy, "WM_LOCALE_NAME", False),
- XA_STRING, 8, PropModeReplace,
- (unsigned char *)locale, strlen(locale));
-}
-
diff --git a/nx-X11/lib/X11/WarpPtr.c b/nx-X11/lib/X11/WarpPtr.c
deleted file mode 100644
index c88ca4704..000000000
--- a/nx-X11/lib/X11/WarpPtr.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-int
-XWarpPointer(
- register Display *dpy,
- Window src_win,
- Window dest_win,
- int src_x,
- int src_y,
- unsigned int src_width,
- unsigned int src_height,
- int dest_x,
- int dest_y)
-{
- register xWarpPointerReq *req;
-
- LockDisplay(dpy);
- GetReq(WarpPointer, req);
- req->srcWid = src_win;
- req->dstWid = dest_win;
- req->srcX = src_x;
- req->srcY = src_y;
- req->srcWidth = src_width;
- req->srcHeight = src_height;
- req->dstX = dest_x;
- req->dstY = dest_y;
- UnlockDisplay(dpy);
- SyncHandle();
- return 1;
-}
-
diff --git a/nx-X11/lib/X11/WinEvent.c b/nx-X11/lib/X11/WinEvent.c
deleted file mode 100644
index 48801b739..000000000
--- a/nx-X11/lib/X11/WinEvent.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-
-Copyright 1985, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-extern long const _Xevent_to_mask[];
-#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
-#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
- Button4MotionMask|Button5MotionMask)
-
-/*
- * Return the next event in the queue
- * for the given window matching one of the events in the mask.
- * Events earlier in the queue are not discarded.
- * If none found, flush, and then wait until an event arrives which
- * matches.
- */
-
-int
-XWindowEvent (
- register Display *dpy,
- Window w, /* Selected window. */
- long mask, /* Selected event mask. */
- register XEvent *event) /* XEvent to be filled in. */
-{
- register _XQEvent *prev, *qelt;
- unsigned long qe_serial = 0;
-
- LockDisplay(dpy);
-
- /* Delete unclaimed cookies */
- _XFreeEventCookies(dpy);
-
- prev = NULL;
- while (1) {
- for (qelt = prev ? prev->next : dpy->head;
- qelt;
- prev = qelt, qelt = qelt->next) {
- if ((qelt->event.xany.window == w) &&
- (qelt->event.type < GenericEvent) &&
- (_Xevent_to_mask[qelt->event.type] & mask) &&
- ((qelt->event.type != MotionNotify) ||
- (mask & AllPointers) ||
- (mask & AllButtons & qelt->event.xmotion.state))) {
- *event = qelt->event;
- _XDeq(dpy, prev, qelt);
- UnlockDisplay(dpy);
- return 0;
- }
- }
- if (prev)
- qe_serial = prev->qserial_num;
- _XReadEvents(dpy);
- if (prev && prev->qserial_num != qe_serial)
- /* another thread has snatched this event */
- prev = NULL;
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockDisplay(dpy);
- return 0;
- }
-#endif
- }
-}
diff --git a/nx-X11/lib/X11/Window.c b/nx-X11/lib/X11/Window.c
deleted file mode 100644
index 85a28f372..000000000
--- a/nx-X11/lib/X11/Window.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-
-Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-
-void _XProcessWindowAttributes (
- register Display *dpy,
- xChangeWindowAttributesReq *req,
- register unsigned long valuemask,
- register XSetWindowAttributes *attributes)
-{
- unsigned long values[32];
- register unsigned long *value = values;
- unsigned int nvalues;
-
- if (valuemask & CWBackPixmap)
- *value++ = attributes->background_pixmap;
-
- if (valuemask & CWBackPixel)
- *value++ = attributes->background_pixel;
-
- if (valuemask & CWBorderPixmap)
- *value++ = attributes->border_pixmap;
-
- if (valuemask & CWBorderPixel)
- *value++ = attributes->border_pixel;
-
- if (valuemask & CWBitGravity)
- *value++ = attributes->bit_gravity;
-
- if (valuemask & CWWinGravity)
- *value++ = attributes->win_gravity;
-
- if (valuemask & CWBackingStore)
- *value++ = attributes->backing_store;
-
- if (valuemask & CWBackingPlanes)
- *value++ = attributes->backing_planes;
-
- if (valuemask & CWBackingPixel)
- *value++ = attributes->backing_pixel;
-
- if (valuemask & CWOverrideRedirect)
- *value++ = attributes->override_redirect;
-
- if (valuemask & CWSaveUnder)
- *value++ = attributes->save_under;
-
- if (valuemask & CWEventMask)
- *value++ = attributes->event_mask;
-
- if (valuemask & CWDontPropagate)
- *value++ = attributes->do_not_propagate_mask;
-
- if (valuemask & CWColormap)
- *value++ = attributes->colormap;
-
- if (valuemask & CWCursor)
- *value++ = attributes->cursor;
-
- req->length += (nvalues = value - values);
-
- nvalues <<= 2; /* watch out for macros... */
- Data32 (dpy, (long *) values, (long)nvalues);
-
-}
-
-#define AllMaskBits (CWBackPixmap|CWBackPixel|CWBorderPixmap|\
- CWBorderPixel|CWBitGravity|CWWinGravity|\
- CWBackingStore|CWBackingPlanes|CWBackingPixel|\
- CWOverrideRedirect|CWSaveUnder|CWEventMask|\
- CWDontPropagate|CWColormap|CWCursor)
-
-Window XCreateWindow(
- register Display *dpy,
- Window parent,
- int x,
- int y,
- unsigned int width,
- unsigned int height,
- unsigned int borderWidth,
- int depth,
- unsigned int class,
- Visual *visual,
- unsigned long valuemask,
- XSetWindowAttributes *attributes)
-{
- Window wid;
- register xCreateWindowReq *req;
-
- LockDisplay(dpy);
- GetReq(CreateWindow, req);
- req->parent = parent;
- req->x = x;
- req->y = y;
- req->width = width;
- req->height = height;
- req->borderWidth = borderWidth;
- req->depth = depth;
- req->class = class;
- if (visual == CopyFromParent)
- req->visual = CopyFromParent;
- else
- req->visual = visual->visualid;
- wid = req->wid = XAllocID(dpy);
- valuemask &= AllMaskBits;
- if ((req->mask = valuemask))
- _XProcessWindowAttributes (dpy, (xChangeWindowAttributesReq *)req,
- valuemask, attributes);
- UnlockDisplay(dpy);
- SyncHandle();
- return (wid);
- }
-
diff --git a/nx-X11/lib/X11/Withdraw.c b/nx-X11/lib/X11/Withdraw.c
deleted file mode 100644
index 9c2280234..000000000
--- a/nx-X11/lib/X11/Withdraw.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/***********************************************************
-Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Wyse not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-WYSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xutil.h>
-#include <stdio.h>
-
-/*
- * This function instructs the window manager to change this window from
- * NormalState or IconicState to Withdrawn.
- */
-Status XWithdrawWindow (
- Display *dpy,
- Window w,
- int screen)
-{
- XUnmapWindow (dpy, w);
-
- {
- Window root = RootWindow (dpy, screen);
- XUnmapEvent ev = {
- .type = UnmapNotify,
- .event = root,
- .window = w,
- .from_configure = False
- };
- return (XSendEvent (dpy, root, False,
- SubstructureRedirectMask|SubstructureNotifyMask,
- (XEvent *)&ev));
- }
-}
diff --git a/nx-X11/lib/X11/WrBitF.c b/nx-X11/lib/X11/WrBitF.c
deleted file mode 100644
index 47b47208f..000000000
--- a/nx-X11/lib/X11/WrBitF.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/Xos.h>
-#include "Xutil.h"
-#include <stdio.h>
-
-#define ERR_RETURN NULL
-
-static char *Format_Image(
- XImage *image,
- int *resultsize)
-{
- register int x, c, b;
- register char *ptr;
- int y;
- char *data;
- int width, height;
- int bytes_per_line;
-
- width = image->width;
- height = image->height;
-
- bytes_per_line = (width+7)/8;
- *resultsize = bytes_per_line * height; /* Calculate size of data */
-
- data = Xmalloc( *resultsize ); /* Get space for data */
- if (!data)
- return(ERR_RETURN);
-
- /*
- * The slow but robust brute force method of converting the image:
- */
- ptr = data;
- c = 0; b=1;
- for (y=0; y<height; y++) {
- for (x=0; x<width;) {
- if (XGetPixel(image, x, y))
- c |= b;
- b <<= 1;
- if (!(++x & 7)) {
- *(ptr++)=c;
- c=0; b=1;
- }
- }
- if (x & 7) {
- *(ptr++)=c;
- c=0; b=1;
- }
- }
-
- return(data);
-}
-
-#define BYTES_PER_OUTPUT_LINE 12
-
-int
-XWriteBitmapFile(
- Display *display,
- _Xconst char *filename,
- Pixmap bitmap,
- unsigned int width,
- unsigned int height,
- int x_hot,
- int y_hot)
-{
- char *data, *ptr;
- int size, byte;
- int c;
- XImage *image;
- FILE *stream;
- char *name;
-
- if (!(name = strrchr(filename, '/')))
- name = (char *)filename;
- else
- name++;
-
- if (!(stream = fopen(filename, "w")))
- return(BitmapOpenFailed);
-
- /* Convert bitmap to an image */
- image = XGetImage(display, bitmap, 0,0,width, height, 1L, XYPixmap);
- if (!image) {
- fclose(stream);
- return(4); /* XXX spec does not say what to return */
- }
-
- /* Get standard format for data */
- data = Format_Image(image, &size);
- XDestroyImage(image);
- if (!data) {
- fclose(stream);
- return(BitmapNoMemory);
- }
-
- /* Write out standard header */
- fprintf(stream, "#define %s_width %d\n", name, width);
- fprintf(stream, "#define %s_height %d\n", name, height);
- if (x_hot != -1) {
- fprintf(stream, "#define %s_x_hot %d\n", name, x_hot);
- fprintf(stream, "#define %s_y_hot %d\n", name, y_hot);
- }
-
- /* Print out the data itself */
- fprintf(stream, "static unsigned char %s_bits[] = {", name);
- for (byte=0, ptr=data; byte<size; byte++, ptr++) {
- if (!byte)
- fprintf(stream, "\n ");
- else if (!(byte % BYTES_PER_OUTPUT_LINE))
- fprintf(stream, ",\n ");
- else
- fprintf(stream, ", ");
- c = *ptr;
- if (c<0)
- c += 256;
- fprintf(stream, "0x%02x", c);
- }
- fprintf(stream, "};\n");
-
- Xfree(data);
- fclose(stream);
- return(BitmapSuccess);
-}
diff --git a/nx-X11/lib/X11/XErrorDB b/nx-X11/lib/X11/XErrorDB
deleted file mode 100644
index 7b6d46513..000000000
--- a/nx-X11/lib/X11/XErrorDB
+++ /dev/null
@@ -1,1022 +0,0 @@
-!
-! Copyright 1993, 1995, 1998 The Open Group
-
-! Permission to use, copy, modify, distribute, and sell this software and its
-! documentation for any purpose is hereby granted without fee, provided that
-! the above copyright notice appear in all copies and that both that
-! copyright notice and this permission notice appear in supporting
-! documentation.
-!
-! The above copyright notice and this permission notice shall be
-! included in all copies or substantial portions of the Software.
-!
-! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-! IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-! OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-! ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-! OTHER DEALINGS IN THE SOFTWARE.
-!
-! Except as contained in this notice, the name of The Open Group shall
-! not be used in advertising or otherwise to promote the sale, use or
-! other dealings in this Software without prior written authorization
-! from The Open Group.
-!
-!
-! these are used in XGetErrorMessage.
-XlibMessage.XError: X Error of failed request
-XlibMessage.MajorCode: Major opcode of failed request: %d
-XlibMessage.MinorCode: Minor opcode of failed request: %d
-XlibMessage.ResourceID: Resource id in failed request: 0x%lx
-XlibMessage.Value: Value in failed request: 0x%lx
-XlibMessage.AtomID: Atom id in failed request: 0x%lx
-XlibMessage.ErrorSerial: Serial number of failed request: %lu
-XlibMessage.CurrentSerial: Current serial number in output stream: %lu
-! X request codes.
-XRequest.1:X_CreateWindow
-XRequest.2:X_ChangeWindowAttributes
-XRequest.3:X_GetWindowAttributes
-XRequest.4:X_DestroyWindow
-XRequest.5:X_DestroySubwindows
-XRequest.6:X_ChangeSaveSet
-XRequest.7:X_ReparentWindow
-XRequest.8:X_MapWindow
-XRequest.9:X_MapSubwindows
-XRequest.10:X_UnmapWindow
-XRequest.11:X_UnmapSubwindows
-XRequest.12:X_ConfigureWindow
-XRequest.13:X_CirculateWindow
-XRequest.14:X_GetGeometry
-XRequest.15:X_QueryTree
-XRequest.16:X_InternAtom
-XRequest.17:X_GetAtomName
-XRequest.18:X_ChangeProperty
-XRequest.19:X_DeleteProperty
-XRequest.20:X_GetProperty
-XRequest.21:X_ListProperties
-XRequest.22:X_SetSelectionOwner
-XRequest.23:X_GetSelectionOwner
-XRequest.24:X_ConvertSelection
-XRequest.25:X_SendEvent
-XRequest.26:X_GrabPointer
-XRequest.27:X_UngrabPointer
-XRequest.28:X_GrabButton
-XRequest.29:X_UngrabButton
-XRequest.30:X_ChangeActivePointerGrab
-XRequest.31:X_GrabKeyboard
-XRequest.32:X_UngrabKeyboard
-XRequest.33:X_GrabKey
-XRequest.34:X_UngrabKey
-XRequest.35:X_AllowEvents
-XRequest.36:X_GrabServer
-XRequest.37:X_UngrabServer
-XRequest.38:X_QueryPointer
-XRequest.39:X_GetMotionEvents
-XRequest.40:X_TranslateCoords
-XRequest.41:X_WarpPointer
-XRequest.42:X_SetInputFocus
-XRequest.43:X_GetInputFocus
-XRequest.44:X_QueryKeymap
-XRequest.45:X_OpenFont
-XRequest.46:X_CloseFont
-XRequest.47:X_QueryFont
-XRequest.48:X_QueryTextExtents
-XRequest.49:X_ListFonts
-XRequest.50:X_ListFontsWithInfo
-XRequest.51:X_SetFontPath
-XRequest.52:X_GetFontPath
-XRequest.53:X_CreatePixmap
-XRequest.54:X_FreePixmap
-XRequest.55:X_CreateGC
-XRequest.56:X_ChangeGC
-XRequest.57:X_CopyGC
-XRequest.58:X_SetDashes
-XRequest.59:X_SetClipRectangles
-XRequest.60:X_FreeGC
-XRequest.61:X_ClearArea
-XRequest.62:X_CopyArea
-XRequest.63:X_CopyPlane
-XRequest.64:X_PolyPoint
-XRequest.65:X_PolyLine
-XRequest.66:X_PolySegment
-XRequest.67:X_PolyRectangle
-XRequest.68:X_PolyArc
-XRequest.69:X_FillPoly
-XRequest.70:X_PolyFillRectangle
-XRequest.71:X_PolyFillArc
-XRequest.72:X_PutImage
-XRequest.73:X_GetImage
-XRequest.74:X_PolyText8
-XRequest.75:X_PolyText16
-XRequest.76:X_ImageText8
-XRequest.77:X_ImageText16
-XRequest.78:X_CreateColormap
-XRequest.79:X_FreeColormap
-XRequest.80:X_CopyColormapAndFree
-XRequest.81:X_InstallColormap
-XRequest.82:X_UninstallColormap
-XRequest.83:X_ListInstalledColormaps
-XRequest.84:X_AllocColor
-XRequest.85:X_AllocNamedColor
-XRequest.86:X_AllocColorCells
-XRequest.87:X_AllocColorPlanes
-XRequest.88:X_FreeColors
-XRequest.89:X_StoreColors
-XRequest.90:X_StoreNamedColor
-XRequest.91:X_QueryColors
-XRequest.92:X_LookupColor
-XRequest.93:X_CreateCursor
-XRequest.94:X_CreateGlyphCursor
-XRequest.95:X_FreeCursor
-XRequest.96:X_RecolorCursor
-XRequest.97:X_QueryBestSize
-XRequest.98:X_QueryExtension
-XRequest.99:X_ListExtensions
-XRequest.100:X_ChangeKeyboardMapping
-XRequest.101:X_GetKeyboardMapping
-XRequest.102:X_ChangeKeyboardControl
-XRequest.103:X_GetKeyboardControl
-XRequest.104:X_Bell
-XRequest.105:X_ChangePointerControl
-XRequest.106:X_GetPointerControl
-XRequest.107:X_SetScreenSaver
-XRequest.108:X_GetScreenSaver
-XRequest.109:X_ChangeHosts
-XRequest.110:X_ListHosts
-XRequest.111:X_SetAccessControl
-XRequest.112:X_SetCloseDownMode
-XRequest.113:X_KillClient
-XRequest.114:X_RotateProperties
-XRequest.115:X_ForceScreenSaver
-XRequest.116:X_SetPointerMapping
-XRequest.117:X_GetPointerMapping
-XRequest.118:X_SetModifierMapping
-XRequest.119:X_GetModifierMapping
-XRequest.127:X_NoOperation
-! X Error Codes
-XProtoError.0: unknown error code 0
-XProtoError.1: BadRequest (invalid request code or no such operation)
-XProtoError.2: BadValue (integer parameter out of range for operation)
-XProtoError.3: BadWindow (invalid Window parameter)
-XProtoError.4: BadPixmap (invalid Pixmap parameter)
-XProtoError.5: BadAtom (invalid Atom parameter)
-XProtoError.6: BadCursor (invalid Cursor parameter)
-XProtoError.7: BadFont (invalid Font parameter)
-XProtoError.8: BadMatch (invalid parameter attributes)
-XProtoError.9: BadDrawable (invalid Pixmap or Window parameter)
-XProtoError.10: BadAccess (attempt to access private resource denied)
-XProtoError.11: BadAlloc (insufficient resources for operation)
-XProtoError.12: BadColor (invalid Colormap parameter)
-XProtoError.13: BadGC (invalid GC parameter)
-XProtoError.14: BadIDChoice (invalid resource ID chosen for this connection)
-XProtoError.15: BadName (named color or font does not exist)
-XProtoError.16: BadLength (poly request too large or internal Xlib length error)
-XProtoError.17: BadImplementation (server does not implement operation)
-! Multi-Buffering extension, not an X Consortium standard
-XRequest.Multi-Buffering.0: X_MbufGetBufferVersion
-XRequest.Multi-Buffering.1: X_MbufCreateImageBuffers
-XRequest.Multi-Buffering.2: X_MbufDestroyImageBuffers
-XRequest.Multi-Buffering.3: X_MbufDisplayImageBuffers
-XRequest.Multi-Buffering.4: X_MbufSetMultiBufferAttributes
-XRequest.Multi-Buffering.5: X_MbufGetMultiBufferAttributes
-XRequest.Multi-Buffering.6: X_MbufSetBufferAttributes
-XRequest.Multi-Buffering.7: X_MbufGetBufferAttributes
-XRequest.Multi-Buffering.8: X_MbufGetBufferInfo
-XRequest.Multi-Buffering.9: X_MbufCreateStereoWindow
-XProtoError.Multi-Buffering.0: BadBuffer (invalid Buffer parameter)
-XlibMessage.Multi-Buffering.0: Buffer id in failed request: 0x%lx
-! SHAPE extension, an X Consortium standard
-XRequest.SHAPE.0: X_ShapeQueryVersion
-XRequest.SHAPE.1: X_ShapeRectangles
-XRequest.SHAPE.2: X_ShapeMask
-XRequest.SHAPE.3: X_ShapeCombine
-XRequest.SHAPE.4: X_ShapeOffset
-XRequest.SHAPE.5: X_ShapeQueryExtents
-XRequest.SHAPE.6: X_ShapeSelectInput
-XRequest.SHAPE.7: X_ShapeInputSelected
-XRequest.SHAPE.8: X_ShapeGetRectangles
-! Input extension, an X Consortium standard
-XRequest.XInputExtension.1:X_GetExtensionVersion
-XRequest.XInputExtension.2:X_ListInputDevices
-XRequest.XInputExtension.3:X_OpenDevice
-XRequest.XInputExtension.4:X_CloseDevice
-XRequest.XInputExtension.5:X_SetDeviceMode
-XRequest.XInputExtension.6:X_SelectExtensionEvent
-XRequest.XInputExtension.7:X_GetSelectedExtensionEvents
-XRequest.XInputExtension.8:X_ChangeDeviceDontPropagateList
-XRequest.XInputExtension.9:X_GetDeviceDontPropagateList
-XRequest.XInputExtension.10:X_GetDeviceMotionEvents
-XRequest.XInputExtension.11:X_ChangeKeyboardDevice
-XRequest.XInputExtension.12:X_ChangePointerDevice
-XRequest.XInputExtension.13:X_GrabDevice
-XRequest.XInputExtension.14:X_UngrabDevice
-XRequest.XInputExtension.15:X_GrabDeviceKey
-XRequest.XInputExtension.16:X_UngrabDeviceKey
-XRequest.XInputExtension.17:X_GrabDeviceButton
-XRequest.XInputExtension.18:X_UngrabDeviceButton
-XRequest.XInputExtension.19:X_AllowDeviceEvents
-XRequest.XInputExtension.20:X_GetDeviceFocus
-XRequest.XInputExtension.21:X_SetDeviceFocus
-XRequest.XInputExtension.22:X_GetFeedbackControl
-XRequest.XInputExtension.23:X_ChangeFeedbackControl
-XRequest.XInputExtension.24:X_GetDeviceKeyMapping
-XRequest.XInputExtension.25:X_ChangeDeviceKeyMapping
-XRequest.XInputExtension.26:X_GetDeviceModifierMapping
-XRequest.XInputExtension.27:X_SetDeviceModifierMapping
-XRequest.XInputExtension.28:X_GetDeviceButtonMapping
-XRequest.XInputExtension.29:X_SetDeviceButtonMapping
-XRequest.XInputExtension.30:X_QueryDeviceState
-XRequest.XInputExtension.31:X_SendExtensionEvent
-XRequest.XInputExtension.32:X_DeviceBell
-XRequest.XInputExtension.33:X_SetDeviceValuators
-XRequest.XInputExtension.34:X_GetDeviceControl
-XRequest.XInputExtension.35:X_ChangeDeviceControl
-XRequest.XInputExtension.36: X_ListDeviceProperties
-XRequest.XInputExtension.37: X_ChangeDeviceProperty
-XRequest.XInputExtension.38: X_DeleteDeviceProperty
-XRequest.XInputExtension.39: X_GetDeviceProperty
-XProtoError.XInputExtension.0: XI_BadDevice (invalid Device parameter)
-XlibMessage.XInputExtension.0: Device id in failed request: 0x%lx
-XProtoError.XInputExtension.1: XI_BadEvent (invalid Event parameter)
-XlibMessage.XInputExtension.1: Event id in failed request: 0x%lx
-XProtoError.XInputExtension.2: XI_BadMode (invalid Mode parameter)
-XlibMessage.XInputExtension.2: Mode id in failed request: 0x%lx
-XProtoError.XInputExtension.3: XI_DeviceBusy
-XlibMessage.XInputExtension.3: Device id in failed request: 0x%lx
-XProtoError.XInputExtension.4: XI_BadClass (invalid Class parameter)
-XlibMessage.XInputExtension.4: Class id in failed request: 0x%lx
-! MIT-SHM extension, experimental, not an X Consortium standard
-XRequest.MIT-SHM.0: X_ShmQueryVersion
-XRequest.MIT-SHM.1: X_ShmAttach
-XRequest.MIT-SHM.2: X_ShmDetach
-XRequest.MIT-SHM.3: X_ShmPutImage
-XRequest.MIT-SHM.4: X_ShmGetImage
-XRequest.MIT-SHM.5: X_ShmCreatePixmap
-XProtoError.MIT-SHM.0: BadShmSeg (invalid shared segment parameter)
-XlibMessage.MIT-SHM.0: Segment id in failed request: 0x%lx
-! MIT-SUNDRY-NONSTANDARD extension, definitely not an X Consortium standard
-XRequest.MIT-SUNDRY-NONSTANDARD.0: X_MITSetBugMode
-XRequest.MIT-SUNDRY-NONSTANDARD.1: X_MITGetBugMode
-! X3D-PEX extension
-XRequest.X3D-PEX.1: PEX_GetExtensionInfo
-XRequest.X3D-PEX.2: PEX_GetEnumeratedTypeInfo
-XRequest.X3D-PEX.3: PEX_GetImpDepConstants
-XRequest.X3D-PEX.4: PEX_CreateLookupTable
-XRequest.X3D-PEX.5: PEX_CopyLookupTable
-XRequest.X3D-PEX.6: PEX_FreeLookupTable
-XRequest.X3D-PEX.7: PEX_GetTableInfo
-XRequest.X3D-PEX.8: PEX_GetPredefinedEntries
-XRequest.X3D-PEX.9: PEX_GetDefinedIndices
-XRequest.X3D-PEX.10: PEX_GetTableEntry
-XRequest.X3D-PEX.11: PEX_GetTableEntries
-XRequest.X3D-PEX.12: PEX_SetTableEntries
-XRequest.X3D-PEX.13: PEX_DeleteTableEntries
-XRequest.X3D-PEX.14: PEX_CreatePipelineContext
-XRequest.X3D-PEX.15: PEX_CopyPipelineContext
-XRequest.X3D-PEX.16: PEX_FreePipelineContext
-XRequest.X3D-PEX.17: PEX_GetPipelineContext
-XRequest.X3D-PEX.18: PEX_ChangePipelineContext
-XRequest.X3D-PEX.19: PEX_CreateRenderer
-XRequest.X3D-PEX.20: PEX_FreeRenderer
-XRequest.X3D-PEX.21: PEX_ChangeRenderer
-XRequest.X3D-PEX.22: PEX_GetRendererAttributes
-XRequest.X3D-PEX.23: PEX_GetRendererDynamics
-XRequest.X3D-PEX.24: PEX_BeginRendering
-XRequest.X3D-PEX.25: PEX_EndRendering
-XRequest.X3D-PEX.26: PEX_BeginStructure
-XRequest.X3D-PEX.27: PEX_EndStructure
-XRequest.X3D-PEX.28: PEX_RenderOutputCommands
-XRequest.X3D-PEX.29: PEX_RenderNetwork
-XRequest.X3D-PEX.30: PEX_CreateStructure
-XRequest.X3D-PEX.31: PEX_CopyStructure
-XRequest.X3D-PEX.32: PEX_DestroyStructures
-XRequest.X3D-PEX.33: PEX_GetStructureInfo
-XRequest.X3D-PEX.34: PEX_GetElementInfo
-XRequest.X3D-PEX.35: PEX_GetStructuresInNetwork
-XRequest.X3D-PEX.36: PEX_GetAncestors
-XRequest.X3D-PEX.37: PEX_GetDescendants
-XRequest.X3D-PEX.38: PEX_FetchElements
-XRequest.X3D-PEX.39: PEX_SetEditingMode
-XRequest.X3D-PEX.40: PEX_SetElementPointer
-XRequest.X3D-PEX.41: PEX_SetElementPointerAtLabel
-XRequest.X3D-PEX.42: PEX_ElementSearch
-XRequest.X3D-PEX.43: PEX_StoreElements
-XRequest.X3D-PEX.44: PEX_DeleteElements
-XRequest.X3D-PEX.45: PEX_DeleteElementsToLabel
-XRequest.X3D-PEX.46: PEX_DeleteBetweenLabels
-XRequest.X3D-PEX.47: PEX_CopyElements
-XRequest.X3D-PEX.48: PEX_ChangeStructureRefs
-XRequest.X3D-PEX.49: PEX_CreateNameSet
-XRequest.X3D-PEX.50: PEX_CopyNameSet
-XRequest.X3D-PEX.51: PEX_FreeNameSet
-XRequest.X3D-PEX.52: PEX_GetNameSet
-XRequest.X3D-PEX.53: PEX_ChangeNameSet
-XRequest.X3D-PEX.54: PEX_CreateSearchContext
-XRequest.X3D-PEX.55: PEX_CopySearchContext
-XRequest.X3D-PEX.56: PEX_FreeSearchContext
-XRequest.X3D-PEX.57: PEX_GetSearchContext
-XRequest.X3D-PEX.58: PEX_ChangeSearchContext
-XRequest.X3D-PEX.59: PEX_SearchNetwork
-XRequest.X3D-PEX.60: PEX_CreatePhigsWks
-XRequest.X3D-PEX.61: PEX_FreePhigsWks
-XRequest.X3D-PEX.62: PEX_GetWksInfo
-XRequest.X3D-PEX.63: PEX_GetDynamics
-XRequest.X3D-PEX.64: PEX_GetViewRep
-XRequest.X3D-PEX.65: PEX_RedrawAllStructures
-XRequest.X3D-PEX.66: PEX_UpdateWorkstation
-XRequest.X3D-PEX.67: PEX_RedrawClipRegion
-XRequest.X3D-PEX.68: PEX_ExecuteDeferredActions
-XRequest.X3D-PEX.69: PEX_SetViewPriority
-XRequest.X3D-PEX.70: PEX_SetDisplayUpdateMode
-XRequest.X3D-PEX.71: PEX_MapDCtoWC
-XRequest.X3D-PEX.72: PEX_MapWCtoDC
-XRequest.X3D-PEX.73: PEX_SetViewRep
-XRequest.X3D-PEX.74: PEX_SetWksWindow
-XRequest.X3D-PEX.75: PEX_SetWksViewport
-XRequest.X3D-PEX.76: PEX_SetHlhsrMode
-XRequest.X3D-PEX.77: PEX_SetWksBufferMode
-XRequest.X3D-PEX.78: PEX_PostStructure
-XRequest.X3D-PEX.79: PEX_UnpostStructure
-XRequest.X3D-PEX.80: PEX_UnpostAllStructures
-XRequest.X3D-PEX.81: PEX_GetWksPostings
-XRequest.X3D-PEX.82: PEX_GetPickDevice
-XRequest.X3D-PEX.83: PEX_ChangePickDevice
-XRequest.X3D-PEX.84: PEX_CreatePickMeasure
-XRequest.X3D-PEX.85: PEX_FreePickMeasure
-XRequest.X3D-PEX.86: PEX_GetPickMeasure
-XRequest.X3D-PEX.87: PEX_UpdatePickMeasure
-XRequest.X3D-PEX.88: PEX_OpenFont
-XRequest.X3D-PEX.89: PEX_CloseFont
-XRequest.X3D-PEX.90: PEX_QueryFont
-XRequest.X3D-PEX.91: PEX_ListFonts
-XRequest.X3D-PEX.92: PEX_ListFontsWithInfo
-XRequest.X3D-PEX.93: PEX_QueryTextExtents
-XRequest.X3D-PEX.94: PEX_MatchRenderingTargets
-XRequest.X3D-PEX.95: PEX_Escape
-XRequest.X3D-PEX.96: PEX_EscapeWithReply
-XRequest.X3D-PEX.97: PEX_RenderElements
-XRequest.X3D-PEX.98: PEX_AccumulateState
-XRequest.X3D-PEX.99: PEX_BeginPickOne
-XRequest.X3D-PEX.100: PEX_EndPickOne
-XRequest.X3D-PEX.101: PEX_PickOne
-XRequest.X3D-PEX.102: PEX_BeginPickAll
-XRequest.X3D-PEX.103: PEX_EndPickAll
-XRequest.X3D-PEX.104: PEX_PickAll
-XProtoError.X3D-PEX.0: PEXColorTypeError
-XlibMessage.X3D-PEX.0: Color type in failed request: 0x%lx
-XProtoError.X3D-PEX.1: PEXRendererStateError
-XlibMessage.X3D-PEX.1: Renderer id in failed request: 0x%lx
-XProtoError.X3D-PEX.2: PEXFloatingPointFormatError
-XlibMessage.X3D-PEX.2: Format in failed request: 0x%lx
-XProtoError.X3D-PEX.3: PEXLabelError
-XlibMessage.X3D-PEX.3: Label in failed request: 0x%lx
-XProtoError.X3D-PEX.4: PEXLookupTableError
-XlibMessage.X3D-PEX.4: Table id in failed request: 0x%lx
-XProtoError.X3D-PEX.5: PEXNameSetError
-XlibMessage.X3D-PEX.5: Nameset in failed request: 0x%lx
-XProtoError.X3D-PEX.6: PEXPathError
-XlibMessage.X3D-PEX.6: Path id in failed request: 0x%lx
-XProtoError.X3D-PEX.7: PEXFontError
-XlibMessage.X3D-PEX.7: Font id in failed request: 0x%lx
-XProtoError.X3D-PEX.8: PEXPhigsWksError
-XlibMessage.X3D-PEX.8: Workstation id in failed request: 0x%lx
-XProtoError.X3D-PEX.9: PEXPickMeasureError
-XlibMessage.X3D-PEX.9: Device id in failed request: 0x%lx
-XProtoError.X3D-PEX.10: PEXPipelineContextError
-XlibMessage.X3D-PEX.10: Context id in failed request: 0x%lx
-XProtoError.X3D-PEX.11: PEXRendererError
-XlibMessage.X3D-PEX.11: Renderer id in failed request: 0x%lx
-XProtoError.X3D-PEX.12: PEXSearchContextError
-XlibMessage.X3D-PEX.12: Context id in failed request: 0x%lx
-XProtoError.X3D-PEX.13: PEXStructureError
-XlibMessage.X3D-PEX.13: Structure id in failed request: 0x%lx
-XProtoError.X3D-PEX.14: PEXOutputCommandError
-XlibMessage.X3D-PEX.14: Resource id in failed request: 0x%lx
-! XTEST extension, an X Consortium standard
-XRequest.XTEST.0: X_XTestGetVersion
-XRequest.XTEST.1: X_XTestCompareCursor
-XRequest.XTEST.2: X_XTestFakeInput
-XRequest.XTEST.3: X_XTestGrabControl
-! BIG-REQUESTS extension, an X Consortium standard
-XRequest.BIG-REQUESTS.0: X_BigReqEnable
-! XIE extension, an X Consortium standard
-XRequest.XIE.1: XIE_QueryImageExtension
-XRequest.XIE.2: XIE_QueryTechniques
-XRequest.XIE.3: XIE_CreateColorList
-XRequest.XIE.4: XIE_DestroyColorList
-XRequest.XIE.5: XIE_PurgeColorList
-XRequest.XIE.6: XIE_QueryColorList
-XRequest.XIE.7: XIE_CreateLUT
-XRequest.XIE.8: XIE_DestroyLUT
-XRequest.XIE.9: XIE_CreatePhotomap
-XRequest.XIE.10: XIE_DestroyPhotomap
-XRequest.XIE.11: XIE_QueryPhotomap
-XRequest.XIE.12: XIE_CreateROI
-XRequest.XIE.13: XIE_DestroyROI
-XRequest.XIE.14: XIE_CreatePhotospace
-XRequest.XIE.15: XIE_DestroyPhotospace
-XRequest.XIE.16: XIE_ExecuteImmediate
-XRequest.XIE.17: XIE_CreatePhotoflo
-XRequest.XIE.18: XIE_DestroyPhotoflo
-XRequest.XIE.19: XIE_ExecutePhotoflo
-XRequest.XIE.20: XIE_ModifyPhotoflo
-XRequest.XIE.21: XIE_RedefinePhotoflo
-XRequest.XIE.22: XIE_PutClientData
-XRequest.XIE.23: XIE_GetClientData
-XRequest.XIE.24: XIE_QueryPhotoflo
-XRequest.XIE.25: XIE_Await
-XRequest.XIE.26: XIE_Abort
-XProtoError.XIE.0: XIE_ColorListError
-XlibMessage.XIE.0: ColorList in failed request: 0x%lx
-XProtoError.XIE.1: XIE_LUTError
-XlibMessage.XIE.1: LUT in failed request: 0x%lx
-XProtoError.XIE.2: XIE_PhotofloError
-XlibMessage.XIE.2: Photoflo in failed request: 0x%lx
-XProtoError.XIE.3: XIE_PhotomapError
-XlibMessage.XIE.3: Photomap in failed request: 0x%lx
-XProtoError.XIE.4: XIE_PhotospaceError
-XlibMessage.XIE.4: Photospace in failed request: 0x%lx
-XProtoError.XIE.5: XIE_ROIError
-XlibMessage.XIE.5: ROI in failed request: 0x%lx
-XProtoError.XIE.6: XIE_FloError
-XlibMessage.XIE.6: Photoflo in failed request: 0x%lx
-! SYNC extension, an X Consortium standard
-XRequest.SYNC.0: X_SyncInitialize
-XRequest.SYNC.1: X_SyncListSystemCounters
-XRequest.SYNC.2: X_SyncCreateCounter
-XRequest.SYNC.3: X_SyncSetCounter
-XRequest.SYNC.4: X_SyncChangeCounter
-XRequest.SYNC.5: X_SyncQueryCounter
-XRequest.SYNC.6: X_SyncDestroyCounter
-XRequest.SYNC.7: X_SyncAwait
-XRequest.SYNC.8: X_SyncCreateAlarm
-XRequest.SYNC.9: X_SyncChangeAlarm
-XRequest.SYNC.10: X_SyncQueryAlarm
-XRequest.SYNC.11: X_SyncDestroyAlarm
-XRequest.SYNC.12: X_SyncSetPriority
-XRequest.SYNC.13: X_SyncGetPriority
-XProtoError.SYNC.0: XSyncBadCounter
-XlibMessage.SYNC.0: Counter in failed request: 0x%lx
-XProtoError.SYNC.1: XSyncBadAlarm
-XlibMessage.SYNC.1: Alarm in failed request: 0x%lx
-! XKB extension
-XRequest.XKEYBOARD.0: XkbUseExtension
-XRequest.XKEYBOARD.1: XkbSelectEvents
-XRequest.XKEYBOARD.2: OBSOLETE
-XRequest.XKEYBOARD.3: XkbBell
-XRequest.XKEYBOARD.4: XkbGetState
-XRequest.XKEYBOARD.5: XkbLatchLockState
-XRequest.XKEYBOARD.6: XkbGetControls
-XRequest.XKEYBOARD.7: XkbSetControls
-XRequest.XKEYBOARD.8: XkbGetMap
-XRequest.XKEYBOARD.9: XkbSetMap
-XRequest.XKEYBOARD.10: XkbGetCompatMap
-XRequest.XKEYBOARD.11: XkbSetCompatMap
-XRequest.XKEYBOARD.12: XkbGetIndicatorState
-XRequest.XKEYBOARD.13: XkbGetIndicatorMap
-XRequest.XKEYBOARD.14: XkbSetIndicatorMap
-XRequest.XKEYBOARD.15: XkbGetNamedIndicator
-XRequest.XKEYBOARD.16: XkbSetNamedIndicator
-XRequest.XKEYBOARD.17: XkbGetNames
-XRequest.XKEYBOARD.18: XkbSetNames
-XRequest.XKEYBOARD.19: XkbGetGeometry
-XRequest.XKEYBOARD.20: XkbSetGeometry
-XRequest.XKEYBOARD.21: XkbPerClientFlags
-XRequest.XKEYBOARD.22: XkbListComponents
-XRequest.XKEYBOARD.23: XkbGetKbdByName
-XRequest.XKEYBOARD.24: XkbGetDeviceInfo
-XRequest.XKEYBOARD.25: XkbSetDeviceInfo
-XRequest.XKEYBOARD.101: XkbSetDebuggingFlags
-XProtoError.XKEYBOARD.0: XkbBadKeyboard
-XlibMessage.XKEYBOARD.0: Device id in failed request: 0x%lx
-! GLX extension for OpenGL, an OpenGL Architectural Review Board standard
-! GLX Commands
-XRequest.GLX.7: X_GLXQueryVersion
-XRequest.GLX.3: X_GLXCreateContext
-XRequest.GLX.4: X_GLXDestroyContext
-XRequest.GLX.5: X_GLXMakeCurrent
-XRequest.GLX.6: X_GLXIsDirect
-XRequest.GLX.10: X_GLXCopyContext
-XRequest.GLX.8: X_GLXWaitGL
-XRequest.GLX.9: X_GLXWaitX
-XRequest.GLX.11: X_GLXSwapBuffers
-XRequest.GLX.12: X_GLXUseXFont
-XRequest.GLX.13: X_GLXCreateGLXPixmap
-XRequest.GLX.15: X_GLXDestroyGLXPixmap
-XRequest.GLX.14: X_GLXGetVisualConfigs
-XRequest.GLX.16: X_GLXVendorPrivate
-XRequest.GLX.17: X_GLXVendorPrivateWithReply
-XRequest.GLX.18: X_GLXQueryExtensionsString
-XRequest.GLX.19: X_GLXQueryServerString
-XRequest.GLX.20: X_GLXClientInfo
-XRequest.GLX.21: X_GLXGetFBConfigs
-XRequest.GLX.22: X_GLXCreatePixmap
-XRequest.GLX.23: X_GLXDestroyPixmap
-XRequest.GLX.24: X_GLXCreateNewContext
-XRequest.GLX.25: X_GLXQueryContext
-XRequest.GLX.26: X_GLXMakeContextCurrent
-XRequest.GLX.27: X_GLXCreatePbuffer
-XRequest.GLX.28: X_GLXDestroyPbuffer
-XRequest.GLX.29: X_GLXGetDrawableAttributes
-XRequest.GLX.30: X_GLXChangeDrawableAttributes
-XRequest.GLX.31: X_GLXCreateWindow
-XRequest.GLX.32: X_GLXDestroyWindow
-! GL Non-rendering Commands
-XRequest.GLX.103: X_GLXDeleteLists
-XRequest.GLX.102: X_GLXEndList
-XRequest.GLX.105: X_GLXFeedbackBuffer
-XRequest.GLX.108: X_GLXFinish
-XRequest.GLX.142: X_GLXFlush
-XRequest.GLX.104: X_GLXGenLists
-XRequest.GLX.112: X_GLXGetBooleanv
-XRequest.GLX.113: X_GLXGetClipPlane
-XRequest.GLX.114: X_GLXGetDoublev
-XRequest.GLX.115: X_GLXGetError
-XRequest.GLX.116: X_GLXGetFloatv
-XRequest.GLX.117: X_GLXGetIntegerv
-XRequest.GLX.118: X_GLXGetLightfv
-XRequest.GLX.119: X_GLXGetLightiv
-XRequest.GLX.120: X_GLXGetMapdv
-XRequest.GLX.121: X_GLXGetMapfv
-XRequest.GLX.122: X_GLXGetMapiv
-XRequest.GLX.123: X_GLXGetMaterialfv
-XRequest.GLX.124: X_GLXGetMaterialiv
-XRequest.GLX.125: X_GLXGetPixelfv
-XRequest.GLX.126: X_GLXGetPixelMapuiv
-XRequest.GLX.127: X_GLXGetPixelMapusv
-XRequest.GLX.129: X_GLXGetString
-XRequest.GLX.130: X_GLXGetTexEnvfv
-XRequest.GLX.131: X_GLXGetTexEnviv
-XRequest.GLX.132: X_GLXGetTexGendv
-XRequest.GLX.133: X_GLXGetTexGenfv
-XRequest.GLX.134: X_GLXGetTexGeniv
-XRequest.GLX.138: X_GLXGetTexLevelParameterfv
-XRequest.GLX.139: X_GLXGetTexLevelParameteriv
-XRequest.GLX.136: X_GLXGetTexParameterfv
-XRequest.GLX.137: X_GLXGetTexParameteriv
-XRequest.GLX.140: X_GLXIsEnabled
-XRequest.GLX.141: X_GLXIsList
-XRequest.GLX.101: X_GLXNewList
-XRequest.GLX.109: X_GLXPixelStoref
-XRequest.GLX.110: X_GLXPixelStorei
-XRequest.GLX.107: X_GLXRenderMode
-XRequest.GLX.106: X_GLXSelectBuffer
-! GL Non-rendering Commands That Return Pixel Data
-XRequest.GLX.128: X_GLXGetPolygonStipple
-XRequest.GLX.135: X_GLXGetTexImage
-XRequest.GLX.111: X_GLXReadPixels
-! GL Rendering Commands
-XRequest.GLX.1: X_GLXRender
-XRequest.GLX.2: X_GLXRenderLarge
-! GLX Errors
-XProtoError.GLX.0: GLXBadContext
-XProtoError.GLX.1: GLXBadContextState
-XProtoError.GLX.2: GLXBadDrawable
-XProtoError.GLX.3: GLXBadPixmap
-XProtoError.GLX.4: GLXBadContextTag
-XProtoError.GLX.5: GLXBadCurrentWindow
-XProtoError.GLX.6: GLXBadRenderRequest
-XProtoError.GLX.7: GLXBadLargeRequest
-XProtoError.GLX.8: GLXUnsupportedPrivateRequest
-XProtoError.GLX.9: GLXBadFBConfig
-XProtoError.GLX.10: GLXBadPbuffer
-XProtoError.GLX.11: GLXBadCurrentDrawable
-XProtoError.GLX.12: GLXBadWindow
-XProtoError.GLX.13: GLXBadProfileARB
-! XC-MISC extension, an X Consortium standard
-XRequest.XC-MISC.0: XCMiscGetVersion
-XRequest.XC-MISC.1: XCMiscGetXIDRange
-! RECORD extension
-XRequest.RECORD.0: XRecordQueryVersion
-XRequest.RECORD.1: XRecordCreateContext
-XRequest.RECORD.2: XRecordRegisterClients
-XRequest.RECORD.3: XRecordUnregisterClients
-XRequest.RECORD.4: XRecordGetContext
-XRequest.RECORD.5: XRecordEnableContext
-XRequest.RECORD.6: XRecordDisableContext
-XRequest.RECORD.7: XRecordFreeContext
-XProtoError.RECORD.0: XRecordBadContext
-XlibMessage.RECORD.0: Context in failed request: 0x%lx
-! XFree86-VidModeExtension -- not an X Consortium standard
-XRequest.XFree86-VidModeExtension.0: XF86VidModeQueryVersion
-XRequest.XFree86-VidModeExtension.1: XF86VidModeGetModeLine
-XRequest.XFree86-VidModeExtension.2: XF86VidModeModModeLine
-XRequest.XFree86-VidModeExtension.3: XF86VidModeSwitchMode
-XRequest.XFree86-VidModeExtension.4: XF86VidModeGetMonitor
-XRequest.XFree86-VidModeExtension.5: XF86VidModeLockModeSwitch
-XRequest.XFree86-VidModeExtension.6: XF86VidModeGetAllModeLines
-XRequest.XFree86-VidModeExtension.7: XF86VidModeAddModeLine
-XRequest.XFree86-VidModeExtension.8: XF86VidModeDeleteModeLine
-XRequest.XFree86-VidModeExtension.9: XF86VidModeValidateModeLine
-XRequest.XFree86-VidModeExtension.10: XF86VidModeSwitchToMode
-XRequest.XFree86-VidModeExtension.11: XF86VidModeGetViewPort
-XRequest.XFree86-VidModeExtension.12: XF86VidModeSetViewPort
-XRequest.XFree86-VidModeExtension.13: XF86VidModeGetDotClocks
-XRequest.XFree86-VidModeExtension.14: XF86VidModeSetClientVersion
-XRequest.XFree86-VidModeExtension.15: XF86VidModeSetGamma
-XRequest.XFree86-VidModeExtension.16: XF86VidModeGetGamma
-XRequest.XFree86-VidModeExtension.17: XF86VidModeGetGammaRamp
-XRequest.XFree86-VidModeExtension.18: XF86VidModeSetGammaRamp
-XRequest.XFree86-VidModeExtension.19: XF86VidModeGetGammaRampSize
-XRequest.XFree86-VidModeExtension.20: XF86VidModeGetPermissions
-XProtoError.XFree86-VidModeExtension.0: XF86VidModeBadClock
-XProtoError.XFree86-VidModeExtension.1: XF86VidModeBadHTimings
-XProtoError.XFree86-VidModeExtension.2: XF86VidModeBadVTimings
-XProtoError.XFree86-VidModeExtension.3: XF86VidModeModeUnsuitable
-XProtoError.XFree86-VidModeExtension.4: XF86VidModeExtensionDisabled
-XProtoError.XFree86-VidModeExtension.5: XF86VidModeClientNotLocal
-XProtoError.XFree86-VidModeExtension.6: XF86VidModeZoomLocked
-! XFree86-Misc -- not an X Consortium standard
-XRequest.XFree86-Misc.0: XF86MiscQueryVersion
-XRequest.XFree86-Misc.1: XF86MiscGetSaver
-XRequest.XFree86-Misc.2: XF86MiscSetSaver
-XRequest.XFree86-Misc.3: XF86MiscGetMouseSettings
-XRequest.XFree86-Misc.4: XF86MiscGetKbdSettings
-XRequest.XFree86-Misc.5: XF86MiscSetMouseSettings
-XRequest.XFree86-Misc.6: XF86MiscSetKbdSettings
-XRequest.XFree86-Misc.7: XF86MiscSetGrabKeysState
-XRequest.XFree86-Misc.8: XF86MiscSetClientVersion
-XRequest.XFree86-Misc.9: XF86MiscGetFilePaths
-XProtoError.XFree86-Misc.0: XF86MiscBadMouseProtocol
-XProtoError.XFree86-Misc.1: XF86MiscBadMouseBaudRate
-XProtoError.XFree86-Misc.2: XF86MiscBadMouseFlags
-XProtoError.XFree86-Misc.3: XF86MiscBadMouseCombo
-XProtoError.XFree86-Misc.4: XF86MiscBadKbdType
-XProtoError.XFree86-Misc.5: XF86MiscModInDevDisabled
-XProtoError.XFree86-Misc.6: XF86MiscModInDevClientNotLocal
-XProtoError.XFree86-Misc.7: XF86MiscNoModule
-! XFree86-DGA -- not an X Consortium standard
-XRequest.XFree86-DGA.0: XF86DGAQueryVersion
-XRequest.XFree86-DGA.1: XF86DGAGetVideoLL
-XRequest.XFree86-DGA.2: XF86DGADirectVideo
-XRequest.XFree86-DGA.3: XF86DGAGetViewPortSize
-XRequest.XFree86-DGA.4: XF86DGASetViewPort
-XRequest.XFree86-DGA.5: XF86DGAGetVidPage
-XRequest.XFree86-DGA.6: XF86DGASetVidPage
-XRequest.XFree86-DGA.7: XF86DGAInstallColormap
-XRequest.XFree86-DGA.8: XF86DGAQueryDirectVideo
-XRequest.XFree86-DGA.9: XF86DGAViewPortChanged
-XRequest.XFree86-DGA.10: XF86DGAObsolete1
-XRequest.XFree86-DGA.11: XF86DGAObsolete2
-XRequest.XFree86-DGA.12: XDGAQueryModes
-XRequest.XFree86-DGA.13: XDGASetMode
-XRequest.XFree86-DGA.14: XDGASetViewport
-XRequest.XFree86-DGA.15: XDGAInstallColormap
-XRequest.XFree86-DGA.16: XDGASelectInput
-XRequest.XFree86-DGA.17: XDGAFillRectangle
-XRequest.XFree86-DGA.18: XDGACopyArea
-XRequest.XFree86-DGA.19: XDGACopyTransparentArea
-XRequest.XFree86-DGA.20: XDGAGetViewportStatus
-XRequest.XFree86-DGA.21: XDGASync
-XRequest.XFree86-DGA.22: XDGAOpenFramebuffer
-XRequest.XFree86-DGA.23: XDGACloseFramebuffer
-XRequest.XFree86-DGA.24: XDGASetClientVersion
-XRequest.XFree86-DGA.25: XDGAChangePixmapMode
-XRequest.XFree86-DGA.26: XDGACreateColormap
-XProtoError.XFree86-DGA.0: XF86DGAClientNotLocal
-XProtoError.XFree86-DGA.1: XF86DGANoDirectVideoMode
-XProtoError.XFree86-DGA.2: XF86DGAScreenNotActive
-XProtoError.XFree86-DGA.3: XF86DGADirectNotActivated
-XProtoError.XFree86-DGA.4: XF86DGAOperationNotSupported
-! DOUBLE-BUFFER (DBE), an X Consortium standard
-XRequest.DOUBLE-BUFFER.0: DBEGetVersion
-XRequest.DOUBLE-BUFFER.1: DBEAllocateBackBufferName
-XRequest.DOUBLE-BUFFER.2: DBEDeallocateBackBufferName
-XRequest.DOUBLE-BUFFER.3: DBESwapBuffers
-XRequest.DOUBLE-BUFFER.4: DBEBeginIdiom
-XRequest.DOUBLE-BUFFER.5: DBEEndIdiom
-XRequest.DOUBLE-BUFFER.6: DBEGetVisualInfo
-XRequest.DOUBLE-BUFFER.7: DBEGetBackBufferAttributes
-XProtoError.DOUBLE-BUFFER.0: DBEBadBuffer (invalid BackBuffer parameter)
-XlibMessage.DOUBLE-BUFFER.0: BackBuffer in failed request: 0x%lx
-! SECURITY
-XRequest.SECURITY.0: SecurityQueryVersion
-XRequest.SECURITY.1: SecurityGenerateAuthorization
-XProtoError.SECURITY.0: SecurityBadAuthorization (invalid authorization id)
-XProtoError.SECURITY.1: SecurityBadAuthorizationProtocol (invalid authorization name or data)
-XlibMessage.SECURITY.1: authorization id in failed request: 0x%lx
-! AppGroup
-XRequest.APPGROUP.0: XagQueryVersion
-XRequest.APPGROUP.1: XagCreate
-XRequest.APPGROUP.2: XagDestroy
-XRequest.APPGROUP.3: XagGetAttr
-XRequest.APPGROUP.4: XagQuery
-XRequest.APPGROUP.5: XagCreateAssoc
-XRequest.APPGROUP.6: XagDestroyAssoc
-XProtoError.APPGROUP.0: XagBadAppGroup (invalid AppGroup parameter)
-! LBX
-XRequest.LBX.0: LbxQueryVersion
-XRequest.LBX.1: LbxStartProxy
-XRequest.LBX.2: LbxStopProxy
-XRequest.LBX.3: LbxSwitch
-XRequest.LBX.4: LbxNewClient
-XRequest.LBX.5: LbxCloseClient
-XRequest.LBX.6: LbxModifySequence
-XRequest.LBX.7: LbxAllowMotion
-XRequest.LBX.8: LbxIncrementPixel
-XRequest.LBX.9: LbxDelta
-XRequest.LBX.10: LbxGetModifierMapping
-XRequest.LBX.11: LbxQueryTag
-XRequest.LBX.12: LbxInvalidateTag
-XRequest.LBX.13: LbxPolyPoint
-XRequest.LBX.14: LbxPolyLine
-XRequest.LBX.15: LbxPolySegment
-XRequest.LBX.16: LbxPolyRectangle
-XRequest.LBX.17: LbxPolyArc
-XRequest.LBX.18: LbxFillPoly
-XRequest.LBX.19: LbxPolyFillRectangle
-XRequest.LBX.20: LbxPolyFillArc
-XRequest.LBX.21: LbxGetKeyboardMapping
-XRequest.LBX.22: LbxQueryFont
-XRequest.LBX.23: LbxChangeProperty
-XRequest.LBX.24: LbxGetProperty
-XRequest.LBX.25: LbxTagData
-XRequest.LBX.26: LbxCopyArea
-XRequest.LBX.27: LbxCopyPlane
-XRequest.LBX.28: LbxPolyText8
-XRequest.LBX.29: LbxPolyText16
-XRequest.LBX.30: LbxImageText8
-XRequest.LBX.31: LbxImageText16
-XRequest.LBX.32: LbxQueryExtension
-XRequest.LBX.33: LbxPutImage
-XRequest.LBX.34: LbxGetImage
-XRequest.LBX.35: LbxBeginLargeRequest
-XRequest.LBX.36: LbxLargeRequestData
-XRequest.LBX.37: LbxEndLargeRequest
-XRequest.LBX.38: LbxInternAtoms
-XRequest.LBX.39: LbxGetWinAttrAndGeom
-XRequest.LBX.40: LbxGrabCmap
-XRequest.LBX.41: LbxReleaseCmap
-XRequest.LBX.42: LbxAllocColor
-XRequest.LBX.43: LbxSync
-XProtoError.LBX.0: BadLbxClient
-! XpExtension
-XRequest.XpExtension.0: PrintQueryVersion
-XRequest.XpExtension.1: PrintGetPrinterList
-XRequest.XpExtension.2: PrintCreateContext
-XRequest.XpExtension.3: PrintSetContext
-XRequest.XpExtension.4: PrintGetContext
-XRequest.XpExtension.5: PrintDestroyContext
-XRequest.XpExtension.6: PrintGetContextScreen
-XRequest.XpExtension.7: PrintStartJob
-XRequest.XpExtension.8: PrintEndJob
-XRequest.XpExtension.9: PrintStartDoc
-XRequest.XpExtension.10: PrintEndDoc
-XRequest.XpExtension.11: PrintPutDocumentData
-XRequest.XpExtension.12: PrintGetDocumentData
-XRequest.XpExtension.13: PrintStartPage
-XRequest.XpExtension.14: PrintEndPage
-XRequest.XpExtension.15: PrintSelectInput
-XRequest.XpExtension.16: PrintInputSelected
-XRequest.XpExtension.17: PrintGetAttributes
-XRequest.XpExtension.18: PrintSetAttributes
-XRequest.XpExtension.19: PrintGetOneAttribute
-XRequest.XpExtension.20: PrintRehashPrinterList
-XRequest.XpExtension.21: PrintGetPageDimensions
-XRequest.XpExtension.22: PrintQueryScreens
-XRequest.XpExtension.23: PrintSetImageResolution
-XRequest.XpExtension.24: PrintGetImageResolution
-XProtoError.XpExtension.0: XPBadContext (Print Context invalid or missing)
-XlibMessage.XpExtension.0: Context in failed request: 0x%lx
-XProtoError.XpExtension.1: XPBadSequence (Illegal sequence of XP operations)
-XProtoError.XpExtension.2: XPBadResourceID (X resource not valid)
-! TOG-CUP, an X Project Team specification
-XRequest.TOG-CUP.0: CUPQueryVersion
-XRequest.TOG-CUP.1: CUPGetReservedColormapEntries
-XRequest.TOG-CUP.2: CUPStoreColors
-! Extended-Visual-Information, an X Project Team specification
-XRequest.Extended-Visual-Information.0: EVIQueryVersion
-XRequest.Extended-Visual-Information.1: EVIGetVisualInfo
-! DPMS (Display Power Management Signaling), an X Project Team specification
-XRequest.DPMS.0: DPMSGetVersion
-XRequest.DPMS.1: DPMSCapable
-XRequest.DPMS.2: DPMSGetTimeouts
-XRequest.DPMS.3: DPMSSetTimeouts
-XRequest.DPMS.4: DPMSEnable
-XRequest.DPMS.5: DPMSDisable
-XRequest.DPMS.6: DPMSForceLevel
-XRequest.DPMS.7: DPMSInfo
-! XINERAMA, not an X Project Team specification
-XRequest.XINERAMA.0: XINERAMAQueryVersion
-XRequest.XINERAMA.1: XINERAMAGetState
-XRequest.XINERAMA.2: XINERAMAGetScreenCount
-XRequest.XINERAMA.3: XINERAMAGetScreenSize
-XRequest.XINERAMA.4: XINERAMAIsActive
-XRequest.XINERAMA.5: XINERAMAQueryScreens
-! XF86Rush extension, not a standard spec
-Xrequest.XFree86-Rush.0: XF86RushQueryVersion
-Xrequest.XFree86-Rush.1: XF86RushLockPixmap
-Xrequest.XFree86-Rush.2: XF86RushUnlockPixmap
-Xrequest.XFree86-Rush.3: XF86RushUnlockAllPixmaps
-Xrequest.XFree86-Rush.4: XF86RushGetCopyMode
-Xrequest.XFree86-Rush.5: XF86RushSetCopyMode
-Xrequest.XFree86-Rush.6: XF86RushGetPixelStride
-Xrequest.XFree86-Rush.7: XF86RushSetPixelStride
-Xrequest.XFree86-Rush.8: XF86RushOverlayPixmap
-Xrequest.XFree86-Rush.9: XF86RushStatusRegOffset
-Xrequest.XFree86-Rush.10: XF86RushAT3DEnableRegs
-Xrequest.XFree86-Rush.11: XF86RushAT3DDisableRegs
-! XVideo
-Xrequest.XVideo.0: XvQueryExtension
-Xrequest.XVideo.1: XvQueryAdaptors
-Xrequest.XVideo.2: XvQueryEncodings
-Xrequest.XVideo.3: XvGrabPort
-Xrequest.XVideo.4: XvUngrabPort
-Xrequest.XVideo.5: XvPutVideo
-Xrequest.XVideo.6: XvPutStill
-Xrequest.XVideo.7: XvGetVideo
-Xrequest.XVideo.8: XvGetStill
-Xrequest.XVideo.9: XvStopVideo
-Xrequest.XVideo.10: XvSelectVideoNotify
-Xrequest.XVideo.11: XvSelectPortNotify
-Xrequest.XVideo.12: XvQueryBestSize
-Xrequest.XVideo.13: XvSetPortAttribute
-Xrequest.XVideo.14: XvGetPortAttribute
-Xrequest.XVideo.15: XvQueryPortAttributes
-Xrequest.XVideo.16: XvListImageFormats
-Xrequest.XVideo.17: XvQueryImageAttributes
-Xrequest.XVideo.18: XvPutImage
-Xrequest.XVideo.19: XvShmPutImage
-XProtoError.XVideo.0: XvBadPort
-XProtoError.XVideo.1: XvBadEncoding
-XProtoError.XVideo.2: XvBadControl
-! XFree86-Bigfont
-Xrequest.XFree86-Bigfont.0: XF86BigfontQueryVersion
-Xrequest.XFree86-Bigfont.1: XF86BigfontQueryFont
-! Adobe-DPS-Extension, not a standard
-XRequest.Adobe-DPS-Extension.1: PSInit
-XRequest.Adobe-DPS-Extension.2: PSCreateContext
-XRequest.Adobe-DPS-Extension.3: PSCreateSpace
-XRequest.Adobe-DPS-Extension.4: PSGiveInput
-XRequest.Adobe-DPS-Extension.5: PSGetStatus
-XRequest.Adobe-DPS-Extension.6: PSDestroySpace
-XRequest.Adobe-DPS-Extension.7: PSReset
-XRequest.Adobe-DPS-Extension.8: PSNotifyContext
-XRequest.Adobe-DPS-Extension.9: PSCreateContextFromID
-XRequest.Adobe-DPS-Extension.10: PSXIDFromContext
-XRequest.Adobe-DPS-Extension.11: PSContextFromXID
-XRequest.Adobe-DPS-Extension.12: PSSetStatusMask
-XRequest.Adobe-DPS-Extension.13: PSCreateSecureContext
-XRequest.Adobe-DPS-Extension.14: PSNotifyWhenReady
-XProtoError.Adobe-DPS-Extension.0: PSErrorBadContext (invalid Context parameter)
-XlibMessage.Adobe-DPS-Extension.0: Context id in failed request: 0x%lx
-XProtoError.Adobe-DPS-Extension.1: PSErrorBadSpace (invalid Space parameter)
-XlibMessage.Adobe-DPS-Extension.1: Space id in failed request: 0x%lx
-XProtoError.Adobe-DPS-Extension.2: PSErrorAbort (interpreter aborted)
-XlibMessage.Adobe-DPS-Extension.2: Value in failed request: 0x%lx
-! RANDR
-XRequest.RANDR.0: RRQueryVersion
-XRequest.RANDR.1: RROldGetScreenInfo
-XRequest.RANDR.2: RRSetScreenConfig
-XRequest.RANDR.3: RROldScreenChangeSelectInput
-XRequest.RANDR.4: RRSelectInput
-XRequest.RANDR.5: RRGetScreenInfo
-XRequest.RANDR.6: RRGetScreenSizeRange
-XRequest.RANDR.7: RRSetScreenSize
-XRequest.RANDR.8: RRGetScreenResources
-XRequest.RANDR.9: RRGetOutputInfo
-XRequest.RANDR.10: RRListOutputProperties
-XRequest.RANDR.11: RRQueryOutputProperty
-XRequest.RANDR.12: RRConfigureOutputProperty
-XRequest.RANDR.13: RRChangeOutputProperty
-XRequest.RANDR.14: RRDeleteOutputProperty
-XRequest.RANDR.15: RRGetOutputProperty
-XRequest.RANDR.16: RRCreateMode
-XRequest.RANDR.17: RRDestroyMode
-XRequest.RANDR.18: RRAddOutputMode
-XRequest.RANDR.19: RRDeleteOutputMode
-XRequest.RANDR.20: RRGetCrtcInfo
-XRequest.RANDR.21: RRSetCrtcConfig
-XRequest.RANDR.22: RRGetCrtcGammaSize
-XRequest.RANDR.23: RRGetCrtcGamma
-XRequest.RANDR.24: RRSetCrtcGamma
-XRequest.RANDR.25: RRGetScreenResourcesCurrent
-XRequest.RANDR.26: RRSetCrtcTransform
-XRequest.RANDR.27: RRGetCrtcTransform
-XRequest.RANDR.28: RRGetPanning
-XRequest.RANDR.29: RRSetPanning
-XRequest.RANDR.30: RRSetOutputPrimary
-XRequest.RANDR.31: RRGetOutputPrimary
-XRequest.RANDR.32: RRGetProviders
-XRequest.RANDR.33: RRGetProviderInfo
-XRequest.RANDR.34: RRSetProviderOffloadSink
-XRequest.RANDR.35: RRSetProviderOutputSource
-XRequest.RANDR.36: RRListProviderProperties
-XRequest.RANDR.37: RRQueryProviderProperty
-XRequest.RANDR.38: RRConfigureProviderProperty
-XRequest.RANDR.39: RRChangeProviderProperty
-XRequest.RANDR.40: RRDeleteProviderProperty
-XRequest.RANDR.41: RRGetProviderProperty
-XProtoError.RANDR.0: BadRROutput (invalid Output parameter)
-XlibMessage.RANDR.0: Output id in failed request: 0x%lx
-XProtoError.RANDR.1: BadRRCrtc (invalid Crtc parameter)
-XlibMessage.RANDR.1: Crtc id in failed request: 0x%lx
-XProtoError.RANDR.2: BadRRMode (invalid Mode parameter)
-XlibMessage.RANDR.2: Mode id in failed request: 0x%lx
-XProtoError.RANDR.3: BadRRProvider (invalid Provider parameter)
-XlibMessage.RANDR.3: Provider id in failed request: 0x%lx
-! RENDER
-XRequest.RENDER.0: RenderQueryVersion
-XRequest.RENDER.1: RenderQueryPictFormats
-XRequest.RENDER.2: RenderQueryPictIndexValues
-XRequest.RENDER.3: RenderQueryDithers
-XRequest.RENDER.4: RenderCreatePicture
-XRequest.RENDER.5: RenderChangePicture
-XRequest.RENDER.6: RenderSetPictureClipRectangles
-XRequest.RENDER.7: RenderFreePicture
-XRequest.RENDER.8: RenderComposite
-XRequest.RENDER.9: RenderScale
-XRequest.RENDER.10: RenderTrapezoids
-XRequest.RENDER.11: RenderTriangles
-XRequest.RENDER.12: RenderTriStrip
-XRequest.RENDER.13: RenderTriFan
-XRequest.RENDER.14: RenderColorTrapezoids
-XRequest.RENDER.15: RenderColorTriangles
-XRequest.RENDER.16: RenderTransform
-XRequest.RENDER.17: RenderCreateGlyphSet
-XRequest.RENDER.18: RenderReferenceGlyphSet
-XRequest.RENDER.19: RenderFreeGlyphSet
-XRequest.RENDER.20: RenderAddGlyphs
-XRequest.RENDER.21: RenderAddGlyphsFromPicture
-XRequest.RENDER.22: RenderFreeGlyphs
-XRequest.RENDER.23: RenderCompositeGlyphs8
-XRequest.RENDER.24: RenderCompositeGlyphs16
-XRequest.RENDER.25: RenderCompositeGlyphs32
-XRequest.RENDER.26: RenderFillRectangles
-XRequest.RENDER.27: RenderCreateCursor
-XRequest.RENDER.28: RenderSetPictureTransform
-XRequest.RENDER.29: RenderQueryFilters
-XRequest.RENDER.30: RenderSetPictureFilter
-XRequest.RENDER.31: RenderCreateAnimCursor
-XRequest.RENDER.32: RenderAddTraps
-XRequest.RENDER.33: RenderCreateSolidFill
-XRequest.RENDER.34: RenderCreateLinearGradient
-XRequest.RENDER.35: RenderCreateRadialGradient
-XRequest.RENDER.36: RenderCreateConicalGradient
-XProtoError.RENDER.0: RenderBadFormat (invalid PictFormat parameter)
-XlibMessage.RENDER.0: PictFormat id in failed request: 0x%lx
-XProtoError.RENDER.1: RenderBadPicture (invalid Picture parameter)
-XlibMessage.RENDER.1: Picture id in failed request: 0x%lx
-XProtoError.RENDER.2: RenderBadPictOp (invalid PictOp parameter)
-XlibMessage.RENDER.2: PictOp in failed request: 0x%lx
-XProtoError.RENDER.3: RenderBadGlyphSet (invalid GlyphSet parameter)
-XlibMessage.RENDER.3: GlyphSet id in failed request: 0x%lx
-XProtoError.RENDER.4: RenderBadGlyph (invalid Glyph parameter)
-XlibMessage.RENDER.4: Glyph in failed request: 0x%lx
-! XFixes
-XRequest.XFIXES.0: XFixesQueryVersion
-XRequest.XFIXES.1: XFixesChangeSaveSet
-XRequest.XFIXES.2: XFixesSelectSelectionInput
-XRequest.XFIXES.3: XFixesSelectCursorInput
-XRequest.XFIXES.4: XFixesGetCursorImage
-XRequest.XFIXES.5: XFixesCreateRegion
-XRequest.XFIXES.6: XFixesCreateRegionFromBitmap
-XRequest.XFIXES.7: XFixesCreateRegionFromWindow
-XRequest.XFIXES.8: XFixesCreateRegionFromGC
-XRequest.XFIXES.9: XFixesCreateRegionFromPicture
-XRequest.XFIXES.10: XFixesDestroyRegion
-XRequest.XFIXES.11: XFixesSetRegion
-XRequest.XFIXES.12: XFixesCopyRegion
-XRequest.XFIXES.13: XFixesUnionRegion
-XRequest.XFIXES.14: XFixesIntersectRegion
-XRequest.XFIXES.15: XFixesSubtractRegion
-XRequest.XFIXES.16: XFixesInvertRegion
-XRequest.XFIXES.17: XFixesTranslateRegion
-XRequest.XFIXES.18: XFixesRegionExtents
-XRequest.XFIXES.19: XFixesFetchRegion
-XRequest.XFIXES.20: XFixesSetGCClipRegion
-XRequest.XFIXES.21: XFixesSetWindowShapeRegion
-XRequest.XFIXES.22: XFixesSetPictureClipRegion
-XRequest.XFIXES.23: XFixesSetCursorName
-XRequest.XFIXES.24: XFixesGetCursorName
-XRequest.XFIXES.25: XFixesGetCursorImageAndName
-XRequest.XFIXES.26: XFixesChangeCursor
-XRequest.XFIXES.27: XFixesChangeCursorByName
-XRequest.XFIXES.28: XFixesExpandRegion
-XRequest.XFIXES.29: XFixesHideCursor
-XRequest.XFIXES.30: XFixesShowCursor
-XProtoError.XFIXES.0: BadRegion (invalid Region parameter)
-XlibMessage.XFIXES.0: Region id in failed request: 0x%lx
-! DAMAGE extension
-XRequest.DAMAGE.0: XDamageQueryVersion
-XRequest.DAMAGE.1: XDamageCreate
-XRequest.DAMAGE.2: XDamageDestroy
-XRequest.DAMAGE.3: XDamageSubtract
-XRequest.DAMAGE.4: XDamageAdd
-XProtoError.DAMAGE.0: BadDamage (invalid Damage parameter)
-XlibMessage.DAMAGE.0: Damage id in failed request: 0x%lx
-! DRI2 extension
-XRequest.DRI2.0: DRI2QueryVersion
-XRequest.DRI2.1: DRI2Connect
-XRequest.DRI2.2: DRI2Authenticate
-XRequest.DRI2.3: DRI2CreateDrawable
-XRequest.DRI2.4: DRI2DestroyDrawable
-XRequest.DRI2.5: DRI2GetBuffers
-XRequest.DRI2.6: DRI2CopyRegion
-XRequest.DRI2.7: DRI2GetBuffersWithFormat
-XRequest.DRI2.8: DRI2SwapBuffers
-XRequest.DRI2.9: DRI2GetMSC
-XRequest.DRI2.10: DRI2WaitMSC
-XRequest.DRI2.11: DRI2WaitSBC
-XRequest.DRI2.12: DRI2SwapInterval
diff --git a/nx-X11/lib/X11/XKB.c b/nx-X11/lib/X11/XKB.c
deleted file mode 100644
index 6df9c3ebc..000000000
--- a/nx-X11/lib/X11/XKB.c
+++ /dev/null
@@ -1,771 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-XkbInternAtomFunc _XkbInternAtomFunc = XInternAtom;
-XkbGetAtomNameFunc _XkbGetAtomNameFunc = XGetAtomName;
-
-Bool
-XkbQueryExtension(Display *dpy,
- int *opcodeReturn,
- int *eventBaseReturn,
- int *errorBaseReturn,
- int *majorReturn,
- int *minorReturn)
-{
- if (!XkbUseExtension(dpy, majorReturn, minorReturn))
- return False;
- if (opcodeReturn)
- *opcodeReturn = dpy->xkb_info->codes->major_opcode;
- if (eventBaseReturn)
- *eventBaseReturn = dpy->xkb_info->codes->first_event;
- if (errorBaseReturn)
- *errorBaseReturn = dpy->xkb_info->codes->first_error;
- if (majorReturn)
- *majorReturn = dpy->xkb_info->srv_major;
- if (minorReturn)
- *minorReturn = dpy->xkb_info->srv_minor;
- return True;
-}
-
-Bool
-XkbLibraryVersion(int *libMajorRtrn, int *libMinorRtrn)
-{
- int supported;
-
- if (*libMajorRtrn != XkbMajorVersion) {
- /* version 0.65 is (almost) compatible with 1.00 */
- if ((XkbMajorVersion == 1) &&
- (((*libMajorRtrn) == 0) && ((*libMinorRtrn) == 65)))
- supported = True;
- else
- supported = False;
- }
- else {
- supported = True;
- }
-
- *libMajorRtrn = XkbMajorVersion;
- *libMinorRtrn = XkbMinorVersion;
- return supported;
-}
-
-Bool
-XkbSelectEvents(Display *dpy,
- unsigned int deviceSpec,
- unsigned int affect,
- unsigned int selectAll)
-{
- register xkbSelectEventsReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- xkbi->selected_events &= ~affect;
- xkbi->selected_events |= (affect & selectAll);
- GetReq(kbSelectEvents, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSelectEvents;
- req->deviceSpec = deviceSpec;
- req->affectWhich = (CARD16) affect;
- req->clear = affect & (~selectAll);
- req->selectAll = affect & selectAll;
- if (affect & XkbMapNotifyMask) {
- req->affectMap = XkbAllMapComponentsMask;
- /* the implicit support needs the client info */
- /* even if the client itself doesn't want it */
- if (selectAll & XkbMapNotifyMask)
- req->map = XkbAllMapEventsMask;
- else
- req->map = XkbAllClientInfoMask;
- if (selectAll & XkbMapNotifyMask)
- xkbi->selected_map_details = XkbAllMapEventsMask;
- else
- xkbi->selected_map_details = 0;
- }
- if (affect & XkbNewKeyboardNotifyMask) {
- if (selectAll & XkbNewKeyboardNotifyMask)
- xkbi->selected_nkn_details = XkbAllNewKeyboardEventsMask;
- else
- xkbi->selected_nkn_details = 0;
- if (!(xkbi->xlib_ctrls & XkbLC_IgnoreNewKeyboards)) {
- /* we want it, even if the client doesn't. Don't mess */
- /* around with details -- ask for all of them and throw */
- /* away the ones we don't need */
- req->selectAll |= XkbNewKeyboardNotifyMask;
- }
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbSelectEventDetails(Display *dpy,
- unsigned deviceSpec,
- unsigned eventType,
- unsigned long int affect,
- unsigned long int details)
-{
- register xkbSelectEventsReq *req;
- XkbInfoPtr xkbi;
- int size = 0;
- char *out;
- union {
- CARD8 *c8;
- CARD16 *c16;
- CARD32 *c32;
- } u;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- if (affect & details)
- xkbi->selected_events |= (1 << eventType);
- else
- xkbi->selected_events &= ~(1 << eventType);
- GetReq(kbSelectEvents, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSelectEvents;
- req->deviceSpec = deviceSpec;
- req->clear = req->selectAll = 0;
- if (eventType == XkbMapNotify) {
- /* we need all of the client info, even if the application */
- /* doesn't. Make sure that we always request the stuff */
- /* that the implicit support needs, and just filter out anything */
- /* the client doesn't want later */
- req->affectMap = (CARD16) affect;
- req->map = (CARD16) details | (XkbAllClientInfoMask & affect);
- req->affectWhich = XkbMapNotifyMask;
- xkbi->selected_map_details &= ~affect;
- xkbi->selected_map_details |= (details & affect);
- }
- else {
- req->affectMap = req->map = 0;
- req->affectWhich = (1 << eventType);
- switch (eventType) {
- case XkbNewKeyboardNotify:
- xkbi->selected_nkn_details &= ~affect;
- xkbi->selected_nkn_details |= (details & affect);
- if (!(xkbi->xlib_ctrls & XkbLC_IgnoreNewKeyboards))
- details = (affect & XkbAllNewKeyboardEventsMask);
- case XkbStateNotify:
- case XkbNamesNotify:
- case XkbAccessXNotify:
- case XkbExtensionDeviceNotify:
- size = 2;
- req->length += 1;
- break;
- case XkbControlsNotify:
- case XkbIndicatorStateNotify:
- case XkbIndicatorMapNotify:
- size = 4;
- req->length += 2;
- break;
- case XkbBellNotify:
- case XkbActionMessage:
- case XkbCompatMapNotify:
- size = 1;
- req->length += 1;
- break;
- }
- BufAlloc(char *, out, (((size * 2) + (unsigned) 3) / 4) * 4);
-
- u.c8 = (CARD8 *) out;
- if (size == 2) {
- u.c16[0] = (CARD16) affect;
- u.c16[1] = (CARD16) details;
- }
- else if (size == 4) {
- u.c32[0] = (CARD32) affect;
- u.c32[1] = (CARD32) details;
- }
- else {
- u.c8[0] = (CARD8) affect;
- u.c8[1] = (CARD8) details;
- }
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbLockModifiers(Display *dpy,
- unsigned int deviceSpec,
- unsigned int affect,
- unsigned int values)
-{
- register xkbLatchLockStateReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbLatchLockState, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbLatchLockState;
- req->deviceSpec = deviceSpec;
- req->affectModLocks = affect;
- req->modLocks = values;
- req->lockGroup = False;
- req->groupLock = 0;
-
- req->affectModLatches = req->modLatches = 0;
- req->latchGroup = False;
- req->groupLatch = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbLatchModifiers(Display *dpy,
- unsigned int deviceSpec,
- unsigned int affect,
- unsigned int values)
-{
- register xkbLatchLockStateReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbLatchLockState, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbLatchLockState;
- req->deviceSpec = deviceSpec;
-
- req->affectModLatches = affect;
- req->modLatches = values;
- req->latchGroup = False;
- req->groupLatch = 0;
-
- req->affectModLocks = req->modLocks = 0;
- req->lockGroup = False;
- req->groupLock = 0;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbLockGroup(Display *dpy, unsigned int deviceSpec, unsigned int group)
-{
- register xkbLatchLockStateReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbLatchLockState, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbLatchLockState;
- req->deviceSpec = deviceSpec;
- req->affectModLocks = 0;
- req->modLocks = 0;
- req->lockGroup = True;
- req->groupLock = group;
-
- req->affectModLatches = req->modLatches = 0;
- req->latchGroup = False;
- req->groupLatch = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbLatchGroup(Display *dpy, unsigned int deviceSpec, unsigned int group)
-{
- register xkbLatchLockStateReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbLatchLockState, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbLatchLockState;
- req->deviceSpec = deviceSpec;
-
- req->affectModLatches = 0;
- req->modLatches = 0;
- req->latchGroup = True;
- req->groupLatch = group;
-
- req->affectModLocks = req->modLocks = 0;
- req->lockGroup = False;
- req->groupLock = 0;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-unsigned
-XkbSetXlibControls(Display *dpy, unsigned affect, unsigned values)
-{
- if (!dpy->xkb_info)
- XkbUseExtension(dpy, NULL, NULL);
- if (!dpy->xkb_info)
- return 0;
- affect &= XkbLC_AllControls;
- dpy->xkb_info->xlib_ctrls &= ~affect;
- dpy->xkb_info->xlib_ctrls |= (affect & values);
- return dpy->xkb_info->xlib_ctrls;
-}
-
-unsigned
-XkbGetXlibControls(Display *dpy)
-{
- if (!dpy->xkb_info)
- XkbUseExtension(dpy, NULL, NULL);
- if (!dpy->xkb_info)
- return 0;
- return dpy->xkb_info->xlib_ctrls;
-}
-
-unsigned int
-XkbXlibControlsImplemented(void)
-{
- return XkbLC_AllControls & ~XkbLC_AllComposeControls;
-}
-
-Bool
-XkbSetDebuggingFlags(Display *dpy,
- unsigned int mask,
- unsigned int flags,
- char *msg,
- unsigned int ctrls_mask,
- unsigned int ctrls,
- unsigned int *rtrn_flags,
- unsigned int *rtrn_ctrls)
-{
- register xkbSetDebuggingFlagsReq *req;
- xkbSetDebuggingFlagsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetDebuggingFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetDebuggingFlags;
- req->affectFlags = mask;
- req->flags = flags;
- req->affectCtrls = ctrls_mask;
- req->ctrls = ctrls;
-
- if (msg) {
- char *out;
-
- req->msgLength = (unsigned short) strlen(msg) + 1;
- req->length += (req->msgLength + (unsigned) 3) >> 2;
- BufAlloc(char *, out, ((req->msgLength + (unsigned) 3) / 4) * 4);
- memcpy(out, msg, req->msgLength);
- }
- else
- req->msgLength = 0;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- if (rtrn_flags)
- *rtrn_flags = rep.currentFlags;
- if (rtrn_ctrls)
- *rtrn_ctrls = rep.currentCtrls;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbComputeEffectiveMap(XkbDescPtr xkb,
- XkbKeyTypePtr type,
- unsigned char *map_rtrn)
-{
- register int i;
- unsigned tmp;
- XkbKTMapEntryPtr entry = NULL;
-
- if ((!xkb) || (!type) || (!xkb->server))
- return False;
-
- if (type->mods.vmods != 0) {
- if (!XkbVirtualModsToReal(xkb, type->mods.vmods, &tmp))
- return False;
-
- type->mods.mask = tmp | type->mods.real_mods;
- entry = type->map;
- for (i = 0; i < type->map_count; i++, entry++) {
- tmp = 0;
- if (entry->mods.vmods != 0) {
- if (!XkbVirtualModsToReal(xkb, entry->mods.vmods, &tmp))
- return False;
- if (tmp == 0) {
- entry->active = False;
- continue;
- }
- }
- entry->active = True;
- entry->mods.mask = (entry->mods.real_mods | tmp) & type->mods.mask;
- }
- }
- else {
- type->mods.mask = type->mods.real_mods;
- }
- if (map_rtrn != NULL) {
- bzero(map_rtrn, type->mods.mask + 1);
- for (i = 0; i < type->map_count; i++) {
- if (entry && entry->active) {
- map_rtrn[type->map[i].mods.mask] = type->map[i].level;
- }
- }
- }
- return True;
-}
-
-Status
-XkbGetState(Display *dpy, unsigned deviceSpec, XkbStatePtr rtrn)
-{
- register xkbGetStateReq *req;
- xkbGetStateReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbGetState, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetState;
- req->deviceSpec = deviceSpec;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadImplementation;
- }
- rtrn->mods = rep.mods;
- rtrn->base_mods = rep.baseMods;
- rtrn->latched_mods = rep.latchedMods;
- rtrn->locked_mods = rep.lockedMods;
- rtrn->group = rep.group;
- rtrn->base_group = rep.baseGroup;
- rtrn->latched_group = rep.latchedGroup;
- rtrn->locked_group = rep.lockedGroup;
- rtrn->compat_state = rep.compatState;
- rtrn->grab_mods = rep.grabMods;
- rtrn->compat_grab_mods = rep.compatGrabMods;
- rtrn->lookup_mods = rep.lookupMods;
- rtrn->compat_lookup_mods = rep.compatLookupMods;
- rtrn->ptr_buttons = rep.ptrBtnState;
- UnlockDisplay(dpy);
- SyncHandle();
- return Success;
-}
-
-Bool
-XkbSetDetectableAutoRepeat(Display *dpy, Bool detectable, Bool *supported)
-{
- register xkbPerClientFlagsReq *req;
- xkbPerClientFlagsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbPerClientFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbPerClientFlags;
- req->deviceSpec = XkbUseCoreKbd;
- req->change = XkbPCF_DetectableAutoRepeatMask;
- if (detectable)
- req->value = XkbPCF_DetectableAutoRepeatMask;
- else
- req->value = 0;
- req->ctrlsToChange = req->autoCtrls = req->autoCtrlValues = 0;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- if (supported != NULL)
- *supported = ((rep.supported & XkbPCF_DetectableAutoRepeatMask) != 0);
- return ((rep.value & XkbPCF_DetectableAutoRepeatMask) != 0);
-}
-
-Bool
-XkbGetDetectableAutoRepeat(Display *dpy, Bool *supported)
-{
- register xkbPerClientFlagsReq *req;
- xkbPerClientFlagsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbPerClientFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbPerClientFlags;
- req->deviceSpec = XkbUseCoreKbd;
- req->change = 0;
- req->value = 0;
- req->ctrlsToChange = req->autoCtrls = req->autoCtrlValues = 0;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- if (supported != NULL)
- *supported = ((rep.supported & XkbPCF_DetectableAutoRepeatMask) != 0);
- return ((rep.value & XkbPCF_DetectableAutoRepeatMask) != 0);
-}
-
-Bool
-XkbSetAutoResetControls(Display *dpy,
- unsigned changes,
- unsigned *auto_ctrls,
- unsigned *auto_values)
-{
- register xkbPerClientFlagsReq *req;
- xkbPerClientFlagsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbPerClientFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbPerClientFlags;
- req->change = XkbPCF_AutoResetControlsMask;
- req->deviceSpec = XkbUseCoreKbd;
- req->value = XkbPCF_AutoResetControlsMask;
- req->ctrlsToChange = changes;
- req->autoCtrls = *auto_ctrls;
- req->autoCtrlValues = *auto_values;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- *auto_ctrls = rep.autoCtrls;
- *auto_values = rep.autoCtrlValues;
- return ((rep.value & XkbPCF_AutoResetControlsMask) != 0);
-}
-
-Bool
-XkbGetAutoResetControls(Display *dpy,
- unsigned *auto_ctrls,
- unsigned *auto_ctrl_values)
-{
- register xkbPerClientFlagsReq *req;
- xkbPerClientFlagsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbPerClientFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbPerClientFlags;
- req->deviceSpec = XkbUseCoreKbd;
- req->change = 0;
- req->value = 0;
- req->ctrlsToChange = req->autoCtrls = req->autoCtrlValues = 0;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- if (auto_ctrls)
- *auto_ctrls = rep.autoCtrls;
- if (auto_ctrl_values)
- *auto_ctrl_values = rep.autoCtrlValues;
- return ((rep.value & XkbPCF_AutoResetControlsMask) != 0);
-}
-
-Bool
-XkbSetPerClientControls(Display *dpy, unsigned change, unsigned *values)
-{
- register xkbPerClientFlagsReq *req;
- xkbPerClientFlagsReply rep;
- XkbInfoPtr xkbi;
- unsigned value_hold = *values;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
- (change & ~(XkbPCF_GrabsUseXKBStateMask |
- XkbPCF_LookupStateWhenGrabbed |
- XkbPCF_SendEventUsesXKBState)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbPerClientFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbPerClientFlags;
- req->change = change;
- req->deviceSpec = XkbUseCoreKbd;
- req->value = *values;
- req->ctrlsToChange = req->autoCtrls = req->autoCtrlValues = 0;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- *values = rep.value;
- return ((rep.value & value_hold) != 0);
-}
-
-Bool
-XkbGetPerClientControls(Display *dpy, unsigned *ctrls)
-{
- register xkbPerClientFlagsReq *req;
- xkbPerClientFlagsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
- (ctrls == NULL))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbPerClientFlags, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbPerClientFlags;
- req->deviceSpec = XkbUseCoreKbd;
- req->change = 0;
- req->value = 0;
- req->ctrlsToChange = req->autoCtrls = req->autoCtrlValues = 0;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- *ctrls = (rep.value & (XkbPCF_GrabsUseXKBStateMask |
- XkbPCF_LookupStateWhenGrabbed |
- XkbPCF_SendEventUsesXKBState));
- return (True);
-}
-
-Display *
-XkbOpenDisplay(char *name,
- int *ev_rtrn,
- int *err_rtrn,
- int *major_rtrn,
- int *minor_rtrn,
- int *reason)
-{
- Display *dpy;
- int major_num, minor_num;
-
- if ((major_rtrn != NULL) && (minor_rtrn != NULL)) {
- if (!XkbLibraryVersion(major_rtrn, minor_rtrn)) {
- if (reason != NULL)
- *reason = XkbOD_BadLibraryVersion;
- return NULL;
- }
- }
- else {
- major_num = XkbMajorVersion;
- minor_num = XkbMinorVersion;
- major_rtrn = &major_num;
- minor_rtrn = &minor_num;
- }
- dpy = XOpenDisplay(name);
- if (dpy == NULL) {
- if (reason != NULL)
- *reason = XkbOD_ConnectionRefused;
- return NULL;
- }
- if (!XkbQueryExtension(dpy, NULL, ev_rtrn, err_rtrn,
- major_rtrn, minor_rtrn)) {
- if (reason != NULL) {
- if ((*major_rtrn != 0) || (*minor_rtrn != 0))
- *reason = XkbOD_BadServerVersion;
- else
- *reason = XkbOD_NonXkbServer;
- }
- XCloseDisplay(dpy);
- return NULL;
- }
- if (reason != NULL)
- *reason = XkbOD_Success;
- return dpy;
-}
-
-void
-XkbSetAtomFuncs(XkbInternAtomFunc getAtom, XkbGetAtomNameFunc getName)
-{
- _XkbInternAtomFunc = (getAtom ? getAtom : XInternAtom);
- _XkbGetAtomNameFunc = (getName ? getName : XGetAtomName);
- return;
-}
diff --git a/nx-X11/lib/X11/XKBAlloc.c b/nx-X11/lib/X11/XKBAlloc.c
deleted file mode 100644
index 9c3430c1a..000000000
--- a/nx-X11/lib/X11/XKBAlloc.c
+++ /dev/null
@@ -1,495 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XKBlibint.h"
-#include <nx-X11/extensions/XKBgeom.h>
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-
-/***===================================================================***/
-
-/*ARGSUSED*/
-Status
-XkbAllocCompatMap(XkbDescPtr xkb, unsigned which, unsigned nSI)
-{
- XkbCompatMapPtr compat;
- XkbSymInterpretRec *prev_interpret;
-
- if (!xkb)
- return BadMatch;
- if (xkb->compat) {
- if (xkb->compat->size_si >= nSI)
- return Success;
- compat = xkb->compat;
- compat->size_si = nSI;
- if (compat->sym_interpret == NULL)
- compat->num_si = 0;
- prev_interpret = compat->sym_interpret;
- compat->sym_interpret = _XkbTypedRealloc(compat->sym_interpret,
- nSI, XkbSymInterpretRec);
- if (compat->sym_interpret == NULL) {
- _XkbFree(prev_interpret);
- compat->size_si = compat->num_si = 0;
- return BadAlloc;
- }
- if (compat->num_si != 0) {
- _XkbClearElems(compat->sym_interpret, compat->num_si,
- compat->size_si - 1, XkbSymInterpretRec);
- }
- return Success;
- }
- compat = _XkbTypedCalloc(1, XkbCompatMapRec);
- if (compat == NULL)
- return BadAlloc;
- if (nSI > 0) {
- compat->sym_interpret = _XkbTypedCalloc(nSI, XkbSymInterpretRec);
- if (!compat->sym_interpret) {
- _XkbFree(compat);
- return BadAlloc;
- }
- }
- compat->size_si = nSI;
- compat->num_si = 0;
- bzero((char *) &compat->groups[0], XkbNumKbdGroups * sizeof(XkbModsRec));
- xkb->compat = compat;
- return Success;
-}
-
-
-void
-XkbFreeCompatMap(XkbDescPtr xkb, unsigned which, Bool freeMap)
-{
- register XkbCompatMapPtr compat;
-
- if ((xkb == NULL) || (xkb->compat == NULL))
- return;
- compat = xkb->compat;
- if (freeMap)
- which = XkbAllCompatMask;
- if (which & XkbGroupCompatMask)
- bzero(&compat->groups[0], XkbNumKbdGroups * sizeof(XkbModsRec));
- if (which & XkbSymInterpMask) {
- if ((compat->sym_interpret) && (compat->size_si > 0))
- _XkbFree(compat->sym_interpret);
- compat->size_si = compat->num_si = 0;
- compat->sym_interpret = NULL;
- }
- if (freeMap) {
- _XkbFree(compat);
- xkb->compat = NULL;
- }
- return;
-}
-
-/***===================================================================***/
-
-Status
-XkbAllocNames(XkbDescPtr xkb, unsigned which, int nTotalRG, int nTotalAliases)
-{
- XkbNamesPtr names;
-
- if (xkb == NULL)
- return BadMatch;
- if (xkb->names == NULL) {
- xkb->names = _XkbTypedCalloc(1, XkbNamesRec);
- if (xkb->names == NULL)
- return BadAlloc;
- }
- names = xkb->names;
- if ((which & XkbKTLevelNamesMask) && (xkb->map != NULL) &&
- (xkb->map->types != NULL)) {
- register int i;
- XkbKeyTypePtr type = xkb->map->types;
-
- for (i = 0; i < xkb->map->num_types; i++, type++) {
- if (type->level_names == NULL) {
- type->level_names = _XkbTypedCalloc(type->num_levels, Atom);
- if (type->level_names == NULL)
- return BadAlloc;
- }
- }
- }
- if ((which & XkbKeyNamesMask) && (names->keys == NULL)) {
- if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))
- return BadValue;
- names->keys = _XkbTypedCalloc((xkb->max_key_code + 1), XkbKeyNameRec);
- if (names->keys == NULL)
- return BadAlloc;
- }
- if ((which & XkbKeyAliasesMask) && (nTotalAliases > 0)) {
- if (names->key_aliases == NULL) {
- names->key_aliases = _XkbTypedCalloc(nTotalAliases, XkbKeyAliasRec);
- }
- else if (nTotalAliases > names->num_key_aliases) {
- XkbKeyAliasRec *prev_aliases = names->key_aliases;
-
- names->key_aliases = _XkbTypedRealloc(names->key_aliases,
- nTotalAliases,
- XkbKeyAliasRec);
- if (names->key_aliases != NULL) {
- _XkbClearElems(names->key_aliases, names->num_key_aliases,
- nTotalAliases - 1, XkbKeyAliasRec);
- }
- else {
- _XkbFree(prev_aliases);
- }
- }
- if (names->key_aliases == NULL) {
- names->num_key_aliases = 0;
- return BadAlloc;
- }
- names->num_key_aliases = nTotalAliases;
- }
- if ((which & XkbRGNamesMask) && (nTotalRG > 0)) {
- if (names->radio_groups == NULL) {
- names->radio_groups = _XkbTypedCalloc(nTotalRG, Atom);
- }
- else if (nTotalRG > names->num_rg) {
- Atom *prev_radio_groups = names->radio_groups;
-
- names->radio_groups =
- _XkbTypedRealloc(names->radio_groups, nTotalRG, Atom);
- if (names->radio_groups != NULL) {
- _XkbClearElems(names->radio_groups, names->num_rg, nTotalRG - 1,
- Atom);
- }
- else {
- _XkbFree(prev_radio_groups);
- }
- }
- if (names->radio_groups == NULL)
- return BadAlloc;
- names->num_rg = nTotalRG;
- }
- return Success;
-}
-
-void
-XkbFreeNames(XkbDescPtr xkb, unsigned which, Bool freeMap)
-{
- XkbNamesPtr names;
-
- if ((xkb == NULL) || (xkb->names == NULL))
- return;
- names = xkb->names;
- if (freeMap)
- which = XkbAllNamesMask;
- if (which & XkbKTLevelNamesMask) {
- XkbClientMapPtr map = xkb->map;
-
- if ((map != NULL) && (map->types != NULL)) {
- register int i;
- register XkbKeyTypePtr type;
-
- type = map->types;
- for (i = 0; i < map->num_types; i++, type++) {
- if (type->level_names != NULL) {
- _XkbFree(type->level_names);
- type->level_names = NULL;
- }
- }
- }
- }
- if ((which & XkbKeyNamesMask) && (names->keys != NULL)) {
- _XkbFree(names->keys);
- names->keys = NULL;
- names->num_keys = 0;
- }
- if ((which & XkbKeyAliasesMask) && (names->key_aliases)) {
- _XkbFree(names->key_aliases);
- names->key_aliases = NULL;
- names->num_key_aliases = 0;
- }
- if ((which & XkbRGNamesMask) && (names->radio_groups)) {
- _XkbFree(names->radio_groups);
- names->radio_groups = NULL;
- names->num_rg = 0;
- }
- if (freeMap) {
- _XkbFree(names);
- xkb->names = NULL;
- }
- return;
-}
-
-/***===================================================================***/
-
-/*ARGSUSED*/
-Status
-XkbAllocControls(XkbDescPtr xkb, unsigned which)
-{
- if (xkb == NULL)
- return BadMatch;
-
- if (xkb->ctrls == NULL) {
- xkb->ctrls = _XkbTypedCalloc(1, XkbControlsRec);
- if (!xkb->ctrls)
- return BadAlloc;
- }
- return Success;
-}
-
-/*ARGSUSED*/
-void
-XkbFreeControls(XkbDescPtr xkb, unsigned which, Bool freeMap)
-{
- if (freeMap && (xkb != NULL) && (xkb->ctrls != NULL)) {
- _XkbFree(xkb->ctrls);
- xkb->ctrls = NULL;
- }
- return;
-}
-
-/***===================================================================***/
-
-Status
-XkbAllocIndicatorMaps(XkbDescPtr xkb)
-{
- if (xkb == NULL)
- return BadMatch;
- if (xkb->indicators == NULL) {
- xkb->indicators = _XkbTypedCalloc(1, XkbIndicatorRec);
- if (!xkb->indicators)
- return BadAlloc;
- }
- return Success;
-}
-
-void
-XkbFreeIndicatorMaps(XkbDescPtr xkb)
-{
- if ((xkb != NULL) && (xkb->indicators != NULL)) {
- _XkbFree(xkb->indicators);
- xkb->indicators = NULL;
- }
- return;
-}
-
-/***====================================================================***/
-
-XkbDescRec *
-XkbAllocKeyboard(void)
-{
- XkbDescRec *xkb;
-
- xkb = _XkbTypedCalloc(1, XkbDescRec);
- if (xkb)
- xkb->device_spec = XkbUseCoreKbd;
- return xkb;
-}
-
-void
-XkbFreeKeyboard(XkbDescPtr xkb, unsigned which, Bool freeAll)
-{
- if (xkb == NULL)
- return;
- if (freeAll)
- which = XkbAllComponentsMask;
- if (which & XkbClientMapMask)
- XkbFreeClientMap(xkb, XkbAllClientInfoMask, True);
- if (which & XkbServerMapMask)
- XkbFreeServerMap(xkb, XkbAllServerInfoMask, True);
- if (which & XkbCompatMapMask)
- XkbFreeCompatMap(xkb, XkbAllCompatMask, True);
- if (which & XkbIndicatorMapMask)
- XkbFreeIndicatorMaps(xkb);
- if (which & XkbNamesMask)
- XkbFreeNames(xkb, XkbAllNamesMask, True);
- if ((which & XkbGeometryMask) && (xkb->geom != NULL))
- XkbFreeGeometry(xkb->geom, XkbGeomAllMask, True);
- if (which & XkbControlsMask)
- XkbFreeControls(xkb, XkbAllControlsMask, True);
- if (freeAll)
- _XkbFree(xkb);
- return;
-}
-
-/***====================================================================***/
-
-XkbDeviceLedInfoPtr
-XkbAddDeviceLedInfo(XkbDeviceInfoPtr devi, unsigned ledClass, unsigned ledId)
-{
- XkbDeviceLedInfoPtr devli;
- register int i;
-
- if ((!devi) || (!XkbSingleXIClass(ledClass)) || (!XkbSingleXIId(ledId)))
- return NULL;
- for (i = 0, devli = devi->leds; i < devi->num_leds; i++, devli++) {
- if ((devli->led_class == ledClass) && (devli->led_id == ledId))
- return devli;
- }
- if (devi->num_leds >= devi->sz_leds) {
- XkbDeviceLedInfoRec *prev_leds = devi->leds;
-
- if (devi->sz_leds > 0)
- devi->sz_leds *= 2;
- else
- devi->sz_leds = 1;
- devi->leds = _XkbTypedRealloc(devi->leds, devi->sz_leds,
- XkbDeviceLedInfoRec);
- if (!devi->leds) {
- _XkbFree(prev_leds);
- devi->sz_leds = devi->num_leds = 0;
- return NULL;
- }
- i = devi->num_leds;
- for (devli = &devi->leds[i]; i < devi->sz_leds; i++, devli++) {
- bzero(devli, sizeof(XkbDeviceLedInfoRec));
- devli->led_class = XkbXINone;
- devli->led_id = XkbXINone;
- }
- }
- devli = &devi->leds[devi->num_leds++];
- bzero(devli, sizeof(XkbDeviceLedInfoRec));
- devli->led_class = ledClass;
- devli->led_id = ledId;
- return devli;
-}
-
-Status
-XkbResizeDeviceButtonActions(XkbDeviceInfoPtr devi, unsigned newTotal)
-{
- XkbAction *prev_btn_acts;
-
- if ((!devi) || (newTotal > 255))
- return BadValue;
- if ((devi->btn_acts != NULL) && (newTotal == devi->num_btns))
- return Success;
- if (newTotal == 0) {
- if (devi->btn_acts != NULL) {
- _XkbFree(devi->btn_acts);
- devi->btn_acts = NULL;
- }
- devi->num_btns = 0;
- return Success;
- }
- prev_btn_acts = devi->btn_acts;
- devi->btn_acts = _XkbTypedRealloc(devi->btn_acts, newTotal, XkbAction);
- if (devi->btn_acts == NULL) {
- _XkbFree(prev_btn_acts);
- devi->num_btns = 0;
- return BadAlloc;
- }
- if (newTotal > devi->num_btns) {
- XkbAction *act;
-
- act = &devi->btn_acts[devi->num_btns];
- bzero((char *) act, (newTotal - devi->num_btns) * sizeof(XkbAction));
- }
- devi->num_btns = newTotal;
- return Success;
-}
-
-/*ARGSUSED*/
-XkbDeviceInfoPtr
-XkbAllocDeviceInfo(unsigned deviceSpec, unsigned nButtons, unsigned szLeds)
-{
- XkbDeviceInfoPtr devi;
-
- devi = _XkbTypedCalloc(1, XkbDeviceInfoRec);
- if (devi != NULL) {
- devi->device_spec = deviceSpec;
- devi->has_own_state = False;
- devi->num_btns = 0;
- devi->btn_acts = NULL;
- if (nButtons > 0) {
- devi->num_btns = nButtons;
- devi->btn_acts = _XkbTypedCalloc(nButtons, XkbAction);
- if (!devi->btn_acts) {
- _XkbFree(devi);
- return NULL;
- }
- }
- devi->dflt_kbd_fb = XkbXINone;
- devi->dflt_led_fb = XkbXINone;
- devi->num_leds = 0;
- devi->sz_leds = 0;
- devi->leds = NULL;
- if (szLeds > 0) {
- devi->sz_leds = szLeds;
- devi->leds = _XkbTypedCalloc(szLeds, XkbDeviceLedInfoRec);
- if (!devi->leds) {
- _XkbFree(devi->btn_acts);
- _XkbFree(devi);
- return NULL;
- }
- }
- }
- return devi;
-}
-
-
-void
-XkbFreeDeviceInfo(XkbDeviceInfoPtr devi, unsigned which, Bool freeDevI)
-{
- if (devi) {
- if (freeDevI) {
- which = XkbXI_AllDeviceFeaturesMask;
- if (devi->name) {
- _XkbFree(devi->name);
- devi->name = NULL;
- }
- }
- if ((which & XkbXI_ButtonActionsMask) && (devi->btn_acts)) {
- _XkbFree(devi->btn_acts);
- devi->num_btns = 0;
- devi->btn_acts = NULL;
- }
- if ((which & XkbXI_IndicatorsMask) && (devi->leds)) {
- register int i;
-
- if ((which & XkbXI_IndicatorsMask) == XkbXI_IndicatorsMask) {
- _XkbFree(devi->leds);
- devi->sz_leds = devi->num_leds = 0;
- devi->leds = NULL;
- }
- else {
- XkbDeviceLedInfoPtr devli;
-
- for (i = 0, devli = devi->leds; i < devi->num_leds;
- i++, devli++) {
- if (which & XkbXI_IndicatorMapsMask)
- bzero((char *) &devli->maps[0], sizeof(devli->maps));
- else
- bzero((char *) &devli->names[0], sizeof(devli->names));
- }
- }
- }
- if (freeDevI)
- _XkbFree(devi);
- }
- return;
-}
diff --git a/nx-X11/lib/X11/XKBBell.c b/nx-X11/lib/X11/XKBBell.c
deleted file mode 100644
index d3e3a57ff..000000000
--- a/nx-X11/lib/X11/XKBBell.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-
-Bool
-XkbDeviceBell(Display *dpy,
- Window window,
- int deviceID,
- int bellClass,
- int bellID,
- int percent,
- Atom name)
-{
- register xkbBellReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbBell, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbBell;
- req->deviceSpec = deviceID;
- req->window = (CARD32) window;
- req->bellClass = (CARD16) bellClass;
- req->bellID = (CARD16) bellID;
- req->percent = percent;
- req->forceSound = False;
- req->eventOnly = False;
- req->pitch = 0;
- req->duration = 0;
- req->name = (CARD32) name;
- req->pad1 = 0;
- req->pad2 = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbForceDeviceBell(Display *dpy,
- int deviceID,
- int bellClass,
- int bellID,
- int percent)
-{
- register xkbBellReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbBell, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbBell;
- req->deviceSpec = deviceID;
- req->window = (CARD32) None;
- req->bellClass = (CARD16) bellClass;
- req->bellID = (CARD16) bellID;
- req->percent = percent;
- req->forceSound = True;
- req->eventOnly = False;
- req->pitch = 0;
- req->duration = 0;
- req->name = None;
- req->pad1 = 0;
- req->pad2 = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbDeviceBellEvent(Display *dpy,
- Window window,
- int deviceID,
- int bellClass,
- int bellID,
- int percent,
- Atom name)
-{
- register xkbBellReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbBell, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbBell;
- req->deviceSpec = deviceID;
- req->window = (CARD32) window;
- req->bellClass = (CARD16) bellClass;
- req->bellID = (CARD16) bellID;
- req->percent = percent;
- req->forceSound = False;
- req->eventOnly = True;
- req->pitch = 0;
- req->duration = 0;
- req->name = (CARD32) name;
- req->pad1 = 0;
- req->pad2 = 0;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbBell(Display *dpy, Window window, int percent, Atom name)
-{
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL))) {
- XBell(dpy, percent);
- return False;
- }
- return XkbDeviceBell(dpy, window, XkbUseCoreKbd,
- XkbDfltXIClass, XkbDfltXIId, percent, name);
-}
-
-Bool
-XkbForceBell(Display *dpy, int percent)
-{
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL))) {
- XBell(dpy, percent);
- return False;
- }
- return XkbForceDeviceBell(dpy, XkbUseCoreKbd, XkbDfltXIClass, XkbDfltXIId,
- percent);
-}
-
-Bool
-XkbBellEvent(Display *dpy, Window window, int percent, Atom name)
-{
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL))) {
- return False;
- }
- /* class 0 = KbdFeedbackClass (X Input Extension) */
- return XkbDeviceBellEvent(dpy, window, XkbUseCoreKbd,
- XkbDfltXIClass, XkbDfltXIId, percent, name);
-}
diff --git a/nx-X11/lib/X11/XKBBind.c b/nx-X11/lib/X11/XKBBind.c
deleted file mode 100644
index c679dc552..000000000
--- a/nx-X11/lib/X11/XKBBind.c
+++ /dev/null
@@ -1,784 +0,0 @@
-/*
-
-Copyright 1985, 1987, 1994, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
- /* the new monsters ate the old ones */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "XKBlib.h"
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/keysym.h>
-#include <stdio.h>
-#include <ctype.h>
-
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-#define AllMods (ShiftMask|LockMask|ControlMask| \
- Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)
-
-static int _XkbLoadDpy(Display *dpy);
-
-struct _XKeytrans {
- struct _XKeytrans *next; /* next on list */
- char *string; /* string to return when the time comes */
- int len; /* length of string (since NULL is legit) */
- KeySym key; /* keysym rebound */
- unsigned int state; /* modifier state */
- KeySym *modifiers; /* modifier keysyms you want */
- int mlen; /* length of modifier list */
-};
-
-KeySym
-XkbKeycodeToKeysym(Display *dpy,
-#if NeedWidePrototypes
- unsigned int kc,
-#else
- KeyCode kc,
-#endif
- int group,
- int level)
-{
- XkbDescRec *xkb;
-
- if (_XkbUnavailable(dpy))
- return NoSymbol;
-
- _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
-
- xkb = dpy->xkb_info->desc;
- if ((kc < xkb->min_key_code) || (kc > xkb->max_key_code))
- return NoSymbol;
-
- if ((group < 0) || (level < 0) || (group >= XkbKeyNumGroups(xkb, kc)))
- return NoSymbol;
- if (level >= XkbKeyGroupWidth(xkb, kc, group)) {
- /* for compatibility with the core protocol, _always_ allow */
- /* two symbols in the first two groups. If either of the */
- /* two is of type ONE_LEVEL, just replicate the first symbol */
- if ((group > XkbGroup2Index) || (XkbKeyGroupWidth(xkb, kc, group) != 1)
- || (level != 1)) {
- return NoSymbol;
- }
- level = 0;
- }
- return XkbKeySymEntry(xkb, kc, level, group);
-}
-
-KeySym
-XKeycodeToKeysym(Display *dpy,
-#if NeedWidePrototypes
- unsigned int kc,
-#else
- KeyCode kc,
-#endif
- int col)
-{
- XkbDescRec *xkb;
-
- if (_XkbUnavailable(dpy))
- return _XKeycodeToKeysym(dpy, kc, col);
-
- _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
-
- xkb = dpy->xkb_info->desc;
- if ((kc < xkb->min_key_code) || (kc > xkb->max_key_code))
- return NoSymbol;
-
- if (col > 3) {
- int lastSym, tmp, nGrp;
-
- lastSym = 3;
- nGrp = XkbKeyNumGroups(xkb, kc);
- if ((nGrp > 0) &&
- ((tmp = XkbKeyGroupWidth(xkb, kc, XkbGroup1Index)) > 2)) {
- if (col <= (lastSym + tmp - 2))
- return XkbKeycodeToKeysym(dpy, kc, XkbGroup1Index,
- col - lastSym + 2);
- lastSym += tmp - 2;
- }
- if ((nGrp > 1) &&
- ((tmp = XkbKeyGroupWidth(xkb, kc, XkbGroup2Index)) > 2)) {
- if (col <= (lastSym + tmp - 2))
- return XkbKeycodeToKeysym(dpy, kc, XkbGroup2Index,
- col - lastSym + 2);
- lastSym += tmp - 2;
- }
- if (nGrp > 2) {
- tmp = XkbKeyGroupWidth(xkb, kc, XkbGroup3Index);
- if (col <= lastSym + tmp)
- return XkbKeycodeToKeysym(dpy, kc, XkbGroup3Index,
- col - lastSym);
- lastSym += tmp;
- }
- if (nGrp > 3) {
- tmp = XkbKeyGroupWidth(xkb, kc, XkbGroup4Index);
- if (col <= lastSym + tmp)
- return XkbKeycodeToKeysym(dpy, kc, XkbGroup4Index,
- col - lastSym);
- }
- return NoSymbol;
- }
- return XkbKeycodeToKeysym(dpy, kc, (col >> 1), (col & 1));
-}
-
-KeyCode
-XKeysymToKeycode(Display *dpy, KeySym ks)
-{
- register int i, j, gotOne;
-
- if (_XkbUnavailable(dpy))
- return _XKeysymToKeycode(dpy, ks);
- _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
-
- j = 0;
- do {
- register XkbDescRec *xkb = dpy->xkb_info->desc;
- gotOne = 0;
- for (i = dpy->min_keycode; i <= dpy->max_keycode; i++) {
- if (j < (int) XkbKeyNumSyms(xkb, i)) {
- gotOne = 1;
- if ((XkbKeySym(xkb, i, j) == ks))
- return i;
- }
- }
- j++;
- } while (gotOne);
- return 0;
-}
-
-static int
-_XkbComputeModmap(Display *dpy)
-{
- register XkbDescPtr xkb;
-
- xkb = dpy->xkb_info->desc;
- if (XkbGetUpdatedMap(dpy, XkbModifierMapMask, xkb) == Success)
- return 1;
- return 0;
-}
-
-unsigned
-XkbKeysymToModifiers(Display *dpy, KeySym ks)
-{
- XkbDescRec *xkb;
- register int i, j;
- register KeySym *pSyms;
- CARD8 mods;
-
- if (_XkbUnavailable(dpy))
- return _XKeysymToModifiers(dpy, ks);
- _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
-
- if (_XkbNeedModmap(dpy->xkb_info) && (!_XkbComputeModmap(dpy)))
- return _XKeysymToModifiers(dpy, ks);
-
- xkb = dpy->xkb_info->desc;
- mods = 0;
- for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
- pSyms = XkbKeySymsPtr(xkb, i);
- for (j = XkbKeyNumSyms(xkb, i) - 1; j >= 0; j--) {
- if (pSyms[j] == ks) {
- mods |= xkb->map->modmap[i];
- break;
- }
- }
- }
- return mods;
-}
-
-KeySym
-XLookupKeysym(register XKeyEvent * event, int col)
-{
- Display *dpy = event->display;
-
- if (_XkbUnavailable(dpy))
- return _XLookupKeysym(event, col);
- _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
- return XKeycodeToKeysym(dpy, event->keycode, col);
-}
-
- /*
- * Not a public entry point -- XkbTranslateKey is an obsolete name
- * that is preserved here so that functions linked against the old
- * version will continue to work in a shared library environment.
- */
-int
-XkbTranslateKey(register Display *dpy,
- KeyCode key,
- register unsigned int mods,
- unsigned int *mods_rtrn,
- KeySym *keysym_rtrn);
-
-int
-XkbTranslateKey(register Display *dpy,
- KeyCode key,
- register unsigned int mods,
- unsigned int *mods_rtrn,
- KeySym *keysym_rtrn)
-{
- return XkbLookupKeySym(dpy, key, mods, mods_rtrn, keysym_rtrn);
-}
-
-Bool
-XkbLookupKeySym(register Display *dpy,
- KeyCode key,
- register unsigned int mods,
- unsigned int *mods_rtrn,
- KeySym *keysym_rtrn)
-{
- if (_XkbUnavailable(dpy))
- return _XTranslateKey(dpy, key, mods, mods_rtrn, keysym_rtrn);
- _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
- return XkbTranslateKeyCode(dpy->xkb_info->desc, key, mods, mods_rtrn,
- keysym_rtrn);
-}
-
-Bool
-XkbTranslateKeyCode(register XkbDescPtr xkb,
- KeyCode key,
- register unsigned int mods,
- unsigned int *mods_rtrn,
- KeySym *keysym_rtrn)
-{
- XkbKeyTypeRec *type;
- int col, nKeyGroups;
- unsigned preserve, effectiveGroup;
- KeySym *syms;
-
- if (mods_rtrn != NULL)
- *mods_rtrn = 0;
-
- nKeyGroups = XkbKeyNumGroups(xkb, key);
- if ((!XkbKeycodeInRange(xkb, key)) || (nKeyGroups == 0)) {
- if (keysym_rtrn != NULL)
- *keysym_rtrn = NoSymbol;
- return False;
- }
-
- syms = XkbKeySymsPtr(xkb, key);
-
- /* find the offset of the effective group */
- col = 0;
- effectiveGroup = XkbGroupForCoreState(mods);
- if (effectiveGroup >= nKeyGroups) {
- unsigned groupInfo = XkbKeyGroupInfo(xkb, key);
-
- switch (XkbOutOfRangeGroupAction(groupInfo)) {
- default:
- effectiveGroup %= nKeyGroups;
- break;
- case XkbClampIntoRange:
- effectiveGroup = nKeyGroups - 1;
- break;
- case XkbRedirectIntoRange:
- effectiveGroup = XkbOutOfRangeGroupNumber(groupInfo);
- if (effectiveGroup >= nKeyGroups)
- effectiveGroup = 0;
- break;
- }
- }
- col = effectiveGroup * XkbKeyGroupsWidth(xkb, key);
- type = XkbKeyKeyType(xkb, key, effectiveGroup);
-
- preserve = 0;
- if (type->map) { /* find the column (shift level) within the group */
- register int i;
- register XkbKTMapEntryPtr entry;
-
- for (i = 0, entry = type->map; i < type->map_count; i++, entry++) {
- if ((entry->active) &&
- ((mods & type->mods.mask) == entry->mods.mask)) {
- col += entry->level;
- if (type->preserve)
- preserve = type->preserve[i].mask;
- break;
- }
- }
- }
-
- if (keysym_rtrn != NULL)
- *keysym_rtrn = syms[col];
- if (mods_rtrn) {
- *mods_rtrn = type->mods.mask & (~preserve);
- /* The Motif VTS doesn't get the help callback called if help
- * is bound to Shift+<whatever>, and it appears as though it
- * is XkbTranslateKeyCode that is causing the problem. The
- * core X version of XTranslateKey always OR's in ShiftMask
- * and LockMask for mods_rtrn, so this "fix" keeps this behavior
- * and solves the VTS problem.
- */
- if ((xkb->dpy) && (xkb->dpy->xkb_info) &&
- (xkb->dpy->xkb_info->
- xlib_ctrls & XkbLC_AlwaysConsumeShiftAndLock)) {
- *mods_rtrn |= (ShiftMask | LockMask);
- }
- }
- return (syms[col] != NoSymbol);
-}
-
-Status
-XkbRefreshKeyboardMapping(register XkbMapNotifyEvent * event)
-{
- Display *dpy = event->display;
- XkbInfoPtr xkbi;
-
- if (_XkbUnavailable(dpy)) {
- _XRefreshKeyboardMapping((XMappingEvent *) event);
- return Success;
- }
- xkbi = dpy->xkb_info;
-
- if (((event->type & 0x7f) - xkbi->codes->first_event) != XkbEventCode)
- return BadMatch;
- if (event->xkb_type == XkbNewKeyboardNotify) {
- _XkbReloadDpy(dpy);
- return Success;
- }
- if (event->xkb_type == XkbMapNotify) {
- XkbMapChangesRec changes;
- Status rtrn;
-
- if (xkbi->flags & XkbMapPending)
- changes = xkbi->changes;
- else
- bzero(&changes, sizeof(changes));
- XkbNoteMapChanges(&changes, event, XKB_XLIB_MAP_MASK);
- if ((rtrn = XkbGetMapChanges(dpy, xkbi->desc, &changes)) != Success) {
-#ifdef DEBUG
- fprintf(stderr, "Internal Error! XkbGetMapChanges failed:\n");
-#endif
- xkbi->changes = changes;
- }
- else if (xkbi->flags & XkbMapPending) {
- xkbi->flags &= ~XkbMapPending;
- bzero(&xkbi->changes, sizeof(XkbMapChangesRec));
- }
- return rtrn;
- }
- return BadMatch;
-}
-
-int
-XRefreshKeyboardMapping(register XMappingEvent * event)
-{
- XkbEvent *xkbevent = (XkbEvent *) event;
- Display *dpy = event->display;
- XkbMapChangesRec changes;
- XkbInfoPtr xkbi;
-
- /* always do this for input methods, which still use the old keymap */
- (void) _XRefreshKeyboardMapping(event);
-
- if (_XkbUnavailable(dpy))
- return 1;
-
- xkbi = dpy->xkb_info;
-
- if (((event->type & 0x7f) - xkbi->codes->first_event) == XkbEventCode)
- return XkbRefreshKeyboardMapping(&xkbevent->map);
-
- if (xkbi->flags & XkbXlibNewKeyboard) {
- _XkbReloadDpy(dpy);
- return 1;
- }
-
- if ((xkbi->flags & XkbMapPending) || (event->request == MappingKeyboard)) {
- if (xkbi->flags & XkbMapPending) {
- changes = xkbi->changes;
- _XkbNoteCoreMapChanges(&changes, event, XKB_XLIB_MAP_MASK);
- }
- else {
- bzero(&changes, sizeof(changes));
- changes.changed = XkbKeySymsMask;
- if (xkbi->desc->min_key_code < xkbi->desc->max_key_code) {
- changes.first_key_sym = xkbi->desc->min_key_code;
- changes.num_key_syms = xkbi->desc->max_key_code -
- xkbi->desc->min_key_code + 1;
- }
- else {
- changes.first_key_sym = event->first_keycode;
- changes.num_key_syms = event->count;
- }
- }
-
- if (XkbGetMapChanges(dpy, xkbi->desc, &changes) != Success) {
-#ifdef DEBUG
- fprintf(stderr, "Internal Error! XkbGetMapChanges failed:\n");
- if (changes.changed & XkbKeyTypesMask) {
- int first = changes.first_type;
- int last = changes.first_type + changes.num_types - 1;
-
- fprintf(stderr, " types: %d..%d\n", first, last);
- }
- if (changes.changed & XkbKeySymsMask) {
- int first = changes.first_key_sym;
- int last = changes.first_key_sym + changes.num_key_syms - 1;
-
- fprintf(stderr, " symbols: %d..%d\n", first, last);
- }
- if (changes.changed & XkbKeyActionsMask) {
- int first = changes.first_key_act;
- int last = changes.first_key_act + changes.num_key_acts - 1;
-
- fprintf(stderr, " acts: %d..%d\n", first, last);
- }
- if (changes.changed & XkbKeyBehaviorsMask) {
- int first = changes.first_key_behavior;
- int last = first + changes.num_key_behaviors - 1;
-
- fprintf(stderr, " behaviors: %d..%d\n", first, last);
- }
- if (changes.changed & XkbVirtualModsMask) {
- fprintf(stderr, "virtual mods: 0x%04x\n", changes.vmods);
- }
- if (changes.changed & XkbExplicitComponentsMask) {
- int first = changes.first_key_explicit;
- int last = first + changes.num_key_explicit - 1;
-
- fprintf(stderr, " explicit: %d..%d\n", first, last);
- }
-#endif
- }
- LockDisplay(dpy);
- if (xkbi->flags & XkbMapPending) {
- xkbi->flags &= ~XkbMapPending;
- bzero(&xkbi->changes, sizeof(XkbMapChangesRec));
- }
- UnlockDisplay(dpy);
- }
- if (event->request == MappingModifier) {
- LockDisplay(dpy);
- if (xkbi->desc->map->modmap) {
- _XkbFree(xkbi->desc->map->modmap);
- xkbi->desc->map->modmap = NULL;
- }
- if (dpy->key_bindings) {
- register struct _XKeytrans *p;
-
- for (p = dpy->key_bindings; p; p = p->next) {
- register int i;
-
- p->state = 0;
- if (p->mlen > 0) {
- for (i = 0; i < p->mlen; i++) {
- p->state |= XkbKeysymToModifiers(dpy, p->modifiers[i]);
- }
- if (p->state)
- p->state &= AllMods;
- else
- p->state = AnyModifier;
- }
- }
- }
- UnlockDisplay(dpy);
- }
- return 1;
-}
-
-static int
-_XkbLoadDpy(Display *dpy)
-{
- XkbInfoPtr xkbi;
- unsigned query, oldEvents;
- XkbDescRec *desc;
-
- if (!XkbUseExtension(dpy, NULL, NULL))
- return 0;
-
- xkbi = dpy->xkb_info;
- query = XkbAllClientInfoMask;
- desc = XkbGetMap(dpy, query, XkbUseCoreKbd);
- if (!desc) {
-#ifdef DEBUG
- fprintf(stderr, "Warning! XkbGetMap failed!\n");
-#endif
- return 0;
- }
- LockDisplay(dpy);
- xkbi->desc = desc;
-
- UnlockDisplay(dpy);
- oldEvents = xkbi->selected_events;
- if (!(xkbi->xlib_ctrls & XkbLC_IgnoreNewKeyboards)) {
- XkbSelectEventDetails(dpy, xkbi->desc->device_spec,
- XkbNewKeyboardNotify,
- XkbNKN_KeycodesMask | XkbNKN_DeviceIDMask,
- XkbNKN_KeycodesMask | XkbNKN_DeviceIDMask);
- }
- XkbSelectEventDetails(dpy, xkbi->desc->device_spec, XkbMapNotify,
- XkbAllClientInfoMask, XkbAllClientInfoMask);
- LockDisplay(dpy);
- xkbi->selected_events = oldEvents;
- UnlockDisplay(dpy);
- return 1;
-}
-
-void
-_XkbReloadDpy(Display *dpy)
-{
- XkbInfoPtr xkbi;
- XkbDescRec *desc;
- unsigned oldDeviceID;
-
- if (_XkbUnavailable(dpy))
- return;
-
- xkbi = dpy->xkb_info;
- LockDisplay(dpy);
- if (xkbi->desc) {
- oldDeviceID = xkbi->desc->device_spec;
- XkbFreeKeyboard(xkbi->desc, XkbAllComponentsMask, True);
- xkbi->desc = NULL;
- xkbi->flags &= ~(XkbMapPending | XkbXlibNewKeyboard);
- xkbi->changes.changed = 0;
- }
- else
- oldDeviceID = XkbUseCoreKbd;
- UnlockDisplay(dpy);
- desc = XkbGetMap(dpy, XkbAllClientInfoMask, XkbUseCoreKbd);
- if (!desc)
- return;
- LockDisplay(dpy);
- xkbi->desc = desc;
- UnlockDisplay(dpy);
-
- if (desc->device_spec != oldDeviceID) {
- /* transfer(?) event masks here */
-#ifdef NOTYET
- unsigned oldEvents;
-
- oldEvents = xkbi->selected_events;
- XkbSelectEventDetails(dpy, xkbi->desc->device_spec, XkbMapNotify,
- XkbAllMapComponentsMask, XkbAllClientInfoMask);
- LockDisplay(dpy);
- xkbi->selected_events = oldEvents;
- UnlockDisplay(dpy);
-#endif
- }
- return;
-}
-
-int
-XkbTranslateKeySym(register Display *dpy,
- register KeySym *sym_rtrn,
- unsigned int mods,
- char *buffer,
- int nbytes,
- int *extra_rtrn)
-{
- register XkbInfoPtr xkb;
- XkbKSToMBFunc cvtr;
- XPointer priv;
- char tmp[4];
- int n;
-
- xkb = dpy->xkb_info;
- if (!xkb->cvt.KSToMB) {
- _XkbGetConverters(_XkbGetCharset(), &xkb->cvt);
- _XkbGetConverters("ISO8859-1", &xkb->latin1cvt);
- }
-
- if (extra_rtrn)
- *extra_rtrn = 0;
-
- if ((buffer == NULL) || (nbytes == 0)) {
- buffer = tmp;
- nbytes = 4;
- }
-
- /* see if symbol rebound, if so, return that string. */
- n = XkbLookupKeyBinding(dpy, *sym_rtrn, mods, buffer, nbytes, extra_rtrn);
- if (n)
- return n;
-
- if (nbytes > 0)
- buffer[0] = '\0';
-
- if (xkb->cvt.KSToUpper && (mods & LockMask)) {
- *sym_rtrn = (*xkb->cvt.KSToUpper) (*sym_rtrn);
- }
- if (xkb->xlib_ctrls & XkbLC_ForceLatin1Lookup) {
- cvtr = xkb->latin1cvt.KSToMB;
- priv = xkb->latin1cvt.KSToMBPriv;
- }
- else {
- cvtr = xkb->cvt.KSToMB;
- priv = xkb->cvt.KSToMBPriv;
- }
-
- n = (*cvtr) (priv, *sym_rtrn, buffer, nbytes, extra_rtrn);
-
- if ((!xkb->cvt.KSToUpper) && (mods & LockMask)) {
- register int i;
- int change;
-
- for (i = change = 0; i < n; i++) {
- char ch = toupper(buffer[i]);
- change = (change || (buffer[i] != ch));
- buffer[i] = ch;
- }
- if (change) {
- if (n == 1)
- *sym_rtrn =
- (*xkb->cvt.MBToKS) (xkb->cvt.MBToKSPriv, buffer, n, NULL);
- else
- *sym_rtrn = NoSymbol;
- }
- }
-
- if (mods & ControlMask) {
- if (n == 1) {
- buffer[0] = XkbToControl(buffer[0]);
- if (nbytes > 1)
- buffer[1] = '\0';
- return 1;
- }
- if (nbytes > 0)
- buffer[0] = '\0';
- return 0;
- }
- return n;
-}
-
-int
-XLookupString(register XKeyEvent *event,
- char *buffer,
- int nbytes,
- KeySym *keysym,
- XComposeStatus *status)
-{
- KeySym dummy;
- int rtrnLen;
- unsigned int new_mods;
- Display *dpy = event->display;
-
- if (keysym == NULL)
- keysym = &dummy;
- if (!XkbLookupKeySym(dpy, event->keycode, event->state, &new_mods, keysym))
- return 0;
- new_mods = (event->state & (~new_mods));
-
- /* find the group where a symbol can be converted to control one */
- if (new_mods & ControlMask && *keysym > 0x7F &&
- (dpy->xkb_info->xlib_ctrls & XkbLC_ControlFallback)) {
- XKeyEvent tmp_ev = *event;
- KeySym tmp_keysym;
- unsigned int tmp_new_mods;
-
- if (_XkbUnavailable(dpy)) {
- tmp_ev.state = event->state ^ dpy->mode_switch;
- if (XkbLookupKeySym(dpy, tmp_ev.keycode, tmp_ev.state,
- &tmp_new_mods, &tmp_keysym) &&
- tmp_keysym != NoSymbol && tmp_keysym < 0x80) {
- *keysym = tmp_keysym;
- }
- }
- else {
- int n = XkbKeyNumGroups(dpy->xkb_info->desc, tmp_ev.keycode);
- int i;
-
- for (i = 0; i < n; i++) {
- if (XkbGroupForCoreState(event->state) == i)
- continue;
- tmp_ev.state = XkbBuildCoreState(tmp_ev.state, i);
- if (XkbLookupKeySym(dpy, tmp_ev.keycode, tmp_ev.state,
- &tmp_new_mods, &tmp_keysym) &&
- tmp_keysym != NoSymbol && tmp_keysym < 0x80) {
- *keysym = tmp_keysym;
- new_mods = (event->state & (~tmp_new_mods));
- break;
- }
- }
- }
- }
-
- /* We *should* use the new_mods (which does not contain any modifiers */
- /* that were used to compute the symbol here, but pre-XKB XLookupString */
- /* did not and we have to remain compatible. Sigh. */
- if (_XkbUnavailable(dpy) ||
- (dpy->xkb_info->xlib_ctrls & XkbLC_ConsumeLookupMods) == 0)
- new_mods = event->state;
-
- rtrnLen = XkbLookupKeyBinding(dpy, *keysym, new_mods, buffer, nbytes, NULL);
- if (rtrnLen > 0)
- return rtrnLen;
-
- return XkbTranslateKeySym(dpy, keysym, new_mods, buffer, nbytes, NULL);
-}
-
-
-int
-XkbLookupKeyBinding(Display *dpy,
- register KeySym sym,
- unsigned int mods,
- char *buffer,
- int nbytes,
- int *extra_rtrn)
-{
- register struct _XKeytrans *p;
-
- if (extra_rtrn)
- *extra_rtrn = 0;
- for (p = dpy->key_bindings; p; p = p->next) {
- if (((mods & AllMods) == p->state) && (sym == p->key)) {
- int tmp = p->len;
-
- if (tmp > nbytes) {
- if (extra_rtrn)
- *extra_rtrn = (tmp - nbytes);
- tmp = nbytes;
- }
- memcpy(buffer, p->string, tmp);
- if (tmp < nbytes)
- buffer[tmp] = '\0';
- return tmp;
- }
- }
- return 0;
-}
-
-char
-XkbToControl(char ch)
-{
- register char c = ch;
-
- if ((c >= '@' && c < '\177') || c == ' ')
- c &= 0x1F;
- else if (c == '2')
- c = '\000';
- else if (c >= '3' && c <= '7')
- c -= ('3' - '\033');
- else if (c == '8')
- c = '\177';
- else if (c == '/')
- c = '_' & 0x1F;
- return c;
-}
diff --git a/nx-X11/lib/X11/XKBCompat.c b/nx-X11/lib/X11/XKBCompat.c
deleted file mode 100644
index a5222b56e..000000000
--- a/nx-X11/lib/X11/XKBCompat.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#define NEED_MAP_READERS
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-Status
-_XkbReadGetCompatMapReply(Display *dpy,
- xkbGetCompatMapReply *rep,
- XkbDescPtr xkb,
- int *nread_rtrn)
-{
- register int i;
- XkbReadBufferRec buf;
-
- if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
- return BadAlloc;
-
- if (nread_rtrn)
- *nread_rtrn = (int) rep->length * 4;
-
- i = rep->firstSI + rep->nSI;
- if ((!xkb->compat) &&
- (XkbAllocCompatMap(xkb, XkbAllCompatMask, i) != Success))
- return BadAlloc;
-
- if (rep->nSI != 0) {
- XkbSymInterpretRec *syms;
- xkbSymInterpretWireDesc *wire;
-
- wire = (xkbSymInterpretWireDesc *) _XkbGetReadBufferPtr(&buf,
- rep->nSI * SIZEOF (xkbSymInterpretWireDesc));
- if (wire == NULL)
- goto BAILOUT;
- syms = &xkb->compat->sym_interpret[rep->firstSI];
-
- for (i = 0; i < rep->nSI; i++, syms++, wire++) {
- syms->sym = wire->sym;
- syms->mods = wire->mods;
- syms->match = wire->match;
- syms->virtual_mod = wire->virtualMod;
- syms->flags = wire->flags;
- syms->act = *((XkbAnyAction *) &wire->act);
- }
- xkb->compat->num_si += rep->nSI;
- }
-
- if (rep->groups & XkbAllGroupsMask) {
- register unsigned bit, nGroups;
- xkbModsWireDesc *wire;
-
- for (i = 0, nGroups = 0, bit = 1; i < XkbNumKbdGroups; i++, bit <<= 1) {
- if (rep->groups & bit)
- nGroups++;
- }
- wire = (xkbModsWireDesc *)
- _XkbGetReadBufferPtr(&buf, nGroups * SIZEOF(xkbModsWireDesc));
- if (wire == NULL)
- goto BAILOUT;
- for (i = 0, bit = 1; i < XkbNumKbdGroups; i++, bit <<= 1) {
- if ((rep->groups & bit) == 0)
- continue;
- xkb->compat->groups[i].mask = wire->mask;
- xkb->compat->groups[i].real_mods = wire->realMods;
- xkb->compat->groups[i].vmods = wire->virtualMods;
- wire++;
- }
- }
- i = _XkbFreeReadBuffer(&buf);
- if (i)
- fprintf(stderr, "CompatMapReply! Bad length (%d extra bytes)\n", i);
- if (i || buf.error)
- return BadLength;
- return Success;
- BAILOUT:
- _XkbFreeReadBuffer(&buf);
- return BadLength;
-}
-
-Status
-XkbGetCompatMap(Display *dpy, unsigned which, XkbDescPtr xkb)
-{
- register xkbGetCompatMapReq *req;
- xkbGetCompatMapReply rep;
- Status status;
- XkbInfoPtr xkbi;
-
- if ((!dpy) || (!xkb) || (dpy->flags & XlibDisplayNoXkb) ||
- ((xkb->dpy != NULL) && (xkb->dpy != dpy)) ||
- (!dpy->xkb_info && (!XkbUseExtension(dpy, NULL, NULL))))
- return BadAccess;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbGetCompatMap, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetCompatMap;
- req->deviceSpec = xkb->device_spec;
- if (which & XkbSymInterpMask)
- req->getAllSI = True;
- else
- req->getAllSI = False;
- req->firstSI = req->nSI = 0;
-
- if (which & XkbGroupCompatMask)
- req->groups = XkbAllGroupsMask;
- else
- req->groups = 0;
-
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadLength;
- }
- if (xkb->dpy == NULL)
- xkb->dpy = dpy;
- if (xkb->device_spec == XkbUseCoreKbd)
- xkb->device_spec = rep.deviceID;
-
- status = _XkbReadGetCompatMapReply(dpy, &rep, xkb, NULL);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-static Bool
-_XkbWriteSetCompatMap(Display *dpy, xkbSetCompatMapReq *req, XkbDescPtr xkb)
-{
- CARD16 firstSI;
- CARD16 nSI;
- int size;
- register int i, nGroups;
- register unsigned bit;
- unsigned groups;
- char *buf;
-
- firstSI = req->firstSI;
- nSI = req->nSI;
- size = nSI * SIZEOF(xkbSymInterpretWireDesc);
- nGroups = 0;
- groups = req->groups;
- if (groups & XkbAllGroupsMask) {
- for (i = 0, bit = 1; i < XkbNumKbdGroups; i++, bit <<= 1) {
- if (groups & bit)
- nGroups++;
- }
- size += SIZEOF(xkbModsWireDesc) * nGroups;
- }
- req->length += size / 4;
- BufAlloc(char *, buf, size);
-
- if (!buf)
- return False;
-
- if (nSI) {
- XkbSymInterpretPtr sym = &xkb->compat->sym_interpret[firstSI];
- xkbSymInterpretWireDesc *wire = (xkbSymInterpretWireDesc *) buf;
-
- for (i = 0; i < nSI; i++, wire++, sym++) {
- wire->sym = (CARD32) sym->sym;
- wire->mods = sym->mods;
- wire->match = sym->match;
- wire->flags = sym->flags;
- wire->virtualMod = sym->virtual_mod;
- memcpy(&wire->act, &sym->act, sz_xkbActionWireDesc);
- }
- buf += nSI * SIZEOF(xkbSymInterpretWireDesc);
- }
- if (groups & XkbAllGroupsMask) {
- xkbModsWireDesc *out = (xkbModsWireDesc *) buf;
-
- for (i = 0, bit = 1; i < XkbNumKbdGroups; i++, bit <<= 1) {
- if ((groups & bit) != 0) {
- out->mask = xkb->compat->groups[i].mask;
- out->realMods = xkb->compat->groups[i].real_mods;
- out->virtualMods = xkb->compat->groups[i].vmods;
- out++;
- }
- }
- buf += nGroups * SIZEOF(xkbModsWireDesc);
- }
- return True;
-}
-
-Bool
-XkbSetCompatMap(Display *dpy, unsigned which, XkbDescPtr xkb,
- Bool updateActions)
-{
- register xkbSetCompatMapReq *req;
- Status ok;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) || (dpy != xkb->dpy) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!xkb->compat) ||
- ((which & XkbSymInterpMask) && (!xkb->compat->sym_interpret)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetCompatMap, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetCompatMap;
- req->deviceSpec = xkb->device_spec;
- req->recomputeActions = updateActions;
- if (which & XkbSymInterpMask) {
- req->truncateSI = True;
- req->firstSI = 0;
- req->nSI = xkb->compat->num_si;
- }
- else {
- req->truncateSI = False;
- req->firstSI = 0;
- req->nSI = 0;
- }
- if (which & XkbGroupCompatMask)
- req->groups = XkbAllGroupsMask;
- else
- req->groups = 0;
- ok = _XkbWriteSetCompatMap(dpy, req, xkb);
- UnlockDisplay(dpy);
- SyncHandle();
- return ok;
-}
diff --git a/nx-X11/lib/X11/XKBCtrls.c b/nx-X11/lib/X11/XKBCtrls.c
deleted file mode 100644
index 2e8546d92..000000000
--- a/nx-X11/lib/X11/XKBCtrls.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-
-static xkbSetControlsReq *
-_XkbGetSetControlsReq(Display *dpy, XkbInfoPtr xkbi, unsigned int deviceSpec)
-{
- xkbSetControlsReq *req;
-
- GetReq(kbSetControls, req);
- bzero(req, SIZEOF(xkbSetControlsReq));
- req->reqType = xkbi->codes->major_opcode;
- req->length = (SIZEOF(xkbSetControlsReq) >> 2);
- req->xkbReqType = X_kbSetControls;
- req->deviceSpec = deviceSpec;
- return req;
-}
-
-Bool
-XkbSetAutoRepeatRate(Display *dpy,
- unsigned int deviceSpec,
- unsigned int timeout,
- unsigned int interval)
-{
- register xkbSetControlsReq *req;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- req = _XkbGetSetControlsReq(dpy, dpy->xkb_info, deviceSpec);
- req->changeCtrls = XkbRepeatKeysMask;
- req->repeatDelay = timeout;
- req->repeatInterval = interval;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbGetAutoRepeatRate(Display *dpy,
- unsigned int deviceSpec,
- unsigned int *timeoutp,
- unsigned int *intervalp)
-{
- register xkbGetControlsReq *req;
- xkbGetControlsReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbGetControls, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetControls;
- req->deviceSpec = deviceSpec;
- if (!_XReply(dpy, (xReply *) &rep,
- (SIZEOF(xkbGetControlsReply) - SIZEOF(xReply)) >> 2, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- *timeoutp = rep.repeatDelay;
- *intervalp = rep.repeatInterval;
- return True;
-}
-
-Bool
-XkbSetServerInternalMods(Display *dpy,
- unsigned deviceSpec,
- unsigned affectReal,
- unsigned realValues,
- unsigned affectVirtual,
- unsigned virtualValues)
-{
- register xkbSetControlsReq *req;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- req = _XkbGetSetControlsReq(dpy, dpy->xkb_info, deviceSpec);
- req->affectInternalMods = affectReal;
- req->internalMods = realValues;
- req->affectInternalVMods = affectVirtual;
- req->internalVMods = virtualValues;
- req->changeCtrls = XkbInternalModsMask;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbSetIgnoreLockMods(Display *dpy,
- unsigned int deviceSpec,
- unsigned affectReal,
- unsigned realValues,
- unsigned affectVirtual,
- unsigned virtualValues)
-{
- register xkbSetControlsReq *req;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- req = _XkbGetSetControlsReq(dpy, dpy->xkb_info, deviceSpec);
- req->affectIgnoreLockMods = affectReal;
- req->ignoreLockMods = realValues;
- req->affectIgnoreLockVMods = affectVirtual;
- req->ignoreLockVMods = virtualValues;
- req->changeCtrls = XkbIgnoreLockModsMask;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbChangeEnabledControls(Display *dpy,
- unsigned deviceSpec,
- unsigned affect,
- unsigned values)
-{
- register xkbSetControlsReq *req;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- req = _XkbGetSetControlsReq(dpy, dpy->xkb_info, deviceSpec);
- req->affectEnabledCtrls = affect;
- req->enabledCtrls = (affect & values);
- req->changeCtrls = XkbControlsEnabledMask;
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Status
-XkbGetControls(Display *dpy, unsigned long which, XkbDescPtr xkb)
-{
- register xkbGetControlsReq *req;
- xkbGetControlsReply rep;
- XkbControlsPtr ctrls;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- if ((!xkb) || (!which))
- return BadMatch;
-
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbGetControls, req);
- if (!xkb->ctrls) {
- xkb->ctrls = _XkbTypedCalloc(1, XkbControlsRec);
- if (!xkb->ctrls) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadAlloc;
- }
- }
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetControls;
- req->deviceSpec = xkb->device_spec;
- if (!_XReply(dpy, (xReply *) &rep,
- (SIZEOF(xkbGetControlsReply) - SIZEOF(xReply)) >> 2, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadImplementation;
- }
- if (xkb->device_spec == XkbUseCoreKbd)
- xkb->device_spec = rep.deviceID;
- ctrls = xkb->ctrls;
- if (which & XkbControlsEnabledMask)
- ctrls->enabled_ctrls = rep.enabledCtrls;
- ctrls->num_groups = rep.numGroups;
- if (which & XkbGroupsWrapMask)
- ctrls->groups_wrap = rep.groupsWrap;
- if (which & XkbInternalModsMask) {
- ctrls->internal.mask = rep.internalMods;
- ctrls->internal.real_mods = rep.internalRealMods;
- ctrls->internal.vmods = rep.internalVMods;
- }
- if (which & XkbIgnoreLockModsMask) {
- ctrls->ignore_lock.mask = rep.ignoreLockMods;
- ctrls->ignore_lock.real_mods = rep.ignoreLockRealMods;
- ctrls->ignore_lock.vmods = rep.ignoreLockVMods;
- }
- if (which & XkbRepeatKeysMask) {
- ctrls->repeat_delay = rep.repeatDelay;
- ctrls->repeat_interval = rep.repeatInterval;
- }
- if (which & XkbSlowKeysMask)
- ctrls->slow_keys_delay = rep.slowKeysDelay;
- if (which & XkbBounceKeysMask)
- ctrls->debounce_delay = rep.debounceDelay;
- if (which & XkbMouseKeysMask) {
- ctrls->mk_dflt_btn = rep.mkDfltBtn;
- }
- if (which & XkbMouseKeysAccelMask) {
- ctrls->mk_delay = rep.mkDelay;
- ctrls->mk_interval = rep.mkInterval;
- ctrls->mk_time_to_max = rep.mkTimeToMax;
- ctrls->mk_max_speed = rep.mkMaxSpeed;
- ctrls->mk_curve = rep.mkCurve;
- }
- if (which & XkbAccessXKeysMask)
- ctrls->ax_options = rep.axOptions;
- if (which & XkbStickyKeysMask) {
- ctrls->ax_options &= ~XkbAX_SKOptionsMask;
- ctrls->ax_options |= rep.axOptions & XkbAX_SKOptionsMask;
- }
- if (which & XkbAccessXFeedbackMask) {
- ctrls->ax_options &= ~XkbAX_FBOptionsMask;
- ctrls->ax_options |= rep.axOptions & XkbAX_FBOptionsMask;
- }
- if (which & XkbAccessXTimeoutMask) {
- ctrls->ax_timeout = rep.axTimeout;
- ctrls->axt_ctrls_mask = rep.axtCtrlsMask;
- ctrls->axt_ctrls_values = rep.axtCtrlsValues;
- ctrls->axt_opts_mask = rep.axtOptsMask;
- ctrls->axt_opts_values = rep.axtOptsValues;
- }
- if (which & XkbPerKeyRepeatMask) {
- memcpy(ctrls->per_key_repeat, rep.perKeyRepeat, XkbPerKeyBitArraySize);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return Success;
-}
-
-Bool
-XkbSetControls(Display *dpy, unsigned long which, XkbDescPtr xkb)
-{
- register xkbSetControlsReq *req;
- XkbControlsPtr ctrls;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!xkb) || (!xkb->ctrls))
- return False;
-
- ctrls = xkb->ctrls;
- LockDisplay(dpy);
- req = _XkbGetSetControlsReq(dpy, dpy->xkb_info, xkb->device_spec);
- req->changeCtrls = (CARD32) which;
- if (which & XkbInternalModsMask) {
- req->affectInternalMods = ~0;
- req->internalMods = ctrls->internal.real_mods;
- req->affectInternalVMods = ~0;
- req->internalVMods = ctrls->internal.vmods;
- }
- if (which & XkbIgnoreLockModsMask) {
- req->affectIgnoreLockMods = ~0;
- req->ignoreLockMods = ctrls->ignore_lock.real_mods;
- req->affectIgnoreLockVMods = ~0;
- req->ignoreLockVMods = ctrls->ignore_lock.vmods;
- }
- if (which & XkbControlsEnabledMask) {
- req->affectEnabledCtrls = XkbAllBooleanCtrlsMask;
- req->enabledCtrls = ctrls->enabled_ctrls;
- }
- if (which & XkbRepeatKeysMask) {
- req->repeatDelay = ctrls->repeat_delay;
- req->repeatInterval = ctrls->repeat_interval;
- }
- if (which & XkbSlowKeysMask)
- req->slowKeysDelay = ctrls->slow_keys_delay;
- if (which & XkbBounceKeysMask)
- req->debounceDelay = ctrls->debounce_delay;
- if (which & XkbMouseKeysMask) {
- req->mkDfltBtn = ctrls->mk_dflt_btn;
- }
- if (which & XkbGroupsWrapMask)
- req->groupsWrap = ctrls->groups_wrap;
- if (which &
- (XkbAccessXKeysMask | XkbStickyKeysMask | XkbAccessXFeedbackMask))
- req->axOptions = ctrls->ax_options;
- if (which & XkbMouseKeysAccelMask) {
- req->mkDelay = ctrls->mk_delay;
- req->mkInterval = ctrls->mk_interval;
- req->mkTimeToMax = ctrls->mk_time_to_max;
- req->mkMaxSpeed = ctrls->mk_max_speed;
- req->mkCurve = ctrls->mk_curve;
- }
- if (which & XkbAccessXTimeoutMask) {
- req->axTimeout = ctrls->ax_timeout;
- req->axtCtrlsMask = ctrls->axt_ctrls_mask;
- req->axtCtrlsValues = ctrls->axt_ctrls_values;
- req->axtOptsMask = ctrls->axt_opts_mask;
- req->axtOptsValues = ctrls->axt_opts_values;
- }
- if (which & XkbPerKeyRepeatMask) {
- memcpy(req->perKeyRepeat, ctrls->per_key_repeat, XkbPerKeyBitArraySize);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-/***====================================================================***/
-
-void
-XkbNoteControlsChanges(XkbControlsChangesPtr old,
- XkbControlsNotifyEvent *new,
- unsigned int wanted)
-{
- old->changed_ctrls |= (new->changed_ctrls & wanted);
- if (new->changed_ctrls & XkbControlsEnabledMask & wanted)
- old->enabled_ctrls_changes ^= new->enabled_ctrl_changes;
- /* num_groups_changed?? */
- return;
-}
diff --git a/nx-X11/lib/X11/XKBCvt.c b/nx-X11/lib/X11/XKBCvt.c
deleted file mode 100644
index c42c3af1c..000000000
--- a/nx-X11/lib/X11/XKBCvt.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
-
-Copyright 1988, 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <nx-X11/X.h>
-#include <nx-X11/Xlib.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XlcPubI.h"
-#include "Ximint.h"
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xmd.h>
-#define XK_LATIN1
-#define XK_PUBLISHING
-#include <nx-X11/keysym.h>
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-#include <nx-X11/Xlocale.h>
-#include <ctype.h>
-#include <nx-X11/Xos.h>
-
-static int
-_XkbHandleSpecialSym(KeySym keysym, char *buffer, int nbytes, int *extra_rtrn)
-{
-
- /* try to convert to Latin-1, handling ctrl */
- if (!(((keysym >= XK_BackSpace) && (keysym <= XK_Clear)) ||
- (keysym == XK_Return) || (keysym == XK_Escape) ||
- (keysym == XK_KP_Space) || (keysym == XK_KP_Tab) ||
- (keysym == XK_KP_Enter) ||
- ((keysym >= XK_KP_Multiply) && (keysym <= XK_KP_9)) ||
- (keysym == XK_KP_Equal) || (keysym == XK_Delete)))
- return 0;
-
- if (nbytes < 1) {
- if (extra_rtrn)
- *extra_rtrn = 1;
- return 0;
- }
- /* if X keysym, convert to ascii by grabbing low 7 bits */
- if (keysym == XK_KP_Space)
- buffer[0] = XK_space & 0x7F; /* patch encoding botch */
- else if (keysym == XK_hyphen)
- buffer[0] = (char) (XK_minus & 0xFF); /* map to equiv character */
- else
- buffer[0] = (char) (keysym & 0x7F);
- return 1;
-}
-
-/*ARGSUSED*/
-static int
-_XkbKSToKnownSet(XPointer priv,
- KeySym keysym,
- char *buffer,
- int nbytes,
- int *extra_rtrn)
-{
- char tbuf[8], *buf;
-
- if (extra_rtrn)
- *extra_rtrn = 0;
-
- /* convert "dead" diacriticals for dumb applications */
- if ((keysym & 0xffffff00) == 0xfe00) {
- switch (keysym) {
- case XK_dead_grave: keysym = XK_grave; break;
- case XK_dead_acute: keysym = XK_acute; break;
- case XK_dead_circumflex: keysym = XK_asciicircum; break;
- case XK_dead_tilde: keysym = XK_asciitilde; break;
- case XK_dead_macron: keysym = XK_macron; break;
- case XK_dead_breve: keysym = XK_breve; break;
- case XK_dead_abovedot: keysym = XK_abovedot; break;
- case XK_dead_diaeresis: keysym = XK_diaeresis; break;
- case XK_dead_abovering: keysym = XK_degree; break;
- case XK_dead_doubleacute: keysym = XK_doubleacute; break;
- case XK_dead_caron: keysym = XK_caron; break;
- case XK_dead_cedilla: keysym = XK_cedilla; break;
- case XK_dead_ogonek: keysym = XK_ogonek; break;
- case XK_dead_iota: keysym = XK_Greek_iota; break;
-#ifdef XK_KATAKANA
- case XK_dead_voiced_sound: keysym = XK_voicedsound; break;
- case XK_dead_semivoiced_sound: keysym = XK_semivoicedsound; break;
-#endif
- }
- }
-
- if (nbytes < 1)
- buf = tbuf;
- else
- buf = buffer;
-
- if ((keysym & 0xffffff00) == 0xff00) {
- return _XkbHandleSpecialSym(keysym, buf, nbytes, extra_rtrn);
- }
- return _XimGetCharCode(priv, keysym, (unsigned char *) buf, nbytes);
-}
-
-typedef struct _XkbToKS {
- unsigned prefix;
- char *map;
-} XkbToKS;
-
-/*ARGSUSED*/
-static KeySym
-_XkbKnownSetToKS(XPointer priv, char *buffer, int nbytes, Status *status)
-{
- if (nbytes != 1)
- return NoSymbol;
- if (((buffer[0] & 0x80) == 0) && (buffer[0] >= 32))
- return buffer[0];
- else if ((buffer[0] & 0x7f) >= 32) {
- XkbToKS *map = (XkbToKS *) priv;
-
- if (map) {
- if (map->map)
- return map->prefix | map->map[buffer[0] & 0x7f];
- else
- return map->prefix | buffer[0];
- }
- return buffer[0];
- }
- return NoSymbol;
-}
-
-static KeySym
-__XkbDefaultToUpper(KeySym sym)
-{
- KeySym lower, upper;
-
- XConvertCase(sym, &lower, &upper);
- return upper;
-}
-
-#ifdef XKB_EXTEND_LOOKUP_STRING
-static int
-Strcmp(char *str1, char *str2)
-{
- char str[256];
- char c, *s;
-
- /*
- * unchecked strings from the environment can end up here, so check
- * the length before copying.
- */
- if (strlen(str1) >= sizeof(str)) /* almost certain it's a mismatch */
- return 1;
-
- for (s = str; (c = *str1++);) {
- if (isupper(c))
- c = tolower(c);
- *s++ = c;
- }
- *s = '\0';
- return (strcmp(str, str2));
-}
-#endif
-
-int
-_XkbGetConverters(const char *encoding_name, XkbConverters * cvt_rtrn)
-{
- if (!cvt_rtrn)
- return 0;
-
- cvt_rtrn->KSToMB = _XkbKSToKnownSet;
- cvt_rtrn->KSToMBPriv = _XimGetLocaleCode(encoding_name);
- cvt_rtrn->MBToKS = _XkbKnownSetToKS;
- cvt_rtrn->MBToKSPriv = NULL;
- cvt_rtrn->KSToUpper = __XkbDefaultToUpper;
- return 1;
-}
-
-/***====================================================================***/
-
-/*
- * The function _XkbGetCharset seems to be missnamed as what it seems to
- * be used for is to determine the encoding-name for the locale. ???
- */
-
-#ifdef XKB_EXTEND_LOOKUP_STRING
-
-/*
- * XKB_EXTEND_LOOKUP_STRING is not used by the SI. It is used by various
- * X Consortium/X Project Team members, so we leave it in the source as
- * an simplify integration by these companies.
- */
-
-#define CHARSET_FILE "/usr/lib/X11/input/charsets"
-static char *_XkbKnownLanguages =
- "c=ascii:da,de,en,es,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:"
- "eo=iso8859-3:sp=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:he=iso8859-8:"
- "tr=iso8859-9:lt,lv=iso8859-13:et,fi=iso8859-15:ru=koi8-r:uk=koi8-u:"
- "th,th_TH,th_TH.iso8859-11=iso8859-11:th_TH.TIS620=tis620:hy=armscii-8:"
- "vi=tcvn-5712:ka=georgian-academy:be,bg=microsoft-cp1251";
-
-char *
-_XkbGetCharset(void)
-{
- /*
- * PAGE USAGE TUNING: explicitly initialize to move these to data
- * instead of bss
- */
- static char buf[100] = { 0 };
- char lang[256];
- char *start, *tmp, *end, *next, *set;
- char *country, *charset;
- char *locale;
-
- tmp = getenv("_XKB_CHARSET");
- if (tmp)
- return tmp;
- locale = setlocale(LC_CTYPE, NULL);
-
- if (locale == NULL)
- return NULL;
-
- if (strlen(locale) >= sizeof(lang))
- return NULL;
-
- for (tmp = lang; *tmp = *locale++; tmp++) {
- if (isupper(*tmp))
- *tmp = tolower(*tmp);
- }
- country = strchr(lang, '_');
- if (country) {
- *country++ = '\0';
- charset = strchr(country, '.');
- if (charset)
- *charset++ = '\0';
- if (charset) {
- strncpy(buf, charset, 99);
- buf[99] = '\0';
- return buf;
- }
- }
- else {
- charset = NULL;
- }
-
- if ((tmp = getenv("_XKB_LOCALE_CHARSETS")) != NULL) {
- start = _XkbAlloc(strlen(tmp) + 1);
- strcpy(start, tmp);
- tmp = start;
- }
- else {
- struct stat sbuf;
- FILE *file;
- char *cf = CHARSET_FILE;
-
-#ifndef S_ISREG
-# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
-#endif
-
- if ((stat(cf, &sbuf) == 0) && S_ISREG(sbuf.st_mode) &&
- (file = fopen(cf, "r"))) {
- tmp = _XkbAlloc(sbuf.st_size + 1);
- if (tmp != NULL) {
- sbuf.st_size = (long) fread(tmp, 1, sbuf.st_size, file);
- tmp[sbuf.st_size] = '\0';
- }
- fclose(file);
- }
- }
-
- if (tmp == NULL) {
- tmp = _XkbAlloc(strlen(_XkbKnownLanguages) + 1);
- if (!tmp)
- return NULL;
- strcpy(tmp, _XkbKnownLanguages);
- }
- start = tmp;
- do {
- if ((set = strchr(tmp, '=')) == NULL)
- break;
- *set++ = '\0';
- if ((next = strchr(set, ':')) != NULL)
- *next++ = '\0';
- while (tmp && *tmp) {
- if ((end = strchr(tmp, ',')) != NULL)
- *end++ = '\0';
- if (Strcmp(tmp, lang) == 0) {
- strncpy(buf, set, 100);
- buf[99] = '\0';
- Xfree(start);
- return buf;
- }
- tmp = end;
- }
- tmp = next;
- } while (tmp && *tmp);
- Xfree(start);
- return NULL;
-}
-#else
-char *
-_XkbGetCharset(void)
-{
- char *tmp;
- XLCd lcd;
-
- tmp = getenv("_XKB_CHARSET");
- if (tmp)
- return tmp;
-
- lcd = _XlcCurrentLC();
- if (lcd)
- return XLC_PUBLIC(lcd, encoding_name);
-
- return NULL;
-}
-#endif
diff --git a/nx-X11/lib/X11/XKBExtDev.c b/nx-X11/lib/X11/XKBExtDev.c
deleted file mode 100644
index cb40ecd04..000000000
--- a/nx-X11/lib/X11/XKBExtDev.c
+++ /dev/null
@@ -1,843 +0,0 @@
-/************************************************************
-Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#define NEED_MAP_READERS
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-#include <nx-X11/extensions/XI.h>
-
-/***====================================================================***/
-
-void
-XkbNoteDeviceChanges(XkbDeviceChangesPtr old,
- XkbExtensionDeviceNotifyEvent *new,
- unsigned int wanted)
-{
- if ((!old) || (!new) || (!wanted) || ((new->reason & wanted) == 0))
- return;
- if ((wanted & new->reason) & XkbXI_ButtonActionsMask) {
- if (old->changed & XkbXI_ButtonActionsMask) {
- int first, last, newLast;
-
- if (new->first_btn < old->first_btn)
- first = new->first_btn;
- else
- first = old->first_btn;
- last = old->first_btn + old->num_btns - 1;
- newLast = new->first_btn + new->num_btns - 1;
- if (newLast > last)
- last = newLast;
- old->first_btn = first;
- old->num_btns = (last - first) + 1;
- }
- else {
- old->changed |= XkbXI_ButtonActionsMask;
- old->first_btn = new->first_btn;
- old->num_btns = new->num_btns;
- }
- }
- if ((wanted & new->reason) & XkbXI_IndicatorsMask) {
- XkbDeviceLedChangesPtr this;
-
- if (old->changed & XkbXI_IndicatorsMask) {
- XkbDeviceLedChangesPtr found = NULL;
-
- for (this = &old->leds; this && (!found); this = this->next) {
- if ((this->led_class == new->led_class) &&
- (this->led_id == new->led_id)) {
- found = this;
- }
- }
- if (!found) {
- found = _XkbTypedCalloc(1, XkbDeviceLedChangesRec);
- if (!found)
- return;
- found->next = old->leds.next;
- found->led_class = new->led_class;
- found->led_id = new->led_id;
- old->leds.next = found;
- }
- if ((wanted & new->reason) & XkbXI_IndicatorNamesMask)
- found->defined = new->leds_defined;
- }
- else {
- old->changed |= ((wanted & new->reason) & XkbXI_IndicatorsMask);
- old->leds.led_class = new->led_class;
- old->leds.led_id = new->led_id;
- old->leds.defined = new->leds_defined;
- if (old->leds.next) {
- XkbDeviceLedChangesPtr next;
-
- for (this = old->leds.next; this; this = next) {
- next = this->next;
- _XkbFree(this);
- }
- old->leds.next = NULL;
- }
- }
- }
- return;
-}
-
-/***====================================================================***/
-
-static Status
-_XkbReadDeviceLedInfo(XkbReadBufferPtr buf,
- unsigned present,
- XkbDeviceInfoPtr devi)
-{
- register unsigned i, bit;
- XkbDeviceLedInfoPtr devli;
- xkbDeviceLedsWireDesc *wireli;
-
- wireli = _XkbGetTypedRdBufPtr(buf, 1, xkbDeviceLedsWireDesc);
- if (!wireli)
- return BadLength;
- devli = XkbAddDeviceLedInfo(devi, wireli->ledClass, wireli->ledID);
- if (!devli)
- return BadAlloc;
- devli->phys_indicators = wireli->physIndicators;
-
- if (present & XkbXI_IndicatorStateMask)
- devli->state = wireli->state;
-
- if (present & XkbXI_IndicatorNamesMask) {
- devli->names_present = wireli->namesPresent;
- if (devli->names_present) {
- for (i = 0, bit = 1; i < XkbNumIndicators; i++, bit <<= 1) {
- if (wireli->namesPresent & bit) {
- if (!_XkbCopyFromReadBuffer(buf,
- (char *) &devli->names[i], 4))
- return BadLength;
- }
- }
- }
- }
-
- if (present & XkbXI_IndicatorMapsMask) {
- devli->maps_present = wireli->mapsPresent;
- if (devli->maps_present) {
- XkbIndicatorMapPtr im;
- xkbIndicatorMapWireDesc *wireim;
-
- for (i = 0, bit = 1; i < XkbNumIndicators; i++, bit <<= 1) {
- if (wireli->mapsPresent & bit) {
- wireim =
- _XkbGetTypedRdBufPtr(buf, 1, xkbIndicatorMapWireDesc);
- if (!wireim)
- return BadAlloc;
- im = &devli->maps[i];
- im->flags = wireim->flags;
- im->which_groups = wireim->whichGroups;
- im->groups = wireim->groups;
- im->which_mods = wireim->whichMods;
- im->mods.mask = wireim->mods;
- im->mods.real_mods = wireim->realMods;
- im->mods.vmods = wireim->virtualMods;
- im->ctrls = wireim->ctrls;
- }
- }
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadGetDeviceInfoReply(Display *dpy,
- xkbGetDeviceInfoReply *rep,
- XkbDeviceInfoPtr devi)
-{
- XkbReadBufferRec buf;
- XkbAction *act;
- int tmp;
-
- if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
- return BadAlloc;
-
- if ((rep->totalBtns > 0) && (rep->totalBtns != devi->num_btns)) {
- tmp = XkbResizeDeviceButtonActions(devi, rep->totalBtns);
- if (tmp != Success)
- return tmp;
- }
- if (rep->nBtnsWanted > 0) {
- if (((unsigned short) rep->firstBtnWanted + rep->nBtnsWanted)
- >= devi->num_btns)
- goto BAILOUT;
- act = &devi->btn_acts[rep->firstBtnWanted];
- bzero((char *) act, (rep->nBtnsWanted * sizeof(XkbAction)));
- }
-
- _XkbFree(devi->name);
- if (!_XkbGetReadBufferCountedString(&buf, &devi->name))
- goto BAILOUT;
- if (rep->nBtnsRtrn > 0) {
- int size;
-
- if (((unsigned short) rep->firstBtnRtrn + rep->nBtnsRtrn)
- >= devi->num_btns)
- goto BAILOUT;
- act = &devi->btn_acts[rep->firstBtnRtrn];
- size = rep->nBtnsRtrn * SIZEOF(xkbActionWireDesc);
- if (!_XkbCopyFromReadBuffer(&buf, (char *) act, size))
- goto BAILOUT;
- }
- if (rep->nDeviceLedFBs > 0) {
- register int i;
-
- for (i = 0; i < rep->nDeviceLedFBs; i++) {
- if ((tmp = _XkbReadDeviceLedInfo(&buf, rep->present, devi))
- != Success)
- return tmp;
- }
- }
- tmp = _XkbFreeReadBuffer(&buf);
- if (tmp)
- fprintf(stderr, "GetDeviceInfo! Bad length (%d extra bytes)\n", tmp);
- if (tmp || buf.error)
- return BadLength;
- return Success;
- BAILOUT:
- _XkbFreeReadBuffer(&buf);
- return BadLength;
-}
-
-XkbDeviceInfoPtr
-XkbGetDeviceInfo(Display *dpy,
- unsigned which,
- unsigned deviceSpec,
- unsigned class,
- unsigned id)
-{
- register xkbGetDeviceInfoReq *req;
- xkbGetDeviceInfoReply rep;
- Status status;
- XkbDeviceInfoPtr devi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return NULL;
- LockDisplay(dpy);
- GetReq(kbGetDeviceInfo, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetDeviceInfo;
- req->deviceSpec = deviceSpec;
- req->wanted = which;
- req->allBtns = ((which & XkbXI_ButtonActionsMask) != 0);
- req->firstBtn = req->nBtns = 0;
- req->ledClass = class;
- req->ledID = id;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return NULL;
- }
- devi = XkbAllocDeviceInfo(rep.deviceID, rep.totalBtns, rep.nDeviceLedFBs);
- if (devi) {
- devi->supported = rep.supported;
- devi->unsupported = rep.unsupported;
- devi->type = rep.devType;
- devi->has_own_state = rep.hasOwnState;
- devi->dflt_kbd_fb = rep.dfltKbdFB;
- devi->dflt_led_fb = rep.dfltLedFB;
- status = _XkbReadGetDeviceInfoReply(dpy, &rep, devi);
- if (status != Success) {
- XkbFreeDeviceInfo(devi, XkbXI_AllDeviceFeaturesMask, True);
- devi = NULL;
- }
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return devi;
-}
-
-Status
-XkbGetDeviceInfoChanges(Display *dpy,
- XkbDeviceInfoPtr devi,
- XkbDeviceChangesPtr changes)
-{
- register xkbGetDeviceInfoReq *req;
- xkbGetDeviceInfoReply rep;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadMatch;
- if ((changes->changed & XkbXI_AllDeviceFeaturesMask) == 0)
- return Success;
- changes->changed &= ~XkbXI_AllDeviceFeaturesMask;
- status = Success;
- LockDisplay(dpy);
- while ((changes->changed) && (status == Success)) {
- GetReq(kbGetDeviceInfo, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetDeviceInfo;
- req->deviceSpec = devi->device_spec;
- req->wanted = changes->changed;
- req->allBtns = False;
- if (changes->changed & XkbXI_ButtonActionsMask) {
- req->firstBtn = changes->first_btn;
- req->nBtns = changes->num_btns;
- changes->changed &= ~XkbXI_ButtonActionsMask;
- }
- else
- req->firstBtn = req->nBtns = 0;
- if (changes->changed & XkbXI_IndicatorsMask) {
- req->ledClass = changes->leds.led_class;
- req->ledID = changes->leds.led_id;
- if (changes->leds.next == NULL)
- changes->changed &= ~XkbXI_IndicatorsMask;
- else {
- XkbDeviceLedChangesPtr next;
-
- next = changes->leds.next;
- changes->leds = *next;
- _XkbFree(next);
- }
- }
- else {
- req->ledClass = XkbDfltXIClass;
- req->ledID = XkbDfltXIId;
- }
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- status = BadLength;
- break;
- }
- devi->supported |= rep.supported;
- devi->unsupported |= rep.unsupported;
- devi->type = rep.devType;
- status = _XkbReadGetDeviceInfoReply(dpy, &rep, devi);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetDeviceButtonActions(Display *dpy,
- XkbDeviceInfoPtr devi,
- Bool all,
- unsigned int first,
- unsigned int num)
-{
- register xkbGetDeviceInfoReq *req;
- xkbGetDeviceInfoReply rep;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadMatch;
- if (!devi)
- return BadValue;
- LockDisplay(dpy);
- GetReq(kbGetDeviceInfo, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetDeviceInfo;
- req->deviceSpec = devi->device_spec;
- req->wanted = XkbXI_ButtonActionsMask;
- req->allBtns = all;
- req->firstBtn = first;
- req->nBtns = num;
- req->ledClass = XkbDfltXIClass;
- req->ledID = XkbDfltXIId;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadLength;
- }
- devi->type = rep.devType;
- devi->supported = rep.supported;
- devi->unsupported = rep.unsupported;
- status = _XkbReadGetDeviceInfoReply(dpy, &rep, devi);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetDeviceLedInfo(Display *dpy,
- XkbDeviceInfoPtr devi,
- unsigned int ledClass,
- unsigned int ledId,
- unsigned int which)
-{
- register xkbGetDeviceInfoReq *req;
- xkbGetDeviceInfoReply rep;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadMatch;
- if (((which & XkbXI_IndicatorsMask) == 0) ||
- (which & (~XkbXI_IndicatorsMask)))
- return BadMatch;
- if (!devi)
- return BadValue;
- LockDisplay(dpy);
- GetReq(kbGetDeviceInfo, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetDeviceInfo;
- req->deviceSpec = devi->device_spec;
- req->wanted = which;
- req->allBtns = False;
- req->firstBtn = req->nBtns = 0;
- req->ledClass = ledClass;
- req->ledID = ledId;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadLength;
- }
- devi->type = rep.devType;
- devi->supported = rep.supported;
- devi->unsupported = rep.unsupported;
- status = _XkbReadGetDeviceInfoReply(dpy, &rep, devi);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-/***====================================================================***/
-
-typedef struct _LedInfoStuff {
- Bool used;
- XkbDeviceLedInfoPtr devli;
-} LedInfoStuff;
-
-typedef struct _SetLedStuff {
- unsigned wanted;
- int num_info;
- int dflt_class;
- LedInfoStuff *dflt_kbd_fb;
- LedInfoStuff *dflt_led_fb;
- LedInfoStuff *info;
-} SetLedStuff;
-
-static void
-_InitLedStuff(SetLedStuff *stuff, unsigned wanted, XkbDeviceInfoPtr devi)
-{
- int i;
- register XkbDeviceLedInfoPtr devli;
-
- bzero(stuff, sizeof(SetLedStuff));
- stuff->wanted = wanted;
- stuff->dflt_class = XkbXINone;
- if ((devi->num_leds < 1) || ((wanted & XkbXI_IndicatorsMask) == 0))
- return;
- stuff->info = _XkbTypedCalloc(devi->num_leds, LedInfoStuff);
- if (!stuff->info)
- return;
- stuff->num_info = devi->num_leds;
- for (devli = &devi->leds[0], i = 0; i < devi->num_leds; i++, devli++) {
- stuff->info[i].devli = devli;
- if (devli->led_class == KbdFeedbackClass) {
- stuff->dflt_class = KbdFeedbackClass;
- if (stuff->dflt_kbd_fb == NULL)
- stuff->dflt_kbd_fb = &stuff->info[i];
- }
- else if (devli->led_class == LedFeedbackClass) {
- if (stuff->dflt_class == XkbXINone)
- stuff->dflt_class = LedFeedbackClass;
- if (stuff->dflt_led_fb == NULL)
- stuff->dflt_led_fb = &stuff->info[i];
- }
- }
- return;
-}
-
-static void
-_FreeLedStuff(SetLedStuff * stuff)
-{
- if (stuff->num_info > 0)
- _XkbFree(stuff->info);
- bzero(stuff, sizeof(SetLedStuff));
- return;
-}
-
-static int
-_XkbSizeLedInfo(unsigned changed, XkbDeviceLedInfoPtr devli)
-{
- register int i, size;
- register unsigned bit, namesNeeded, mapsNeeded;
-
- size = SIZEOF(xkbDeviceLedsWireDesc);
- namesNeeded = mapsNeeded = 0;
- if (changed & XkbXI_IndicatorNamesMask)
- namesNeeded = devli->names_present;
- if (changed & XkbXI_IndicatorMapsMask)
- mapsNeeded = devli->maps_present;
- if ((namesNeeded) || (mapsNeeded)) {
- for (i = 0, bit = 1; i < XkbNumIndicators; i++, bit <<= 1) {
- if (namesNeeded & bit)
- size += 4; /* atoms are 4 bytes on the wire */
- if (mapsNeeded & bit)
- size += SIZEOF(xkbIndicatorMapWireDesc);
- }
- }
- return size;
-}
-
-static Bool
-_SizeMatches(SetLedStuff *stuff,
- XkbDeviceLedChangesPtr changes,
- int *sz_rtrn,
- int *nleds_rtrn)
-{
- int i, nMatch, class, id;
- LedInfoStuff *linfo;
- Bool match;
-
- nMatch = 0;
- class = changes->led_class;
- id = changes->led_id;
- if (class == XkbDfltXIClass)
- class = stuff->dflt_class;
- for (i = 0, linfo = &stuff->info[0]; i < stuff->num_info; i++, linfo++) {
- XkbDeviceLedInfoPtr devli;
- LedInfoStuff *dflt;
-
- devli = linfo->devli;
- match = ((class == devli->led_class) || (class == XkbAllXIClasses));
- if (devli->led_class == KbdFeedbackClass)
- dflt = stuff->dflt_kbd_fb;
- else
- dflt = stuff->dflt_led_fb;
- match = (match && (id == devli->led_id)) ||
- (id == XkbAllXIIds) ||
- ((id == XkbDfltXIId) && (linfo == dflt));
- if (match) {
- if (!linfo->used) {
- *sz_rtrn += _XkbSizeLedInfo(stuff->wanted, devli);
- *nleds_rtrn += 1;
- linfo->used = True;
- if ((class != XkbAllXIClasses) && (id != XkbAllXIIds))
- return True;
- }
- nMatch++;
- linfo->used = True;
- }
- }
- return (nMatch > 0);
-}
-
-/***====================================================================***/
-
-
-static Status
-_XkbSetDeviceInfoSize(XkbDeviceInfoPtr devi,
- XkbDeviceChangesPtr changes,
- SetLedStuff *stuff,
- int *sz_rtrn,
- int *num_leds_rtrn)
-{
- *sz_rtrn = 0;
- if ((changes->changed & XkbXI_ButtonActionsMask) && (changes->num_btns > 0)) {
- if (!XkbXI_LegalDevBtn
- (devi, (changes->first_btn + changes->num_btns - 1)))
- return BadMatch;
- *sz_rtrn += changes->num_btns * SIZEOF(xkbActionWireDesc);
- }
- else {
- changes->changed &= ~XkbXI_ButtonActionsMask;
- changes->first_btn = changes->num_btns = 0;
- }
- if ((changes->changed & XkbXI_IndicatorsMask) &&
- XkbLegalXILedClass(changes->leds.led_class)) {
- XkbDeviceLedChangesPtr leds;
-
- for (leds = &changes->leds; leds != NULL; leds = leds->next) {
- if (!_SizeMatches(stuff, leds, sz_rtrn, num_leds_rtrn))
- return BadMatch;
- }
- }
- else {
- changes->changed &= ~XkbXI_IndicatorsMask;
- *num_leds_rtrn = 0;
- }
- return Success;
-}
-
-static char *
-_XkbWriteLedInfo(char *wire, unsigned changed, XkbDeviceLedInfoPtr devli)
-{
- register int i;
- register unsigned bit, namesNeeded, mapsNeeded;
- xkbDeviceLedsWireDesc *lwire;
-
- namesNeeded = mapsNeeded = 0;
- if (changed & XkbXI_IndicatorNamesMask)
- namesNeeded = devli->names_present;
- if (changed & XkbXI_IndicatorMapsMask)
- mapsNeeded = devli->maps_present;
-
- lwire = (xkbDeviceLedsWireDesc *) wire;
- lwire->ledClass = devli->led_class;
- lwire->ledID = devli->led_id;
- lwire->namesPresent = namesNeeded;
- lwire->mapsPresent = mapsNeeded;
- lwire->physIndicators = devli->phys_indicators;
- lwire->state = devli->state;
- wire = (char *) &lwire[1];
- if (namesNeeded) {
- CARD32 *awire = (CARD32 *) wire;
-
- for (i = 0, bit = 1; i < XkbNumIndicators; i++, bit <<= 1) {
- if (namesNeeded & bit) {
- *awire = (CARD32) devli->names[i];
- awire++;
- }
- }
- wire = (char *) awire;
- }
- if (mapsNeeded) {
- xkbIndicatorMapWireDesc *mwire = (xkbIndicatorMapWireDesc *) wire;
-
- for (i = 0, bit = 1; i < XkbNumIndicators; i++, bit <<= 1) {
- if (mapsNeeded & bit) {
- XkbIndicatorMapPtr map = &devli->maps[i];
-
- mwire->flags = map->flags;
- mwire->whichGroups = map->which_groups;
- mwire->groups = map->groups;
- mwire->whichMods = map->which_mods;
- mwire->mods = map->mods.mask;
- mwire->realMods = map->mods.real_mods;
- mwire->virtualMods = map->mods.vmods;
- mwire->ctrls = map->ctrls;
- mwire++;
- }
- }
- wire = (char *) mwire;
- }
- return wire;
-}
-
-
-static int
-_XkbWriteSetDeviceInfo(char *wire,
- XkbDeviceChangesPtr changes,
- SetLedStuff *stuff,
- XkbDeviceInfoPtr devi)
-{
- char *start = wire;
-
- if (changes->changed & XkbXI_ButtonActionsMask) {
- int size = changes->num_btns * SIZEOF(xkbActionWireDesc);
-
- memcpy(wire, (char *) &devi->btn_acts[changes->first_btn], size);
- wire += size;
- }
- if (changes->changed & XkbXI_IndicatorsMask) {
- register int i;
- register LedInfoStuff *linfo;
-
- for (i = 0, linfo = &stuff->info[0]; i < stuff->num_info; i++, linfo++) {
- if (linfo->used) {
- register char *new_wire;
-
- new_wire = _XkbWriteLedInfo(wire, stuff->wanted, linfo->devli);
- if (!new_wire)
- return wire - start;
- wire = new_wire;
- }
- }
- }
- return wire - start;
-}
-
-Bool
-XkbSetDeviceInfo(Display *dpy, unsigned which, XkbDeviceInfoPtr devi)
-{
- register xkbSetDeviceInfoReq *req;
- Status ok = 0;
- int size, nLeds;
- XkbInfoPtr xkbi;
- XkbDeviceChangesRec changes;
- SetLedStuff lstuff;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!devi) || (which & (~XkbXI_AllDeviceFeaturesMask)) ||
- ((which & XkbXI_ButtonActionsMask) && (!XkbXI_DevHasBtnActs(devi))) ||
- ((which & XkbXI_IndicatorsMask) && (!XkbXI_DevHasLeds(devi))))
- return False;
-
- bzero((char *) &changes, sizeof(XkbDeviceChangesRec));
- changes.changed = which;
- changes.first_btn = 0;
- changes.num_btns = devi->num_btns;
- changes.leds.led_class = XkbAllXIClasses;
- changes.leds.led_id = XkbAllXIIds;
- changes.leds.defined = 0;
- size = nLeds = 0;
- _InitLedStuff(&lstuff, changes.changed, devi);
- if (_XkbSetDeviceInfoSize(devi, &changes, &lstuff, &size, &nLeds) !=
- Success)
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetDeviceInfo, req);
- req->length += size / 4;
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetDeviceInfo;
- req->deviceSpec = devi->device_spec;
- req->firstBtn = changes.first_btn;
- req->nBtns = changes.num_btns;
- req->change = changes.changed;
- req->nDeviceLedFBs = nLeds;
- if (size > 0) {
- char *wire;
-
- BufAlloc(char *, wire, size);
- ok = (wire != NULL) &&
- (_XkbWriteSetDeviceInfo(wire, &changes, &lstuff, devi) == size);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- _FreeLedStuff(&lstuff);
- /* 12/11/95 (ef) -- XXX!! should clear changes here */
- return ok;
-}
-
-Bool
-XkbChangeDeviceInfo(Display *dpy,
- XkbDeviceInfoPtr devi,
- XkbDeviceChangesPtr changes)
-{
- register xkbSetDeviceInfoReq *req;
- Status ok = 0;
- int size, nLeds;
- XkbInfoPtr xkbi;
- SetLedStuff lstuff;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!devi) || (changes->changed & (~XkbXI_AllDeviceFeaturesMask)) ||
- ((changes->changed & XkbXI_ButtonActionsMask) &&
- (!XkbXI_DevHasBtnActs(devi))) ||
- ((changes->changed & XkbXI_IndicatorsMask) &&
- (!XkbXI_DevHasLeds(devi))))
- return False;
-
- size = nLeds = 0;
- _InitLedStuff(&lstuff, changes->changed, devi);
- if (_XkbSetDeviceInfoSize(devi, changes, &lstuff, &size, &nLeds) != Success)
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetDeviceInfo, req);
- req->length += size / 4;
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetDeviceInfo;
- req->deviceSpec = devi->device_spec;
- req->firstBtn = changes->first_btn;
- req->nBtns = changes->num_btns;
- req->change = changes->changed;
- req->nDeviceLedFBs = nLeds;
- if (size > 0) {
- char *wire;
-
- BufAlloc(char *, wire, size);
- ok = (wire != NULL) &&
- (_XkbWriteSetDeviceInfo(wire, changes, &lstuff, devi) == size);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- _FreeLedStuff(&lstuff);
- /* 12/11/95 (ef) -- XXX!! should clear changes here */
- return ok;
-}
-
-Bool
-XkbSetDeviceLedInfo(Display *dpy,
- XkbDeviceInfoPtr devi,
- unsigned ledClass,
- unsigned ledID,
- unsigned which)
-{
- return False;
-}
-
-Bool
-XkbSetDeviceButtonActions(Display *dpy,
- XkbDeviceInfoPtr devi,
- unsigned int first,
- unsigned int nBtns)
-{
- register xkbSetDeviceInfoReq *req;
- Status ok = 0;
- int size, nLeds;
- XkbInfoPtr xkbi;
- XkbDeviceChangesRec changes;
- SetLedStuff lstuff;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!devi) || (!XkbXI_DevHasBtnActs(devi)) ||
- (first + nBtns > devi->num_btns))
- return False;
- if (nBtns == 0)
- return True;
-
- bzero((char *) &changes, sizeof(XkbDeviceChangesRec));
- changes.changed = XkbXI_ButtonActionsMask;
- changes.first_btn = first;
- changes.num_btns = nBtns;
- changes.leds.led_class = XkbXINone;
- changes.leds.led_id = XkbXINone;
- changes.leds.defined = 0;
- size = nLeds = 0;
- if (_XkbSetDeviceInfoSize(devi, &changes, NULL, &size, &nLeds) != Success)
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetDeviceInfo, req);
- req->length += size / 4;
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetDeviceInfo;
- req->deviceSpec = devi->device_spec;
- req->firstBtn = changes.first_btn;
- req->nBtns = changes.num_btns;
- req->change = changes.changed;
- req->nDeviceLedFBs = nLeds;
- if (size > 0) {
- char *wire;
-
- BufAlloc(char *, wire, size);
- ok = (wire != NULL) &&
- (_XkbWriteSetDeviceInfo(wire, &changes, &lstuff, devi) == size);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return ok;
-}
diff --git a/nx-X11/lib/X11/XKBGAlloc.c b/nx-X11/lib/X11/XKBGAlloc.c
deleted file mode 100644
index ab05f8d88..000000000
--- a/nx-X11/lib/X11/XKBGAlloc.c
+++ /dev/null
@@ -1,994 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XKBlibint.h"
-#include <nx-X11/extensions/XKBgeom.h>
-#include <nx-X11/extensions/XKBproto.h>
-
-/***====================================================================***/
-
-static void
-_XkbFreeGeomLeafElems(Bool freeAll,
- int first,
- int count,
- unsigned short *num_inout,
- unsigned short *sz_inout,
- char **elems,
- unsigned int elem_sz)
-{
- if ((freeAll) || (*elems == NULL)) {
- *num_inout = *sz_inout = 0;
- if (*elems != NULL) {
- _XkbFree(*elems);
- *elems = NULL;
- }
- return;
- }
-
- if ((first >= (*num_inout)) || (first < 0) || (count < 1))
- return;
-
- if (first + count >= (*num_inout)) {
- /* truncating the array is easy */
- (*num_inout) = first;
- }
- else {
- char *ptr;
- int extra;
-
- ptr = *elems;
- extra = ((*num_inout) - (first + count)) * elem_sz;
- if (extra > 0)
- memmove(&ptr[first * elem_sz], &ptr[(first + count) * elem_sz],
- extra);
- (*num_inout) -= count;
- }
- return;
-}
-
-typedef void (*ContentsClearFunc) (
- char * /* priv */
-);
-
-static void
-_XkbFreeGeomNonLeafElems(Bool freeAll,
- int first,
- int count,
- unsigned short *num_inout,
- unsigned short *sz_inout,
- char **elems,
- unsigned int elem_sz,
- ContentsClearFunc freeFunc)
-{
- register int i;
- register char *ptr;
-
- if (freeAll) {
- first = 0;
- count = (*num_inout);
- }
- else if ((first >= (*num_inout)) || (first < 0) || (count < 1))
- return;
- else if (first + count > (*num_inout))
- count = (*num_inout) - first;
- if (*elems == NULL)
- return;
-
- if (freeFunc) {
- ptr = *elems;
- ptr += first * elem_sz;
- for (i = 0; i < count; i++) {
- (*freeFunc) (ptr);
- ptr += elem_sz;
- }
- }
- if (freeAll) {
- (*num_inout) = (*sz_inout) = 0;
- if (*elems) {
- _XkbFree(*elems);
- *elems = NULL;
- }
- }
- else if (first + count >= (*num_inout))
- *num_inout = first;
- else {
- i = ((*num_inout) - (first + count)) * elem_sz;
- ptr = *elems;
- memmove(&ptr[first * elem_sz], &ptr[(first + count) * elem_sz], i);
- (*num_inout) -= count;
- }
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearProperty(char *prop_in)
-{
- XkbPropertyPtr prop = (XkbPropertyPtr) prop_in;
-
- if (prop->name) {
- _XkbFree(prop->name);
- prop->name = NULL;
- }
- if (prop->value) {
- _XkbFree(prop->value);
- prop->value = NULL;
- }
- return;
-}
-
-void
-XkbFreeGeomProperties(XkbGeometryPtr geom, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &geom->num_properties, &geom->sz_properties,
- (char **) &geom->properties,
- sizeof(XkbPropertyRec), _XkbClearProperty);
- return;
-}
-
-/***====================================================================***/
-
-void
-XkbFreeGeomKeyAliases(XkbGeometryPtr geom, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomLeafElems(freeAll, first, count,
- &geom->num_key_aliases, &geom->sz_key_aliases,
- (char **) &geom->key_aliases,
- sizeof(XkbKeyAliasRec));
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearColor(char *color_in)
-{
- XkbColorPtr color = (XkbColorPtr) color_in;
-
- _XkbFree(color->spec);
- return;
-}
-
-void
-XkbFreeGeomColors(XkbGeometryPtr geom, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &geom->num_colors, &geom->sz_colors,
- (char **) &geom->colors,
- sizeof(XkbColorRec), _XkbClearColor);
- return;
-}
-
-/***====================================================================***/
-
-void
-XkbFreeGeomPoints(XkbOutlinePtr outline, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomLeafElems(freeAll, first, count,
- &outline->num_points, &outline->sz_points,
- (char **) &outline->points,
- sizeof(XkbPointRec));
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearOutline(char *outline_in)
-{
- XkbOutlinePtr outline = (XkbOutlinePtr) outline_in;
-
- if (outline->points != NULL)
- XkbFreeGeomPoints(outline, 0, outline->num_points, True);
- return;
-}
-
-void
-XkbFreeGeomOutlines(XkbShapePtr shape, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &shape->num_outlines, &shape->sz_outlines,
- (char **) &shape->outlines,
- sizeof(XkbOutlineRec), _XkbClearOutline);
-
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearShape(char *shape_in)
-{
- XkbShapePtr shape = (XkbShapePtr) shape_in;
-
- if (shape->outlines)
- XkbFreeGeomOutlines(shape, 0, shape->num_outlines, True);
- return;
-}
-
-void
-XkbFreeGeomShapes(XkbGeometryPtr geom, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &geom->num_shapes, &geom->sz_shapes,
- (char **) &geom->shapes,
- sizeof(XkbShapeRec), _XkbClearShape);
- return;
-}
-
-/***====================================================================***/
-
-void
-XkbFreeGeomOverlayKeys(XkbOverlayRowPtr row, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomLeafElems(freeAll, first, count,
- &row->num_keys, &row->sz_keys,
- (char **) &row->keys,
- sizeof(XkbOverlayKeyRec));
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearOverlayRow(char *row_in)
-{
- XkbOverlayRowPtr row = (XkbOverlayRowPtr) row_in;
-
- if (row->keys != NULL)
- XkbFreeGeomOverlayKeys(row, 0, row->num_keys, True);
- return;
-}
-
-void
-XkbFreeGeomOverlayRows(XkbOverlayPtr overlay, int first, int count,
- Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &overlay->num_rows, &overlay->sz_rows,
- (char **) &overlay->rows,
- sizeof(XkbOverlayRowRec), _XkbClearOverlayRow);
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearOverlay(char *overlay_in)
-{
- XkbOverlayPtr overlay = (XkbOverlayPtr) overlay_in;
-
- if (overlay->rows != NULL)
- XkbFreeGeomOverlayRows(overlay, 0, overlay->num_rows, True);
- return;
-}
-
-void
-XkbFreeGeomOverlays(XkbSectionPtr section, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &section->num_overlays, &section->sz_overlays,
- (char **) &section->overlays,
- sizeof(XkbOverlayRec), _XkbClearOverlay);
- return;
-}
-
-/***====================================================================***/
-
-void
-XkbFreeGeomKeys(XkbRowPtr row, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomLeafElems(freeAll, first, count,
- &row->num_keys, &row->sz_keys,
- (char **) &row->keys,
- sizeof(XkbKeyRec));
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearRow(char *row_in)
-{
- XkbRowPtr row = (XkbRowPtr) row_in;
-
- if (row->keys != NULL)
- XkbFreeGeomKeys(row, 0, row->num_keys, True);
- return;
-}
-
-void
-XkbFreeGeomRows(XkbSectionPtr section, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &section->num_rows, &section->sz_rows,
- (char **) &section->rows,
- sizeof(XkbRowRec), _XkbClearRow);
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearSection(char *section_in)
-{
- XkbSectionPtr section = (XkbSectionPtr) section_in;
-
- if (section->rows != NULL)
- XkbFreeGeomRows(section, 0, section->num_rows, True);
- if (section->doodads != NULL) {
- XkbFreeGeomDoodads(section->doodads, section->num_doodads, True);
- section->doodads = NULL;
- }
- return;
-}
-
-void
-XkbFreeGeomSections(XkbGeometryPtr geom, int first, int count, Bool freeAll)
-{
- _XkbFreeGeomNonLeafElems(freeAll, first, count,
- &geom->num_sections, &geom->sz_sections,
- (char **) &geom->sections,
- sizeof(XkbSectionRec), _XkbClearSection);
- return;
-}
-
-/***====================================================================***/
-
-static void
-_XkbClearDoodad(char *doodad_in)
-{
- XkbDoodadPtr doodad = (XkbDoodadPtr) doodad_in;
-
- switch (doodad->any.type) {
- case XkbTextDoodad:
- {
- if (doodad->text.text != NULL) {
- _XkbFree(doodad->text.text);
- doodad->text.text = NULL;
- }
- if (doodad->text.font != NULL) {
- _XkbFree(doodad->text.font);
- doodad->text.font = NULL;
- }
- }
- break;
- case XkbLogoDoodad:
- {
- if (doodad->logo.logo_name != NULL) {
- _XkbFree(doodad->logo.logo_name);
- doodad->logo.logo_name = NULL;
- }
- }
- break;
- }
- return;
-}
-
-void
-XkbFreeGeomDoodads(XkbDoodadPtr doodads, int nDoodads, Bool freeAll)
-{
- register int i;
- register XkbDoodadPtr doodad;
-
- if (doodads) {
- for (i = 0, doodad = doodads; i < nDoodads; i++, doodad++) {
- _XkbClearDoodad((char *) doodad);
- }
- if (freeAll)
- _XkbFree(doodads);
- }
- return;
-}
-
-void
-XkbFreeGeometry(XkbGeometryPtr geom, unsigned which, Bool freeMap)
-{
- if (geom == NULL)
- return;
- if (freeMap)
- which = XkbGeomAllMask;
- if ((which & XkbGeomPropertiesMask) && (geom->properties != NULL))
- XkbFreeGeomProperties(geom, 0, geom->num_properties, True);
- if ((which & XkbGeomColorsMask) && (geom->colors != NULL))
- XkbFreeGeomColors(geom, 0, geom->num_colors, True);
- if ((which & XkbGeomShapesMask) && (geom->shapes != NULL))
- XkbFreeGeomShapes(geom, 0, geom->num_shapes, True);
- if ((which & XkbGeomSectionsMask) && (geom->sections != NULL))
- XkbFreeGeomSections(geom, 0, geom->num_sections, True);
- if ((which & XkbGeomDoodadsMask) && (geom->doodads != NULL)) {
- XkbFreeGeomDoodads(geom->doodads, geom->num_doodads, True);
- geom->doodads = NULL;
- geom->num_doodads = geom->sz_doodads = 0;
- }
- if ((which & XkbGeomKeyAliasesMask) && (geom->key_aliases != NULL))
- XkbFreeGeomKeyAliases(geom, 0, geom->num_key_aliases, True);
- if (freeMap) {
- if (geom->label_font != NULL) {
- _XkbFree(geom->label_font);
- geom->label_font = NULL;
- }
- _XkbFree(geom);
- }
- return;
-}
-
-/***====================================================================***/
-
-static Status
-_XkbGeomAlloc(XPointer *old,
- unsigned short *num,
- unsigned short *total,
- int num_new,
- size_t sz_elem)
-{
- if (num_new < 1)
- return Success;
- if ((*old) == NULL)
- *num = *total = 0;
-
- if ((*num) + num_new <= (*total))
- return Success;
-
- *total = (*num) + num_new;
- if ((*old) != NULL)
- (*old) = (XPointer) _XkbRealloc((*old), (*total) * sz_elem);
- else
- (*old) = (XPointer) _XkbCalloc((*total), sz_elem);
- if ((*old) == NULL) {
- *total = *num = 0;
- return BadAlloc;
- }
-
- if (*num > 0) {
- char *tmp = (char *) (*old);
- bzero(&tmp[sz_elem * (*num)], (num_new * sz_elem));
- }
- return Success;
-}
-
-#define _XkbAllocProps(g, n) _XkbGeomAlloc((XPointer *)&(g)->properties, \
- &(g)->num_properties, &(g)->sz_properties, \
- (n), sizeof(XkbPropertyRec))
-#define _XkbAllocColors(g, n) _XkbGeomAlloc((XPointer *)&(g)->colors, \
- &(g)->num_colors, &(g)->sz_colors, \
- (n), sizeof(XkbColorRec))
-#define _XkbAllocShapes(g, n) _XkbGeomAlloc((XPointer *)&(g)->shapes, \
- &(g)->num_shapes, &(g)->sz_shapes, \
- (n), sizeof(XkbShapeRec))
-#define _XkbAllocSections(g, n) _XkbGeomAlloc((XPointer *)&(g)->sections, \
- &(g)->num_sections, &(g)->sz_sections, \
- (n), sizeof(XkbSectionRec))
-#define _XkbAllocDoodads(g, n) _XkbGeomAlloc((XPointer *)&(g)->doodads, \
- &(g)->num_doodads, &(g)->sz_doodads, \
- (n), sizeof(XkbDoodadRec))
-#define _XkbAllocKeyAliases(g, n) _XkbGeomAlloc((XPointer *)&(g)->key_aliases, \
- &(g)->num_key_aliases, &(g)->sz_key_aliases, \
- (n), sizeof(XkbKeyAliasRec))
-
-#define _XkbAllocOutlines(s, n) _XkbGeomAlloc((XPointer *)&(s)->outlines, \
- &(s)->num_outlines, &(s)->sz_outlines, \
- (n), sizeof(XkbOutlineRec))
-#define _XkbAllocRows(s, n) _XkbGeomAlloc((XPointer *)&(s)->rows, \
- &(s)->num_rows, &(s)->sz_rows, \
- (n), sizeof(XkbRowRec))
-#define _XkbAllocPoints(o, n) _XkbGeomAlloc((XPointer *)&(o)->points, \
- &(o)->num_points, &(o)->sz_points, \
- (n), sizeof(XkbPointRec))
-#define _XkbAllocKeys(r, n) _XkbGeomAlloc((XPointer *)&(r)->keys, \
- &(r)->num_keys, &(r)->sz_keys, \
- (n), sizeof(XkbKeyRec))
-#define _XkbAllocOverlays(s, n) _XkbGeomAlloc((XPointer *)&(s)->overlays, \
- &(s)->num_overlays, &(s)->sz_overlays, \
- (n), sizeof(XkbOverlayRec))
-#define _XkbAllocOverlayRows(o, n) _XkbGeomAlloc((XPointer *)&(o)->rows, \
- &(o)->num_rows, &(o)->sz_rows, \
- (n), sizeof(XkbOverlayRowRec))
-#define _XkbAllocOverlayKeys(r, n) _XkbGeomAlloc((XPointer *)&(r)->keys, \
- &(r)->num_keys, &(r)->sz_keys, \
- (n), sizeof(XkbOverlayKeyRec))
-
-Status
-XkbAllocGeomProps(XkbGeometryPtr geom, int nProps)
-{
- return _XkbAllocProps(geom, nProps);
-}
-
-Status
-XkbAllocGeomColors(XkbGeometryPtr geom, int nColors)
-{
- return _XkbAllocColors(geom, nColors);
-}
-
-Status
-XkbAllocGeomKeyAliases(XkbGeometryPtr geom, int nKeyAliases)
-{
- return _XkbAllocKeyAliases(geom, nKeyAliases);
-}
-
-Status
-XkbAllocGeomShapes(XkbGeometryPtr geom, int nShapes)
-{
- return _XkbAllocShapes(geom, nShapes);
-}
-
-Status
-XkbAllocGeomSections(XkbGeometryPtr geom, int nSections)
-{
- return _XkbAllocSections(geom, nSections);
-}
-
-Status
-XkbAllocGeomOverlays(XkbSectionPtr section, int nOverlays)
-{
- return _XkbAllocOverlays(section, nOverlays);
-}
-
-Status
-XkbAllocGeomOverlayRows(XkbOverlayPtr overlay, int nRows)
-{
- return _XkbAllocOverlayRows(overlay, nRows);
-}
-
-Status
-XkbAllocGeomOverlayKeys(XkbOverlayRowPtr row, int nKeys)
-{
- return _XkbAllocOverlayKeys(row, nKeys);
-}
-
-Status
-XkbAllocGeomDoodads(XkbGeometryPtr geom, int nDoodads)
-{
- return _XkbAllocDoodads(geom, nDoodads);
-}
-
-Status
-XkbAllocGeomSectionDoodads(XkbSectionPtr section, int nDoodads)
-{
- return _XkbAllocDoodads(section, nDoodads);
-}
-
-Status
-XkbAllocGeomOutlines(XkbShapePtr shape, int nOL)
-{
- return _XkbAllocOutlines(shape, nOL);
-}
-
-Status
-XkbAllocGeomRows(XkbSectionPtr section, int nRows)
-{
- return _XkbAllocRows(section, nRows);
-}
-
-Status
-XkbAllocGeomPoints(XkbOutlinePtr ol, int nPts)
-{
- return _XkbAllocPoints(ol, nPts);
-}
-
-Status
-XkbAllocGeomKeys(XkbRowPtr row, int nKeys)
-{
- return _XkbAllocKeys(row, nKeys);
-}
-
-Status
-XkbAllocGeometry(XkbDescPtr xkb, XkbGeometrySizesPtr sizes)
-{
- XkbGeometryPtr geom;
- Status rtrn;
-
- if (xkb->geom == NULL) {
- xkb->geom = _XkbTypedCalloc(1, XkbGeometryRec);
- if (!xkb->geom)
- return BadAlloc;
- }
- geom = xkb->geom;
- if ((sizes->which & XkbGeomPropertiesMask) &&
- ((rtrn = _XkbAllocProps(geom, sizes->num_properties)) != Success)) {
- goto BAIL;
- }
- if ((sizes->which & XkbGeomColorsMask) &&
- ((rtrn = _XkbAllocColors(geom, sizes->num_colors)) != Success)) {
- goto BAIL;
- }
- if ((sizes->which & XkbGeomShapesMask) &&
- ((rtrn = _XkbAllocShapes(geom, sizes->num_shapes)) != Success)) {
- goto BAIL;
- }
- if ((sizes->which & XkbGeomSectionsMask) &&
- ((rtrn = _XkbAllocSections(geom, sizes->num_sections)) != Success)) {
- goto BAIL;
- }
- if ((sizes->which & XkbGeomDoodadsMask) &&
- ((rtrn = _XkbAllocDoodads(geom, sizes->num_doodads)) != Success)) {
- goto BAIL;
- }
- if ((sizes->which & XkbGeomKeyAliasesMask) &&
- ((rtrn = _XkbAllocKeyAliases(geom, sizes->num_key_aliases))
- != Success)) {
- goto BAIL;
- }
- return Success;
- BAIL:
- XkbFreeGeometry(geom, XkbGeomAllMask, True);
- xkb->geom = NULL;
- return rtrn;
-}
-
-/***====================================================================***/
-
-XkbPropertyPtr
-XkbAddGeomProperty(XkbGeometryPtr geom, char *name, char *value)
-{
- register int i;
- register XkbPropertyPtr prop;
-
- if ((!geom) || (!name) || (!value))
- return NULL;
- for (i = 0, prop = geom->properties; i < geom->num_properties; i++, prop++) {
- if ((prop->name) && (strcmp(name, prop->name) == 0)) {
- _XkbFree(prop->value);
- prop->value = strdup(value);
- return prop;
- }
- }
- if ((geom->num_properties >= geom->sz_properties) &&
- (_XkbAllocProps(geom, 1) != Success)) {
- return NULL;
- }
- prop = &geom->properties[geom->num_properties];
- prop->name = strdup(name);
- if (!prop->name)
- return NULL;
- prop->value = strdup(value);
- if (!prop->value) {
- _XkbFree(prop->name);
- prop->name = NULL;
- return NULL;
- }
- geom->num_properties++;
- return prop;
-}
-
-XkbKeyAliasPtr
-XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
-{
- register int i;
- register XkbKeyAliasPtr alias;
-
- if ((!geom) || (!aliasStr) || (!realStr) || (!aliasStr[0]) || (!realStr[0]))
- return NULL;
- for (i = 0, alias = geom->key_aliases; i < geom->num_key_aliases;
- i++, alias++) {
- if (strncmp(alias->alias, aliasStr, XkbKeyNameLength) == 0) {
- bzero(alias->real, XkbKeyNameLength);
- strncpy(alias->real, realStr, XkbKeyNameLength);
- return alias;
- }
- }
- if ((geom->num_key_aliases >= geom->sz_key_aliases) &&
- (_XkbAllocKeyAliases(geom, 1) != Success)) {
- return NULL;
- }
- alias = &geom->key_aliases[geom->num_key_aliases];
- bzero(alias, sizeof(XkbKeyAliasRec));
- strncpy(alias->alias, aliasStr, XkbKeyNameLength);
- strncpy(alias->real, realStr, XkbKeyNameLength);
- geom->num_key_aliases++;
- return alias;
-}
-
-XkbColorPtr
-XkbAddGeomColor(XkbGeometryPtr geom, char *spec, unsigned int pixel)
-{
- register int i;
- register XkbColorPtr color;
-
- if ((!geom) || (!spec))
- return NULL;
- for (i = 0, color = geom->colors; i < geom->num_colors; i++, color++) {
- if ((color->spec) && (strcmp(color->spec, spec) == 0)) {
- color->pixel = pixel;
- return color;
- }
- }
- if ((geom->num_colors >= geom->sz_colors) &&
- (_XkbAllocColors(geom, 1) != Success)) {
- return NULL;
- }
- color = &geom->colors[geom->num_colors];
- color->pixel = pixel;
- color->spec = strdup(spec);
- if (!color->spec)
- return NULL;
- geom->num_colors++;
- return color;
-}
-
-XkbOutlinePtr
-XkbAddGeomOutline(XkbShapePtr shape, int sz_points)
-{
- XkbOutlinePtr outline;
-
- if ((!shape) || (sz_points < 0))
- return NULL;
- if ((shape->num_outlines >= shape->sz_outlines) &&
- (_XkbAllocOutlines(shape, 1) != Success)) {
- return NULL;
- }
- outline = &shape->outlines[shape->num_outlines];
- bzero(outline, sizeof(XkbOutlineRec));
- if ((sz_points > 0) && (_XkbAllocPoints(outline, sz_points) != Success))
- return NULL;
- shape->num_outlines++;
- return outline;
-}
-
-XkbShapePtr
-XkbAddGeomShape(XkbGeometryPtr geom, Atom name, int sz_outlines)
-{
- XkbShapePtr shape;
- register int i;
-
- if ((!geom) || (!name) || (sz_outlines < 0))
- return NULL;
- if (geom->num_shapes > 0) {
- for (shape = geom->shapes, i = 0; i < geom->num_shapes; i++, shape++) {
- if (name == shape->name)
- return shape;
- }
- }
- if ((geom->num_shapes >= geom->sz_shapes) &&
- (_XkbAllocShapes(geom, 1) != Success))
- return NULL;
- shape = &geom->shapes[geom->num_shapes];
- bzero(shape, sizeof(XkbShapeRec));
- if ((sz_outlines > 0) && (_XkbAllocOutlines(shape, sz_outlines) != Success))
- return NULL;
- shape->name = name;
- shape->primary = shape->approx = NULL;
- geom->num_shapes++;
- return shape;
-}
-
-XkbKeyPtr
-XkbAddGeomKey(XkbRowPtr row)
-{
- XkbKeyPtr key;
-
- if (!row)
- return NULL;
- if ((row->num_keys >= row->sz_keys) && (_XkbAllocKeys(row, 1) != Success))
- return NULL;
- key = &row->keys[row->num_keys++];
- bzero(key, sizeof(XkbKeyRec));
- return key;
-}
-
-XkbRowPtr
-XkbAddGeomRow(XkbSectionPtr section, int sz_keys)
-{
- XkbRowPtr row;
-
- if ((!section) || (sz_keys < 0))
- return NULL;
- if ((section->num_rows >= section->sz_rows) &&
- (_XkbAllocRows(section, 1) != Success))
- return NULL;
- row = &section->rows[section->num_rows];
- bzero(row, sizeof(XkbRowRec));
- if ((sz_keys > 0) && (_XkbAllocKeys(row, sz_keys) != Success))
- return NULL;
- section->num_rows++;
- return row;
-}
-
-XkbSectionPtr
-XkbAddGeomSection(XkbGeometryPtr geom,
- Atom name,
- int sz_rows,
- int sz_doodads,
- int sz_over)
-{
- register int i;
- XkbSectionPtr section;
-
- if ((!geom) || (name == None) || (sz_rows < 0))
- return NULL;
- for (i = 0, section = geom->sections; i < geom->num_sections;
- i++, section++) {
- if (section->name != name)
- continue;
- if (((sz_rows > 0) && (_XkbAllocRows(section, sz_rows) != Success)) ||
- ((sz_doodads > 0) &&
- (_XkbAllocDoodads(section, sz_doodads) != Success)) ||
- ((sz_over > 0) && (_XkbAllocOverlays(section, sz_over) != Success)))
- return NULL;
- return section;
- }
- if ((geom->num_sections >= geom->sz_sections) &&
- (_XkbAllocSections(geom, 1) != Success))
- return NULL;
- section = &geom->sections[geom->num_sections];
- if ((sz_rows > 0) && (_XkbAllocRows(section, sz_rows) != Success))
- return NULL;
- if ((sz_doodads > 0) && (_XkbAllocDoodads(section, sz_doodads) != Success)) {
- if (section->rows) {
- _XkbFree(section->rows);
- section->rows = NULL;
- section->sz_rows = section->num_rows = 0;
- }
- return NULL;
- }
- section->name = name;
- geom->num_sections++;
- return section;
-}
-
-XkbDoodadPtr
-XkbAddGeomDoodad(XkbGeometryPtr geom, XkbSectionPtr section, Atom name)
-{
- XkbDoodadPtr old, doodad;
- register int i, nDoodads;
-
- if ((!geom) || (name == None))
- return NULL;
- if ((section != NULL) && (section->num_doodads > 0)) {
- old = section->doodads;
- nDoodads = section->num_doodads;
- }
- else {
- old = geom->doodads;
- nDoodads = geom->num_doodads;
- }
- for (i = 0, doodad = old; i < nDoodads; i++, doodad++) {
- if (doodad->any.name == name)
- return doodad;
- }
- if (section) {
- if ((section->num_doodads >= geom->sz_doodads) &&
- (_XkbAllocDoodads(section, 1) != Success)) {
- return NULL;
- }
- doodad = &section->doodads[section->num_doodads++];
- }
- else {
- if ((geom->num_doodads >= geom->sz_doodads) &&
- (_XkbAllocDoodads(geom, 1) != Success))
- return NULL;
- doodad = &geom->doodads[geom->num_doodads++];
- }
- bzero(doodad, sizeof(XkbDoodadRec));
- doodad->any.name = name;
- return doodad;
-}
-
-XkbOverlayKeyPtr
-XkbAddGeomOverlayKey(XkbOverlayPtr overlay,
- XkbOverlayRowPtr row,
- char *over,
- char *under)
-{
- register int i;
- XkbOverlayKeyPtr key;
- XkbSectionPtr section;
- XkbRowPtr row_under;
- Bool found;
-
- if ((!overlay) || (!row) || (!over) || (!under))
- return NULL;
- section = overlay->section_under;
- if (row->row_under >= section->num_rows)
- return NULL;
- row_under = &section->rows[row->row_under];
- for (i = 0, found = False; i < row_under->num_keys; i++) {
- if (strncmp(under, row_under->keys[i].name.name, XkbKeyNameLength) == 0) {
- found = True;
- break;
- }
- }
- if (!found)
- return NULL;
- if ((row->num_keys >= row->sz_keys) &&
- (_XkbAllocOverlayKeys(row, 1) != Success))
- return NULL;
- key = &row->keys[row->num_keys];
- strncpy(key->under.name, under, XkbKeyNameLength);
- strncpy(key->over.name, over, XkbKeyNameLength);
- row->num_keys++;
- return key;
-}
-
-XkbOverlayRowPtr
-XkbAddGeomOverlayRow(XkbOverlayPtr overlay, int row_under, int sz_keys)
-{
- register int i;
- XkbOverlayRowPtr row;
-
- if ((!overlay) || (sz_keys < 0))
- return NULL;
- if (row_under >= overlay->section_under->num_rows)
- return NULL;
- for (i = 0; i < overlay->num_rows; i++) {
- if (overlay->rows[i].row_under == row_under) {
- row = &overlay->rows[i];
- if ((row->sz_keys < sz_keys) &&
- (_XkbAllocOverlayKeys(row, sz_keys) != Success)) {
- return NULL;
- }
- return &overlay->rows[i];
- }
- }
- if ((overlay->num_rows >= overlay->sz_rows) &&
- (_XkbAllocOverlayRows(overlay, 1) != Success))
- return NULL;
- row = &overlay->rows[overlay->num_rows];
- bzero(row, sizeof(XkbOverlayRowRec));
- if ((sz_keys > 0) && (_XkbAllocOverlayKeys(row, sz_keys) != Success))
- return NULL;
- row->row_under = row_under;
- overlay->num_rows++;
- return row;
-}
-
-XkbOverlayPtr
-XkbAddGeomOverlay(XkbSectionPtr section, Atom name, int sz_rows)
-{
- register int i;
- XkbOverlayPtr overlay;
-
- if ((!section) || (name == None) || (sz_rows == 0))
- return NULL;
-
- for (i = 0, overlay = section->overlays; i < section->num_overlays;
- i++, overlay++) {
- if (overlay->name == name) {
- if ((sz_rows > 0) &&
- (_XkbAllocOverlayRows(overlay, sz_rows) != Success))
- return NULL;
- return overlay;
- }
- }
- if ((section->num_overlays >= section->sz_overlays) &&
- (_XkbAllocOverlays(section, 1) != Success))
- return NULL;
- overlay = &section->overlays[section->num_overlays];
- if ((sz_rows > 0) && (_XkbAllocOverlayRows(overlay, sz_rows) != Success))
- return NULL;
- overlay->name = name;
- overlay->section_under = section;
- section->num_overlays++;
- return overlay;
-}
diff --git a/nx-X11/lib/X11/XKBGeom.c b/nx-X11/lib/X11/XKBGeom.c
deleted file mode 100644
index f57fe7cf6..000000000
--- a/nx-X11/lib/X11/XKBGeom.c
+++ /dev/null
@@ -1,724 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef DEBUG
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#endif
-
-#define NEED_MAP_READERS
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBgeom.h>
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-#ifndef MINSHORT
-#define MINSHORT -32768
-#endif
-#ifndef MAXSHORT
-#define MAXSHORT 32767
-#endif
-
-/***====================================================================***/
-
-static void
-_XkbCheckBounds(XkbBoundsPtr bounds, int x, int y)
-{
- if (x < bounds->x1)
- bounds->x1 = x;
- if (x > bounds->x2)
- bounds->x2 = x;
- if (y < bounds->y1)
- bounds->y1 = y;
- if (y > bounds->y2)
- bounds->y2 = y;
- return;
-}
-
-Bool
-XkbComputeShapeBounds(XkbShapePtr shape)
-{
- register int o, p;
- XkbOutlinePtr outline;
- XkbPointPtr pt;
-
- if ((!shape) || (shape->num_outlines < 1))
- return False;
- shape->bounds.x1 = shape->bounds.y1 = MAXSHORT;
- shape->bounds.x2 = shape->bounds.y2 = MINSHORT;
- for (outline = shape->outlines, o = 0; o < shape->num_outlines;
- o++, outline++) {
- for (pt = outline->points, p = 0; p < outline->num_points; p++, pt++) {
- _XkbCheckBounds(&shape->bounds, pt->x, pt->y);
- }
- if (outline->num_points < 2) {
- _XkbCheckBounds(&shape->bounds, 0, 0);
- }
- }
- return True;
-}
-
-Bool
-XkbComputeShapeTop(XkbShapePtr shape, XkbBoundsPtr bounds)
-{
- register int p;
- XkbOutlinePtr outline;
- XkbPointPtr pt;
-
- if ((!shape) || (shape->num_outlines < 1))
- return False;
- if (shape->approx)
- outline = shape->approx;
- else
- outline = &shape->outlines[shape->num_outlines - 1];
- if (outline->num_points < 2) {
- bounds->x1 = bounds->y1 = 0;
- bounds->x2 = bounds->y2 = 0;
- }
- else {
- bounds->x1 = bounds->y1 = MAXSHORT;
- bounds->x2 = bounds->y2 = MINSHORT;
- }
- for (pt = outline->points, p = 0; p < outline->num_points; p++, pt++) {
- _XkbCheckBounds(bounds, pt->x, pt->y);
- }
- return True;
-}
-
-Bool
-XkbComputeRowBounds(XkbGeometryPtr geom, XkbSectionPtr section, XkbRowPtr row)
-{
- register int k, pos;
- XkbKeyPtr key;
- XkbBoundsPtr bounds, sbounds;
-
- if ((!geom) || (!section) || (!row))
- return False;
- bounds = &row->bounds;
- bzero(bounds, sizeof(XkbBoundsRec));
- for (key = row->keys, pos = k = 0; k < row->num_keys; k++, key++) {
- sbounds = &XkbKeyShape(geom, key)->bounds;
- _XkbCheckBounds(bounds, pos, 0);
- if (!row->vertical) {
- if (key->gap != 0) {
- pos += key->gap;
- _XkbCheckBounds(bounds, pos, 0);
- }
- _XkbCheckBounds(bounds, pos + sbounds->x1, sbounds->y1);
- _XkbCheckBounds(bounds, pos + sbounds->x2, sbounds->y2);
- pos += sbounds->x2;
- }
- else {
- if (key->gap != 0) {
- pos += key->gap;
- _XkbCheckBounds(bounds, 0, pos);
- }
- _XkbCheckBounds(bounds, pos + sbounds->x1, sbounds->y1);
- _XkbCheckBounds(bounds, pos + sbounds->x2, sbounds->y2);
- pos += sbounds->y2;
- }
- }
- return True;
-}
-
-Bool
-XkbComputeSectionBounds(XkbGeometryPtr geom, XkbSectionPtr section)
-{
- register int i;
- XkbShapePtr shape;
- XkbRowPtr row;
- XkbDoodadPtr doodad;
- XkbBoundsPtr bounds, rbounds;
-
- if ((!geom) || (!section))
- return False;
- bounds = &section->bounds;
- bzero(bounds, sizeof(XkbBoundsRec));
- for (i = 0, row = section->rows; i < section->num_rows; i++, row++) {
- if (!XkbComputeRowBounds(geom, section, row))
- return False;
- rbounds = &row->bounds;
- _XkbCheckBounds(bounds, row->left + rbounds->x1,
- row->top + rbounds->y1);
- _XkbCheckBounds(bounds, row->left + rbounds->x2,
- row->top + rbounds->y2);
- }
- for (i = 0, doodad = section->doodads; i < section->num_doodads;
- i++, doodad++) {
- static XkbBoundsRec tbounds;
-
- switch (doodad->any.type) {
- case XkbOutlineDoodad:
- case XkbSolidDoodad:
- shape = XkbShapeDoodadShape(geom, &doodad->shape);
- rbounds = &shape->bounds;
- break;
- case XkbTextDoodad:
- tbounds.x1 = doodad->text.left;
- tbounds.y1 = doodad->text.top;
- tbounds.x2 = tbounds.x1 + doodad->text.width;
- tbounds.y2 = tbounds.y1 + doodad->text.height;
- rbounds = &tbounds;
- break;
- case XkbIndicatorDoodad:
- shape = XkbIndicatorDoodadShape(geom, &doodad->indicator);
- rbounds = &shape->bounds;
- break;
- case XkbLogoDoodad:
- shape = XkbLogoDoodadShape(geom, &doodad->logo);
- rbounds = &shape->bounds;
- break;
- default:
- tbounds.x1 = tbounds.x2 = doodad->any.left;
- tbounds.y1 = tbounds.y2 = doodad->any.top;
- rbounds = &tbounds;
- break;
- }
- _XkbCheckBounds(bounds, rbounds->x1, rbounds->y1);
- _XkbCheckBounds(bounds, rbounds->x2, rbounds->y2);
- }
- return True;
-}
-
-/***====================================================================***/
-
-char *
-XkbFindOverlayForKey(XkbGeometryPtr geom, XkbSectionPtr wanted, char *under)
-{
- int s;
- XkbSectionPtr section;
-
- if ((geom == NULL) || (under == NULL) || (geom->num_sections < 1))
- return NULL;
-
- if (wanted)
- section = wanted;
- else
- section = geom->sections;
-
- for (s = 0; s < geom->num_sections; s++, section++) {
- XkbOverlayPtr ol;
- int o;
-
- if (section->num_overlays < 1)
- continue;
- for (o = 0, ol = section->overlays; o < section->num_overlays;
- o++, ol++) {
- XkbOverlayRowPtr row;
- int r;
-
- for (r = 0, row = ol->rows; r < ol->num_rows; r++, row++) {
- XkbOverlayKeyPtr key;
- int k;
-
- for (k = 0, key = row->keys; k < row->num_keys; k++, key++) {
- if (strncmp(under, key->under.name, XkbKeyNameLength) == 0)
- return key->over.name;
- }
- }
- }
- if (wanted != NULL)
- break;
- }
- return NULL;
-}
-
-/***====================================================================***/
-
-static Status
-_XkbReadGeomProperties(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- xkbGetGeometryReply *rep)
-{
- Status rtrn;
-
- if (rep->nProperties < 1)
- return Success;
- if ((rtrn = XkbAllocGeomProps(geom, rep->nProperties)) == Success) {
- register int i;
- register Bool ok = True;
-
- for (i = 0; (i < rep->nProperties) && ok; i++) {
- char *name = NULL;
- char *value = NULL;
- ok = _XkbGetReadBufferCountedString(buf, &name) && ok;
- ok = _XkbGetReadBufferCountedString(buf, &value) && ok;
- ok = ok && (XkbAddGeomProperty(geom, name, value) != NULL);
-
- _XkbFree(name);
- _XkbFree(value);
- }
- if (ok)
- rtrn = Success;
- else
- rtrn = BadLength;
- }
- return rtrn;
-}
-
-static Status
-_XkbReadGeomKeyAliases(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- xkbGetGeometryReply *rep)
-{
- Status rtrn;
-
- if (rep->nKeyAliases < 1)
- return Success;
- if ((rtrn = XkbAllocGeomKeyAliases(geom, rep->nKeyAliases)) == Success) {
- if (!_XkbCopyFromReadBuffer(buf, (char *) geom->key_aliases,
- (rep->nKeyAliases * XkbKeyNameLength * 2)))
- return BadLength;
- geom->num_key_aliases = rep->nKeyAliases;
- return Success;
- }
- else { /* alloc failed, just skip the aliases */
- _XkbSkipReadBufferData(buf, (rep->nKeyAliases * XkbKeyNameLength * 2));
- }
- return rtrn;
-}
-
-static Status
-_XkbReadGeomColors(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- xkbGetGeometryReply *rep)
-{
- Status rtrn;
-
- if (rep->nColors < 1)
- return Success;
- if ((rtrn = XkbAllocGeomColors(geom, rep->nColors)) == Success) {
- register int i;
-
- for (i = 0; i < rep->nColors; i++) {
- char *spec = NULL;
- if (!_XkbGetReadBufferCountedString(buf, &spec))
- rtrn = BadLength;
- else if (XkbAddGeomColor(geom, spec, geom->num_colors) == NULL)
- rtrn = BadAlloc;
-
- _XkbFree(spec);
- if (rtrn != Success)
- return rtrn;
- }
- return Success;
- }
- return rtrn;
-}
-
-static Status
-_XkbReadGeomShapes(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- xkbGetGeometryReply *rep)
-{
- register int i;
- Status rtrn;
-
- if (rep->nShapes < 1)
- return Success;
- if ((rtrn = XkbAllocGeomShapes(geom, rep->nShapes)) != Success)
- return rtrn;
- for (i = 0; i < rep->nShapes; i++) {
- xkbShapeWireDesc *shapeWire;
- XkbShapePtr shape;
- register int o;
-
- shapeWire = (xkbShapeWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbShapeWireDesc));
- if (!shapeWire)
- return BadLength;
- shape = XkbAddGeomShape(geom, shapeWire->name, shapeWire->nOutlines);
- if (!shape)
- return BadAlloc;
- for (o = 0; o < shapeWire->nOutlines; o++) {
- xkbOutlineWireDesc *olWire;
- XkbOutlinePtr ol;
- register int p;
- XkbPointPtr pt;
-
- olWire = (xkbOutlineWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbOutlineWireDesc));
- if (!olWire)
- return BadLength;
- ol = XkbAddGeomOutline(shape, olWire->nPoints);
- if (!ol)
- return BadAlloc;
- ol->corner_radius = olWire->cornerRadius;
- for (p = 0, pt = ol->points; p < olWire->nPoints; p++, pt++) {
- xkbPointWireDesc *ptWire;
-
- ptWire = (xkbPointWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbPointWireDesc));
- if (!ptWire)
- return BadLength;
- pt->x = ptWire->x;
- pt->y = ptWire->y;
- }
- ol->num_points = olWire->nPoints;
- }
- if ((shapeWire->primaryNdx != XkbNoShape) &&
- (shapeWire->primaryNdx < shapeWire->nOutlines))
- shape->primary = &shape->outlines[shapeWire->primaryNdx];
- else
- shape->primary = NULL;
- if ((shapeWire->approxNdx != XkbNoShape) &&
- (shapeWire->approxNdx < shapeWire->nOutlines))
- shape->approx = &shape->outlines[shapeWire->approxNdx];
- else
- shape->approx = NULL;
- XkbComputeShapeBounds(shape);
- }
- return Success;
-}
-
-static Status
-_XkbReadGeomDoodad(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- XkbSectionPtr section)
-{
- XkbDoodadPtr doodad;
- xkbDoodadWireDesc *doodadWire;
-
- doodadWire = (xkbDoodadWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbDoodadWireDesc));
- if (!doodadWire)
- return BadLength;
- doodad = XkbAddGeomDoodad(geom, section, doodadWire->any.name);
- if (!doodad)
- return BadAlloc;
- doodad->any.type = doodadWire->any.type;
- doodad->any.priority = doodadWire->any.priority;
- doodad->any.top = doodadWire->any.top;
- doodad->any.left = doodadWire->any.left;
- doodad->any.angle = doodadWire->any.angle;
- switch (doodad->any.type) {
- case XkbOutlineDoodad:
- case XkbSolidDoodad:
- doodad->shape.color_ndx = doodadWire->shape.colorNdx;
- doodad->shape.shape_ndx = doodadWire->shape.shapeNdx;
- break;
- case XkbTextDoodad:
- doodad->text.width = doodadWire->text.width;
- doodad->text.height = doodadWire->text.height;
- doodad->text.color_ndx = doodadWire->text.colorNdx;
- if (!_XkbGetReadBufferCountedString(buf, &doodad->text.text))
- return BadLength;
- if (!_XkbGetReadBufferCountedString(buf, &doodad->text.font))
- return BadLength;
- break;
- case XkbIndicatorDoodad:
- doodad->indicator.shape_ndx = doodadWire->indicator.shapeNdx;
- doodad->indicator.on_color_ndx = doodadWire->indicator.onColorNdx;
- doodad->indicator.off_color_ndx = doodadWire->indicator.offColorNdx;
- break;
- case XkbLogoDoodad:
- doodad->logo.color_ndx = doodadWire->logo.colorNdx;
- doodad->logo.shape_ndx = doodadWire->logo.shapeNdx;
- if (!_XkbGetReadBufferCountedString(buf, &doodad->logo.logo_name))
- return BadLength;
- break;
- default:
- return BadValue;
- }
- return Success;
-}
-
-static Status
-_XkbReadGeomOverlay(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- XkbSectionPtr section)
-{
- XkbOverlayPtr ol;
- xkbOverlayWireDesc *olWire;
- register int r;
-
- olWire = (xkbOverlayWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbOverlayWireDesc));
- if (olWire == NULL)
- return BadLength;
- ol = XkbAddGeomOverlay(section, olWire->name, olWire->nRows);
- if (ol == NULL)
- return BadLength;
- for (r = 0; r < olWire->nRows; r++) {
- register int k;
- XkbOverlayRowPtr row;
- xkbOverlayRowWireDesc *rowWire;
- xkbOverlayKeyWireDesc *keyWire;
-
- rowWire = (xkbOverlayRowWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbOverlayRowWireDesc));
- if (rowWire == NULL)
- return BadLength;
- row = XkbAddGeomOverlayRow(ol, rowWire->rowUnder, rowWire->nKeys);
- if (!row)
- return BadAlloc;
- row->row_under = rowWire->rowUnder;
- if (rowWire->nKeys < 1)
- continue;
- keyWire = (xkbOverlayKeyWireDesc *)
- _XkbGetReadBufferPtr(buf,
- SIZEOF(xkbOverlayKeyWireDesc) * rowWire->nKeys);
- if (keyWire == NULL)
- return BadLength;
- for (k = 0; k < rowWire->nKeys; k++, keyWire++, row->num_keys++) {
- memcpy(row->keys[row->num_keys].over.name, keyWire->over,
- XkbKeyNameLength);
- memcpy(row->keys[row->num_keys].under.name, keyWire->under,
- XkbKeyNameLength);
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadGeomSections(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- xkbGetGeometryReply *rep)
-{
- register int s;
- XkbSectionPtr section;
- xkbSectionWireDesc *sectionWire;
- Status rtrn;
-
- if (rep->nSections < 1)
- return Success;
- if ((rtrn = XkbAllocGeomSections(geom, rep->nSections)) != Success)
- return rtrn;
- for (s = 0; s < rep->nSections; s++) {
- sectionWire = (xkbSectionWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbSectionWireDesc));
- if (!sectionWire)
- return BadLength;
- section = XkbAddGeomSection(geom, sectionWire->name, sectionWire->nRows,
- sectionWire->nDoodads,
- sectionWire->nOverlays);
- if (!section)
- return BadAlloc;
- section->top = sectionWire->top;
- section->left = sectionWire->left;
- section->width = sectionWire->width;
- section->height = sectionWire->height;
- section->angle = sectionWire->angle;
- section->priority = sectionWire->priority;
- if (sectionWire->nRows > 0) {
- register int r;
-
- for (r = 0; r < sectionWire->nRows; r++) {
- XkbRowPtr row;
- xkbRowWireDesc *rowWire;
-
- rowWire = (xkbRowWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbRowWireDesc));
- if (!rowWire)
- return BadLength;
- row = XkbAddGeomRow(section, rowWire->nKeys);
- if (!row)
- return BadAlloc;
- row->top = rowWire->top;
- row->left = rowWire->left;
- row->vertical = rowWire->vertical;
- if (rowWire->nKeys > 0) {
- register int k;
-
- for (k = 0; k < rowWire->nKeys; k++) {
- XkbKeyPtr key;
- xkbKeyWireDesc *keyWire;
-
- keyWire = (xkbKeyWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbKeyWireDesc));
- if (!keyWire)
- return BadLength;
- key = XkbAddGeomKey(row);
- if (!key)
- return BadAlloc;
- memcpy(key->name.name, keyWire->name, XkbKeyNameLength);
- key->gap = keyWire->gap;
- key->shape_ndx = keyWire->shapeNdx;
- key->color_ndx = keyWire->colorNdx;
- }
- }
- }
- }
- if (sectionWire->nDoodads > 0) {
- register int d;
-
- for (d = 0; d < sectionWire->nDoodads; d++) {
- if ((rtrn = _XkbReadGeomDoodad(buf, geom, section)) != Success)
- return rtrn;
- }
- }
- if (sectionWire->nOverlays > 0) {
- register int o;
-
- for (o = 0; o < sectionWire->nOverlays; o++) {
- if ((rtrn = _XkbReadGeomOverlay(buf, geom, section)) != Success)
- return rtrn;
- }
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadGeomDoodads(XkbReadBufferPtr buf,
- XkbGeometryPtr geom,
- xkbGetGeometryReply *rep)
-{
- register int d;
- Status rtrn;
-
- if (rep->nDoodads < 1)
- return Success;
- if ((rtrn = XkbAllocGeomDoodads(geom, rep->nDoodads)) != Success)
- return rtrn;
- for (d = 0; d < rep->nDoodads; d++) {
- if ((rtrn = _XkbReadGeomDoodad(buf, geom, NULL)) != Success)
- return rtrn;
- }
- return Success;
-}
-
-Status
-_XkbReadGetGeometryReply(Display *dpy,
- xkbGetGeometryReply *rep,
- XkbDescPtr xkb,
- int *nread_rtrn)
-{
- XkbGeometryPtr geom;
-
- geom = _XkbTypedCalloc(1, XkbGeometryRec);
- if (!geom)
- return BadAlloc;
- if (xkb->geom)
- XkbFreeGeometry(xkb->geom, XkbGeomAllMask, True);
- xkb->geom = geom;
-
- geom->name = rep->name;
- geom->width_mm = rep->widthMM;
- geom->height_mm = rep->heightMM;
- if (rep->length) {
- XkbReadBufferRec buf;
- int left;
-
- if (_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4)) {
- Status status = Success;
-
- if (nread_rtrn)
- *nread_rtrn = (int) rep->length * 4;
- if (!_XkbGetReadBufferCountedString(&buf, &geom->label_font))
- status = BadLength;
- if (status == Success)
- status = _XkbReadGeomProperties(&buf, geom, rep);
- if (status == Success)
- status = _XkbReadGeomColors(&buf, geom, rep);
- if (status == Success)
- status = _XkbReadGeomShapes(&buf, geom, rep);
- if (status == Success)
- status = _XkbReadGeomSections(&buf, geom, rep);
- if (status == Success)
- status = _XkbReadGeomDoodads(&buf, geom, rep);
- if (status == Success)
- status = _XkbReadGeomKeyAliases(&buf, geom, rep);
- left = _XkbFreeReadBuffer(&buf);
- if ((rep->baseColorNdx > geom->num_colors) ||
- (rep->labelColorNdx > geom->num_colors))
- status = BadLength;
- if ((status != Success) || left || buf.error) {
- if (status == Success)
- status = BadLength;
- XkbFreeGeometry(geom, XkbGeomAllMask, True);
- xkb->geom = NULL;
- return status;
- }
- geom->base_color = &geom->colors[rep->baseColorNdx];
- geom->label_color = &geom->colors[rep->labelColorNdx];
- }
- else {
- XkbFreeGeometry(geom, XkbGeomAllMask, True);
- xkb->geom = NULL;
- return BadAlloc;
- }
- }
- return Success;
-}
-
-Status
-XkbGetGeometry(Display *dpy, XkbDescPtr xkb)
-{
- xkbGetGeometryReq *req;
- xkbGetGeometryReply rep;
- Status status;
-
- if ((!xkb) || (dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- LockDisplay(dpy);
- GetReq(kbGetGeometry, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetGeometry;
- req->deviceSpec = xkb->device_spec;
- req->name = None;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse))
- status = BadImplementation;
- else if (!rep.found)
- status = BadName;
- else
- status = _XkbReadGetGeometryReply(dpy, &rep, xkb, NULL);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetNamedGeometry(Display *dpy, XkbDescPtr xkb, Atom name)
-{
- xkbGetGeometryReq *req;
- xkbGetGeometryReply rep;
- Status status;
-
- if ((name == None) || (dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- LockDisplay(dpy);
- GetReq(kbGetGeometry, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetGeometry;
- req->deviceSpec = xkb->device_spec;
- req->name = (CARD32) name;
- if ((!_XReply(dpy, (xReply *) &rep, 0, xFalse)) || (!rep.found))
- status = BadImplementation;
- else if (!rep.found)
- status = BadName;
- else
- status = _XkbReadGetGeometryReply(dpy, &rep, xkb, NULL);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
diff --git a/nx-X11/lib/X11/XKBGetByName.c b/nx-X11/lib/X11/XKBGetByName.c
deleted file mode 100644
index c673781ed..000000000
--- a/nx-X11/lib/X11/XKBGetByName.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#define NEED_MAP_READERS
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-/***====================================================================***/
-
-XkbDescPtr
-XkbGetKeyboardByName(Display *dpy,
- unsigned deviceSpec,
- XkbComponentNamesPtr names,
- unsigned want,
- unsigned need,
- Bool load)
-{
- register xkbGetKbdByNameReq *req;
- xkbGetKbdByNameReply rep;
- int len, extraLen = 0;
- char *str;
- XkbDescPtr xkb;
- int mapLen, codesLen, typesLen, compatLen;
- int symsLen, geomLen;
- XkbInfoPtr xkbi;
-
- if ((dpy == NULL) || (dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return NULL;
-
- xkbi = dpy->xkb_info;
- xkb = (XkbDescRec *) _XkbCalloc(1, sizeof(XkbDescRec));
- if (!xkb)
- return NULL;
- xkb->device_spec = deviceSpec;
- xkb->map = (XkbClientMapRec *) _XkbCalloc(1, sizeof(XkbClientMapRec));
- xkb->dpy = dpy;
-
- LockDisplay(dpy);
- GetReq(kbGetKbdByName, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetKbdByName;
- req->deviceSpec = xkb->device_spec;
- req->want = want;
- req->need = need;
- req->load = load;
-
- mapLen = codesLen = typesLen = compatLen = symsLen = geomLen = 0;
- if (names) {
- if (names->keymap)
- mapLen = (int) strlen(names->keymap);
- if (names->keycodes)
- codesLen = (int) strlen(names->keycodes);
- if (names->types)
- typesLen = (int) strlen(names->types);
- if (names->compat)
- compatLen = (int) strlen(names->compat);
- if (names->symbols)
- symsLen = (int) strlen(names->symbols);
- if (names->geometry)
- geomLen = (int) strlen(names->geometry);
- if (mapLen > 255)
- mapLen = 255;
- if (codesLen > 255)
- codesLen = 255;
- if (typesLen > 255)
- typesLen = 255;
- if (compatLen > 255)
- compatLen = 255;
- if (symsLen > 255)
- symsLen = 255;
- if (geomLen > 255)
- geomLen = 255;
- }
- else
- mapLen = codesLen = typesLen = compatLen = symsLen = geomLen = 0;
-
- len = mapLen + codesLen + typesLen + compatLen + symsLen + geomLen + 6;
- len = XkbPaddedSize(len);
- req->length += len / 4;
- BufAlloc(char *, str, len);
-
- *str++ = mapLen;
- if (mapLen > 0) {
- memcpy(str, names->keymap, mapLen);
- str += mapLen;
- }
- *str++ = codesLen;
- if (codesLen > 0) {
- memcpy(str, names->keycodes, codesLen);
- str += codesLen;
- }
- *str++ = typesLen;
- if (typesLen > 0) {
- memcpy(str, names->types, typesLen);
- str += typesLen;
- }
- *str++ = compatLen;
- if (compatLen > 0) {
- memcpy(str, names->compat, compatLen);
- str += compatLen;
- }
- *str++ = symsLen;
- if (symsLen > 0) {
- memcpy(str, names->symbols, symsLen);
- str += symsLen;
- }
- *str++ = geomLen;
- if (geomLen > 0) {
- memcpy(str, names->geometry, geomLen);
- str += geomLen;
- }
- if ((!_XReply(dpy, (xReply *) &rep, 0, xFalse)) || (!rep.reported))
- goto BAILOUT;
- extraLen = (int) rep.length * 4;
-
- xkb->device_spec = rep.deviceID;
- xkb->min_key_code = rep.minKeyCode;
- xkb->max_key_code = rep.maxKeyCode;
- if (rep.reported & (XkbGBN_SymbolsMask | XkbGBN_TypesMask)) {
- xkbGetMapReply mrep;
- Status status;
- int nread = 0;
-
- _XRead(dpy, (char *) &mrep, SIZEOF(xkbGetMapReply));
- extraLen -= SIZEOF(xkbGetMapReply);
- status = _XkbReadGetMapReply(dpy, &mrep, xkb, &nread);
- extraLen -= nread;
- if (status != Success)
- goto BAILOUT;
- }
- if (rep.reported & XkbGBN_CompatMapMask) {
- xkbGetCompatMapReply crep;
- Status status;
- int nread = 0;
-
- _XRead(dpy, (char *) &crep, SIZEOF(xkbGetCompatMapReply));
- extraLen -= SIZEOF(xkbGetCompatMapReply);
- status = _XkbReadGetCompatMapReply(dpy, &crep, xkb, &nread);
- extraLen -= nread;
- if (status != Success)
- goto BAILOUT;
- }
- if (rep.reported & XkbGBN_IndicatorMapMask) {
- xkbGetIndicatorMapReply irep;
- Status status;
- int nread = 0;
-
- _XRead(dpy, (char *) &irep, SIZEOF(xkbGetIndicatorMapReply));
- extraLen -= SIZEOF(xkbGetIndicatorMapReply);
- status = _XkbReadGetIndicatorMapReply(dpy, &irep, xkb, &nread);
- extraLen -= nread;
- if (status != Success)
- goto BAILOUT;
- }
- if (rep.reported & (XkbGBN_KeyNamesMask | XkbGBN_OtherNamesMask)) {
- xkbGetNamesReply nrep;
- Status status;
- int nread = 0;
-
- _XRead(dpy, (char *) &nrep, SIZEOF(xkbGetNamesReply));
- extraLen -= SIZEOF(xkbGetNamesReply);
- status = _XkbReadGetNamesReply(dpy, &nrep, xkb, &nread);
- extraLen -= nread;
- if (status != Success)
- goto BAILOUT;
- }
- if (rep.reported & XkbGBN_GeometryMask) {
- xkbGetGeometryReply grep;
- Status status;
- int nread = 0;
-
- _XRead(dpy, (char *) &grep, SIZEOF(xkbGetGeometryReply));
- extraLen -= SIZEOF(xkbGetGeometryReply);
- status = _XkbReadGetGeometryReply(dpy, &grep, xkb, &nread);
- extraLen -= nread;
- if (status != Success)
- goto BAILOUT;
- }
- if (extraLen > 0)
- goto BAILOUT;
- UnlockDisplay(dpy);
- SyncHandle();
- return xkb;
- BAILOUT:
- if (xkb != NULL)
- XkbFreeKeyboard(xkb, XkbAllComponentsMask, xTrue);
- if (extraLen > 0)
- _XEatData(dpy, extraLen);
- UnlockDisplay(dpy);
- SyncHandle();
- return NULL;
-}
-
-XkbDescPtr
-XkbGetKeyboard(Display *dpy, unsigned which, unsigned deviceSpec)
-{
- return XkbGetKeyboardByName(dpy, deviceSpec, NULL, which, which, False);
-}
diff --git a/nx-X11/lib/X11/XKBGetMap.c b/nx-X11/lib/X11/XKBGetMap.c
deleted file mode 100644
index 6e3c74343..000000000
--- a/nx-X11/lib/X11/XKBGetMap.c
+++ /dev/null
@@ -1,882 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#define NEED_MAP_READERS
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-static Status
-_XkbReadKeyTypes(XkbReadBufferPtr buf, XkbDescPtr xkb, xkbGetMapReply *rep)
-{
- int i, n, lastMapCount;
- XkbKeyTypePtr type;
-
- if (rep->nTypes > 0) {
- n = rep->firstType + rep->nTypes;
- if (xkb->map->num_types >= n)
- n = xkb->map->num_types;
- else if (XkbAllocClientMap(xkb, XkbKeyTypesMask, n) != Success)
- return BadAlloc;
-
- type = &xkb->map->types[rep->firstType];
- for (i = 0; i < (int) rep->nTypes; i++, type++) {
- xkbKeyTypeWireDesc *desc;
- register int ndx;
-
- ndx = i + rep->firstType;
- if (ndx >= xkb->map->num_types)
- xkb->map->num_types = ndx + 1;
-
- desc = (xkbKeyTypeWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbKeyTypeWireDesc));
- if (desc == NULL)
- return BadLength;
-
- lastMapCount = type->map_count;
- if (desc->nMapEntries > 0) {
- if ((type->map == NULL) ||
- (desc->nMapEntries > type->map_count)) {
- XkbKTMapEntryRec *prev_map = type->map;
-
- type->map = _XkbTypedRealloc(type->map, desc->nMapEntries,
- XkbKTMapEntryRec);
- if (type->map == NULL) {
- _XkbFree(prev_map);
- return BadAlloc;
- }
- }
- }
- else if (type->map != NULL) {
- Xfree(type->map);
- type->map_count = 0;
- type->map = NULL;
- }
-
- if (desc->preserve && (desc->nMapEntries > 0)) {
- if ((!type->preserve) || (desc->nMapEntries > lastMapCount)) {
- XkbModsRec *prev_preserve = type->preserve;
-
- type->preserve = _XkbTypedRealloc(type->preserve,
- desc->nMapEntries,
- XkbModsRec);
- if (type->preserve == NULL) {
- _XkbFree(prev_preserve);
- return BadAlloc;
- }
- }
- }
- else if (type->preserve != NULL) {
- Xfree(type->preserve);
- type->preserve = NULL;
- }
-
- type->mods.mask = desc->mask;
- type->mods.real_mods = desc->realMods;
- type->mods.vmods = desc->virtualMods;
- type->num_levels = desc->numLevels;
- type->map_count = desc->nMapEntries;
- if (desc->nMapEntries > 0) {
- register xkbKTMapEntryWireDesc *wire;
- register XkbKTMapEntryPtr entry;
- register int size;
-
- size = type->map_count * SIZEOF(xkbKTMapEntryWireDesc);
- wire =
- (xkbKTMapEntryWireDesc *) _XkbGetReadBufferPtr(buf, size);
- if (wire == NULL)
- return BadLength;
- entry = type->map;
- for (n = 0; n < type->map_count; n++, wire++, entry++) {
- entry->active = wire->active;
- entry->level = wire->level;
- entry->mods.mask = wire->mask;
- entry->mods.real_mods = wire->realMods;
- entry->mods.vmods = wire->virtualMods;
- }
-
- if (desc->preserve) {
- register xkbModsWireDesc *pwire;
- register XkbModsPtr preserve;
- register int sz;
-
- sz = desc->nMapEntries * SIZEOF(xkbModsWireDesc);
- pwire = (xkbModsWireDesc *) _XkbGetReadBufferPtr(buf, sz);
- if (pwire == NULL)
- return BadLength;
- preserve = type->preserve;
- for (n = 0; n < desc->nMapEntries; n++, pwire++, preserve++) {
- preserve->mask = pwire->mask;
- preserve->vmods = pwire->virtualMods;
- preserve->real_mods = pwire->realMods;
- }
- }
- }
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadKeySyms(XkbReadBufferPtr buf, XkbDescPtr xkb, xkbGetMapReply *rep)
-{
- register int i;
- XkbClientMapPtr map;
- int size = xkb->max_key_code + 1;
-
- if (((unsigned short) rep->firstKeySym + rep->nKeySyms) > size)
- return BadLength;
-
- map = xkb->map;
- if (map->key_sym_map == NULL) {
- register int offset;
- XkbSymMapPtr oldMap;
- xkbSymMapWireDesc *newMap;
-
- map->key_sym_map = _XkbTypedCalloc(size, XkbSymMapRec);
- if (map->key_sym_map == NULL)
- return BadAlloc;
- if (map->syms == NULL) {
- int sz;
-
- sz = (rep->totalSyms * 12) / 10;
- sz = ((sz + (unsigned) 128) / 128) * 128;
- map->syms = _XkbTypedCalloc(sz, KeySym);
- if (map->syms == NULL)
- return BadAlloc;
- map->size_syms = sz;
- }
- offset = 1;
- oldMap = &map->key_sym_map[rep->firstKeySym];
- for (i = 0; i < (int) rep->nKeySyms; i++, oldMap++) {
- newMap = (xkbSymMapWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbSymMapWireDesc));
- if (newMap == NULL)
- return BadLength;
- oldMap->kt_index[0] = newMap->ktIndex[0];
- oldMap->kt_index[1] = newMap->ktIndex[1];
- oldMap->kt_index[2] = newMap->ktIndex[2];
- oldMap->kt_index[3] = newMap->ktIndex[3];
- oldMap->group_info = newMap->groupInfo;
- oldMap->width = newMap->width;
- oldMap->offset = offset;
- if (offset + newMap->nSyms >= map->size_syms) {
- register int sz;
- KeySym *prev_syms = map->syms;
-
- sz = map->size_syms + 128;
- map->syms = _XkbTypedRealloc(map->syms, sz, KeySym);
- if (map->syms == NULL) {
- _XkbFree(prev_syms);
- map->size_syms = 0;
- return BadAlloc;
- }
- map->size_syms = sz;
- }
- if (newMap->nSyms > 0) {
- _XkbReadBufferCopyKeySyms(buf, (KeySym *) &map->syms[offset],
- newMap->nSyms);
- offset += newMap->nSyms;
- }
- else {
- map->syms[offset] = 0;
- }
- }
- map->num_syms = offset;
- }
- else {
- XkbSymMapPtr oldMap = &map->key_sym_map[rep->firstKeySym];
-
- for (i = 0; i < (int) rep->nKeySyms; i++, oldMap++) {
- xkbSymMapWireDesc *newMap;
- KeySym *newSyms;
- int tmp;
-
- newMap = (xkbSymMapWireDesc *)
- _XkbGetReadBufferPtr(buf, SIZEOF(xkbSymMapWireDesc));
- if (newMap == NULL)
- return BadLength;
-
- if (newMap->nSyms > 0)
- tmp = newMap->nSyms;
- else
- tmp = 0;
-
- newSyms = XkbResizeKeySyms(xkb, i + rep->firstKeySym, tmp);
- if (newSyms == NULL)
- return BadAlloc;
- if (newMap->nSyms > 0)
- _XkbReadBufferCopyKeySyms(buf, newSyms, newMap->nSyms);
- else
- newSyms[0] = NoSymbol;
- oldMap->kt_index[0] = newMap->ktIndex[0];
- oldMap->kt_index[1] = newMap->ktIndex[1];
- oldMap->kt_index[2] = newMap->ktIndex[2];
- oldMap->kt_index[3] = newMap->ktIndex[3];
- oldMap->group_info = newMap->groupInfo;
- oldMap->width = newMap->width;
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadKeyActions(XkbReadBufferPtr buf, XkbDescPtr info, xkbGetMapReply *rep)
-{
- int i;
- CARD8 numDescBuf[248];
- CARD8 *numDesc = NULL;
- register int nKeyActs;
- Status ret = Success;
-
- if ((nKeyActs = rep->nKeyActs) > 0) {
- XkbSymMapPtr symMap;
-
- if (nKeyActs < sizeof numDescBuf)
- numDesc = numDescBuf;
- else
- numDesc = Xmalloc(nKeyActs * sizeof(CARD8));
-
- if (!_XkbCopyFromReadBuffer(buf, (char *) numDesc, nKeyActs)) {
- ret = BadLength;
- goto done;
- }
- i = XkbPaddedSize(nKeyActs) - nKeyActs;
- if ((i > 0) && (!_XkbSkipReadBufferData(buf, i))) {
- ret = BadLength;
- goto done;
- }
- symMap = &info->map->key_sym_map[rep->firstKeyAct];
- for (i = 0; i < (int) rep->nKeyActs; i++, symMap++) {
- if (numDesc[i] == 0) {
- if ((i + rep->firstKeyAct) > (info->max_key_code + 1)) {
- ret = BadLength;
- goto done;
- }
- info->server->key_acts[i + rep->firstKeyAct] = 0;
- }
- else {
- XkbAction *newActs;
-
- /* 8/16/93 (ef) -- XXX! Verify size here (numdesc must be */
- /* either zero or XkbKeyNumSyms(info,key) */
- newActs = XkbResizeKeyActions(info, i + rep->firstKeyAct,
- numDesc[i]);
- if (newActs == NULL) {
- ret = BadAlloc;
- goto done;
- }
- if (!_XkbCopyFromReadBuffer(buf, (char *) newActs,
- (int) (numDesc[i] * sizeof(XkbAction)))) {
- ret = BadLength;
- goto done;
- }
- }
- }
- }
- done:
- if (numDesc != NULL && numDesc != numDescBuf)
- Xfree(numDesc);
- return ret;
-}
-
-static Status
-_XkbReadKeyBehaviors(XkbReadBufferPtr buf, XkbDescPtr xkb, xkbGetMapReply *rep)
-{
- register int i;
-
- if (rep->totalKeyBehaviors > 0) {
- int size = xkb->max_key_code + 1;
-
- if (((int) rep->firstKeyBehavior + rep->nKeyBehaviors) > size)
- return BadLength;
- if (xkb->server->behaviors == NULL) {
- xkb->server->behaviors = _XkbTypedCalloc(size, XkbBehavior);
- if (xkb->server->behaviors == NULL)
- return BadAlloc;
- }
- else {
- bzero(&xkb->server->behaviors[rep->firstKeyBehavior],
- (rep->nKeyBehaviors * sizeof(XkbBehavior)));
- }
- for (i = 0; i < rep->totalKeyBehaviors; i++) {
- xkbBehaviorWireDesc *wire;
-
- wire = (xkbBehaviorWireDesc *) _XkbGetReadBufferPtr(buf,
- SIZEOF(xkbBehaviorWireDesc));
- if (wire == NULL || wire->key >= size)
- return BadLength;
- xkb->server->behaviors[wire->key].type = wire->type;
- xkb->server->behaviors[wire->key].data = wire->data;
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadVirtualMods(XkbReadBufferPtr buf, XkbDescPtr xkb, xkbGetMapReply *rep)
-{
- if (rep->virtualMods) {
- register int i, bit, nVMods;
- register char *data;
-
- for (i = nVMods = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
- if (rep->virtualMods & bit)
- nVMods++;
- }
- data = _XkbGetReadBufferPtr(buf, XkbPaddedSize(nVMods));
- if (data == NULL)
- return BadLength;
- for (i = 0, bit = 1; (i < XkbNumVirtualMods) && (nVMods > 0);
- i++, bit <<= 1) {
- if (rep->virtualMods & bit) {
- xkb->server->vmods[i] = *data++;
- nVMods--;
- }
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadExplicitComponents(XkbReadBufferPtr buf,
- XkbDescPtr xkb,
- xkbGetMapReply *rep)
-{
- register int i;
- unsigned char *wire;
-
- if (rep->totalKeyExplicit > 0) {
- int size = xkb->max_key_code + 1;
-
- if (((int) rep->firstKeyExplicit + rep->nKeyExplicit) > size)
- return BadLength;
- if (xkb->server->explicit == NULL) {
- xkb->server->explicit = _XkbTypedCalloc(size, unsigned char);
-
- if (xkb->server->explicit == NULL)
- return BadAlloc;
- }
- else {
- bzero(&xkb->server->explicit[rep->firstKeyExplicit],
- rep->nKeyExplicit);
- }
- i = XkbPaddedSize(2 * rep->totalKeyExplicit);
- wire = (unsigned char *) _XkbGetReadBufferPtr(buf, i);
- if (!wire)
- return BadLength;
- for (i = 0; i < rep->totalKeyExplicit; i++, wire += 2) {
- if (wire[0] > xkb->max_key_code || wire[1] > xkb->max_key_code)
- return BadLength;
- xkb->server->explicit[wire[0]] = wire[1];
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadModifierMap(XkbReadBufferPtr buf, XkbDescPtr xkb, xkbGetMapReply *rep)
-{
- register int i;
- unsigned char *wire;
-
- if (rep->totalModMapKeys > 0) {
- if (((int) rep->firstModMapKey + rep->nModMapKeys) >
- (xkb->max_key_code + 1))
- return BadLength;
- if ((xkb->map->modmap == NULL) &&
- (XkbAllocClientMap(xkb, XkbModifierMapMask, 0) != Success)) {
- return BadAlloc;
- }
- else {
- bzero(&xkb->map->modmap[rep->firstModMapKey], rep->nModMapKeys);
- }
- i = XkbPaddedSize(2 * rep->totalModMapKeys);
- wire = (unsigned char *) _XkbGetReadBufferPtr(buf, i);
- if (!wire)
- return BadLength;
- for (i = 0; i < rep->totalModMapKeys; i++, wire += 2) {
- if (wire[0] > xkb->max_key_code || wire[1] > xkb->max_key_code)
- return BadLength;
- xkb->map->modmap[wire[0]] = wire[1];
- }
- }
- return Success;
-}
-
-static Status
-_XkbReadVirtualModMap(XkbReadBufferPtr buf,
- XkbDescPtr xkb,
- xkbGetMapReply *rep)
-{
- register int i;
- xkbVModMapWireDesc *wire;
- XkbServerMapPtr srv;
-
- if (rep->totalVModMapKeys > 0) {
- if (((int) rep->firstVModMapKey + rep->nVModMapKeys)
- > xkb->max_key_code + 1)
- return BadLength;
- if (((xkb->server == NULL) || (xkb->server->vmodmap == NULL)) &&
- (XkbAllocServerMap(xkb, XkbVirtualModMapMask, 0) != Success)) {
- return BadAlloc;
- }
- else {
- srv = xkb->server;
- if (rep->nVModMapKeys > rep->firstVModMapKey)
- bzero((char *) &srv->vmodmap[rep->firstVModMapKey],
- (rep->nVModMapKeys - rep->firstVModMapKey) *
- sizeof(unsigned short));
- }
- srv = xkb->server;
- i = rep->totalVModMapKeys * SIZEOF(xkbVModMapWireDesc);
- wire = (xkbVModMapWireDesc *) _XkbGetReadBufferPtr(buf, i);
- if (!wire)
- return BadLength;
- for (i = 0; i < rep->totalVModMapKeys; i++, wire++) {
- if ((wire->key >= xkb->min_key_code) &&
- (wire->key <= xkb->max_key_code))
- srv->vmodmap[wire->key] = wire->vmods;
- }
- }
- return Success;
-}
-
-static xkbGetMapReq *
-_XkbGetGetMapReq(Display *dpy, XkbDescPtr xkb)
-{
- xkbGetMapReq *req;
-
- GetReq(kbGetMap, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbGetMap;
- req->deviceSpec = xkb->device_spec;
- req->full = req->partial = 0;
- req->firstType = req->nTypes = 0;
- req->firstKeySym = req->nKeySyms = 0;
- req->firstKeyAct = req->nKeyActs = 0;
- req->firstKeyBehavior = req->nKeyBehaviors = 0;
- req->virtualMods = 0;
- req->firstKeyExplicit = req->nKeyExplicit = 0;
- req->firstModMapKey = req->nModMapKeys = 0;
- req->firstVModMapKey = req->nVModMapKeys = 0;
- return req;
-}
-
-Status
-_XkbReadGetMapReply(Display *dpy,
- xkbGetMapReply *rep,
- XkbDescPtr xkb,
- int *nread_rtrn)
-{
- int extraData;
- unsigned mask;
-
- if (xkb->device_spec == XkbUseCoreKbd)
- xkb->device_spec = rep->deviceID;
- if (rep->maxKeyCode < rep->minKeyCode)
- return BadImplementation;
- xkb->min_key_code = rep->minKeyCode;
- xkb->max_key_code = rep->maxKeyCode;
-
- if (!xkb->map) {
- mask = rep->present & XkbAllClientInfoMask;
- if (mask && (XkbAllocClientMap(xkb, mask, rep->nTypes) != Success))
- return BadAlloc;
- }
- if (!xkb->server) {
- mask = rep->present & XkbAllServerInfoMask;
- if (mask && (XkbAllocServerMap(xkb, mask, rep->totalActs) != Success))
- return BadAlloc;
- }
- extraData = (int) (rep->length * 4);
- extraData -= (SIZEOF(xkbGetMapReply) - SIZEOF(xGenericReply));
- if (rep->length) {
- XkbReadBufferRec buf;
- int left;
-
- if (_XkbInitReadBuffer(dpy, &buf, extraData)) {
- Status status = Success;
-
- if (nread_rtrn != NULL)
- *nread_rtrn = extraData;
- if (status == Success)
- status = _XkbReadKeyTypes(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadKeySyms(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadKeyActions(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadKeyBehaviors(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadVirtualMods(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadExplicitComponents(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadModifierMap(&buf, xkb, rep);
- if (status == Success)
- status = _XkbReadVirtualModMap(&buf, xkb, rep);
- left = _XkbFreeReadBuffer(&buf);
- if (status != Success)
- return status;
- else if (left || buf.error)
- return BadLength;
- }
- else
- return BadAlloc;
- }
- return Success;
-}
-
-static Status
-_XkbHandleGetMapReply(Display *dpy, XkbDescPtr xkb)
-{
- xkbGetMapReply rep;
-
- if (!_XReply(dpy, (xReply *) &rep,
- ((SIZEOF(xkbGetMapReply) - SIZEOF(xGenericReply)) >> 2),
- xFalse)) {
- return BadImplementation;
- }
- return _XkbReadGetMapReply(dpy, &rep, xkb, NULL);
-}
-
-Status
-XkbGetUpdatedMap(Display *dpy, unsigned which, XkbDescPtr xkb)
-{
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- if (which) {
- register xkbGetMapReq *req;
- Status status;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->full = which;
- status = _XkbHandleGetMapReply(dpy, xkb);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
- }
- return Success;
-}
-
-XkbDescPtr
-XkbGetMap(Display *dpy, unsigned which, unsigned deviceSpec)
-{
- XkbDescPtr xkb;
-
- xkb = _XkbTypedCalloc(1, XkbDescRec);
- if (xkb) {
- xkb->device_spec = deviceSpec;
- xkb->map = _XkbTypedCalloc(1, XkbClientMapRec);
- if ((xkb->map == NULL) ||
- ((which) && (XkbGetUpdatedMap(dpy, which, xkb) != Success))) {
- if (xkb->map) {
- Xfree(xkb->map);
- xkb->map = NULL;
- }
- Xfree(xkb);
- return NULL;
- }
- xkb->dpy = dpy;
- }
- return xkb;
-}
-
-Status
-XkbGetKeyTypes(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- if ((num < 1) || (num > XkbMaxKeyTypes))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstType = first;
- req->nTypes = num;
- status = _XkbHandleGetMapReply(dpy, xkb);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetKeyActions(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- if ((num < 1) || (num > XkbMaxKeyCount))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstKeyAct = first;
- req->nKeyActs = num;
- status = _XkbHandleGetMapReply(dpy, xkb);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetKeySyms(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- if ((num < 1) || (num > XkbMaxKeyCount))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstKeySym = first;
- req->nKeySyms = num;
- status = _XkbHandleGetMapReply(dpy, xkb);
-
- UnlockDisplay(dpy);
- SyncHandle();
-
- return status;
-}
-
-Status
-XkbGetKeyBehaviors(Display *dpy, unsigned first, unsigned num, XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- if ((num < 1) || (num > XkbMaxKeyCount))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstKeyBehavior = first;
- req->nKeyBehaviors = num;
- status = _XkbHandleGetMapReply(dpy, xkb);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetVirtualMods(Display *dpy, unsigned which, XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->virtualMods = which;
- status = _XkbHandleGetMapReply(dpy, xkb);
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetKeyExplicitComponents(Display *dpy,
- unsigned first,
- unsigned num,
- XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- if ((num < 1) || (num > XkbMaxKeyCount))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstKeyExplicit = first;
- req->nKeyExplicit = num;
- if ((xkb != NULL) && (xkb->server != NULL) &&
- (xkb->server->explicit != NULL)) {
- if ((num > 0) && (first >= xkb->min_key_code) &&
- (first + num <= xkb->max_key_code))
- bzero(&xkb->server->explicit[first], num);
- }
- if (xkb)
- status = _XkbHandleGetMapReply(dpy, xkb);
- else
- status = BadMatch;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetKeyModifierMap(Display *dpy,
- unsigned first,
- unsigned num,
- XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- if ((num < 1) || (num > XkbMaxKeyCount))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstModMapKey = first;
- req->nModMapKeys = num;
- if ((xkb != NULL) && (xkb->map != NULL) && (xkb->map->modmap != NULL)) {
- if ((num > 0) && (first >= xkb->min_key_code) &&
- (first + num <= xkb->max_key_code))
- bzero(&xkb->map->modmap[first], num);
- }
- if (xkb)
- status = _XkbHandleGetMapReply(dpy, xkb);
- else
- status = BadMatch;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetKeyVirtualModMap(Display *dpy, unsigned first, unsigned num,
- XkbDescPtr xkb)
-{
- register xkbGetMapReq *req;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- if ((num < 1) || (num > XkbMaxKeyCount))
- return BadValue;
-
- LockDisplay(dpy);
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->firstVModMapKey = first;
- req->nVModMapKeys = num;
- if ((xkb != NULL) && (xkb->map != NULL) && (xkb->map->modmap != NULL)) {
- if ((num > 0) && (first >= xkb->min_key_code) &&
- (first + num <= xkb->max_key_code))
- bzero(&xkb->server->vmodmap[first], num * sizeof(unsigned short));
- }
-
- if (xkb)
- status = _XkbHandleGetMapReply(dpy, xkb);
- else
- status = BadMatch;
-
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Status
-XkbGetMapChanges(Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr changes)
-{
- xkbGetMapReq *req;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- LockDisplay(dpy);
- if (changes->changed) {
- Status status = Success;
-
- req = _XkbGetGetMapReq(dpy, xkb);
- req->full = 0;
- req->partial = changes->changed;
- req->firstType = changes->first_type;
- req->nTypes = changes->num_types;
- req->firstKeySym = changes->first_key_sym;
- req->nKeySyms = changes->num_key_syms;
- req->firstKeyAct = changes->first_key_act;
- req->nKeyActs = changes->num_key_acts;
- req->firstKeyBehavior = changes->first_key_behavior;
- req->nKeyBehaviors = changes->num_key_behaviors;
- req->virtualMods = changes->vmods;
- req->firstKeyExplicit = changes->first_key_explicit;
- req->nKeyExplicit = changes->num_key_explicit;
- req->firstModMapKey = changes->first_modmap_key;
- req->nModMapKeys = changes->num_modmap_keys;
- req->firstVModMapKey = changes->first_vmodmap_key;
- req->nVModMapKeys = changes->num_vmodmap_keys;
- status = _XkbHandleGetMapReply(dpy, xkb);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
- }
- UnlockDisplay(dpy);
- return Success;
-}
diff --git a/nx-X11/lib/X11/XKBList.c b/nx-X11/lib/X11/XKBList.c
deleted file mode 100644
index d3d29e2a6..000000000
--- a/nx-X11/lib/X11/XKBList.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/************************************************************
-Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#define NEED_MAP_READERS
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-/***====================================================================***/
-
-static void
-_FreeComponentNames(int num, XkbComponentNamePtr names)
-{
- int i;
- XkbComponentNamePtr tmp;
-
- if ((num < 1) || (names == NULL))
- return;
- for (i = 0, tmp = names; i < num; i++, tmp++) {
- if (tmp->name) {
- _XkbFree(tmp->name);
- tmp->name = NULL;
- }
- }
- _XkbFree(names);
- return;
-}
-
-/***====================================================================***/
-
-static XkbComponentNamePtr
-_ReadListing(XkbReadBufferPtr buf, int count, Status * status_rtrn)
-{
- XkbComponentNamePtr first, this;
- register int i;
- CARD16 *flags;
- int slen, wlen;
- char *str;
-
- if (count < 1)
- return NULL;
- first = _XkbTypedCalloc(count, XkbComponentNameRec);
- if (!first)
- return NULL;
- for (this = first, i = 0; i < count; i++, this++) {
- flags = (CARD16 *) _XkbGetReadBufferPtr(buf, 2 * sizeof(CARD16));
- if (!flags)
- goto BAILOUT;
- this->flags = flags[0];
- slen = flags[1];
- wlen = ((slen + 1) / 2) * 2; /* pad to 2 byte boundary */
- this->name = _XkbTypedCalloc(slen + 1, char);
-
- if (!this->name)
- goto BAILOUT;
- str = (char *) _XkbGetReadBufferPtr(buf, wlen);
- if (!str)
- goto BAILOUT;
- memcpy(this->name, str, slen);
- }
- return first;
- BAILOUT:
- *status_rtrn = BadAlloc;
- _FreeComponentNames(i, first);
- return NULL;
-}
-
-/***====================================================================***/
-
-XkbComponentListPtr
-XkbListComponents(Display *dpy,
- unsigned deviceSpec,
- XkbComponentNamesPtr ptrns,
- int *max_inout)
-{
- register xkbListComponentsReq *req;
- xkbListComponentsReply rep;
- XkbInfoPtr xkbi;
- XkbComponentListPtr list;
- XkbReadBufferRec buf;
- int left;
- char *str;
- int extraLen, len, mapLen, codesLen, typesLen, compatLen, symsLen, geomLen;
-
- if ((dpy == NULL) || (dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
- (ptrns == NULL) || (max_inout == NULL))
- return NULL;
-
- xkbi = dpy->xkb_info;
- LockDisplay(dpy);
- GetReq(kbListComponents, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbListComponents;
- req->deviceSpec = deviceSpec;
- req->maxNames = *max_inout;
-
- mapLen = codesLen = typesLen = compatLen = symsLen = geomLen = 0;
- if (ptrns->keymap)
- mapLen = (int) strlen(ptrns->keymap);
- if (ptrns->keycodes)
- codesLen = (int) strlen(ptrns->keycodes);
- if (ptrns->types)
- typesLen = (int) strlen(ptrns->types);
- if (ptrns->compat)
- compatLen = (int) strlen(ptrns->compat);
- if (ptrns->symbols)
- symsLen = (int) strlen(ptrns->symbols);
- if (ptrns->geometry)
- geomLen = (int) strlen(ptrns->geometry);
- if (mapLen > 255)
- mapLen = 255;
- if (codesLen > 255)
- codesLen = 255;
- if (typesLen > 255)
- typesLen = 255;
- if (compatLen > 255)
- compatLen = 255;
- if (symsLen > 255)
- symsLen = 255;
- if (geomLen > 255)
- geomLen = 255;
-
- len = mapLen + codesLen + typesLen + compatLen + symsLen + geomLen + 6;
- len = XkbPaddedSize(len);
- req->length += len / 4;
- BufAlloc(char *, str, len);
-
- *str++ = mapLen;
- if (mapLen > 0) {
- memcpy(str, ptrns->keymap, mapLen);
- str += mapLen;
- }
- *str++ = codesLen;
- if (codesLen > 0) {
- memcpy(str, ptrns->keycodes, codesLen);
- str += codesLen;
- }
- *str++ = typesLen;
- if (typesLen > 0) {
- memcpy(str, ptrns->types, typesLen);
- str += typesLen;
- }
- *str++ = compatLen;
- if (compatLen > 0) {
- memcpy(str, ptrns->compat, compatLen);
- str += compatLen;
- }
- *str++ = symsLen;
- if (symsLen > 0) {
- memcpy(str, ptrns->symbols, symsLen);
- str += symsLen;
- }
- *str++ = geomLen;
- if (geomLen > 0) {
- memcpy(str, ptrns->geometry, geomLen);
- str += geomLen;
- }
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse))
- goto BAILOUT;
- extraLen = (int) rep.length * 4;
- *max_inout = rep.extra;
- if (extraLen == 0) { /* no matches, but we don't want to report a failure */
- list = _XkbTypedCalloc(1, XkbComponentListRec);
- UnlockDisplay(dpy);
- SyncHandle();
- return list;
- }
- if (_XkbInitReadBuffer(dpy, &buf, extraLen)) {
- Status status = Success;
-
- list = _XkbTypedCalloc(1, XkbComponentListRec);
- if (!list) {
- _XkbFreeReadBuffer(&buf);
- goto BAILOUT;
- }
- list->num_keymaps = rep.nKeymaps;
- list->num_keycodes = rep.nKeycodes;
- list->num_types = rep.nTypes;
- list->num_compat = rep.nCompatMaps;
- list->num_symbols = rep.nSymbols;
- list->num_geometry = rep.nGeometries;
- if ((status == Success) && (list->num_keymaps > 0))
- list->keymaps = _ReadListing(&buf, list->num_keymaps, &status);
- if ((status == Success) && (list->num_keycodes > 0))
- list->keycodes = _ReadListing(&buf, list->num_keycodes, &status);
- if ((status == Success) && (list->num_types > 0))
- list->types = _ReadListing(&buf, list->num_types, &status);
- if ((status == Success) && (list->num_compat > 0))
- list->compat = _ReadListing(&buf, list->num_compat, &status);
- if ((status == Success) && (list->num_symbols > 0))
- list->symbols = _ReadListing(&buf, list->num_symbols, &status);
- if ((status == Success) && (list->num_geometry > 0))
- list->geometry = _ReadListing(&buf, list->num_geometry, &status);
- left = _XkbFreeReadBuffer(&buf);
- if ((status != Success) || (buf.error) || (left > 2)) {
- XkbFreeComponentList(list);
- goto BAILOUT;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return list;
- }
- BAILOUT:
- UnlockDisplay(dpy);
- SyncHandle();
- return NULL;
-}
-
-void
-XkbFreeComponentList(XkbComponentListPtr list)
-{
- if (list) {
- if (list->keymaps)
- _FreeComponentNames(list->num_keymaps, list->keymaps);
- if (list->keycodes)
- _FreeComponentNames(list->num_keycodes, list->keycodes);
- if (list->types)
- _FreeComponentNames(list->num_types, list->types);
- if (list->compat)
- _FreeComponentNames(list->num_compat, list->compat);
- if (list->symbols)
- _FreeComponentNames(list->num_symbols, list->symbols);
- if (list->geometry)
- _FreeComponentNames(list->num_geometry, list->geometry);
- bzero((char *) list, sizeof(XkbComponentListRec));
- _XkbFree(list);
- }
- return;
-}
diff --git a/nx-X11/lib/X11/XKBMAlloc.c b/nx-X11/lib/X11/XKBMAlloc.c
deleted file mode 100644
index 2467a2024..000000000
--- a/nx-X11/lib/X11/XKBMAlloc.c
+++ /dev/null
@@ -1,1016 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <stdio.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include <nx-X11/keysym.h>
-#include "XKBlibint.h"
-
-
-/***====================================================================***/
-
-Status
-XkbAllocClientMap(XkbDescPtr xkb, unsigned which, unsigned nTotalTypes)
-{
- register int i;
- XkbClientMapPtr map;
-
- if ((xkb == NULL) ||
- ((nTotalTypes > 0) && (nTotalTypes < XkbNumRequiredTypes)))
- return BadValue;
- if ((which & XkbKeySymsMask) &&
- ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))) {
-#ifdef DEBUG
- fprintf(stderr, "bad keycode (%d,%d) in XkbAllocClientMap\n",
- xkb->min_key_code, xkb->max_key_code);
-#endif
- return BadValue;
- }
-
- if (xkb->map == NULL) {
- map = _XkbTypedCalloc(1, XkbClientMapRec);
- if (map == NULL)
- return BadAlloc;
- xkb->map = map;
- }
- else
- map = xkb->map;
-
- if ((which & XkbKeyTypesMask) && (nTotalTypes > 0)) {
- if (map->types == NULL) {
- map->types = _XkbTypedCalloc(nTotalTypes, XkbKeyTypeRec);
- if (map->types == NULL)
- return BadAlloc;
- map->num_types = 0;
- map->size_types = nTotalTypes;
- }
- else if (map->size_types < nTotalTypes) {
- XkbKeyTypeRec *prev_types = map->types;
-
- map->types =
- _XkbTypedRealloc(map->types, nTotalTypes, XkbKeyTypeRec);
- if (map->types == NULL) {
- _XkbFree(prev_types);
- map->num_types = map->size_types = 0;
- return BadAlloc;
- }
- map->size_types = nTotalTypes;
- bzero(&map->types[map->num_types],
- ((map->size_types - map->num_types) * sizeof(XkbKeyTypeRec)));
- }
- }
- if (which & XkbKeySymsMask) {
- int nKeys = XkbNumKeys(xkb);
-
- if (map->syms == NULL) {
- map->size_syms = (nKeys * 15) / 10;
- map->syms = _XkbTypedCalloc(map->size_syms, KeySym);
- if (!map->syms) {
- map->size_syms = 0;
- return BadAlloc;
- }
- map->num_syms = 1;
- map->syms[0] = NoSymbol;
- }
- if (map->key_sym_map == NULL) {
- i = xkb->max_key_code + 1;
- map->key_sym_map = _XkbTypedCalloc(i, XkbSymMapRec);
- if (map->key_sym_map == NULL)
- return BadAlloc;
- }
- }
- if (which & XkbModifierMapMask) {
- if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))
- return BadMatch;
- if (map->modmap == NULL) {
- i = xkb->max_key_code + 1;
- map->modmap = _XkbTypedCalloc(i, unsigned char);
- if (map->modmap == NULL)
- return BadAlloc;
- }
- }
- return Success;
-}
-
-Status
-XkbAllocServerMap(XkbDescPtr xkb, unsigned which, unsigned nNewActions)
-{
- register int i;
- XkbServerMapPtr map;
-
- if (xkb == NULL)
- return BadMatch;
- if (xkb->server == NULL) {
- map = _XkbTypedCalloc(1, XkbServerMapRec);
- if (map == NULL)
- return BadAlloc;
- for (i = 0; i < XkbNumVirtualMods; i++) {
- map->vmods[i] = XkbNoModifierMask;
- }
- xkb->server = map;
- }
- else
- map = xkb->server;
- if (which & XkbExplicitComponentsMask) {
- if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))
- return BadMatch;
- if (map->explicit == NULL) {
- i = xkb->max_key_code + 1;
- map->explicit = _XkbTypedCalloc(i, unsigned char);
- if (map->explicit == NULL)
- return BadAlloc;
- }
- }
- if (which & XkbKeyActionsMask) {
- if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))
- return BadMatch;
- if (nNewActions < 1)
- nNewActions = 1;
- if (map->acts == NULL) {
- map->acts = _XkbTypedCalloc((nNewActions + 1), XkbAction);
- if (map->acts == NULL)
- return BadAlloc;
- map->num_acts = 1;
- map->size_acts = nNewActions + 1;
- }
- else if ((map->size_acts - map->num_acts) < nNewActions) {
- unsigned need;
- XkbAction *prev_acts = map->acts;
-
- need = map->num_acts + nNewActions;
- map->acts = _XkbTypedRealloc(map->acts, need, XkbAction);
- if (map->acts == NULL) {
- _XkbFree(prev_acts);
- map->num_acts = map->size_acts = 0;
- return BadAlloc;
- }
- map->size_acts = need;
- bzero(&map->acts[map->num_acts],
- ((map->size_acts - map->num_acts) * sizeof(XkbAction)));
- }
- if (map->key_acts == NULL) {
- i = xkb->max_key_code + 1;
- map->key_acts = _XkbTypedCalloc(i, unsigned short);
- if (map->key_acts == NULL)
- return BadAlloc;
- }
- }
- if (which & XkbKeyBehaviorsMask) {
- if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))
- return BadMatch;
- if (map->behaviors == NULL) {
- i = xkb->max_key_code + 1;
- map->behaviors = _XkbTypedCalloc(i, XkbBehavior);
- if (map->behaviors == NULL)
- return BadAlloc;
- }
- }
- if (which & XkbVirtualModMapMask) {
- if ((!XkbIsLegalKeycode(xkb->min_key_code)) ||
- (!XkbIsLegalKeycode(xkb->max_key_code)) ||
- (xkb->max_key_code < xkb->min_key_code))
- return BadMatch;
- if (map->vmodmap == NULL) {
- i = xkb->max_key_code + 1;
- map->vmodmap = _XkbTypedCalloc(i, unsigned short);
- if (map->vmodmap == NULL)
- return BadAlloc;
- }
- }
- return Success;
-}
-
-/***====================================================================***/
-
-Status
-XkbCopyKeyType(XkbKeyTypePtr from, XkbKeyTypePtr into)
-{
- if ((!from) || (!into))
- return BadMatch;
-
- _XkbFree(into->map);
- into->map = NULL;
-
- _XkbFree(into->preserve);
- into->preserve = NULL;
-
- _XkbFree(into->level_names);
- into->level_names = NULL;
-
- *into = *from;
- if ((from->map) && (into->map_count > 0)) {
- into->map = _XkbTypedCalloc(into->map_count, XkbKTMapEntryRec);
- if (!into->map)
- return BadAlloc;
- memcpy(into->map, from->map,
- into->map_count * sizeof(XkbKTMapEntryRec));
- }
- if ((from->preserve) && (into->map_count > 0)) {
- into->preserve = _XkbTypedCalloc(into->map_count, XkbModsRec);
- if (!into->preserve)
- return BadAlloc;
- memcpy(into->preserve, from->preserve,
- into->map_count * sizeof(XkbModsRec));
- }
- if ((from->level_names) && (into->num_levels > 0)) {
- into->level_names = _XkbTypedCalloc(into->num_levels, Atom);
- if (!into->level_names)
- return BadAlloc;
- memcpy(into->level_names, from->level_names,
- into->num_levels * sizeof(Atom));
- }
- return Success;
-}
-
-Status
-XkbCopyKeyTypes(XkbKeyTypePtr from, XkbKeyTypePtr into, int num_types)
-{
- register int i, rtrn;
-
- if ((!from) || (!into) || (num_types < 0))
- return BadMatch;
- for (i = 0; i < num_types; i++) {
- if ((rtrn = XkbCopyKeyType(from++, into++)) != Success)
- return rtrn;
- }
- return Success;
-}
-
-XkbKeyTypePtr
-XkbAddKeyType(XkbDescPtr xkb,
- Atom name,
- int map_count,
- Bool want_preserve,
- int num_lvls)
-{
- register int i;
- unsigned tmp;
- XkbKeyTypePtr type;
- XkbClientMapPtr map;
-
- if ((!xkb) || (num_lvls < 1))
- return NULL;
- map = xkb->map;
- if ((map) && (map->types)) {
- for (i = 0; i < map->num_types; i++) {
- if (map->types[i].name == name) {
- Status status =
- XkbResizeKeyType(xkb, i, map_count, want_preserve,
- num_lvls);
- return (status == Success ? &map->types[i] : NULL);
- }
- }
- }
- if ((!map) || (!map->types) || (map->num_types < XkbNumRequiredTypes)) {
- tmp = XkbNumRequiredTypes + 1;
- if (XkbAllocClientMap(xkb, XkbKeyTypesMask, tmp) != Success)
- return NULL;
- if (!map)
- map = xkb->map;
- tmp = 0;
- if (map->num_types <= XkbKeypadIndex)
- tmp |= XkbKeypadMask;
- if (map->num_types <= XkbAlphabeticIndex)
- tmp |= XkbAlphabeticMask;
- if (map->num_types <= XkbTwoLevelIndex)
- tmp |= XkbTwoLevelMask;
- if (map->num_types <= XkbOneLevelIndex)
- tmp |= XkbOneLevelMask;
- if (XkbInitCanonicalKeyTypes(xkb, tmp, XkbNoModifier) == Success) {
- for (i = 0; i < map->num_types; i++) {
- Status status;
-
- if (map->types[i].name != name)
- continue;
- status = XkbResizeKeyType(xkb, i, map_count, want_preserve,
- num_lvls);
- return (status == Success ? &map->types[i] : NULL);
- }
- }
- }
- if ((map->num_types <= map->size_types) &&
- (XkbAllocClientMap(xkb, XkbKeyTypesMask, map->num_types + 1) !=
- Success)) {
- return NULL;
- }
- type = &map->types[map->num_types];
- map->num_types++;
- bzero((char *) type, sizeof(XkbKeyTypeRec));
- type->num_levels = num_lvls;
- type->map_count = map_count;
- type->name = name;
- if (map_count > 0) {
- type->map = _XkbTypedCalloc(map_count, XkbKTMapEntryRec);
- if (!type->map) {
- map->num_types--;
- return NULL;
- }
- if (want_preserve) {
- type->preserve = _XkbTypedCalloc(map_count, XkbModsRec);
- if (!type->preserve) {
- _XkbFree(type->map);
- map->num_types--;
- return NULL;
- }
- }
- }
- return type;
-}
-
-Status
-XkbResizeKeyType(XkbDescPtr xkb,
- int type_ndx,
- int map_count,
- Bool want_preserve,
- int new_num_lvls)
-{
- XkbKeyTypePtr type;
- KeyCode matchingKeys[XkbMaxKeyCount], nMatchingKeys;
-
- if ((type_ndx < 0) || (type_ndx >= xkb->map->num_types) || (map_count < 0)
- || (new_num_lvls < 1))
- return BadValue;
- switch (type_ndx) {
- case XkbOneLevelIndex:
- if (new_num_lvls != 1)
- return BadMatch;
- break;
- case XkbTwoLevelIndex:
- case XkbAlphabeticIndex:
- case XkbKeypadIndex:
- if (new_num_lvls != 2)
- return BadMatch;
- break;
- }
- type = &xkb->map->types[type_ndx];
- if (map_count == 0) {
- _XkbFree(type->map);
- type->map = NULL;
- _XkbFree(type->preserve);
- type->preserve = NULL;
- type->map_count = 0;
- }
- else {
- XkbKTMapEntryRec *prev_map = type->map;
-
- if ((map_count > type->map_count) || (type->map == NULL))
- type->map =
- _XkbTypedRealloc(type->map, map_count, XkbKTMapEntryRec);
- if (!type->map) {
- _XkbFree(prev_map);
- return BadAlloc;
- }
- if (want_preserve) {
- XkbModsRec *prev_preserve = type->preserve;
-
- if ((map_count > type->map_count) || (type->preserve == NULL)) {
- type->preserve = _XkbTypedRealloc(type->preserve, map_count,
- XkbModsRec);
- }
- if (!type->preserve) {
- _XkbFree(prev_preserve);
- return BadAlloc;
- }
- }
- else {
- _XkbFree(type->preserve);
- type->preserve = NULL;
- }
- type->map_count = map_count;
- }
-
- if ((new_num_lvls > type->num_levels) || (type->level_names == NULL)) {
- Atom *prev_level_names = type->level_names;
-
- type->level_names =
- _XkbTypedRealloc(type->level_names, new_num_lvls, Atom);
- if (!type->level_names) {
- _XkbFree(prev_level_names);
- return BadAlloc;
- }
- }
- /*
- * Here's the theory:
- * If the width of the type changed, we might have to resize the symbol
- * maps for any keys that use the type for one or more groups. This is
- * expensive, so we'll try to cull out any keys that are obviously okay:
- * In any case:
- * - keys that have a group width <= the old width are okay (because
- * they could not possibly have been associated with the old type)
- * If the key type increased in size:
- * - keys that already have a group width >= to the new width are okay
- * + keys that have a group width >= the old width but < the new width
- * might have to be enlarged.
- * If the key type decreased in size:
- * - keys that have a group width > the old width don't have to be
- * resized (because they must have some other wider type associated
- * with some group).
- * + keys that have a group width == the old width might have to be
- * shrunk.
- * The possibilities marked with '+' require us to examine the key types
- * associated with each group for the key.
- */
- bzero(matchingKeys, XkbMaxKeyCount * sizeof(KeyCode));
- nMatchingKeys = 0;
- if (new_num_lvls > type->num_levels) {
- int nTotal;
- KeySym *newSyms;
- int width, match, nResize;
- register int i, g, nSyms;
-
- nResize = 0;
- for (nTotal = 1, i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
- width = XkbKeyGroupsWidth(xkb, i);
- if (width < type->num_levels)
- continue;
- for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
- (g >= 0) && (!match); g--) {
- if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
- matchingKeys[nMatchingKeys++] = i;
- match = 1;
- }
- }
- if ((!match) || (width >= new_num_lvls))
- nTotal += XkbKeyNumSyms(xkb, i);
- else {
- nTotal += XkbKeyNumGroups(xkb, i) * new_num_lvls;
- nResize++;
- }
- }
- if (nResize > 0) {
- int nextMatch;
-
- xkb->map->size_syms = (nTotal * 12) / 10;
- newSyms = _XkbTypedCalloc(xkb->map->size_syms, KeySym);
- if (newSyms == NULL)
- return BadAlloc;
- nextMatch = 0;
- nSyms = 1;
- for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
- if (matchingKeys[nextMatch] == i) {
- KeySym *pOld;
-
- nextMatch++;
- width = XkbKeyGroupsWidth(xkb, i);
- pOld = XkbKeySymsPtr(xkb, i);
- for (g = XkbKeyNumGroups(xkb, i) - 1; g >= 0; g--) {
- memcpy(&newSyms[nSyms + (new_num_lvls * g)],
- &pOld[width * g], width * sizeof(KeySym));
- }
- xkb->map->key_sym_map[i].offset = nSyms;
- nSyms += XkbKeyNumGroups(xkb, i) * new_num_lvls;
- }
- else {
- memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i),
- XkbKeyNumSyms(xkb, i) * sizeof(KeySym));
- xkb->map->key_sym_map[i].offset = nSyms;
- nSyms += XkbKeyNumSyms(xkb, i);
- }
- }
- type->num_levels = new_num_lvls;
- _XkbFree(xkb->map->syms);
- xkb->map->syms = newSyms;
- xkb->map->num_syms = nSyms;
- return Success;
- }
- }
- else if (new_num_lvls < type->num_levels) {
- int width, match;
- register int g, i;
-
- for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
- width = XkbKeyGroupsWidth(xkb, i);
- if (width < type->num_levels)
- continue;
- for (match = 0, g = XkbKeyNumGroups(xkb, i) - 1;
- (g >= 0) && (!match); g--) {
- if (XkbKeyKeyTypeIndex(xkb, i, g) == type_ndx) {
- matchingKeys[nMatchingKeys++] = i;
- match = 1;
- }
- }
- }
- }
- if (nMatchingKeys > 0) {
- int key, firstClear;
- register int i, g;
-
- if (new_num_lvls > type->num_levels)
- firstClear = type->num_levels;
- else
- firstClear = new_num_lvls;
- for (i = 0; i < nMatchingKeys; i++) {
- KeySym *pSyms;
- int width, nClear;
-
- key = matchingKeys[i];
- width = XkbKeyGroupsWidth(xkb, key);
- nClear = width - firstClear;
- pSyms = XkbKeySymsPtr(xkb, key);
- for (g = XkbKeyNumGroups(xkb, key) - 1; g >= 0; g--) {
- if (XkbKeyKeyTypeIndex(xkb, key, g) == type_ndx) {
- if (nClear > 0)
- bzero(&pSyms[g * width + firstClear],
- nClear * sizeof(KeySym));
- }
- }
- }
- }
- type->num_levels = new_num_lvls;
- return Success;
-}
-
-KeySym *
-XkbResizeKeySyms(XkbDescPtr xkb, int key, int needed)
-{
- register int i, nSyms, nKeySyms;
- unsigned nOldSyms;
- KeySym *newSyms;
-
- if (needed == 0) {
- xkb->map->key_sym_map[key].offset = 0;
- return xkb->map->syms;
- }
- nOldSyms = XkbKeyNumSyms(xkb, key);
- if (nOldSyms >= (unsigned) needed) {
- return XkbKeySymsPtr(xkb, key);
- }
- if (xkb->map->size_syms - xkb->map->num_syms >= (unsigned) needed) {
- if (nOldSyms > 0) {
- memcpy(&xkb->map->syms[xkb->map->num_syms], XkbKeySymsPtr(xkb, key),
- nOldSyms * sizeof(KeySym));
- }
- if ((needed - nOldSyms) > 0) {
- bzero(&xkb->map->syms[xkb->map->num_syms + XkbKeyNumSyms(xkb, key)],
- (needed - nOldSyms) * sizeof(KeySym));
- }
- xkb->map->key_sym_map[key].offset = xkb->map->num_syms;
- xkb->map->num_syms += needed;
- return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
- }
- xkb->map->size_syms += (needed > 32 ? needed : 32);
- newSyms = _XkbTypedCalloc(xkb->map->size_syms, KeySym);
- if (newSyms == NULL)
- return NULL;
- newSyms[0] = NoSymbol;
- nSyms = 1;
- for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
- int nCopy;
-
- nCopy = nKeySyms = XkbKeyNumSyms(xkb, i);
- if ((nKeySyms == 0) && (i != key))
- continue;
- if (i == key)
- nKeySyms = needed;
- if (nCopy != 0)
- memcpy(&newSyms[nSyms], XkbKeySymsPtr(xkb, i),
- nCopy * sizeof(KeySym));
- if (nKeySyms > nCopy)
- bzero(&newSyms[nSyms + nCopy], (nKeySyms - nCopy) * sizeof(KeySym));
- xkb->map->key_sym_map[i].offset = nSyms;
- nSyms += nKeySyms;
- }
- _XkbFree(xkb->map->syms);
- xkb->map->syms = newSyms;
- xkb->map->num_syms = nSyms;
- return &xkb->map->syms[xkb->map->key_sym_map[key].offset];
-}
-
-static unsigned
-_ExtendRange(unsigned int old_flags,
- unsigned int flag,
- KeyCode newKC,
- KeyCode *old_min,
- unsigned char *old_num)
-{
- if ((old_flags & flag) == 0) {
- old_flags |= flag;
- *old_min = newKC;
- *old_num = 1;
- }
- else {
- int last = (*old_min) + (*old_num) - 1;
-
- if (newKC < *old_min) {
- *old_min = newKC;
- *old_num = (last - newKC) + 1;
- }
- else if (newKC > last) {
- *old_num = (newKC - (*old_min)) + 1;
- }
- }
- return old_flags;
-}
-
-Status
-XkbChangeKeycodeRange(XkbDescPtr xkb,
- int minKC,
- int maxKC,
- XkbChangesPtr changes)
-{
- int tmp;
-
- if ((!xkb) || (minKC < XkbMinLegalKeyCode) || (maxKC > XkbMaxLegalKeyCode))
- return BadValue;
- if (minKC > maxKC)
- return BadMatch;
- if (minKC < xkb->min_key_code) {
- if (changes)
- changes->map.min_key_code = minKC;
- tmp = xkb->min_key_code - minKC;
- if (xkb->map) {
- if (xkb->map->key_sym_map) {
- bzero((char *) &xkb->map->key_sym_map[minKC],
- tmp * sizeof(XkbSymMapRec));
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbKeySymsMask, minKC,
- &changes->map.first_key_sym,
- &changes->map.num_key_syms);
- }
- }
- if (xkb->map->modmap) {
- bzero((char *) &xkb->map->modmap[minKC], tmp);
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbModifierMapMask, minKC,
- &changes->map.first_modmap_key,
- &changes->map.num_modmap_keys);
- }
- }
- }
- if (xkb->server) {
- if (xkb->server->behaviors) {
- bzero((char *) &xkb->server->behaviors[minKC],
- tmp * sizeof(XkbBehavior));
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbKeyBehaviorsMask, minKC,
- &changes->map.first_key_behavior,
- &changes->map.num_key_behaviors);
- }
- }
- if (xkb->server->key_acts) {
- bzero((char *) &xkb->server->key_acts[minKC],
- tmp * sizeof(unsigned short));
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbKeyActionsMask, minKC,
- &changes->map.first_key_act,
- &changes->map.num_key_acts);
- }
- }
- if (xkb->server->vmodmap) {
- bzero((char *) &xkb->server->vmodmap[minKC],
- tmp * sizeof(unsigned short));
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbVirtualModMapMask, minKC,
- &changes->map.first_modmap_key,
- &changes->map.num_vmodmap_keys);
- }
- }
- }
- if ((xkb->names) && (xkb->names->keys)) {
- bzero((char *) &xkb->names->keys[minKC],
- tmp * sizeof(XkbKeyNameRec));
- if (changes) {
- changes->names.changed = _ExtendRange(changes->names.changed,
- XkbKeyNamesMask, minKC,
- &changes->names.first_key,
- &changes->names.num_keys);
- }
- }
- xkb->min_key_code = minKC;
- }
- if (maxKC > xkb->max_key_code) {
- if (changes)
- changes->map.max_key_code = maxKC;
- tmp = maxKC - xkb->max_key_code;
- if (xkb->map) {
- if (xkb->map->key_sym_map) {
- XkbSymMapRec *prev_key_sym_map = xkb->map->key_sym_map;
-
- xkb->map->key_sym_map = _XkbTypedRealloc(xkb->map->key_sym_map,
- (maxKC + 1), XkbSymMapRec);
- if (!xkb->map->key_sym_map) {
- _XkbFree(prev_key_sym_map);
- return BadAlloc;
- }
-#ifdef NXAGENT_SERVER
- bzero((char *) &xkb->map->key_sym_map[xkb->max_key_code + 1],
- tmp * sizeof(XkbSymMapRec));
-#else
- bzero((char *) &xkb->map->key_sym_map[xkb->max_key_code],
- tmp * sizeof(XkbSymMapRec));
-#endif
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbKeySymsMask, maxKC,
- &changes->map.first_key_sym,
- &changes->map.num_key_syms);
- }
- }
- if (xkb->map->modmap) {
- unsigned char *prev_modmap = xkb->map->modmap;
-
- xkb->map->modmap = _XkbTypedRealloc(xkb->map->modmap,
- (maxKC + 1), unsigned char);
- if (!xkb->map->modmap) {
- _XkbFree(prev_modmap);
- return BadAlloc;
- }
-#ifdef NXAGENT_SERVER
- bzero((char *) &xkb->map->modmap[xkb->max_key_code + 1], tmp);
-#else
- bzero((char *) &xkb->map->modmap[xkb->max_key_code], tmp);
-#endif
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbModifierMapMask, maxKC,
- &changes->map.first_modmap_key,
- &changes->map.num_modmap_keys);
- }
- }
- }
- if (xkb->server) {
- if (xkb->server->behaviors) {
- XkbBehavior *prev_behaviors = xkb->server->behaviors;
-
- xkb->server->behaviors =
- _XkbTypedRealloc(xkb->server->behaviors, (maxKC + 1),
- XkbBehavior);
- if (!xkb->server->behaviors) {
- _XkbFree(prev_behaviors);
- return BadAlloc;
- }
-#ifdef NXAGENT_SERVER
- bzero((char *) &xkb->server->behaviors[xkb->max_key_code + 1],
- tmp * sizeof(XkbBehavior));
-#else
- bzero((char *) &xkb->server->behaviors[xkb->max_key_code],
- tmp * sizeof(XkbBehavior));
-#endif
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbKeyBehaviorsMask, maxKC,
- &changes->map.first_key_behavior,
- &changes->map.num_key_behaviors);
- }
- }
- if (xkb->server->key_acts) {
- unsigned short *prev_key_acts = xkb->server->key_acts;
-
- xkb->server->key_acts = _XkbTypedRealloc(xkb->server->key_acts,
- (maxKC + 1), unsigned short);
- if (!xkb->server->key_acts) {
- _XkbFree(prev_key_acts);
- return BadAlloc;
- }
-#ifdef NXAGENT_SERVER
- bzero((char *) &xkb->server->key_acts[xkb->max_key_code + 1],
- tmp * sizeof(unsigned short));
-#else
- bzero((char *) &xkb->server->key_acts[xkb->max_key_code],
- tmp * sizeof(unsigned short));
-#endif
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbKeyActionsMask, maxKC,
- &changes->map.first_key_act,
- &changes->map.num_key_acts);
- }
- }
- if (xkb->server->vmodmap) {
- unsigned short *prev_vmodmap = xkb->server->vmodmap;
-
- xkb->server->vmodmap = _XkbTypedRealloc(xkb->server->vmodmap,
- (maxKC + 1), unsigned short);
- if (!xkb->server->vmodmap) {
- _XkbFree(prev_vmodmap);
- return BadAlloc;
- }
-#ifdef NXAGENT_SERVER
- bzero((char *) &xkb->server->vmodmap[xkb->max_key_code + 1],
- tmp * sizeof(unsigned short));
-#else
- bzero((char *) &xkb->server->vmodmap[xkb->max_key_code],
- tmp * sizeof(unsigned short));
-#endif
- if (changes) {
- changes->map.changed = _ExtendRange(changes->map.changed,
- XkbVirtualModMapMask, maxKC,
- &changes->map.first_modmap_key,
- &changes->map.num_vmodmap_keys);
- }
- }
- }
- if ((xkb->names) && (xkb->names->keys)) {
- XkbKeyNameRec *prev_keys = xkb->names->keys;
-
- xkb->names->keys = _XkbTypedRealloc(xkb->names->keys,
- (maxKC + 1), XkbKeyNameRec);
- if (!xkb->names->keys) {
- _XkbFree(prev_keys);
- return BadAlloc;
- }
-#ifdef NXAGENT_SERVER
- bzero((char *) &xkb->names->keys[xkb->max_key_code + 1],
- tmp * sizeof(XkbKeyNameRec));
-#else
- bzero((char *) &xkb->names->keys[xkb->max_key_code],
- tmp * sizeof(XkbKeyNameRec));
-#endif
- if (changes) {
- changes->names.changed = _ExtendRange(changes->names.changed,
- XkbKeyNamesMask, maxKC,
- &changes->names.first_key,
- &changes->names.num_keys);
- }
- }
- xkb->max_key_code = maxKC;
- }
- return Success;
-}
-
-XkbAction *
-XkbResizeKeyActions(XkbDescPtr xkb, int key, int needed)
-{
- register int i, nActs;
- XkbAction *newActs;
-
- if (needed == 0) {
- xkb->server->key_acts[key] = 0;
- return NULL;
- }
- if (XkbKeyHasActions(xkb, key) &&
- (XkbKeyNumSyms(xkb, key) >= (unsigned) needed))
- return XkbKeyActionsPtr(xkb, key);
- if (xkb->server->size_acts - xkb->server->num_acts >= (unsigned) needed) {
- xkb->server->key_acts[key] = xkb->server->num_acts;
- xkb->server->num_acts += needed;
- return &xkb->server->acts[xkb->server->key_acts[key]];
- }
- xkb->server->size_acts = xkb->server->num_acts + needed + 8;
- newActs = _XkbTypedCalloc(xkb->server->size_acts, XkbAction);
- if (newActs == NULL)
- return NULL;
- newActs[0].type = XkbSA_NoAction;
- nActs = 1;
- for (i = xkb->min_key_code; i <= (int) xkb->max_key_code; i++) {
- int nKeyActs, nCopy;
-
- if ((xkb->server->key_acts[i] == 0) && (i != key))
- continue;
-
- nCopy = nKeyActs = XkbKeyNumActions(xkb, i);
- if (i == key) {
- nKeyActs = needed;
- if (needed < nCopy)
- nCopy = needed;
- }
-
- if (nCopy > 0)
- memcpy(&newActs[nActs], XkbKeyActionsPtr(xkb, i),
- nCopy * sizeof(XkbAction));
- if (nCopy < nKeyActs)
- bzero(&newActs[nActs + nCopy],
- (nKeyActs - nCopy) * sizeof(XkbAction));
- xkb->server->key_acts[i] = nActs;
- nActs += nKeyActs;
- }
- _XkbFree(xkb->server->acts);
- xkb->server->acts = newActs;
- xkb->server->num_acts = nActs;
- return &xkb->server->acts[xkb->server->key_acts[key]];
-}
-
-void
-XkbFreeClientMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
-{
- XkbClientMapPtr map;
-
- if ((xkb == NULL) || (xkb->map == NULL))
- return;
- if (freeMap)
- what = XkbAllClientInfoMask;
- map = xkb->map;
- if (what & XkbKeyTypesMask) {
- if (map->types != NULL) {
- if (map->num_types > 0) {
- register int i;
- XkbKeyTypePtr type;
-
- for (i = 0, type = map->types; i < map->num_types; i++, type++) {
- _XkbFree(type->map);
- type->map = NULL;
-
- _XkbFree(type->preserve);
- type->preserve = NULL;
-
- type->map_count = 0;
-
- _XkbFree(type->level_names);
- type->level_names = NULL;
- }
- }
- _XkbFree(map->types);
- map->num_types = map->size_types = 0;
- map->types = NULL;
- }
- }
- if (what & XkbKeySymsMask) {
- _XkbFree(map->key_sym_map);
- map->key_sym_map = NULL;
-
- _XkbFree(map->syms);
- map->size_syms = map->num_syms = 0;
- map->syms = NULL;
- }
- if (what & XkbModifierMapMask) {
- _XkbFree(map->modmap);
- map->modmap = NULL;
- }
- if (freeMap) {
- _XkbFree(xkb->map);
- xkb->map = NULL;
- }
- return;
-}
-
-void
-XkbFreeServerMap(XkbDescPtr xkb, unsigned what, Bool freeMap)
-{
- XkbServerMapPtr map;
-
- if ((xkb == NULL) || (xkb->server == NULL))
- return;
- if (freeMap)
- what = XkbAllServerInfoMask;
- map = xkb->server;
- if (what & XkbExplicitComponentsMask) {
- _XkbFree(map->explicit);
- map->explicit = NULL;
- }
- if (what & XkbKeyActionsMask) {
- _XkbFree(map->key_acts);
- map->key_acts = NULL;
-
- _XkbFree(map->acts);
- map->num_acts = map->size_acts = 0;
- map->acts = NULL;
- }
- if (what & XkbKeyBehaviorsMask) {
- _XkbFree(map->behaviors);
- map->behaviors = NULL;
- }
- if (what & XkbVirtualModMapMask) {
- _XkbFree(map->vmodmap);
- map->vmodmap = NULL;
- }
-
- if (freeMap) {
- _XkbFree(xkb->server);
- xkb->server = NULL;
- }
- return;
-}
diff --git a/nx-X11/lib/X11/XKBMisc.c b/nx-X11/lib/X11/XKBMisc.c
deleted file mode 100644
index ab48b6124..000000000
--- a/nx-X11/lib/X11/XKBMisc.c
+++ /dev/null
@@ -1,1021 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <stdio.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include <nx-X11/keysym.h>
-#include "XKBlibint.h"
-
-
-/***====================================================================***/
-
-#define mapSize(m) (sizeof(m)/sizeof(XkbKTMapEntryRec))
-static XkbKTMapEntryRec map2Level[] = {
- { True, ShiftMask, {1, ShiftMask, 0} }
-};
-
-static XkbKTMapEntryRec mapAlpha[] = {
- { True, ShiftMask, {1, ShiftMask, 0} },
- { True, LockMask, {0, LockMask, 0} }
-};
-
-static XkbModsRec preAlpha[] = {
- { 0, 0, 0 },
- { LockMask, LockMask, 0 }
-};
-
-#define NL_VMOD_MASK 0
-static XkbKTMapEntryRec mapKeypad[] = {
- { True, ShiftMask, { 1, ShiftMask, 0 } },
- { False, 0, { 1, 0, NL_VMOD_MASK } }
-};
-
-static XkbKeyTypeRec canonicalTypes[XkbNumRequiredTypes] = {
- { { 0, 0, 0 },
- 1, /* num_levels */
- 0, /* map_count */
- NULL, NULL,
- None, NULL
- },
- { { ShiftMask, ShiftMask, 0 },
- 2, /* num_levels */
- mapSize(map2Level), /* map_count */
- map2Level, NULL,
- None, NULL
- },
- { { ShiftMask|LockMask, ShiftMask|LockMask, 0 },
- 2, /* num_levels */
- mapSize(mapAlpha), /* map_count */
- mapAlpha, preAlpha,
- None, NULL
- },
- { { ShiftMask, ShiftMask, NL_VMOD_MASK },
- 2, /* num_levels */
- mapSize(mapKeypad), /* map_count */
- mapKeypad, NULL,
- None, NULL
- }
-};
-
-Status
-XkbInitCanonicalKeyTypes(XkbDescPtr xkb, unsigned which, int keypadVMod)
-{
- XkbClientMapPtr map;
- XkbKeyTypePtr from, to;
- Status rtrn;
-
- if (!xkb)
- return BadMatch;
- rtrn = XkbAllocClientMap(xkb, XkbKeyTypesMask, XkbNumRequiredTypes);
- if (rtrn != Success)
- return rtrn;
- map = xkb->map;
- if ((which & XkbAllRequiredTypes) == 0)
- return Success;
- rtrn = Success;
- from = canonicalTypes;
- to = map->types;
- if (which & XkbOneLevelMask)
- rtrn = XkbCopyKeyType(&from[XkbOneLevelIndex], &to[XkbOneLevelIndex]);
- if ((which & XkbTwoLevelMask) && (rtrn == Success))
- rtrn = XkbCopyKeyType(&from[XkbTwoLevelIndex], &to[XkbTwoLevelIndex]);
- if ((which & XkbAlphabeticMask) && (rtrn == Success))
- rtrn =
- XkbCopyKeyType(&from[XkbAlphabeticIndex], &to[XkbAlphabeticIndex]);
- if ((which & XkbKeypadMask) && (rtrn == Success)) {
- XkbKeyTypePtr type;
-
- rtrn = XkbCopyKeyType(&from[XkbKeypadIndex], &to[XkbKeypadIndex]);
- type = &to[XkbKeypadIndex];
- if ((keypadVMod >= 0) && (keypadVMod < XkbNumVirtualMods) &&
- (rtrn == Success)) {
- type->mods.vmods = (1 << keypadVMod);
- type->map[0].active = True;
- type->map[0].mods.mask = ShiftMask;
- type->map[0].mods.real_mods = ShiftMask;
- type->map[0].mods.vmods = 0;
- type->map[0].level = 1;
- type->map[1].active = False;
- type->map[1].mods.mask = 0;
- type->map[1].mods.real_mods = 0;
- type->map[1].mods.vmods = (1 << keypadVMod);
- type->map[1].level = 1;
- }
- }
- return Success;
-}
-
-/***====================================================================***/
-
-#define CORE_SYM(i) (i<map_width?core_syms[i]:NoSymbol)
-#define XKB_OFFSET(g,l) (((g)*groupsWidth)+(l))
-
-int
-XkbKeyTypesForCoreSymbols(XkbDescPtr xkb,
- int map_width,
- KeySym *core_syms,
- unsigned int protected,
- int *types_inout,
- KeySym *xkb_syms_rtrn)
-{
- register int i;
- unsigned int empty;
- int nSyms[XkbNumKbdGroups];
- int nGroups, tmp, groupsWidth;
-
- /* Section 12.2 of the protocol describes this process in more detail */
- /* Step 1: find the # of symbols in the core mapping per group */
- groupsWidth = 2;
- for (i = 0; i < XkbNumKbdGroups; i++) {
- if ((protected & (1 << i)) && (types_inout[i] < xkb->map->num_types)) {
- nSyms[i] = xkb->map->types[types_inout[i]].num_levels;
- if (nSyms[i] > groupsWidth)
- groupsWidth = nSyms[i];
- }
- else {
- types_inout[i] = XkbTwoLevelIndex; /* don't really know, yet */
- nSyms[i] = 2;
- }
- }
- if (nSyms[XkbGroup1Index] < 2)
- nSyms[XkbGroup1Index] = 2;
- if (nSyms[XkbGroup2Index] < 2)
- nSyms[XkbGroup2Index] = 2;
- /* Step 2: Copy the symbols from the core ordering to XKB ordering */
- /* symbols in the core are in the order: */
- /* G1L1 G1L2 G2L1 G2L2 [G1L[3-n]] [G2L[3-n]] [G3L*] [G3L*] */
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup1Index, 0)] = CORE_SYM(0);
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup1Index, 1)] = CORE_SYM(1);
- for (i = 2; i < nSyms[XkbGroup1Index]; i++) {
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup1Index, i)] = CORE_SYM(2 + i);
- }
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup2Index, 0)] = CORE_SYM(2);
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup2Index, 1)] = CORE_SYM(3);
- tmp = 2 + (nSyms[XkbGroup1Index] - 2); /* offset to extra group2 syms */
- for (i = 2; i < nSyms[XkbGroup2Index]; i++) {
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup2Index, i)] = CORE_SYM(tmp + i);
- }
- tmp = nSyms[XkbGroup1Index] + nSyms[XkbGroup2Index];
- if ((tmp >= map_width) &&
- ((protected & (XkbExplicitKeyType3Mask | XkbExplicitKeyType4Mask)) ==
- 0)) {
- nSyms[XkbGroup3Index] = 0;
- nSyms[XkbGroup4Index] = 0;
- nGroups = 2;
- }
- else {
- nGroups = 3;
- for (i = 0; i < nSyms[XkbGroup3Index]; i++, tmp++) {
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup3Index, i)] = CORE_SYM(tmp);
- }
- if ((tmp < map_width) || (protected & XkbExplicitKeyType4Mask)) {
- nGroups = 4;
- for (i = 0; i < nSyms[XkbGroup4Index]; i++, tmp++) {
- xkb_syms_rtrn[XKB_OFFSET(XkbGroup4Index, i)] = CORE_SYM(tmp);
- }
- }
- else {
- nSyms[XkbGroup4Index] = 0;
- }
- }
- /* steps 3&4: alphanumeric expansion, assign canonical types */
- empty = 0;
- for (i = 0; i < nGroups; i++) {
- KeySym *syms;
-
- syms = &xkb_syms_rtrn[XKB_OFFSET(i, 0)];
- if ((nSyms[i] > 1) && (syms[1] == NoSymbol) && (syms[0] != NoSymbol)) {
- KeySym upper, lower;
-
- XConvertCase(syms[0], &lower, &upper);
- if (upper != lower) {
- xkb_syms_rtrn[XKB_OFFSET(i, 0)] = lower;
- xkb_syms_rtrn[XKB_OFFSET(i, 1)] = upper;
- if ((protected & (1 << i)) == 0)
- types_inout[i] = XkbAlphabeticIndex;
- }
- else if ((protected & (1 << i)) == 0) {
- types_inout[i] = XkbOneLevelIndex;
- /* nSyms[i]= 1; */
- }
- }
- if (((protected & (1 << i)) == 0) &&
- (types_inout[i] == XkbTwoLevelIndex)) {
- if (IsKeypadKey(syms[0]) || IsKeypadKey(syms[1]))
- types_inout[i] = XkbKeypadIndex;
- else {
- KeySym upper, lower;
-
- XConvertCase(syms[0], &lower, &upper);
- if ((syms[0] == lower) && (syms[1] == upper))
- types_inout[i] = XkbAlphabeticIndex;
- }
- }
- if (syms[0] == NoSymbol) {
- register int n;
- Bool found;
-
- for (n = 1, found = False; (!found) && (n < nSyms[i]); n++) {
- found = (syms[n] != NoSymbol);
- }
- if (!found)
- empty |= (1 << i);
- }
- }
- /* step 5: squoosh out empty groups */
- if (empty) {
- for (i = nGroups - 1; i >= 0; i--) {
- if (((empty & (1 << i)) == 0) || (protected & (1 << i)))
- break;
- nGroups--;
- }
- }
- if (nGroups < 1)
- return 0;
-
- /* step 6: replicate group 1 into group two, if necessary */
- if ((nGroups > 1) &&
- ((empty & (XkbGroup1Mask | XkbGroup2Mask)) == XkbGroup2Mask)) {
- if ((protected & (XkbExplicitKeyType1Mask | XkbExplicitKeyType2Mask)) ==
- 0) {
- nSyms[XkbGroup2Index] = nSyms[XkbGroup1Index];
- types_inout[XkbGroup2Index] = types_inout[XkbGroup1Index];
- memcpy((char *) &xkb_syms_rtrn[2], (char *) xkb_syms_rtrn,
- 2 * sizeof(KeySym));
- }
- else if (types_inout[XkbGroup1Index] == types_inout[XkbGroup2Index]) {
- memcpy((char *) &xkb_syms_rtrn[nSyms[XkbGroup1Index]],
- (char *) xkb_syms_rtrn,
- nSyms[XkbGroup1Index] * sizeof(KeySym));
- }
- }
-
- /* step 7: check for all groups identical or all width 1 */
- if (nGroups > 1) {
- Bool sameType, allOneLevel;
-
- allOneLevel = (xkb->map->types[types_inout[0]].num_levels == 1);
- for (i = 1, sameType = True; (allOneLevel || sameType) && (i < nGroups);
- i++) {
- sameType = (sameType &&
- (types_inout[i] == types_inout[XkbGroup1Index]));
- if (allOneLevel)
- allOneLevel = (xkb->map->types[types_inout[i]].num_levels == 1);
- }
- if ((sameType) &&
- (!(protected &
- (XkbExplicitKeyTypesMask & ~XkbExplicitKeyType1Mask)))) {
- register int s;
- Bool identical;
-
- for (i = 1, identical = True; identical && (i < nGroups); i++) {
- KeySym *syms;
-
- syms = &xkb_syms_rtrn[XKB_OFFSET(i, 0)];
- for (s = 0; identical && (s < nSyms[i]); s++) {
- if (syms[s] != xkb_syms_rtrn[s])
- identical = False;
- }
- }
- if (identical)
- nGroups = 1;
- }
- if (allOneLevel && (nGroups > 1)) {
- KeySym *syms;
-
- syms = &xkb_syms_rtrn[nSyms[XkbGroup1Index]];
- nSyms[XkbGroup1Index] = 1;
- for (i = 1; i < nGroups; i++) {
- xkb_syms_rtrn[i] = syms[0];
- syms += nSyms[i];
- nSyms[i] = 1;
- }
- }
- }
- return nGroups;
-}
-
-static XkbSymInterpretPtr
-_XkbFindMatchingInterp(XkbDescPtr xkb,
- KeySym sym,
- unsigned int real_mods,
- unsigned int level)
-{
- register unsigned i;
- XkbSymInterpretPtr interp, rtrn;
- CARD8 mods;
-
- rtrn = NULL;
- interp = xkb->compat->sym_interpret;
- for (i = 0; i < xkb->compat->num_si; i++, interp++) {
- if ((interp->sym == NoSymbol) || (sym == interp->sym)) {
- int match;
-
- if ((level == 0) || ((interp->match & XkbSI_LevelOneOnly) == 0))
- mods = real_mods;
- else
- mods = 0;
- switch (interp->match & XkbSI_OpMask) {
- case XkbSI_NoneOf:
- match = ((interp->mods & mods) == 0);
- break;
- case XkbSI_AnyOfOrNone:
- match = ((mods == 0) || ((interp->mods & mods) != 0));
- break;
- case XkbSI_AnyOf:
- match = ((interp->mods & mods) != 0);
- break;
- case XkbSI_AllOf:
- match = ((interp->mods & mods) == interp->mods);
- break;
- case XkbSI_Exactly:
- match = (interp->mods == mods);
- break;
- default:
- match = 0;
- break;
- }
- if (match) {
- if (interp->sym != NoSymbol) {
- return interp;
- }
- else if (rtrn == NULL) {
- rtrn = interp;
- }
- }
- }
- }
- return rtrn;
-}
-
-static void
-_XkbAddKeyChange(KeyCode *pFirst, unsigned char *pNum, KeyCode newKey)
-{
- KeyCode last;
-
- last = (*pFirst) + (*pNum);
- if (newKey < *pFirst) {
- *pFirst = newKey;
- *pNum = (last - newKey) + 1;
- }
- else if (newKey > last) {
- *pNum = (last - *pFirst) + 1;
- }
- return;
-}
-
-static void
-_XkbSetActionKeyMods(XkbDescPtr xkb, XkbAction *act, unsigned mods)
-{
- unsigned tmp;
-
- switch (act->type) {
- case XkbSA_SetMods:
- case XkbSA_LatchMods:
- case XkbSA_LockMods:
- if (act->mods.flags & XkbSA_UseModMapMods)
- act->mods.real_mods = act->mods.mask = mods;
- if ((tmp = XkbModActionVMods(&act->mods)) != 0) {
- XkbVirtualModsToReal(xkb, tmp, &tmp);
- act->mods.mask |= tmp;
- }
- break;
- case XkbSA_ISOLock:
- if (act->iso.flags & XkbSA_UseModMapMods)
- act->iso.real_mods = act->iso.mask = mods;
- if ((tmp = XkbModActionVMods(&act->iso)) != 0) {
- XkbVirtualModsToReal(xkb, tmp, &tmp);
- act->iso.mask |= tmp;
- }
- break;
- }
- return;
-}
-
-#define IBUF_SIZE 8
-
-Bool
-XkbApplyCompatMapToKey(XkbDescPtr xkb, KeyCode key, XkbChangesPtr changes)
-{
- KeySym *syms;
- unsigned char explicit, mods;
- XkbSymInterpretPtr *interps, ibuf[IBUF_SIZE];
- int n, nSyms, found;
- unsigned changed, tmp;
-
- if ((!xkb) || (!xkb->map) || (!xkb->map->key_sym_map) ||
- (!xkb->compat) || (!xkb->compat->sym_interpret) ||
- (key < xkb->min_key_code) || (key > xkb->max_key_code)) {
- return False;
- }
- if (((!xkb->server) || (!xkb->server->key_acts)) &&
- (XkbAllocServerMap(xkb, XkbAllServerInfoMask, 0) != Success)) {
- return False;
- }
- changed = 0; /* keeps track of what has changed in _this_ call */
- explicit = xkb->server->explicit[key];
- if (explicit & XkbExplicitInterpretMask) /* nothing to do */
- return True;
- mods = (xkb->map->modmap ? xkb->map->modmap[key] : 0);
- nSyms = XkbKeyNumSyms(xkb, key);
- syms = XkbKeySymsPtr(xkb, key);
- if (nSyms > IBUF_SIZE) {
- interps = _XkbTypedCalloc(nSyms, XkbSymInterpretPtr);
- if (interps == NULL) {
- interps = ibuf;
- nSyms = IBUF_SIZE;
- }
- }
- else {
- interps = ibuf;
- }
- found = 0;
- for (n = 0; n < nSyms; n++) {
- unsigned level = (n % XkbKeyGroupsWidth(xkb, key));
-
- interps[n] = NULL;
- if (syms[n] != NoSymbol) {
- interps[n] = _XkbFindMatchingInterp(xkb, syms[n], mods, level);
- if (interps[n] && interps[n]->act.type != XkbSA_NoAction)
- found++;
- else
- interps[n] = NULL;
- }
- }
- /* 1/28/96 (ef) -- XXX! WORKING HERE */
- if (!found) {
- if (xkb->server->key_acts[key] != 0) {
- xkb->server->key_acts[key] = 0;
- changed |= XkbKeyActionsMask;
- }
- }
- else {
- XkbAction *pActs;
- unsigned int new_vmodmask;
-
- changed |= XkbKeyActionsMask;
- pActs = XkbResizeKeyActions(xkb, key, nSyms);
- if (!pActs) {
- if (nSyms > IBUF_SIZE)
- Xfree(interps);
- return False;
- }
- new_vmodmask = 0;
- for (n = 0; n < nSyms; n++) {
- if (interps[n]) {
- unsigned effMods;
-
- pActs[n] = *((XkbAction *) &interps[n]->act);
- if ((n == 0) || ((interps[n]->match & XkbSI_LevelOneOnly) == 0)) {
- effMods = mods;
- if (interps[n]->virtual_mod != XkbNoModifier)
- new_vmodmask |= (1 << interps[n]->virtual_mod);
- }
- else
- effMods = 0;
- _XkbSetActionKeyMods(xkb, &pActs[n], effMods);
- }
- else
- pActs[n].type = XkbSA_NoAction;
- }
- if (((explicit & XkbExplicitVModMapMask) == 0) &&
- (xkb->server->vmodmap[key] != new_vmodmask)) {
- changed |= XkbVirtualModMapMask;
- xkb->server->vmodmap[key] = new_vmodmask;
- }
- if (interps[0]) {
- if ((interps[0]->flags & XkbSI_LockingKey) &&
- ((explicit & XkbExplicitBehaviorMask) == 0)) {
- xkb->server->behaviors[key].type = XkbKB_Lock;
- changed |= XkbKeyBehaviorsMask;
- }
- if (((explicit & XkbExplicitAutoRepeatMask) == 0) && (xkb->ctrls)) {
- CARD8 old;
-
- old = xkb->ctrls->per_key_repeat[key / 8];
- if (interps[0]->flags & XkbSI_AutoRepeat)
- xkb->ctrls->per_key_repeat[key / 8] |= (1 << (key % 8));
- else
- xkb->ctrls->per_key_repeat[key / 8] &= ~(1 << (key % 8));
- if (changes && (old != xkb->ctrls->per_key_repeat[key / 8]))
- changes->ctrls.changed_ctrls |= XkbPerKeyRepeatMask;
- }
- }
- }
- if ((!found) || (interps[0] == NULL)) {
- if (((explicit & XkbExplicitAutoRepeatMask) == 0) && (xkb->ctrls)) {
- CARD8 old;
-
- old = xkb->ctrls->per_key_repeat[key / 8];
-#ifdef RETURN_SHOULD_REPEAT
- if (*XkbKeySymsPtr(xkb, key) != XK_Return)
-#endif
- xkb->ctrls->per_key_repeat[key / 8] |= (1 << (key % 8));
- if (changes && (old != xkb->ctrls->per_key_repeat[key / 8]))
- changes->ctrls.changed_ctrls |= XkbPerKeyRepeatMask;
- }
- if (((explicit & XkbExplicitBehaviorMask) == 0) &&
- (xkb->server->behaviors[key].type == XkbKB_Lock)) {
- xkb->server->behaviors[key].type = XkbKB_Default;
- changed |= XkbKeyBehaviorsMask;
- }
- }
- if (changes) {
- XkbMapChangesPtr mc;
-
- mc = &changes->map;
- tmp = (changed & mc->changed);
- if (tmp & XkbKeyActionsMask)
- _XkbAddKeyChange(&mc->first_key_act, &mc->num_key_acts, key);
- else if (changed & XkbKeyActionsMask) {
- mc->changed |= XkbKeyActionsMask;
- mc->first_key_act = key;
- mc->num_key_acts = 1;
- }
- if (tmp & XkbKeyBehaviorsMask) {
- _XkbAddKeyChange(&mc->first_key_behavior, &mc->num_key_behaviors,
- key);
- }
- else if (changed & XkbKeyBehaviorsMask) {
- mc->changed |= XkbKeyBehaviorsMask;
- mc->first_key_behavior = key;
- mc->num_key_behaviors = 1;
- }
- if (tmp & XkbVirtualModMapMask)
- _XkbAddKeyChange(&mc->first_vmodmap_key, &mc->num_vmodmap_keys,
- key);
- else if (changed & XkbVirtualModMapMask) {
- mc->changed |= XkbVirtualModMapMask;
- mc->first_vmodmap_key = key;
- mc->num_vmodmap_keys = 1;
- }
- mc->changed |= changed;
- }
- if (interps != ibuf)
- _XkbFree(interps);
- return True;
-}
-
-Bool
-XkbUpdateMapFromCore(XkbDescPtr xkb,
- KeyCode first_key,
- int num_keys,
- int map_width,
- KeySym *core_keysyms,
- XkbChangesPtr changes)
-{
- register int key, last_key;
- KeySym *syms;
-
- syms = &core_keysyms[(first_key - xkb->min_key_code) * map_width];
- if (changes) {
- if (changes->map.changed & XkbKeySymsMask) {
- _XkbAddKeyChange(&changes->map.first_key_sym,
- &changes->map.num_key_syms, first_key);
- if (num_keys > 1) {
- _XkbAddKeyChange(&changes->map.first_key_sym,
- &changes->map.num_key_syms,
- first_key + num_keys - 1);
- }
- }
- else {
- changes->map.changed |= XkbKeySymsMask;
- changes->map.first_key_sym = first_key;
- changes->map.num_key_syms = num_keys;
- }
- }
- last_key = first_key + num_keys - 1;
- for (key = first_key; key <= last_key; key++, syms += map_width) {
- XkbMapChangesPtr mc;
- unsigned explicit;
- KeySym tsyms[XkbMaxSymsPerKey];
- int types[XkbNumKbdGroups];
- int nG;
-
- explicit = xkb->server->explicit[key] & XkbExplicitKeyTypesMask;
- types[XkbGroup1Index] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup1Index);
- types[XkbGroup2Index] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup2Index);
- types[XkbGroup3Index] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup3Index);
- types[XkbGroup4Index] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup4Index);
- nG = XkbKeyTypesForCoreSymbols(xkb, map_width, syms, explicit, types,
- tsyms);
- if (changes)
- mc = &changes->map;
- else
- mc = NULL;
- XkbChangeTypesOfKey(xkb, key, nG, XkbAllGroupsMask, types, mc);
- memcpy((char *) XkbKeySymsPtr(xkb, key), (char *) tsyms,
- XkbKeyNumSyms(xkb, key) * sizeof(KeySym));
- XkbApplyCompatMapToKey(xkb, key, changes);
- }
-
- if ((xkb->map->modmap != NULL) && (changes) &&
- (changes->map.changed & (XkbVirtualModMapMask | XkbModifierMapMask))) {
- unsigned char newVMods[XkbNumVirtualMods];
- register unsigned bit, i;
- unsigned present;
-
- bzero(newVMods, XkbNumVirtualMods);
- present = 0;
- for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
- if (xkb->server->vmodmap[key] == 0)
- continue;
- for (i = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
- if (bit & xkb->server->vmodmap[key]) {
- present |= bit;
- newVMods[i] |= xkb->map->modmap[key];
- }
- }
- }
- for (i = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
- if ((bit & present) && (newVMods[i] != xkb->server->vmods[i])) {
- changes->map.changed |= XkbVirtualModsMask;
- changes->map.vmods |= bit;
- xkb->server->vmods[i] = newVMods[i];
- }
- }
- }
- if (changes && (changes->map.changed & XkbVirtualModsMask))
- XkbApplyVirtualModChanges(xkb, changes->map.vmods, changes);
- return True;
-}
-
-Status
-XkbChangeTypesOfKey(XkbDescPtr xkb,
- int key,
- int nGroups,
- unsigned groups,
- int *newTypesIn,
- XkbMapChangesPtr changes)
-{
- XkbKeyTypePtr pOldType, pNewType;
- register int i;
- int width, nOldGroups, oldWidth, newTypes[XkbNumKbdGroups];
-
- if ((!xkb) || (!XkbKeycodeInRange(xkb, key)) || (!xkb->map) ||
- (!xkb->map->types) || ((groups & XkbAllGroupsMask) == 0) ||
- (nGroups > XkbNumKbdGroups)) {
- return BadMatch;
- }
- if (nGroups == 0) {
- for (i = 0; i < XkbNumKbdGroups; i++) {
- xkb->map->key_sym_map[key].kt_index[i] = XkbOneLevelIndex;
- }
- i = xkb->map->key_sym_map[key].group_info;
- i = XkbSetNumGroups(i, 0);
- xkb->map->key_sym_map[key].group_info = i;
- XkbResizeKeySyms(xkb, key, 0);
- return Success;
- }
-
- nOldGroups = XkbKeyNumGroups(xkb, key);
- oldWidth = XkbKeyGroupsWidth(xkb, key);
- for (width = i = 0; i < nGroups; i++) {
- if (groups & (1 << i))
- newTypes[i] = newTypesIn[i];
- else if (i < nOldGroups)
- newTypes[i] = XkbKeyKeyTypeIndex(xkb, key, i);
- else if (nOldGroups > 0)
- newTypes[i] = XkbKeyKeyTypeIndex(xkb, key, XkbGroup1Index);
- else
- newTypes[i] = XkbTwoLevelIndex;
- if (newTypes[i] > xkb->map->num_types)
- return BadMatch;
- pNewType = &xkb->map->types[newTypes[i]];
- if (pNewType->num_levels > width)
- width = pNewType->num_levels;
- }
- if ((xkb->ctrls) && (nGroups > xkb->ctrls->num_groups))
- xkb->ctrls->num_groups = nGroups;
- if ((width != oldWidth) || (nGroups != nOldGroups)) {
- KeySym oldSyms[XkbMaxSymsPerKey], *pSyms;
- int nCopy;
-
- if (nOldGroups == 0) {
- pSyms = XkbResizeKeySyms(xkb, key, width * nGroups);
- if (pSyms != NULL) {
- i = xkb->map->key_sym_map[key].group_info;
- i = XkbSetNumGroups(i, nGroups);
- xkb->map->key_sym_map[key].group_info = i;
- xkb->map->key_sym_map[key].width = width;
- for (i = 0; i < nGroups; i++) {
- xkb->map->key_sym_map[key].kt_index[i] = newTypes[i];
- }
- return Success;
- }
- return BadAlloc;
- }
- pSyms = XkbKeySymsPtr(xkb, key);
- memcpy(oldSyms, pSyms, XkbKeyNumSyms(xkb, key) * sizeof(KeySym));
- pSyms = XkbResizeKeySyms(xkb, key, width * nGroups);
- if (pSyms == NULL)
- return BadAlloc;
- bzero(pSyms, width * nGroups * sizeof(KeySym));
- for (i = 0; (i < nGroups) && (i < nOldGroups); i++) {
- pOldType = XkbKeyKeyType(xkb, key, i);
- pNewType = &xkb->map->types[newTypes[i]];
- if (pNewType->num_levels > pOldType->num_levels)
- nCopy = pOldType->num_levels;
- else
- nCopy = pNewType->num_levels;
- memcpy(&pSyms[i * width], &oldSyms[i * oldWidth],
- nCopy * sizeof(KeySym));
- }
- if (XkbKeyHasActions(xkb, key)) {
- XkbAction oldActs[XkbMaxSymsPerKey], *pActs;
-
- pActs = XkbKeyActionsPtr(xkb, key);
- memcpy(oldActs, pActs, XkbKeyNumSyms(xkb, key) * sizeof(XkbAction));
- pActs = XkbResizeKeyActions(xkb, key, width * nGroups);
- if (pActs == NULL)
- return BadAlloc;
- bzero(pActs, width * nGroups * sizeof(XkbAction));
- for (i = 0; (i < nGroups) && (i < nOldGroups); i++) {
- pOldType = XkbKeyKeyType(xkb, key, i);
- pNewType = &xkb->map->types[newTypes[i]];
- if (pNewType->num_levels > pOldType->num_levels)
- nCopy = pOldType->num_levels;
- else
- nCopy = pNewType->num_levels;
- memcpy(&pActs[i * width], &oldActs[i * oldWidth],
- nCopy * sizeof(XkbAction));
- }
- }
- i = xkb->map->key_sym_map[key].group_info;
- i = XkbSetNumGroups(i, nGroups);
- xkb->map->key_sym_map[key].group_info = i;
- xkb->map->key_sym_map[key].width = width;
- }
- width = 0;
- for (i = 0; i < nGroups; i++) {
- xkb->map->key_sym_map[key].kt_index[i] = newTypes[i];
- if (xkb->map->types[newTypes[i]].num_levels > width)
- width = xkb->map->types[newTypes[i]].num_levels;
- }
- xkb->map->key_sym_map[key].width = width;
- if (changes != NULL) {
- if (changes->changed & XkbKeySymsMask) {
- _XkbAddKeyChange(&changes->first_key_sym, &changes->num_key_syms,
- key);
- }
- else {
- changes->changed |= XkbKeySymsMask;
- changes->first_key_sym = key;
- changes->num_key_syms = 1;
- }
- }
- return Success;
-}
-
-/***====================================================================***/
-
-Bool
-XkbVirtualModsToReal(XkbDescPtr xkb, unsigned virtual_mask, unsigned *mask_rtrn)
-{
- register int i, bit;
- register unsigned mask;
-
- if (xkb == NULL)
- return False;
- if (virtual_mask == 0) {
- *mask_rtrn = 0;
- return True;
- }
- if (xkb->server == NULL)
- return False;
- for (i = mask = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
- if (virtual_mask & bit)
- mask |= xkb->server->vmods[i];
- }
- *mask_rtrn = mask;
- return True;
-}
-
-/***====================================================================***/
-
-Bool
-XkbUpdateActionVirtualMods(XkbDescPtr xkb, XkbAction *act, unsigned changed)
-{
- unsigned int tmp;
-
- switch (act->type) {
- case XkbSA_SetMods:
- case XkbSA_LatchMods:
- case XkbSA_LockMods:
- if (((tmp = XkbModActionVMods(&act->mods)) & changed) != 0) {
- XkbVirtualModsToReal(xkb, tmp, &tmp);
- act->mods.mask = act->mods.real_mods;
- act->mods.mask |= tmp;
- return True;
- }
- break;
- case XkbSA_ISOLock:
- if ((((tmp = XkbModActionVMods(&act->iso)) != 0) & changed) != 0) {
- XkbVirtualModsToReal(xkb, tmp, &tmp);
- act->iso.mask = act->iso.real_mods;
- act->iso.mask |= tmp;
- return True;
- }
- break;
- }
- return False;
-}
-
-void
-XkbUpdateKeyTypeVirtualMods(XkbDescPtr xkb,
- XkbKeyTypePtr type,
- unsigned int changed,
- XkbChangesPtr changes)
-{
- register unsigned int i;
- unsigned int mask = 0;
-
- XkbVirtualModsToReal(xkb, type->mods.vmods, &mask);
- type->mods.mask = type->mods.real_mods | mask;
- if ((type->map_count > 0) && (type->mods.vmods != 0)) {
- XkbKTMapEntryPtr entry;
-
- for (i = 0, entry = type->map; i < type->map_count; i++, entry++) {
- if (entry->mods.vmods != 0) {
- XkbVirtualModsToReal(xkb, entry->mods.vmods, &mask);
- entry->mods.mask = entry->mods.real_mods | mask;
- /* entry is active if vmods are bound */
- entry->active = (mask != 0);
- }
- else
- entry->active = 1;
- }
- }
- if (changes) {
- int type_ndx;
-
- type_ndx = type - xkb->map->types;
- if ((type_ndx < 0) || (type_ndx > xkb->map->num_types))
- return;
- if (changes->map.changed & XkbKeyTypesMask) {
- int last;
-
- last = changes->map.first_type + changes->map.num_types - 1;
- if (type_ndx < changes->map.first_type) {
- changes->map.first_type = type_ndx;
- changes->map.num_types = (last - type_ndx) + 1;
- }
- else if (type_ndx > last) {
- changes->map.num_types =
- (type_ndx - changes->map.first_type) + 1;
- }
- }
- else {
- changes->map.changed |= XkbKeyTypesMask;
- changes->map.first_type = type_ndx;
- changes->map.num_types = 1;
- }
- }
- return;
-}
-
-Bool
-XkbApplyVirtualModChanges(XkbDescPtr xkb,
- unsigned changed,
- XkbChangesPtr changes)
-{
- register int i;
- unsigned int checkState = 0;
-
- if ((!xkb) || (!xkb->map) || (changed == 0))
- return False;
- for (i = 0; i < xkb->map->num_types; i++) {
- if (xkb->map->types[i].mods.vmods & changed)
- XkbUpdateKeyTypeVirtualMods(xkb, &xkb->map->types[i], changed,
- changes);
- }
- if (changed & xkb->ctrls->internal.vmods) {
- unsigned int newMask = 0;
-
- XkbVirtualModsToReal(xkb, xkb->ctrls->internal.vmods, &newMask);
- newMask |= xkb->ctrls->internal.real_mods;
- if (xkb->ctrls->internal.mask != newMask) {
- xkb->ctrls->internal.mask = newMask;
- if (changes) {
- changes->ctrls.changed_ctrls |= XkbInternalModsMask;
- checkState = True;
- }
- }
- }
- if (changed & xkb->ctrls->ignore_lock.vmods) {
- unsigned int newMask = 0;
-
- XkbVirtualModsToReal(xkb, xkb->ctrls->ignore_lock.vmods, &newMask);
- newMask |= xkb->ctrls->ignore_lock.real_mods;
- if (xkb->ctrls->ignore_lock.mask != newMask) {
- xkb->ctrls->ignore_lock.mask = newMask;
- if (changes) {
- changes->ctrls.changed_ctrls |= XkbIgnoreLockModsMask;
- checkState = True;
- }
- }
- }
- if (xkb->indicators != NULL) {
- XkbIndicatorMapPtr map;
-
- map = &xkb->indicators->maps[0];
- for (i = 0; i < XkbNumIndicators; i++, map++) {
- if (map->mods.vmods & changed) {
- unsigned int newMask = 0;
-
- XkbVirtualModsToReal(xkb, map->mods.vmods, &newMask);
- newMask |= map->mods.real_mods;
- if (newMask != map->mods.mask) {
- map->mods.mask = newMask;
- if (changes) {
- changes->indicators.map_changes |= (1 << i);
- checkState = True;
- }
- }
- }
- }
- }
- if (xkb->compat != NULL) {
- XkbCompatMapPtr compat;
-
- compat = xkb->compat;
- for (i = 0; i < XkbNumKbdGroups; i++) {
- unsigned int newMask = 0;
-
- XkbVirtualModsToReal(xkb, compat->groups[i].vmods, &newMask);
- newMask |= compat->groups[i].real_mods;
- if (compat->groups[i].mask != newMask) {
- compat->groups[i].mask = newMask;
- if (changes) {
- changes->compat.changed_groups |= (1 << i);
- checkState = True;
- }
- }
- }
- }
- if (xkb->map && xkb->server) {
- int highChange = 0, lowChange = -1;
-
- for (i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
- if (XkbKeyHasActions(xkb, i)) {
- register XkbAction *pAct;
- register int n;
-
- pAct = XkbKeyActionsPtr(xkb, i);
- for (n = XkbKeyNumActions(xkb, i); n > 0; n--, pAct++) {
- if ((pAct->type != XkbSA_NoAction) &&
- XkbUpdateActionVirtualMods(xkb, pAct, changed)) {
- if (lowChange < 0)
- lowChange = i;
- highChange = i;
- }
- }
- }
- }
- if (changes && (lowChange > 0)) { /* something changed */
- if (changes->map.changed & XkbKeyActionsMask) {
- int last;
-
- if (changes->map.first_key_act < lowChange)
- lowChange = changes->map.first_key_act;
- last =
- changes->map.first_key_act + changes->map.num_key_acts - 1;
- if (last > highChange)
- highChange = last;
- }
- changes->map.changed |= XkbKeyActionsMask;
- changes->map.first_key_act = lowChange;
- changes->map.num_key_acts = (highChange - lowChange) + 1;
- }
- }
- return checkState;
-}
diff --git a/nx-X11/lib/X11/XKBNames.c b/nx-X11/lib/X11/XKBNames.c
deleted file mode 100644
index 951fd1da8..000000000
--- a/nx-X11/lib/X11/XKBNames.c
+++ /dev/null
@@ -1,879 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#define NEED_MAP_READERS
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-
-static Status
-_XkbReadAtoms(XkbReadBufferPtr buf,
- Atom *atoms,
- int maxAtoms,
- CARD32 present)
-{
- register int i, bit;
-
- for (i = 0, bit = 1; (i < maxAtoms) && (present); i++, bit <<= 1) {
- if (present & bit) {
- if (!_XkbReadBufferCopy32(buf, (long *) &atoms[i], 1))
- return BadLength;
- present &= ~bit;
- }
- }
- return Success;
-}
-
-Status
-_XkbReadGetNamesReply(Display *dpy,
- xkbGetNamesReply *rep,
- XkbDescPtr xkb,
- int *nread_rtrn)
-{
- int i, len;
- XkbReadBufferRec buf;
- register XkbNamesPtr names;
-
- if (xkb->device_spec == XkbUseCoreKbd)
- xkb->device_spec = rep->deviceID;
-
- if ((xkb->names == NULL) &&
- (XkbAllocNames(xkb, rep->which,
- rep->nRadioGroups, rep->nKeyAliases) != Success)) {
- return BadAlloc;
- }
- names = xkb->names;
- if (rep->length == 0)
- return Success;
-
- if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
- return BadAlloc;
- if (nread_rtrn)
- *nread_rtrn = (int) rep->length * 4;
-
- if ((rep->which & XkbKeycodesNameMask) &&
- (!_XkbReadBufferCopy32(&buf, (long *) &names->keycodes, 1)))
- goto BAILOUT;
- if ((rep->which & XkbGeometryNameMask) &&
- (!_XkbReadBufferCopy32(&buf, (long *) &names->geometry, 1)))
- goto BAILOUT;
- if ((rep->which & XkbSymbolsNameMask) &&
- (!_XkbReadBufferCopy32(&buf, (long *) &names->symbols, 1)))
- goto BAILOUT;
- if ((rep->which & XkbPhysSymbolsNameMask) &&
- (!_XkbReadBufferCopy32(&buf, (long *) &names->phys_symbols, 1)))
- goto BAILOUT;
- if ((rep->which & XkbTypesNameMask) &&
- (!_XkbReadBufferCopy32(&buf, (long *) &names->types, 1)))
- goto BAILOUT;
- if ((rep->which & XkbCompatNameMask) &&
- (!_XkbReadBufferCopy32(&buf, (long *) &names->compat, 1)))
- goto BAILOUT;
-
- if (rep->which & XkbKeyTypeNamesMask) {
- XkbClientMapPtr map = xkb->map;
- XkbKeyTypePtr type;
-
- len = rep->nTypes * 4;
- if (map != NULL) {
- type = map->types;
- for (i = 0; (i < map->num_types) && (i < rep->nTypes); i++, type++) {
- if (!_XkbReadBufferCopy32(&buf, (long *) &type->name, 1))
- goto BAILOUT;
- len -= 4;
- }
- }
- if ((len > 0) && (!_XkbSkipReadBufferData(&buf, len)))
- goto BAILOUT;
- }
- if (rep->which & XkbKTLevelNamesMask) {
- CARD8 *nLevels;
- XkbClientMapPtr map = xkb->map;
-
- nLevels =
- (CARD8 *) _XkbGetReadBufferPtr(&buf, XkbPaddedSize(rep->nTypes));
- if (nLevels == NULL)
- goto BAILOUT;
- if (map != NULL) {
- XkbKeyTypePtr type = map->types;
-
- for (i = 0; i < (int) rep->nTypes; i++, type++) {
- if (i >= map->num_types) {
- if (!_XkbSkipReadBufferData(&buf, nLevels[i] * 4))
- goto BAILOUT;
- continue;
- }
- if ((nLevels[i] > 0) && (nLevels[i] != type->num_levels)) {
- goto BAILOUT;
- }
-
- Xfree(type->level_names);
- if (nLevels[i] == 0) {
- type->level_names = NULL;
- continue;
- }
- type->level_names = _XkbTypedCalloc(nLevels[i], Atom);
- if (type->level_names != NULL) {
- if (!_XkbReadBufferCopy32(&buf, (long *) type->level_names,
- nLevels[i]))
- goto BAILOUT;
- }
- else {
- _XkbSkipReadBufferData(&buf, nLevels[i] * 4);
- }
- }
- }
- else {
- for (i = 0; i < (int) rep->nTypes; i++) {
- _XkbSkipReadBufferData(&buf, nLevels[i] * 4);
- }
- }
- }
- if (rep->which & XkbIndicatorNamesMask) {
- if (_XkbReadAtoms(&buf, names->indicators, XkbNumIndicators,
- rep->indicators) != Success)
- goto BAILOUT;
- }
- if (rep->which & XkbVirtualModNamesMask) {
- if (_XkbReadAtoms(&buf, names->vmods, XkbNumVirtualMods,
- (CARD32) rep->virtualMods) != Success)
- goto BAILOUT;
- }
- if (rep->which & XkbGroupNamesMask) {
- if (_XkbReadAtoms(&buf, names->groups, XkbNumKbdGroups,
- (CARD32) rep->groupNames) != Success)
- goto BAILOUT;
- }
- if (rep->which & XkbKeyNamesMask) {
- if (names->keys == NULL) {
- int nKeys;
-
- if (xkb->max_key_code == 0) {
- xkb->min_key_code = rep->minKeyCode;
- xkb->max_key_code = rep->maxKeyCode;
- }
- nKeys = xkb->max_key_code + 1;
- names->keys = _XkbTypedCalloc(nKeys, XkbKeyNameRec);
- }
- if (((int) rep->firstKey + rep->nKeys) > xkb->max_key_code + 1)
- goto BAILOUT;
- if (names->keys != NULL) {
- if (!_XkbCopyFromReadBuffer(&buf,
- (char *) &names->keys[rep->firstKey],
- rep->nKeys * XkbKeyNameLength))
- goto BAILOUT;
- }
- else
- _XkbSkipReadBufferData(&buf, rep->nKeys * XkbKeyNameLength);
- }
- if (rep->which & XkbKeyAliasesMask && (rep->nKeyAliases > 0)) {
- if (XkbAllocNames(xkb, XkbKeyAliasesMask, 0, rep->nKeyAliases) !=
- Success)
- goto BAILOUT;
- if (!_XkbCopyFromReadBuffer(&buf, (char *) names->key_aliases,
- rep->nKeyAliases * XkbKeyNameLength * 2))
- goto BAILOUT;
- }
- if (rep->which & XkbRGNamesMask) {
- if (rep->nRadioGroups > 0) {
- Atom *rgNames;
-
- if (names->radio_groups == NULL)
- names->radio_groups = _XkbTypedCalloc(rep->nRadioGroups, Atom);
- else if (names->num_rg < rep->nRadioGroups) {
- names->radio_groups = _XkbTypedRealloc(names->radio_groups,
- rep->nRadioGroups, Atom);
- }
- rgNames = names->radio_groups;
- if (!rgNames) {
- goto BAILOUT;
- }
- if (!_XkbReadBufferCopy32
- (&buf, (long *) rgNames, rep->nRadioGroups))
- goto BAILOUT;
- names->num_rg = rep->nRadioGroups;
- }
- else if (names->num_rg > 0) {
- names->num_rg = 0;
- Xfree(names->radio_groups);
- }
- }
- len = _XkbFreeReadBuffer(&buf);
- if (len != 0)
- return BadLength;
- else
- return Success;
- BAILOUT:
- _XkbFreeReadBuffer(&buf);
- return BadLength;
-}
-
-Status
-XkbGetNames(Display *dpy, unsigned which, XkbDescPtr xkb)
-{
- register xkbGetNamesReq *req;
- xkbGetNamesReply rep;
- Status status;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- if (!xkb->names) {
- xkb->names = _XkbTypedCalloc(1, XkbNamesRec);
- if (!xkb->names) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadAlloc;
- }
- }
- GetReq(kbGetNames, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetNames;
- req->deviceSpec = xkb->device_spec;
- req->which = which;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadImplementation;
- }
-
- status = _XkbReadGetNamesReply(dpy, &rep, xkb, NULL);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-/***====================================================================***/
-
-static int
-_XkbCountBits(int nBitsMax, unsigned long mask)
-{
- register unsigned long y, nBits;
-
- y = (mask >> 1) & 033333333333;
- y = mask - y - ((y >> 1) & 033333333333);
- nBits = ((unsigned int) (((y + (y >> 3)) & 030707070707) % 077));
-
- /* nBitsMax really means max+1 */
- return (nBits < nBitsMax) ? nBits : (nBitsMax - 1);
-}
-
-static CARD32
-_XkbCountAtoms(Atom *atoms, int maxAtoms, int *count)
-{
- register unsigned int i, bit, nAtoms;
- register CARD32 atomsPresent;
-
- for (i = nAtoms = atomsPresent = 0, bit = 1; i < maxAtoms; i++, bit <<= 1) {
- if (atoms[i] != None) {
- atomsPresent |= bit;
- nAtoms++;
- }
- }
- if (count)
- *count = nAtoms;
- return atomsPresent;
-}
-
-static void
-_XkbCopyAtoms(Display *dpy, Atom *atoms, CARD32 mask, int maxAtoms)
-{
- register unsigned int i, bit;
-
- for (i = 0, bit = 1; i < maxAtoms; i++, bit <<= 1) {
- if (mask & bit)
- Data32(dpy, &atoms[i], 4);
- }
- return;
-}
-
-Bool
-XkbSetNames(Display *dpy,
- unsigned int which,
- unsigned int firstType,
- unsigned int nTypes,
- XkbDescPtr xkb)
-{
- register xkbSetNamesReq *req;
- int nLvlNames = 0;
- XkbInfoPtr xkbi;
- XkbNamesPtr names;
- unsigned firstLvlType, nLvlTypes;
- int nVMods, nLEDs, nRG, nKA, nGroups;
- int nKeys = 0, firstKey = 0, nAtoms;
- CARD32 leds, vmods, groups;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!xkb) || (!xkb->names))
- return False;
- firstLvlType = firstType;
- nLvlTypes = nTypes;
- if (nTypes < 1)
- which &= ~(XkbKTLevelNamesMask | XkbKeyTypeNamesMask);
- else if (firstType <= XkbLastRequiredType) {
- int adjust;
-
- adjust = XkbLastRequiredType - firstType + 1;
- firstType += adjust;
- nTypes -= adjust;
- if (nTypes < 1)
- which &= ~XkbKeyTypeNamesMask;
- }
- names = xkb->names;
- if (which & (XkbKTLevelNamesMask | XkbKeyTypeNamesMask)) {
- register int i;
- XkbKeyTypePtr type;
-
- if ((xkb->map == NULL) || (xkb->map->types == NULL) || (nTypes == 0) ||
- (firstType + nTypes > xkb->map->num_types) ||
- (firstLvlType + nLvlTypes > xkb->map->num_types))
- return False;
- if (which & XkbKTLevelNamesMask) {
- type = &xkb->map->types[firstLvlType];
- for (i = nLvlNames = 0; i < nLvlTypes; i++, type++) {
- if (type->level_names != NULL)
- nLvlNames += type->num_levels;
- }
- }
- }
-
- nVMods = nLEDs = nRG = nKA = nAtoms = nGroups = 0;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetNames, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetNames;
- req->deviceSpec = xkb->device_spec;
- req->firstType = firstType;
- req->nTypes = nTypes;
- req->firstKey = xkb->min_key_code;
- req->nKeys = xkb->max_key_code - xkb->min_key_code + 1;
-
- if (which & XkbKeycodesNameMask)
- nAtoms++;
- if (which & XkbGeometryNameMask)
- nAtoms++;
- if (which & XkbSymbolsNameMask)
- nAtoms++;
- if (which & XkbPhysSymbolsNameMask)
- nAtoms++;
- if (which & XkbTypesNameMask)
- nAtoms++;
- if (which & XkbCompatNameMask)
- nAtoms++;
- if (which & XkbKeyTypeNamesMask)
- nAtoms += nTypes;
- if (which & XkbKTLevelNamesMask) {
- req->firstKTLevel = firstLvlType;
- req->nKTLevels = nLvlTypes;
- req->length += XkbPaddedSize(nLvlTypes) / 4; /* room for group widths */
- nAtoms += nLvlNames;
- }
- else
- req->firstKTLevel = req->nKTLevels = 0;
-
- if (which & XkbIndicatorNamesMask) {
- req->indicators = leds =
- _XkbCountAtoms(names->indicators, XkbNumIndicators, &nLEDs);
- if (nLEDs > 0)
- nAtoms += nLEDs;
- else
- which &= ~XkbIndicatorNamesMask;
- }
- else
- req->indicators = leds = 0;
-
- if (which & XkbVirtualModNamesMask) {
- vmods = req->virtualMods = (CARD16)
- _XkbCountAtoms(names->vmods, XkbNumVirtualMods, &nVMods);
- if (nVMods > 0)
- nAtoms += nVMods;
- else
- which &= ~XkbVirtualModNamesMask;
- }
- else
- vmods = req->virtualMods = 0;
-
- if (which & XkbGroupNamesMask) {
- groups = req->groupNames = (CARD8)
- _XkbCountAtoms(names->groups, XkbNumKbdGroups, &nGroups);
- if (nGroups > 0)
- nAtoms += nGroups;
- else
- which &= ~XkbGroupNamesMask;
- }
- else
- groups = req->groupNames = 0;
-
- if ((which & XkbKeyNamesMask) && (names->keys != NULL)) {
- firstKey = req->firstKey;
- nKeys = req->nKeys;
- nAtoms += nKeys; /* technically not atoms, but 4 bytes wide */
- }
- else
- which &= ~XkbKeyNamesMask;
-
- if (which & XkbKeyAliasesMask) {
- nKA = ((names->key_aliases != NULL) ? names->num_key_aliases : 0);
- if (nKA > 0) {
- req->nKeyAliases = nKA;
- nAtoms += nKA * 2; /* not atoms, but 8 bytes on the wire */
- }
- else {
- which &= ~XkbKeyAliasesMask;
- req->nKeyAliases = 0;
- }
- }
- else
- req->nKeyAliases = 0;
-
- if (which & XkbRGNamesMask) {
- nRG = names->num_rg;
- if (nRG > 0)
- nAtoms += nRG;
- else
- which &= ~XkbRGNamesMask;
- }
-
- req->which = which;
- req->nRadioGroups = nRG;
- req->length += (nAtoms * 4) / 4;
-
- if (which & XkbKeycodesNameMask)
- Data32(dpy, (long *) &names->keycodes, 4);
- if (which & XkbGeometryNameMask)
- Data32(dpy, (long *) &names->geometry, 4);
- if (which & XkbSymbolsNameMask)
- Data32(dpy, (long *) &names->symbols, 4);
- if (which & XkbPhysSymbolsNameMask)
- Data32(dpy, (long *) &names->phys_symbols, 4);
- if (which & XkbTypesNameMask)
- Data32(dpy, (long *) &names->types, 4);
- if (which & XkbCompatNameMask)
- Data32(dpy, (long *) &names->compat, 4);
- if (which & XkbKeyTypeNamesMask) {
- register int i;
- register XkbKeyTypePtr type;
-
- type = &xkb->map->types[firstType];
- for (i = 0; i < nTypes; i++, type++) {
- Data32(dpy, (long *) &type->name, 4);
- }
- }
- if (which & XkbKTLevelNamesMask) {
- XkbKeyTypePtr type;
- int i;
- char *tmp;
-
- BufAlloc(char *, tmp, XkbPaddedSize(nLvlTypes));
- type = &xkb->map->types[firstLvlType];
- for (i = 0; i < nLvlTypes; i++, type++) {
- *tmp++ = type->num_levels;
- }
- type = &xkb->map->types[firstLvlType];
- for (i = 0; i < nLvlTypes; i++, type++) {
- if (type->level_names != NULL)
- Data32(dpy, (long *) type->level_names, type->num_levels * 4);
- }
- }
- if (which & XkbIndicatorNamesMask)
- _XkbCopyAtoms(dpy, names->indicators, leds, XkbNumIndicators);
- if (which & XkbVirtualModNamesMask)
- _XkbCopyAtoms(dpy, names->vmods, vmods, XkbNumVirtualMods);
- if (which & XkbGroupNamesMask)
- _XkbCopyAtoms(dpy, names->groups, groups, XkbNumKbdGroups);
- if (which & XkbKeyNamesMask) {
- Data(dpy, (char *) &names->keys[firstKey], nKeys * XkbKeyNameLength);
- }
- if (which & XkbKeyAliasesMask) {
- Data(dpy, (char *) names->key_aliases, nKA * XkbKeyNameLength * 2);
- }
- if (which & XkbRGNamesMask) {
- Data32(dpy, (long *) names->radio_groups, nRG * 4);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbChangeNames(Display *dpy, XkbDescPtr xkb, XkbNameChangesPtr changes)
-{
- register xkbSetNamesReq *req;
- int nLvlNames = 0;
- XkbInfoPtr xkbi;
- XkbNamesPtr names;
- unsigned which, firstType, nTypes;
- unsigned firstLvlType, nLvlTypes;
- int nVMods, nLEDs, nRG, nKA, nGroups;
- int nKeys = 0, firstKey = 0, nAtoms;
- CARD32 leds = 0, vmods = 0, groups = 0;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!xkb) || (!xkb->names) || (!changes))
- return False;
- which = changes->changed;
- firstType = changes->first_type;
- nTypes = changes->num_types;
- firstLvlType = changes->first_lvl;
- nLvlTypes = changes->num_lvls;
- if (which & XkbKeyTypeNamesMask) {
- if (nTypes < 1)
- which &= ~XkbKeyTypeNamesMask;
- else if (firstType <= XkbLastRequiredType) {
- int adjust;
-
- adjust = XkbLastRequiredType - firstType + 1;
- firstType += adjust;
- nTypes -= adjust;
- if (nTypes < 1)
- which &= ~XkbKeyTypeNamesMask;
- }
- }
- else
- firstType = nTypes = 0;
-
- if (which & XkbKTLevelNamesMask) {
- if (nLvlTypes < 1)
- which &= ~XkbKTLevelNamesMask;
- }
- else
- firstLvlType = nLvlTypes = 0;
-
- names = xkb->names;
- if (which & (XkbKTLevelNamesMask | XkbKeyTypeNamesMask)) {
- register int i;
-
- if ((xkb->map == NULL) || (xkb->map->types == NULL) || (nTypes == 0) ||
- (firstType + nTypes > xkb->map->num_types) ||
- (firstLvlType + nLvlTypes > xkb->map->num_types))
- return False;
- if (which & XkbKTLevelNamesMask) {
- XkbKeyTypePtr type = &xkb->map->types[firstLvlType];
-
- for (i = nLvlNames = 0; i < nLvlTypes; i++, type++) {
- if (type->level_names != NULL)
- nLvlNames += type->num_levels;
- }
- }
- }
-
- if (changes->num_keys < 1)
- which &= ~XkbKeyNamesMask;
- if ((which & XkbKeyNamesMask) == 0)
- changes->first_key = changes->num_keys = 0;
- else if ((changes->first_key < xkb->min_key_code) ||
- (changes->first_key + changes->num_keys > xkb->max_key_code)) {
- return False;
- }
-
- if ((which & XkbVirtualModNamesMask) == 0)
- changes->changed_vmods = 0;
- else if (changes->changed_vmods == 0)
- which &= ~XkbVirtualModNamesMask;
-
- if ((which & XkbIndicatorNamesMask) == 0)
- changes->changed_indicators = 0;
- else if (changes->changed_indicators == 0)
- which &= ~XkbIndicatorNamesMask;
-
- if ((which & XkbGroupNamesMask) == 0)
- changes->changed_groups = 0;
- else if (changes->changed_groups == 0)
- which &= ~XkbGroupNamesMask;
-
- nVMods = nLEDs = nRG = nKA = nAtoms = nGroups = 0;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetNames, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetNames;
- req->deviceSpec = xkb->device_spec;
- req->firstType = firstType;
- req->nTypes = nTypes;
- req->firstKey = changes->first_key;
- req->nKeys = changes->num_keys;
-
- if (which & XkbKeycodesNameMask)
- nAtoms++;
- if (which & XkbGeometryNameMask)
- nAtoms++;
- if (which & XkbSymbolsNameMask)
- nAtoms++;
- if (which & XkbPhysSymbolsNameMask)
- nAtoms++;
- if (which & XkbTypesNameMask)
- nAtoms++;
- if (which & XkbCompatNameMask)
- nAtoms++;
- if (which & XkbKeyTypeNamesMask)
- nAtoms += nTypes;
- if (which & XkbKTLevelNamesMask) {
- req->firstKTLevel = firstLvlType;
- req->nKTLevels = nLvlTypes;
- req->length += XkbPaddedSize(nLvlTypes) / 4; /* room for group widths */
- nAtoms += nLvlNames;
- }
- else
- req->firstKTLevel = req->nKTLevels = 0;
-
- if (which & XkbIndicatorNamesMask) {
- leds = req->indicators = (CARD32) changes->changed_indicators;
- nLEDs = _XkbCountBits(XkbNumIndicators, changes->changed_indicators);
- if (nLEDs > 0)
- nAtoms += nLEDs;
- else
- which &= ~XkbIndicatorNamesMask;
- }
- else
- req->indicators = 0;
-
- if (which & XkbVirtualModNamesMask) {
- vmods = req->virtualMods = changes->changed_vmods;
- nVMods = _XkbCountBits(XkbNumVirtualMods,
- (unsigned long) changes->changed_vmods);
- if (nVMods > 0)
- nAtoms += nVMods;
- else
- which &= ~XkbVirtualModNamesMask;
- }
- else
- req->virtualMods = 0;
-
- if (which & XkbGroupNamesMask) {
- groups = req->groupNames = changes->changed_groups;
- nGroups = _XkbCountBits(XkbNumKbdGroups,
- (unsigned long) changes->changed_groups);
- if (nGroups > 0)
- nAtoms += nGroups;
- else
- which &= ~XkbGroupNamesMask;
- }
- else
- req->groupNames = 0;
-
- if ((which & XkbKeyNamesMask) && (names->keys != NULL)) {
- firstKey = req->firstKey;
- nKeys = req->nKeys;
- nAtoms += nKeys; /* technically not atoms, but 4 bytes wide */
- }
- else
- which &= ~XkbKeyNamesMask;
-
- if (which & XkbKeyAliasesMask) {
- nKA = ((names->key_aliases != NULL) ? names->num_key_aliases : 0);
- if (nKA > 0)
- nAtoms += nKA * 2; /* not atoms, but 8 bytes on the wire */
- else
- which &= ~XkbKeyAliasesMask;
- }
-
- if (which & XkbRGNamesMask) {
- nRG = names->num_rg;
- if (nRG > 0)
- nAtoms += nRG;
- else
- which &= ~XkbRGNamesMask;
- }
-
- req->which = which;
- req->nRadioGroups = nRG;
- req->length += (nAtoms * 4) / 4;
-
- if (which & XkbKeycodesNameMask)
- Data32(dpy, (long *) &names->keycodes, 4);
- if (which & XkbGeometryNameMask)
- Data32(dpy, (long *) &names->geometry, 4);
- if (which & XkbSymbolsNameMask)
- Data32(dpy, (long *) &names->symbols, 4);
- if (which & XkbPhysSymbolsNameMask)
- Data32(dpy, (long *) &names->phys_symbols, 4);
- if (which & XkbTypesNameMask)
- Data32(dpy, (long *) &names->types, 4);
- if (which & XkbCompatNameMask)
- Data32(dpy, (long *) &names->compat, 4);
- if (which & XkbKeyTypeNamesMask) {
- register int i;
- register XkbKeyTypePtr type;
-
- type = &xkb->map->types[firstType];
- for (i = 0; i < nTypes; i++, type++) {
- Data32(dpy, (long *) &type->name, 4);
- }
- }
- if (which & XkbKTLevelNamesMask) {
- XkbKeyTypePtr type;
- int i;
- char *tmp;
-
- BufAlloc(char *, tmp, XkbPaddedSize(nLvlTypes));
- type = &xkb->map->types[firstLvlType];
- for (i = 0; i < nLvlTypes; i++, type++) {
- *tmp++ = type->num_levels;
- }
- type = &xkb->map->types[firstLvlType];
- for (i = 0; i < nLvlTypes; i++, type++) {
- if (type->level_names != NULL)
- Data32(dpy, (long *) type->level_names, type->num_levels * 4);
- }
- }
- if (which & XkbIndicatorNamesMask)
- _XkbCopyAtoms(dpy, names->indicators, leds, XkbNumIndicators);
- if (which & XkbVirtualModNamesMask)
- _XkbCopyAtoms(dpy, names->vmods, vmods, XkbNumVirtualMods);
- if (which & XkbGroupNamesMask)
- _XkbCopyAtoms(dpy, names->groups, groups, XkbNumKbdGroups);
- if (which & XkbKeyNamesMask) {
- Data(dpy, (char *) &names->keys[firstKey], nKeys * XkbKeyNameLength);
- }
- if (which & XkbKeyAliasesMask) {
- Data(dpy, (char *) names->key_aliases, nKA * XkbKeyNameLength * 2);
- }
- if (which & XkbRGNamesMask) {
- Data32(dpy, (long *) names->radio_groups, nRG * 4);
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-void
-XkbNoteNameChanges(XkbNameChangesPtr old,
- XkbNamesNotifyEvent *new,
- unsigned int wanted)
-{
- int first, last, old_last, new_last;
-
- if ((old == NULL) || (new == NULL))
- return;
-
- wanted &= new->changed;
-
- if (wanted == 0)
- return;
-
- if (wanted & XkbKeyTypeNamesMask) {
- if (old->changed & XkbKeyTypeNamesMask) {
- new_last = (new->first_type + new->num_types - 1);
- old_last = (old->first_type + old->num_types - 1);
-
- if (new->first_type < old->first_type)
- first = new->first_type;
- else
- first = old->first_type;
-
- if (old_last > new_last)
- last = old_last;
- else
- last = new_last;
-
- old->first_type = first;
- old->num_types = (last - first) + 1;
- }
- else {
- old->first_type = new->first_type;
- old->num_types = new->num_types;
- }
- }
- if (wanted & XkbKTLevelNamesMask) {
- if (old->changed & XkbKTLevelNamesMask) {
- new_last = (new->first_lvl + new->num_lvls - 1);
- old_last = (old->first_lvl + old->num_lvls - 1);
-
- if (new->first_lvl < old->first_lvl)
- first = new->first_lvl;
- else
- first = old->first_lvl;
-
- if (old_last > new_last)
- last = old_last;
- else
- last = new_last;
-
- old->first_lvl = first;
- old->num_lvls = (last - first) + 1;
- }
- else {
- old->first_lvl = new->first_lvl;
- old->num_lvls = new->num_lvls;
- }
- }
- if (wanted & XkbIndicatorNamesMask) {
- if (old->changed & XkbIndicatorNamesMask)
- old->changed_indicators |= new->changed_indicators;
- else
- old->changed_indicators = new->changed_indicators;
- }
- if (wanted & XkbKeyNamesMask) {
- if (old->changed & XkbKeyNamesMask) {
- new_last = (new->first_key + new->num_keys - 1);
- old_last = (old->first_key + old->num_keys - 1);
-
- first = old->first_key;
-
- if (new->first_key < old->first_key)
- first = new->first_key;
- if (old_last > new_last)
- new_last = old_last;
-
- old->first_key = first;
- old->num_keys = (new_last - first) + 1;
- }
- else {
- old->first_key = new->first_key;
- old->num_keys = new->num_keys;
- }
- }
- if (wanted & XkbVirtualModNamesMask) {
- if (old->changed & XkbVirtualModNamesMask)
- old->changed_vmods |= new->changed_vmods;
- else
- old->changed_vmods = new->changed_vmods;
- }
- if (wanted & XkbGroupNamesMask) {
- if (old->changed & XkbGroupNamesMask)
- old->changed_groups |= new->changed_groups;
- else
- old->changed_groups = new->changed_groups;
- }
- if (wanted & XkbRGNamesMask)
- old->num_rg = new->num_radio_groups;
- if (wanted & XkbKeyAliasesMask)
- old->num_aliases = new->num_aliases;
- old->changed |= wanted;
- return;
-}
diff --git a/nx-X11/lib/X11/XKBRdBuf.c b/nx-X11/lib/X11/XKBRdBuf.c
deleted file mode 100644
index 381f4c900..000000000
--- a/nx-X11/lib/X11/XKBRdBuf.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XKBlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-
-/***====================================================================***/
-
-int
-_XkbInitReadBuffer(Display *dpy, XkbReadBufferPtr buf, int size)
-{
- if ((dpy != NULL) && (buf != NULL) && (size > 0)) {
- buf->error = 0;
- buf->size = size;
- buf->start = buf->data = _XkbAlloc(size);
- if (buf->start) {
- _XRead(dpy, buf->start, size);
- return 1;
- }
- }
- return 0;
-}
-
-#define _XkbReadBufferDataLeft(b) (((b)->size)-((b)->data-(b)->start))
-
-int
-_XkbSkipReadBufferData(XkbReadBufferPtr from, int size)
-{
- if (size == 0)
- return 1;
- if ((from == NULL) || (from->error) || (size < 1) ||
- (_XkbReadBufferDataLeft(from) < size))
- return 0;
- from->data += size;
- return 1;
-}
-
-int
-_XkbCopyFromReadBuffer(XkbReadBufferPtr from, char *to, int size)
-{
- if (size == 0)
- return 1;
- if ((from == NULL) || (from->error) || (to == NULL) || (size < 1) ||
- (_XkbReadBufferDataLeft(from) < size))
- return 0;
- memcpy(to, from->data, size);
- from->data += size;
- return 1;
-}
-
-#ifdef XKB_FORCE_INT_KEYSYM
-int
-_XkbReadCopyKeySyms(int *wire, KeySym * to, int num_words)
-{
- while (num_words-- > 0) {
- *to++ = *wire++;
- }
- return 1;
-}
-
-int
-_XkbReadBufferCopyKeySyms(XkbReadBufferPtr from, KeySym * to, int num_words)
-{
- if ((unsigned) (num_words * 4) > _XkbReadBufferDataLeft(from))
- return 0;
- _XkbReadCopyKeySyms((int *) from->data, to, num_words);
- from->data += (4 * num_words);
- return True;
-}
-
-int
-_XkbWriteCopyKeySyms(register KeySym * from, CARD32 *to, int len)
-{
- while (len-- > 0) {
- *to++ = (CARD32) *from++;
- }
- return True;
-}
-#endif
-
-#ifdef LONG64
-int
-_XkbReadCopyData32(int *wire, long *to, int num_words)
-{
- while (num_words-- > 0) {
- *to++ = *wire++;
- }
- return 1;
-}
-
-int
-_XkbReadBufferCopy32(XkbReadBufferPtr from, long *to, int num_words)
-{
- if ((unsigned) (num_words * 4) > _XkbReadBufferDataLeft(from))
- return 0;
- _XkbReadCopyData32((int *) from->data, to, num_words);
- from->data += (4 * num_words);
- return True;
-}
-
-int
-_XkbWriteCopyData32(register unsigned long *from, CARD32 *to, int len)
-{
- while (len-- > 0) {
- *to++ = (CARD32) *from++;
- }
- return True;
-}
-#endif /* LONG64 */
-
-
-char *
-_XkbPeekAtReadBuffer(XkbReadBufferPtr from, int size)
-{
- if ((from == NULL) || (from->error) || (size < 1) ||
- (_XkbReadBufferDataLeft(from) < size))
- return NULL;
- return from->data;
-}
-
-char *
-_XkbGetReadBufferPtr(XkbReadBufferPtr from, int size)
-{
- char *ptr;
-
- if ((from == NULL) || (from->error) || (size < 1) ||
- (_XkbReadBufferDataLeft(from) < size))
- return NULL;
- ptr = from->data;
- from->data += size;
- return ptr;
-}
-
-
-int
-_XkbFreeReadBuffer(XkbReadBufferPtr buf)
-{
- if ((buf != NULL) && (buf->start != NULL)) {
- int left;
-
- left = (int) _XkbReadBufferDataLeft(buf);
-
- Xfree(buf->start);
- buf->size = 0;
- buf->start = buf->data = NULL;
- return left;
- }
- return 0;
-}
-
-Bool
-_XkbGetReadBufferCountedString(XkbReadBufferPtr buf, char **rtrn)
-{
- CARD16 len, *pLen;
- int left;
- char *str = NULL;
-
- if ((buf == NULL) || (buf->error) ||
- ((left = (int) _XkbReadBufferDataLeft(buf)) < 4))
- return False;
- pLen = (CARD16 *) buf->data;
- len = *pLen;
- if (len > 0) {
- if (XkbPaddedSize(len + 2) > left)
- return False;
- str = _XkbAlloc(len + 1);
- if (str) {
- memcpy(str, &buf->data[2], len);
- str[len] = '\0';
- }
- }
- buf->data += XkbPaddedSize(len + 2);
- *rtrn = str;
- return True;
-}
diff --git a/nx-X11/lib/X11/XKBSetGeom.c b/nx-X11/lib/X11/XKBSetGeom.c
deleted file mode 100644
index ee254e0dc..000000000
--- a/nx-X11/lib/X11/XKBSetGeom.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef DEBUG
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#endif
-
-#include "Xlibint.h"
-#include "XKBlibint.h"
-#include <nx-X11/extensions/XKBgeom.h>
-#include <nx-X11/extensions/XKBproto.h>
-
-#ifndef MINSHORT
-#define MINSHORT -32768
-#endif
-#ifndef MAXSHORT
-#define MAXSHORT 32767
-#endif
-
-/***====================================================================***/
-
-#define _SizeCountedString(s) ((s)?XkbPaddedSize(2+strlen(s)):4)
-
-static char *
-_WriteCountedString(char *wire, char *str)
-{
- CARD16 len, *pLen;
-
- len = (str ? strlen(str) : 0);
- pLen = (CARD16 *) wire;
- *pLen = len;
- if (len && str)
- memcpy(&wire[2], str, len);
- wire += XkbPaddedSize(len + 2);
- return wire;
-}
-
-static int
-_SizeGeomProperties(XkbGeometryPtr geom)
-{
- register int i, size;
- XkbPropertyPtr prop;
-
- for (size = i = 0, prop = geom->properties; i < geom->num_properties;
- i++, prop++) {
- size += _SizeCountedString(prop->name);
- size += _SizeCountedString(prop->value);
- }
- return size;
-}
-
-static int
-_SizeGeomColors(XkbGeometryPtr geom)
-{
- register int i, size;
- register XkbColorPtr color;
-
- for (i = size = 0, color = geom->colors; i < geom->num_colors; i++, color++) {
- size += _SizeCountedString(color->spec);
- }
- return size;
-}
-
-static int
-_SizeGeomShapes(XkbGeometryPtr geom)
-{
- register int i, size;
- register XkbShapePtr shape;
-
- for (i = size = 0, shape = geom->shapes; i < geom->num_shapes; i++, shape++) {
- register int n;
- register XkbOutlinePtr ol;
-
- size += SIZEOF(xkbShapeWireDesc);
- for (n = 0, ol = shape->outlines; n < shape->num_outlines; n++, ol++) {
- size += SIZEOF(xkbOutlineWireDesc);
- size += ol->num_points * SIZEOF(xkbPointWireDesc);
- }
- }
- return size;
-}
-
-static int
-_SizeGeomDoodads(int num_doodads, XkbDoodadPtr doodad)
-{
- register int i, size;
-
- for (i = size = 0; i < num_doodads; i++, doodad++) {
- size += SIZEOF(xkbAnyDoodadWireDesc);
- if (doodad->any.type == XkbTextDoodad) {
- size += _SizeCountedString(doodad->text.text);
- size += _SizeCountedString(doodad->text.font);
- }
- else if (doodad->any.type == XkbLogoDoodad) {
- size += _SizeCountedString(doodad->logo.logo_name);
- }
- }
- return size;
-}
-
-static int
-_SizeGeomSections(XkbGeometryPtr geom)
-{
- register int i, size;
- XkbSectionPtr section;
-
- for (i = size = 0, section = geom->sections; i < geom->num_sections;
- i++, section++) {
- size += SIZEOF(xkbSectionWireDesc);
- if (section->rows) {
- int r;
- XkbRowPtr row;
-
- for (r = 0, row = section->rows; r < section->num_rows; row++, r++) {
- size += SIZEOF(xkbRowWireDesc);
- size += row->num_keys * SIZEOF(xkbKeyWireDesc);
- }
- }
- if (section->doodads)
- size += _SizeGeomDoodads(section->num_doodads, section->doodads);
- if (section->overlays) {
- int o;
- XkbOverlayPtr ol;
-
- for (o = 0, ol = section->overlays; o < section->num_overlays;
- o++, ol++) {
- int r;
- XkbOverlayRowPtr row;
-
- size += SIZEOF(xkbOverlayWireDesc);
- for (r = 0, row = ol->rows; r < ol->num_rows; r++, row++) {
- size += SIZEOF(xkbOverlayRowWireDesc);
- size += row->num_keys * SIZEOF(xkbOverlayKeyWireDesc);
- }
- }
- }
- }
- return size;
-}
-
-static int
-_SizeGeomKeyAliases(XkbGeometryPtr geom)
-{
- return geom->num_key_aliases * (2 * XkbKeyNameLength);
-}
-
-/***====================================================================***/
-
-static char *
-_WriteGeomProperties(char *wire, XkbGeometryPtr geom)
-{
- register int i;
- register XkbPropertyPtr prop;
-
- for (i = 0, prop = geom->properties; i < geom->num_properties; i++, prop++) {
- wire = _WriteCountedString(wire, prop->name);
- wire = _WriteCountedString(wire, prop->value);
- }
- return wire;
-}
-
-static char *
-_WriteGeomColors(char *wire, XkbGeometryPtr geom)
-{
- register int i;
- register XkbColorPtr color;
-
- for (i = 0, color = geom->colors; i < geom->num_colors; i++, color++) {
- wire = _WriteCountedString(wire, color->spec);
- }
- return wire;
-}
-
-static char *
-_WriteGeomShapes(char *wire, XkbGeometryPtr geom)
-{
- int i;
- XkbShapePtr shape;
- xkbShapeWireDesc *shapeWire;
-
- for (i = 0, shape = geom->shapes; i < geom->num_shapes; i++, shape++) {
- register int o;
- XkbOutlinePtr ol;
- xkbOutlineWireDesc *olWire;
-
- shapeWire = (xkbShapeWireDesc *) wire;
- shapeWire->name = shape->name;
- shapeWire->nOutlines = shape->num_outlines;
- if (shape->primary != NULL)
- shapeWire->primaryNdx = XkbOutlineIndex(shape, shape->primary);
- else
- shapeWire->primaryNdx = XkbNoShape;
- if (shape->approx != NULL)
- shapeWire->approxNdx = XkbOutlineIndex(shape, shape->approx);
- else
- shapeWire->approxNdx = XkbNoShape;
- wire = (char *) &shapeWire[1];
- for (o = 0, ol = shape->outlines; o < shape->num_outlines; o++, ol++) {
- register int p;
- XkbPointPtr pt;
- xkbPointWireDesc *ptWire;
-
- olWire = (xkbOutlineWireDesc *) wire;
- olWire->nPoints = ol->num_points;
- olWire->cornerRadius = ol->corner_radius;
- wire = (char *) &olWire[1];
- ptWire = (xkbPointWireDesc *) wire;
- for (p = 0, pt = ol->points; p < ol->num_points; p++, pt++) {
- ptWire[p].x = pt->x;
- ptWire[p].y = pt->y;
- }
- wire = (char *) &ptWire[ol->num_points];
- }
- }
- return wire;
-}
-
-static char *
-_WriteGeomDoodads(char *wire, int num_doodads, XkbDoodadPtr doodad)
-{
- register int i;
-
- for (i = 0; i < num_doodads; i++, doodad++) {
- xkbDoodadWireDesc *doodadWire = (xkbDoodadWireDesc *) wire;
-
- wire = (char *) &doodadWire[1];
- bzero(doodadWire, SIZEOF(xkbDoodadWireDesc));
- doodadWire->any.name = doodad->any.name;
- doodadWire->any.type = doodad->any.type;
- doodadWire->any.priority = doodad->any.priority;
- doodadWire->any.top = doodad->any.top;
- doodadWire->any.left = doodad->any.left;
- doodadWire->any.angle = doodad->any.angle;
- switch (doodad->any.type) {
- case XkbOutlineDoodad:
- case XkbSolidDoodad:
- doodadWire->shape.colorNdx = doodad->shape.color_ndx;
- doodadWire->shape.shapeNdx = doodad->shape.shape_ndx;
- break;
- case XkbTextDoodad:
- doodadWire->text.width = doodad->text.width;
- doodadWire->text.height = doodad->text.height;
- doodadWire->text.colorNdx = doodad->text.color_ndx;
- wire = _WriteCountedString(wire, doodad->text.text);
- wire = _WriteCountedString(wire, doodad->text.font);
- break;
- case XkbIndicatorDoodad:
- doodadWire->indicator.shapeNdx = doodad->indicator.shape_ndx;
- doodadWire->indicator.onColorNdx = doodad->indicator.on_color_ndx;
- doodadWire->indicator.offColorNdx = doodad->indicator.off_color_ndx;
- break;
- case XkbLogoDoodad:
- doodadWire->logo.colorNdx = doodad->logo.color_ndx;
- doodadWire->logo.shapeNdx = doodad->logo.shape_ndx;
- wire = _WriteCountedString(wire, doodad->logo.logo_name);
- break;
- default:
- break;
- }
- }
- return wire;
-}
-
-static char *
-_WriteGeomOverlay(char *wire, XkbOverlayPtr ol)
-{
- register int r;
- XkbOverlayRowPtr row;
- xkbOverlayWireDesc *olWire = (xkbOverlayWireDesc *) wire;
-
- olWire->name = ol->name;
- olWire->nRows = ol->num_rows;
- wire = (char *) &olWire[1];
- for (r = 0, row = ol->rows; r < ol->num_rows; r++, row++) {
- unsigned int k;
- XkbOverlayKeyPtr key;
- xkbOverlayRowWireDesc *rowWire = (xkbOverlayRowWireDesc *) wire;
-
- rowWire->rowUnder = row->row_under;
- rowWire->nKeys = row->num_keys;
- wire = (char *) &rowWire[1];
- for (k = 0, key = row->keys; k < row->num_keys; k++, key++) {
- xkbOverlayKeyWireDesc *keyWire = (xkbOverlayKeyWireDesc *) wire;
-
- memcpy(keyWire->over, key->over.name, XkbKeyNameLength);
- memcpy(keyWire->under, key->under.name, XkbKeyNameLength);
- wire = (char *) &keyWire[1];
- }
- }
- return wire;
-}
-
-static char *
-_WriteGeomSections(char *wire, XkbGeometryPtr geom)
-{
- register int i;
- XkbSectionPtr section;
-
- for (i = 0, section = geom->sections; i < geom->num_sections;
- i++, section++) {
- xkbSectionWireDesc *sectionWire = (xkbSectionWireDesc *) wire;
-
- sectionWire->name = section->name;
- sectionWire->top = section->top;
- sectionWire->left = section->left;
- sectionWire->width = section->width;
- sectionWire->height = section->height;
- sectionWire->angle = section->angle;
- sectionWire->priority = section->priority;
- sectionWire->nRows = section->num_rows;
- sectionWire->nDoodads = section->num_doodads;
- sectionWire->nOverlays = section->num_overlays;
- sectionWire->pad = 0;
- wire = (char *) &sectionWire[1];
- if (section->rows) {
- int r;
- XkbRowPtr row;
-
- for (r = 0, row = section->rows; r < section->num_rows; r++, row++) {
- xkbRowWireDesc *rowWire = (xkbRowWireDesc *) wire;
-
- rowWire->top = row->top;
- rowWire->left = row->left;
- rowWire->nKeys = row->num_keys;
- rowWire->vertical = row->vertical;
- rowWire->pad = 0;
- wire = (char *) &rowWire[1];
- if (row->keys) {
- int k;
- XkbKeyPtr key;
- xkbKeyWireDesc *keyWire = (xkbKeyWireDesc *) wire;
-
- for (k = 0, key = row->keys; k < row->num_keys; k++, key++) {
- memcpy(keyWire[k].name, key->name.name,
- XkbKeyNameLength);
- keyWire[k].gap = key->gap;
- keyWire[k].shapeNdx = key->shape_ndx;
- keyWire[k].colorNdx = key->color_ndx;
- }
- wire = (char *) &keyWire[row->num_keys];
- }
- }
- }
- if (section->doodads) {
- wire = _WriteGeomDoodads(wire,
- section->num_doodads, section->doodads);
- }
- if (section->overlays) {
- register int o;
-
- for (o = 0; o < section->num_overlays; o++) {
- wire = _WriteGeomOverlay(wire, &section->overlays[o]);
- }
- }
- }
- return wire;
-}
-
-static char *
-_WriteGeomKeyAliases(char *wire, XkbGeometryPtr geom)
-{
- register int sz;
-
- sz = geom->num_key_aliases * (XkbKeyNameLength * 2);
- if (sz > 0) {
- memcpy(wire, (char *) geom->key_aliases, sz);
- wire += sz;
- }
- return wire;
-}
-
-/***====================================================================***/
-
-static Status
-_SendSetGeometry(Display *dpy, XkbGeometryPtr geom, xkbSetGeometryReq *req)
-{
- int sz;
- char *wire, *tbuf;
-
- sz = 0;
- sz += _SizeCountedString(geom->label_font);
- sz += _SizeGeomProperties(geom);
- sz += _SizeGeomColors(geom);
- sz += _SizeGeomShapes(geom);
- sz += _SizeGeomSections(geom);
- sz += _SizeGeomDoodads(geom->num_doodads, geom->doodads);
- sz += _SizeGeomKeyAliases(geom);
- req->length += (sz / 4);
- if (sz < (dpy->bufmax - dpy->buffer)) {
- BufAlloc(char *, wire, sz);
- tbuf = NULL;
- }
- else {
- tbuf = _XAllocTemp(dpy, sz);
- if (!tbuf)
- return BadAlloc;
- wire = tbuf;
- }
- wire = _WriteCountedString(wire, geom->label_font);
- if (geom->num_properties > 0)
- wire = _WriteGeomProperties(wire, geom);
- if (geom->num_colors > 0)
- wire = _WriteGeomColors(wire, geom);
- if (geom->num_shapes > 0)
- wire = _WriteGeomShapes(wire, geom);
- if (geom->num_sections > 0)
- wire = _WriteGeomSections(wire, geom);
- if (geom->num_doodads > 0)
- wire = _WriteGeomDoodads(wire, geom->num_doodads, geom->doodads);
- if (geom->num_key_aliases > 0)
- wire = _WriteGeomKeyAliases(wire, geom);
- if (tbuf != NULL) {
- Data(dpy, tbuf, sz);
- _XFreeTemp(dpy, tbuf, sz);
- }
- return Success;
-}
-
-/***====================================================================***/
-
-Status
-XkbSetGeometry(Display *dpy, unsigned deviceSpec, XkbGeometryPtr geom)
-{
- xkbSetGeometryReq *req;
- Status ret;
-
- if ((!geom) || (dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
-
- LockDisplay(dpy);
- GetReq(kbSetGeometry, req);
- req->reqType = dpy->xkb_info->codes->major_opcode;
- req->xkbReqType = X_kbSetGeometry;
- req->deviceSpec = deviceSpec;
- req->nShapes = geom->num_shapes;
- req->nSections = geom->num_sections;
- req->name = geom->name;
- req->widthMM = geom->width_mm;
- req->heightMM = geom->height_mm;
- req->nProperties = geom->num_properties;
- req->nColors = geom->num_colors;
- req->nDoodads = geom->num_doodads;
- req->nKeyAliases = geom->num_key_aliases;
- req->baseColorNdx = (geom->base_color - geom->colors);
- req->labelColorNdx = (geom->label_color - geom->colors);
-
- ret = _SendSetGeometry(dpy, geom, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return ret;
-}
diff --git a/nx-X11/lib/X11/XKBSetMap.c b/nx-X11/lib/X11/XKBSetMap.c
deleted file mode 100644
index cb696105c..000000000
--- a/nx-X11/lib/X11/XKBSetMap.c
+++ /dev/null
@@ -1,598 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-static int
-_XkbSizeKeyTypes(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- XkbKeyTypePtr map;
- int i, len;
-
- if (((req->present & XkbKeyTypesMask) == 0) || (req->nTypes == 0)) {
- req->present &= ~XkbKeyTypesMask;
- req->firstType = req->nTypes = 0;
- return 0;
- }
- len = 0;
- map = &xkb->map->types[req->firstType];
- for (i = 0; i < req->nTypes; i++, map++) {
- len += SIZEOF(xkbKeyTypeWireDesc);
- len += map->map_count * SIZEOF(xkbKTSetMapEntryWireDesc);
- if (map->preserve)
- len += map->map_count * SIZEOF(xkbModsWireDesc);
- }
- return len;
-}
-
-static void
-_XkbWriteKeyTypes(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- char *buf;
- XkbKeyTypePtr type;
- int i, n;
- xkbKeyTypeWireDesc *desc;
-
- if ((req->present & XkbKeyTypesMask) == 0)
- return;
- type = &xkb->map->types[req->firstType];
- for (i = 0; i < req->nTypes; i++, type++) {
- int sz = SIZEOF(xkbKeyTypeWireDesc);
- sz += type->map_count * SIZEOF(xkbKTSetMapEntryWireDesc);
- if (type->preserve)
- sz += type->map_count * SIZEOF(xkbModsWireDesc);
- BufAlloc(xkbKeyTypeWireDesc *, desc, sz);
- desc->mask = type->mods.mask;
- desc->realMods = type->mods.real_mods;
- desc->virtualMods = type->mods.vmods;
- desc->numLevels = type->num_levels;
- desc->nMapEntries = type->map_count;
- desc->preserve = (type->preserve != NULL);
- buf = (char *) &desc[1];
- if (desc->nMapEntries > 0) {
- xkbKTSetMapEntryWireDesc *wire = (xkbKTSetMapEntryWireDesc *) buf;
-
- for (n = 0; n < type->map_count; n++, wire++) {
- wire->level = type->map[n].level;
- wire->realMods = type->map[n].mods.real_mods;
- wire->virtualMods = type->map[n].mods.vmods;
- }
- buf = (char *) wire;
- if (type->preserve) {
- xkbModsWireDesc *pwire = (xkbModsWireDesc *) buf;
-
- for (n = 0; n < type->map_count; n++, pwire++) {
- pwire->realMods = type->preserve[n].real_mods;
- pwire->virtualMods = type->preserve[n].vmods;
- }
- }
- }
- }
- return;
-}
-
-static int
-_XkbSizeKeySyms(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- int i, len;
- unsigned nSyms;
-
- if (((req->present & XkbKeySymsMask) == 0) || (req->nKeySyms == 0)) {
- req->present &= ~XkbKeySymsMask;
- req->firstKeySym = req->nKeySyms = 0;
- req->totalSyms = 0;
- return 0;
- }
- len = (int) (req->nKeySyms * sizeof(XkbSymMapRec));
- for (i = nSyms = 0; i < req->nKeySyms; i++) {
- nSyms += XkbKeyNumSyms(xkb, i + req->firstKeySym);
- }
- len += nSyms * sizeof(CARD32);
- req->totalSyms = nSyms;
- return len;
-}
-
-static void
-_XkbWriteKeySyms(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register KeySym *pSym;
- CARD32 *outSym;
- XkbSymMapPtr symMap;
- xkbSymMapWireDesc *desc;
- register int i;
-
- if ((req->present & XkbKeySymsMask) == 0)
- return;
- symMap = &xkb->map->key_sym_map[req->firstKeySym];
- for (i = 0; i < req->nKeySyms; i++, symMap++) {
- BufAlloc(xkbSymMapWireDesc *, desc,
- SIZEOF(xkbSymMapWireDesc) +
- (XkbKeyNumSyms(xkb, i + req->firstKeySym) * sizeof(CARD32)));
- desc->ktIndex[0] = symMap->kt_index[0];
- desc->ktIndex[1] = symMap->kt_index[1];
- desc->ktIndex[2] = symMap->kt_index[2];
- desc->ktIndex[3] = symMap->kt_index[3];
- desc->groupInfo = symMap->group_info;
- desc->width = symMap->width;
- desc->nSyms = XkbKeyNumSyms(xkb, i + req->firstKeySym);
- outSym = (CARD32 *) &desc[1];
- if (desc->nSyms > 0) {
- pSym = XkbKeySymsPtr(xkb, i + req->firstKeySym);
- _XkbWriteCopyKeySyms(pSym, outSym, desc->nSyms);
- }
- }
- return;
-}
-
-static int
-_XkbSizeKeyActions(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- int i, len, nActs;
-
- if (((req->present & XkbKeyActionsMask) == 0) || (req->nKeyActs == 0)) {
- req->present &= ~XkbKeyActionsMask;
- req->firstKeyAct = req->nKeyActs = 0;
- req->totalActs = 0;
- return 0;
- }
- for (nActs = i = 0; i < req->nKeyActs; i++) {
- if (xkb->server->key_acts[i + req->firstKeyAct] != 0)
- nActs += XkbKeyNumActions(xkb, i + req->firstKeyAct);
- }
- len = XkbPaddedSize(req->nKeyActs) + (nActs * SIZEOF(xkbActionWireDesc));
- req->totalActs = nActs;
- return len;
-}
-
-static void
-_XkbWriteKeyActions(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i;
- int n;
- CARD8 *numDesc;
- XkbAction *actDesc;
-
- if ((req->present & XkbKeyActionsMask) == 0)
- return;
- n = XkbPaddedSize(req->nKeyActs);
- n += (req->totalActs * SIZEOF(xkbActionWireDesc));
-
- BufAlloc(CARD8 *, numDesc, n);
- for (i = 0; i < req->nKeyActs; i++) {
- if (xkb->server->key_acts[i + req->firstKeyAct] == 0)
- numDesc[i] = 0;
- else
- numDesc[i] = XkbKeyNumActions(xkb, (i + req->firstKeyAct));
- }
- actDesc = (XkbAction *) &numDesc[XkbPaddedSize(req->nKeyActs)];
- for (i = 0; i < req->nKeyActs; i++) {
- if (xkb->server->key_acts[i + req->firstKeyAct] != 0) {
- n = XkbKeyNumActions(xkb, (i + req->firstKeyAct));
- memcpy(actDesc, XkbKeyActionsPtr(xkb, (i + req->firstKeyAct)),
- n * SIZEOF(xkbActionWireDesc));
- actDesc += n;
- }
- }
- return;
-}
-
-static int
-_XkbSizeKeyBehaviors(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last, nFound;
-
- if (((req->present & XkbKeyBehaviorsMask) == 0) || (req->nKeyBehaviors < 1)) {
- req->present &= ~XkbKeyBehaviorsMask;
- req->firstKeyBehavior = req->nKeyBehaviors = 0;
- req->totalKeyBehaviors = 0;
- return 0;
- }
- first = req->firstKeyBehavior;
- last = first + req->nKeyBehaviors - 1;
- for (i = first, nFound = 0; i <= last; i++) {
- if (xkb->server->behaviors[i].type != XkbKB_Default)
- nFound++;
- }
- req->totalKeyBehaviors = nFound;
- return (nFound * SIZEOF(xkbBehaviorWireDesc));
-}
-
-static void
-_XkbWriteKeyBehaviors(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last;
- xkbBehaviorWireDesc *wire;
- char *buf;
-
- if ((req->present & XkbKeyBehaviorsMask) == 0)
- return;
- first = req->firstKeyBehavior;
- last = first + req->nKeyBehaviors - 1;
-
- i = req->totalKeyBehaviors * SIZEOF(xkbBehaviorWireDesc);
- BufAlloc(char *, buf, i);
- wire = (xkbBehaviorWireDesc *) buf;
- for (i = first; i <= last; i++) {
- if (xkb->server->behaviors[i].type != XkbKB_Default) {
- wire->key = i;
- wire->type = xkb->server->behaviors[i].type;
- wire->data = xkb->server->behaviors[i].data;
- buf += SIZEOF(xkbBehaviorWireDesc);
- wire = (xkbBehaviorWireDesc *) buf;
- }
- }
- return;
-}
-
-static unsigned
-_XkbSizeVirtualMods(xkbSetMapReq *req)
-{
- register int i, bit, nMods;
-
- if (((req->present & XkbVirtualModsMask) == 0) || (req->virtualMods == 0)) {
- req->present &= ~XkbVirtualModsMask;
- req->virtualMods = 0;
- return 0;
- }
- for (i = nMods = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
- if (req->virtualMods & bit)
- nMods++;
- }
- return XkbPaddedSize(nMods);
-}
-
-static void
-_XkbWriteVirtualMods(Display *dpy,
- XkbDescPtr xkb,
- xkbSetMapReq *req,
- unsigned size)
-{
- register int i, bit;
- CARD8 *vmods;
-
- /* This was req->present&XkbVirtualModsMask==0, and '==' beats '&' */
- if (((req->present & XkbVirtualModsMask) == 0) || (size < 1))
- return;
- BufAlloc(CARD8 *, vmods, size);
- for (i = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) {
- if (req->virtualMods & bit)
- *vmods++ = xkb->server->vmods[i];
- }
- return;
-}
-
-static int
-_XkbSizeKeyExplicit(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last, nFound;
-
- if (((req->present & XkbExplicitComponentsMask) == 0) ||
- (req->nKeyExplicit == 0)) {
- req->present &= ~XkbExplicitComponentsMask;
- req->firstKeyExplicit = req->nKeyExplicit = 0;
- req->totalKeyExplicit = 0;
- return 0;
- }
- first = req->firstKeyExplicit;
- last = first + req->nKeyExplicit - 1;
-
- for (i = first, nFound = 0; i <= last; i++) {
- if (xkb->server->explicit[i] != 0)
- nFound++;
- }
- req->totalKeyExplicit = nFound;
- return XkbPaddedSize((nFound * 2));
-}
-
-static void
-_XkbWriteKeyExplicit(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last;
- CARD8 *wire;
-
- if ((req->present & XkbExplicitComponentsMask) == 0)
- return;
- first = req->firstKeyExplicit;
- last = first + req->nKeyExplicit - 1;
- i = XkbPaddedSize((req->totalKeyExplicit * 2));
- BufAlloc(CARD8 *, wire, i);
- for (i = first; i <= last; i++) {
- if (xkb->server->explicit[i] != 0) {
- wire[0] = i;
- wire[1] = xkb->server->explicit[i];
- wire += 2;
- }
- }
- return;
-}
-
-static int
-_XkbSizeModifierMap(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last, nFound;
-
- if (((req->present & XkbModifierMapMask) == 0) || (req->nModMapKeys == 0)) {
- req->present &= ~XkbModifierMapMask;
- req->firstModMapKey = req->nModMapKeys = 0;
- req->totalModMapKeys = 0;
- return 0;
- }
- first = req->firstModMapKey;
- last = first + req->nModMapKeys - 1;
-
- for (i = first, nFound = 0; i <= last; i++) {
- if (xkb->map->modmap[i] != 0)
- nFound++;
- }
- req->totalModMapKeys = nFound;
- return XkbPaddedSize((nFound * 2));
-}
-
-static void
-_XkbWriteModifierMap(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last;
- CARD8 *wire;
-
- if ((req->present & XkbModifierMapMask) == 0)
- return;
- first = req->firstModMapKey;
- last = first + req->nModMapKeys - 1;
- if (req->totalModMapKeys > 0) {
- i = XkbPaddedSize((req->totalModMapKeys * 2));
- BufAlloc(CARD8 *, wire, i);
-
- for (i = first; i <= last; i++) {
- if (xkb->map->modmap[i] != 0) {
- wire[0] = i;
- wire[1] = xkb->map->modmap[i];
- wire += 2;
- }
- }
- }
- return;
-}
-
-static int
-_XkbSizeVirtualModMap(XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last, nFound;
-
- if (((req->present & XkbVirtualModMapMask) == 0) ||
- (req->nVModMapKeys == 0)) {
- req->present &= ~XkbVirtualModMapMask;
- req->firstVModMapKey = req->nVModMapKeys = 0;
- req->totalVModMapKeys = 0;
- return 0;
- }
- first = req->firstVModMapKey;
- last = first + req->nVModMapKeys - 1;
-
- for (i = first, nFound = 0; i <= last; i++) {
- if (xkb->server->vmodmap[i] != 0)
- nFound++;
- }
- req->totalVModMapKeys = nFound;
- return nFound * SIZEOF(xkbVModMapWireDesc);
-}
-
-static void
-_XkbWriteVirtualModMap(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- register int i, first, last;
- xkbVModMapWireDesc *wire;
-
- if ((req->present & XkbVirtualModMapMask) == 0)
- return;
- first = req->firstVModMapKey;
- last = first + req->nVModMapKeys - 1;
- if (req->totalVModMapKeys > 0) {
- i = req->totalVModMapKeys * SIZEOF(xkbVModMapWireDesc);
- BufAlloc(xkbVModMapWireDesc *, wire, i);
- for (i = first; i <= last; i++) {
- if (xkb->server->vmodmap[i] != 0) {
- wire->key = i;
- wire->vmods = xkb->server->vmodmap[i];
- wire++;
- }
- }
- }
- return;
-}
-
-static void
-SendSetMap(Display *dpy, XkbDescPtr xkb, xkbSetMapReq *req)
-{
- xkbSetMapReq tmp;
- unsigned szMods;
-
- req->length += _XkbSizeKeyTypes(xkb, req) / 4;
- req->length += _XkbSizeKeySyms(xkb, req) / 4;
- req->length += _XkbSizeKeyActions(xkb, req) / 4;
- req->length += _XkbSizeKeyBehaviors(xkb, req) / 4;
- szMods = _XkbSizeVirtualMods(req);
- req->length += szMods / 4;
- req->length += _XkbSizeKeyExplicit(xkb, req) / 4;
- req->length += _XkbSizeModifierMap(xkb, req) / 4;
- req->length += _XkbSizeVirtualModMap(xkb, req) / 4;
-
- tmp = *req;
- if (tmp.nTypes > 0)
- _XkbWriteKeyTypes(dpy, xkb, &tmp);
- if (tmp.nKeySyms > 0)
- _XkbWriteKeySyms(dpy, xkb, &tmp);
- if (tmp.nKeyActs)
- _XkbWriteKeyActions(dpy, xkb, &tmp);
- if (tmp.totalKeyBehaviors > 0)
- _XkbWriteKeyBehaviors(dpy, xkb, &tmp);
- if (tmp.virtualMods)
- _XkbWriteVirtualMods(dpy, xkb, &tmp, szMods);
- if (tmp.totalKeyExplicit > 0)
- _XkbWriteKeyExplicit(dpy, xkb, &tmp);
- if (tmp.totalModMapKeys > 0)
- _XkbWriteModifierMap(dpy, xkb, &tmp);
- if (tmp.totalVModMapKeys > 0)
- _XkbWriteVirtualModMap(dpy, xkb, &tmp);
- return;
-}
-
-Bool
-XkbSetMap(Display *dpy, unsigned which, XkbDescPtr xkb)
-{
- register xkbSetMapReq *req;
- XkbInfoPtr xkbi;
- XkbServerMapPtr srv;
- XkbClientMapPtr map;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) || (!xkb))
- return False;
- map = xkb->map;
- srv = xkb->server;
-
- if (((which & XkbKeyTypesMask) && ((!map) || (!map->types))) ||
- ((which & XkbKeySymsMask) &&
- ((!map) || (!map->syms) || (!map->key_sym_map))) ||
- ((which & XkbKeyActionsMask) && ((!srv) || (!srv->key_acts))) ||
- ((which & XkbKeyBehaviorsMask) && ((!srv) || (!srv->behaviors))) ||
- ((which & XkbVirtualModsMask) && (!srv)) ||
- ((which & XkbExplicitComponentsMask) && ((!srv) || (!srv->explicit))) ||
- ((which & XkbModifierMapMask) && ((!map) || (!map->modmap))) ||
- ((which & XkbVirtualModMapMask) && ((!srv) || (!srv->vmodmap))))
- return False;
-
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetMap, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetMap;
- req->deviceSpec = xkb->device_spec;
- req->present = which;
- req->flags = XkbSetMapAllFlags;
- req->minKeyCode = xkb->min_key_code;
- req->maxKeyCode = xkb->max_key_code;
- req->firstType = 0;
- if (which & XkbKeyTypesMask)
- req->nTypes = map->num_types;
- else
- req->nTypes = 0;
- if (which & XkbKeySymsMask) {
- req->firstKeySym = xkb->min_key_code;
- req->nKeySyms = XkbNumKeys(xkb);
- }
- if (which & XkbKeyActionsMask) {
- req->firstKeyAct = xkb->min_key_code;
- req->nKeyActs = XkbNumKeys(xkb);
- }
- if (which & XkbKeyBehaviorsMask) {
- req->firstKeyBehavior = xkb->min_key_code;
- req->nKeyBehaviors = XkbNumKeys(xkb);
- }
- if (which & XkbVirtualModsMask)
- req->virtualMods = ~0;
- if (which & XkbExplicitComponentsMask) {
- req->firstKeyExplicit = xkb->min_key_code;
- req->nKeyExplicit = XkbNumKeys(xkb);
- }
- if (which & XkbModifierMapMask) {
- req->firstModMapKey = xkb->min_key_code;
- req->nModMapKeys = XkbNumKeys(xkb);
- }
- if (which & XkbVirtualModMapMask) {
- req->firstVModMapKey = xkb->min_key_code;
- req->nVModMapKeys = XkbNumKeys(xkb);
- }
- SendSetMap(dpy, xkb, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbChangeMap(Display *dpy, XkbDescPtr xkb, XkbMapChangesPtr changes)
-{
- register xkbSetMapReq *req;
- XkbInfoPtr xkbi;
- XkbServerMapPtr srv;
- XkbClientMapPtr map;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) ||
- (!xkb) || (!changes))
- return False;
- srv = xkb->server;
- map = xkb->map;
-
- if (((changes->changed & XkbKeyTypesMask) && ((!map) || (!map->types))) ||
- ((changes->changed & XkbKeySymsMask) && ((!map) || (!map->syms) ||
- (!map->key_sym_map))) ||
- ((changes->changed & XkbKeyActionsMask) && ((!srv) || (!srv->key_acts)))
- || ((changes->changed & XkbKeyBehaviorsMask) &&
- ((!srv) || (!srv->behaviors))) ||
- ((changes->changed & XkbVirtualModsMask) && (!srv)) ||
- ((changes->changed & XkbExplicitComponentsMask) &&
- ((!srv) || (!srv->explicit))) ||
- ((changes->changed & XkbModifierMapMask) && ((!map) || (!map->modmap)))
- || ((changes->changed & XkbVirtualModMapMask) &&
- ((!srv) || (!srv->vmodmap))))
- return False;
-
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetMap, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetMap;
- req->deviceSpec = xkb->device_spec;
- req->present = changes->changed;
- req->flags = XkbSetMapRecomputeActions;
- req->minKeyCode = xkb->min_key_code;
- req->maxKeyCode = xkb->max_key_code;
- req->firstType = changes->first_type;
- req->nTypes = changes->num_types;
- req->firstKeySym = changes->first_key_sym;
- req->nKeySyms = changes->num_key_syms;
- req->firstKeyAct = changes->first_key_act;
- req->nKeyActs = changes->num_key_acts;
- req->firstKeyBehavior = changes->first_key_behavior;
- req->nKeyBehaviors = changes->num_key_behaviors;
- req->virtualMods = changes->vmods;
- req->firstKeyExplicit = changes->first_key_explicit;
- req->nKeyExplicit = changes->num_key_explicit;
- req->firstModMapKey = changes->first_modmap_key;
- req->nModMapKeys = changes->num_modmap_keys;
- req->firstVModMapKey = changes->first_vmodmap_key;
- req->nVModMapKeys = changes->num_vmodmap_keys;
- SendSetMap(dpy, xkb, req);
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
diff --git a/nx-X11/lib/X11/XKBUse.c b/nx-X11/lib/X11/XKBUse.c
deleted file mode 100644
index cf6497551..000000000
--- a/nx-X11/lib/X11/XKBUse.c
+++ /dev/null
@@ -1,814 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <ctype.h>
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-static Bool _XkbIgnoreExtension = False;
-
-void
-XkbNoteMapChanges(XkbMapChangesPtr old,
- XkbMapNotifyEvent *new,
- unsigned wanted)
-{
- int first, oldLast, newLast;
-
- wanted &= new->changed;
-
- if (wanted & XkbKeyTypesMask) {
- if (old->changed & XkbKeyTypesMask) {
- first = old->first_type;
- oldLast = old->first_type + old->num_types - 1;
- newLast = new->first_type + new->num_types - 1;
-
- if (new->first_type < first)
- first = new->first_type;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_type = first;
- old->num_types = newLast - first + 1;
- }
- else {
- old->first_type = new->first_type;
- old->num_types = new->num_types;
- }
- }
- if (wanted & XkbKeySymsMask) {
- if (old->changed & XkbKeySymsMask) {
- first = old->first_key_sym;
- oldLast = old->first_key_sym + old->num_key_syms - 1;
- newLast = new->first_key_sym + new->num_key_syms - 1;
-
- if (new->first_key_sym < first)
- first = new->first_key_sym;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_key_sym = first;
- old->num_key_syms = newLast - first + 1;
- }
- else {
- old->first_key_sym = new->first_key_sym;
- old->num_key_syms = new->num_key_syms;
- }
- }
- if (wanted & XkbKeyActionsMask) {
- if (old->changed & XkbKeyActionsMask) {
- first = old->first_key_act;
- oldLast = old->first_key_act + old->num_key_acts - 1;
- newLast = new->first_key_act + new->num_key_acts - 1;
-
- if (new->first_key_act < first)
- first = new->first_key_act;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_key_act = first;
- old->num_key_acts = newLast - first + 1;
- }
- else {
- old->first_key_act = new->first_key_act;
- old->num_key_acts = new->num_key_acts;
- }
- }
- if (wanted & XkbKeyBehaviorsMask) {
- if (old->changed & XkbKeyBehaviorsMask) {
- first = old->first_key_behavior;
- oldLast = old->first_key_behavior + old->num_key_behaviors - 1;
- newLast = new->first_key_behavior + new->num_key_behaviors - 1;
-
- if (new->first_key_behavior < first)
- first = new->first_key_behavior;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_key_behavior = first;
- old->num_key_behaviors = newLast - first + 1;
- }
- else {
- old->first_key_behavior = new->first_key_behavior;
- old->num_key_behaviors = new->num_key_behaviors;
- }
- }
- if (wanted & XkbVirtualModsMask) {
- old->vmods |= new->vmods;
- }
- if (wanted & XkbExplicitComponentsMask) {
- if (old->changed & XkbExplicitComponentsMask) {
- first = old->first_key_explicit;
- oldLast = old->first_key_explicit + old->num_key_explicit - 1;
- newLast = new->first_key_explicit + new->num_key_explicit - 1;
-
- if (new->first_key_explicit < first)
- first = new->first_key_explicit;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_key_explicit = first;
- old->num_key_explicit = newLast - first + 1;
- }
- else {
- old->first_key_explicit = new->first_key_explicit;
- old->num_key_explicit = new->num_key_explicit;
- }
- }
- if (wanted & XkbModifierMapMask) {
- if (old->changed & XkbModifierMapMask) {
- first = old->first_modmap_key;
- oldLast = old->first_modmap_key + old->num_modmap_keys - 1;
- newLast = new->first_modmap_key + new->num_modmap_keys - 1;
-
- if (new->first_modmap_key < first)
- first = new->first_modmap_key;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_modmap_key = first;
- old->num_modmap_keys = newLast - first + 1;
- }
- else {
- old->first_modmap_key = new->first_modmap_key;
- old->num_modmap_keys = new->num_modmap_keys;
- }
- }
- if (wanted & XkbVirtualModMapMask) {
- if (old->changed & XkbVirtualModMapMask) {
- first = old->first_vmodmap_key;
- oldLast = old->first_vmodmap_key + old->num_vmodmap_keys - 1;
- newLast = new->first_vmodmap_key + new->num_vmodmap_keys - 1;
-
- if (new->first_vmodmap_key < first)
- first = new->first_vmodmap_key;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_vmodmap_key = first;
- old->num_vmodmap_keys = newLast - first + 1;
- }
- else {
- old->first_vmodmap_key = new->first_vmodmap_key;
- old->num_vmodmap_keys = new->num_vmodmap_keys;
- }
- }
- old->changed |= wanted;
- return;
-}
-
-void
-_XkbNoteCoreMapChanges(XkbMapChangesPtr old,
- XMappingEvent *new,
- unsigned int wanted)
-{
- int first, oldLast, newLast;
-
- if ((new->request == MappingKeyboard) && (wanted & XkbKeySymsMask)) {
- if (old->changed & XkbKeySymsMask) {
- first = old->first_key_sym;
- oldLast = old->first_key_sym + old->num_key_syms - 1;
- newLast = new->first_keycode + new->count - 1;
-
- if (new->first_keycode < first)
- first = new->first_keycode;
- if (oldLast > newLast)
- newLast = oldLast;
- old->first_key_sym = first;
- old->num_key_syms = newLast - first + 1;
- }
- else {
- old->changed |= XkbKeySymsMask;
- old->first_key_sym = new->first_keycode;
- old->num_key_syms = new->count;
- }
- }
- return;
-}
-
-static Bool
-wire_to_event(Display *dpy, XEvent *re, xEvent *event)
-{
- xkbEvent *xkbevent = (xkbEvent *) event;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- xkbi = dpy->xkb_info;
- if (((event->u.u.type & 0x7f) - xkbi->codes->first_event) != XkbEventCode)
- return False;
-
- switch (xkbevent->u.any.xkbType) {
- case XkbStateNotify:
- {
- xkbStateNotify *sn = (xkbStateNotify *) event;
-
- if (xkbi->selected_events & XkbStateNotifyMask) {
- XkbStateNotifyEvent *sev = (XkbStateNotifyEvent *) re;
-
- sev->type = XkbEventCode + xkbi->codes->first_event;
- sev->xkb_type = XkbStateNotify;
- sev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- sev->send_event = ((event->u.u.type & 0x80) != 0);
- sev->display = dpy;
- sev->time = sn->time;
- sev->device = sn->deviceID;
- sev->keycode = sn->keycode;
- sev->event_type = sn->eventType;
- sev->req_major = sn->requestMajor;
- sev->req_minor = sn->requestMinor;
- sev->changed = sn->changed;
- sev->group = sn->group;
- sev->base_group = sn->baseGroup;
- sev->latched_group = sn->latchedGroup;
- sev->locked_group = sn->lockedGroup;
- sev->mods = sn->mods;
- sev->base_mods = sn->baseMods;
- sev->latched_mods = sn->latchedMods;
- sev->locked_mods = sn->lockedMods;
- sev->compat_state = sn->compatState;
- sev->grab_mods = sn->grabMods;
- sev->compat_grab_mods = sn->compatGrabMods;
- sev->lookup_mods = sn->lookupMods;
- sev->compat_lookup_mods = sn->compatLookupMods;
- sev->ptr_buttons = sn->ptrBtnState;
- return True;
- }
- }
- break;
- case XkbMapNotify:
- {
- xkbMapNotify *mn = (xkbMapNotify *) event;
-
- if ((xkbi->selected_events & XkbMapNotifyMask) &&
- (xkbi->selected_map_details & mn->changed)) {
- XkbMapNotifyEvent *mev = (XkbMapNotifyEvent *) re;
-
- mev->type = XkbEventCode + xkbi->codes->first_event;
- mev->xkb_type = XkbMapNotify;
- mev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- mev->send_event = ((event->u.u.type & 0x80) != 0);
- mev->display = dpy;
- mev->time = mn->time;
- mev->device = mn->deviceID;
- mev->changed = mn->changed;
- mev->min_key_code = mn->minKeyCode;
- mev->max_key_code = mn->maxKeyCode;
- mev->first_type = mn->firstType;
- mev->num_types = mn->nTypes;
- mev->first_key_sym = mn->firstKeySym;
- mev->num_key_syms = mn->nKeySyms;
- mev->first_key_act = mn->firstKeyAct;
- mev->num_key_acts = mn->nKeyActs;
- mev->first_key_behavior = mn->firstKeyBehavior;
- mev->num_key_behaviors = mn->nKeyBehaviors;
- mev->vmods = mn->virtualMods;
- mev->first_key_explicit = mn->firstKeyExplicit;
- mev->num_key_explicit = mn->nKeyExplicit;
- mev->first_modmap_key = mn->firstModMapKey;
- mev->num_modmap_keys = mn->nModMapKeys;
- mev->first_vmodmap_key = mn->firstVModMapKey;
- mev->num_vmodmap_keys = mn->nVModMapKeys;
- XkbNoteMapChanges(&xkbi->changes, mev, XKB_XLIB_MAP_MASK);
- if (xkbi->changes.changed)
- xkbi->flags |= XkbMapPending;
- return True;
- }
- else if (mn->nKeySyms > 0) {
- register XMappingEvent *ev = (XMappingEvent *) re;
-
- ev->type = MappingNotify;
- ev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- ev->send_event = ((event->u.u.type & 0x80) != 0);
- ev->display = dpy;
- ev->window = 0;
- ev->first_keycode = mn->firstKeySym;
- ev->request = MappingKeyboard;
- ev->count = mn->nKeySyms;
- _XkbNoteCoreMapChanges(&xkbi->changes, ev, XKB_XLIB_MAP_MASK);
- if (xkbi->changes.changed)
- xkbi->flags |= XkbMapPending;
- return True;
- }
- }
- break;
- case XkbControlsNotify:
- {
- if (xkbi->selected_events & XkbControlsNotifyMask) {
- xkbControlsNotify *cn = (xkbControlsNotify *) event;
- XkbControlsNotifyEvent *cev = (XkbControlsNotifyEvent *) re;
-
- cev->type = XkbEventCode + xkbi->codes->first_event;
- cev->xkb_type = XkbControlsNotify;
- cev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- cev->send_event = ((event->u.u.type & 0x80) != 0);
- cev->display = dpy;
- cev->time = cn->time;
- cev->device = cn->deviceID;
- cev->changed_ctrls = cn->changedControls;
- cev->enabled_ctrls = cn->enabledControls;
- cev->enabled_ctrl_changes = cn->enabledControlChanges;
- cev->keycode = cn->keycode;
- cev->num_groups = cn->numGroups;
- cev->event_type = cn->eventType;
- cev->req_major = cn->requestMajor;
- cev->req_minor = cn->requestMinor;
- return True;
- }
- }
- break;
- case XkbIndicatorMapNotify:
- {
- if (xkbi->selected_events & XkbIndicatorMapNotifyMask) {
- xkbIndicatorNotify *in = (xkbIndicatorNotify *) event;
- XkbIndicatorNotifyEvent *iev = (XkbIndicatorNotifyEvent *) re;
-
- iev->type = XkbEventCode + xkbi->codes->first_event;
- iev->xkb_type = XkbIndicatorMapNotify;
- iev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- iev->send_event = ((event->u.u.type & 0x80) != 0);
- iev->display = dpy;
- iev->time = in->time;
- iev->device = in->deviceID;
- iev->changed = in->changed;
- iev->state = in->state;
- return True;
- }
- }
- break;
- case XkbIndicatorStateNotify:
- {
- if (xkbi->selected_events & XkbIndicatorStateNotifyMask) {
- xkbIndicatorNotify *in = (xkbIndicatorNotify *) event;
- XkbIndicatorNotifyEvent *iev = (XkbIndicatorNotifyEvent *) re;
-
- iev->type = XkbEventCode + xkbi->codes->first_event;
- iev->xkb_type = XkbIndicatorStateNotify;
- iev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- iev->send_event = ((event->u.u.type & 0x80) != 0);
- iev->display = dpy;
- iev->time = in->time;
- iev->device = in->deviceID;
- iev->changed = in->changed;
- iev->state = in->state;
- return True;
- }
- }
- break;
- case XkbBellNotify:
- {
- if (xkbi->selected_events & XkbBellNotifyMask) {
- xkbBellNotify *bn = (xkbBellNotify *) event;
- XkbBellNotifyEvent *bev = (XkbBellNotifyEvent *) re;
-
- bev->type = XkbEventCode + xkbi->codes->first_event;
- bev->xkb_type = XkbBellNotify;
- bev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- bev->send_event = ((event->u.u.type & 0x80) != 0);
- bev->display = dpy;
- bev->time = bn->time;
- bev->device = bn->deviceID;
- bev->percent = bn->percent;
- bev->pitch = bn->pitch;
- bev->duration = bn->duration;
- bev->bell_class = bn->bellClass;
- bev->bell_id = bn->bellID;
- bev->name = bn->name;
- bev->window = bn->window;
- bev->event_only = bn->eventOnly;
- return True;
- }
- }
- break;
- case XkbAccessXNotify:
- {
- if (xkbi->selected_events & XkbAccessXNotifyMask) {
- xkbAccessXNotify *axn = (xkbAccessXNotify *) event;
- XkbAccessXNotifyEvent *axev = (XkbAccessXNotifyEvent *) re;
-
- axev->type = XkbEventCode + xkbi->codes->first_event;
- axev->xkb_type = XkbAccessXNotify;
- axev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- axev->send_event = ((event->u.u.type & 0x80) != 0);
- axev->display = dpy;
- axev->time = axn->time;
- axev->device = axn->deviceID;
- axev->detail = axn->detail;
- axev->keycode = axn->keycode;
- axev->sk_delay = axn->slowKeysDelay;
- axev->debounce_delay = axn->debounceDelay;
- return True;
- }
- }
- break;
- case XkbNamesNotify:
- {
- if (xkbi->selected_events & XkbNamesNotifyMask) {
- xkbNamesNotify *nn = (xkbNamesNotify *) event;
- XkbNamesNotifyEvent *nev = (XkbNamesNotifyEvent *) re;
-
- nev->type = XkbEventCode + xkbi->codes->first_event;
- nev->xkb_type = XkbNamesNotify;
- nev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- nev->send_event = ((event->u.u.type & 0x80) != 0);
- nev->display = dpy;
- nev->time = nn->time;
- nev->device = nn->deviceID;
- nev->changed = nn->changed;
- nev->first_type = nn->firstType;
- nev->num_types = nn->nTypes;
- nev->first_lvl = nn->firstLevelName;
- nev->num_lvls = nn->nLevelNames;
- nev->num_aliases = nn->nAliases;
- nev->num_radio_groups = nn->nRadioGroups;
- nev->changed_vmods = nn->changedVirtualMods;
- nev->changed_groups = nn->changedGroupNames;
- nev->changed_indicators = nn->changedIndicators;
- nev->first_key = nn->firstKey;
- nev->num_keys = nn->nKeys;
- return True;
- }
- }
- break;
- case XkbCompatMapNotify:
- {
- if (xkbi->selected_events & XkbCompatMapNotifyMask) {
- xkbCompatMapNotify *cmn = (xkbCompatMapNotify *) event;
- XkbCompatMapNotifyEvent *cmev = (XkbCompatMapNotifyEvent *) re;
-
- cmev->type = XkbEventCode + xkbi->codes->first_event;
- cmev->xkb_type = XkbCompatMapNotify;
- cmev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- cmev->send_event = ((event->u.u.type & 0x80) != 0);
- cmev->display = dpy;
- cmev->time = cmn->time;
- cmev->device = cmn->deviceID;
- cmev->changed_groups = cmn->changedGroups;
- cmev->first_si = cmn->firstSI;
- cmev->num_si = cmn->nSI;
- cmev->num_total_si = cmn->nTotalSI;
- return True;
- }
- }
- break;
- case XkbActionMessage:
- {
- if (xkbi->selected_events & XkbActionMessageMask) {
- xkbActionMessage *am = (xkbActionMessage *) event;
- XkbActionMessageEvent *amev = (XkbActionMessageEvent *) re;
-
- amev->type = XkbEventCode + xkbi->codes->first_event;
- amev->xkb_type = XkbActionMessage;
- amev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- amev->send_event = ((event->u.u.type & 0x80) != 0);
- amev->display = dpy;
- amev->time = am->time;
- amev->device = am->deviceID;
- amev->keycode = am->keycode;
- amev->press = am->press;
- amev->key_event_follows = am->keyEventFollows;
- amev->group = am->group;
- amev->mods = am->mods;
- memcpy(amev->message, am->message, XkbActionMessageLength);
- amev->message[XkbActionMessageLength] = '\0';
- return True;
- }
- }
- break;
- case XkbExtensionDeviceNotify:
- {
- if (xkbi->selected_events & XkbExtensionDeviceNotifyMask) {
- xkbExtensionDeviceNotify *ed = (xkbExtensionDeviceNotify *) event;
- XkbExtensionDeviceNotifyEvent *edev
- = (XkbExtensionDeviceNotifyEvent *) re;
-
- edev->type = XkbEventCode + xkbi->codes->first_event;
- edev->xkb_type = XkbExtensionDeviceNotify;
- edev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- edev->send_event = ((event->u.u.type & 0x80) != 0);
- edev->display = dpy;
- edev->time = ed->time;
- edev->device = ed->deviceID;
- edev->led_class = ed->ledClass;
- edev->led_id = ed->ledID;
- edev->reason = ed->reason;
- edev->supported = ed->supported;
- edev->leds_defined = ed->ledsDefined;
- edev->led_state = ed->ledState;
- edev->first_btn = ed->firstBtn;
- edev->num_btns = ed->nBtns;
- edev->unsupported = ed->unsupported;
- return True;
- }
- }
- break;
- case XkbNewKeyboardNotify:
- {
- xkbNewKeyboardNotify *nkn = (xkbNewKeyboardNotify *) event;
-
- if ((xkbi->selected_events & XkbNewKeyboardNotifyMask) &&
- (xkbi->selected_nkn_details & nkn->changed)) {
- XkbNewKeyboardNotifyEvent *nkev = (XkbNewKeyboardNotifyEvent *) re;
-
- nkev->type = XkbEventCode + xkbi->codes->first_event;
- nkev->xkb_type = XkbNewKeyboardNotify;
- nkev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- nkev->send_event = ((event->u.u.type & 0x80) != 0);
- nkev->display = dpy;
- nkev->time = nkn->time;
- nkev->device = nkn->deviceID;
- nkev->old_device = nkn->oldDeviceID;
- nkev->min_key_code = nkn->minKeyCode;
- nkev->max_key_code = nkn->maxKeyCode;
- nkev->old_min_key_code = nkn->oldMinKeyCode;
- nkev->old_max_key_code = nkn->oldMaxKeyCode;
- nkev->req_major = nkn->requestMajor;
- nkev->req_minor = nkn->requestMinor;
- nkev->changed = nkn->changed;
- if ((xkbi->desc) && (nkev->send_event == 0) &&
- ((xkbi->desc->device_spec == nkev->old_device) ||
- (nkev->device != nkev->old_device))) {
- xkbi->flags = XkbMapPending | XkbXlibNewKeyboard;
- }
- return True;
- }
- else if (nkn->changed & (XkbNKN_KeycodesMask | XkbNKN_DeviceIDMask)) {
- register XMappingEvent *ev = (XMappingEvent *) re;
-
- ev->type = MappingNotify;
- ev->serial = _XSetLastRequestRead(dpy, (xGenericReply *) event);
- ev->send_event = ((event->u.u.type & 0x80) != 0);
- ev->display = dpy;
- ev->window = 0;
- ev->first_keycode = dpy->min_keycode;
- ev->request = MappingKeyboard;
- ev->count = (dpy->max_keycode - dpy->min_keycode) + 1;
- if ((xkbi->desc) && (ev->send_event == 0) &&
- ((xkbi->desc->device_spec == nkn->oldDeviceID) ||
- (nkn->deviceID != nkn->oldDeviceID))) {
- xkbi->flags |= XkbMapPending | XkbXlibNewKeyboard;
- }
- return True;
- }
- }
- break;
- default:
-#ifdef DEBUG
- fprintf(stderr, "Got unknown XKEYBOARD event (%d, base=%d)\n",
- re->type, xkbi->codes->first_event);
-#endif
- break;
- }
- return False;
-}
-
-Bool
-XkbIgnoreExtension(Bool ignore)
-{
- if (getenv("XKB_FORCE") != NULL) {
-#ifdef DEBUG
- fprintf(stderr,
- "Forcing use of XKEYBOARD (overriding an IgnoreExtensions)\n");
-#endif
- return False;
- }
-#ifdef DEBUG
- else if (getenv("XKB_DEBUG") != NULL) {
- fprintf(stderr, "Explicitly %signoring XKEYBOARD\n",
- ignore ? "" : "not ");
- }
-#endif
- _XkbIgnoreExtension = ignore;
- return True;
-}
-
-static void
-_XkbFreeInfo(Display *dpy)
-{
- XkbInfoPtr xkbi = dpy->xkb_info;
-
- if (xkbi) {
- if (xkbi->desc)
- XkbFreeKeyboard(xkbi->desc, XkbAllComponentsMask, True);
- Xfree(xkbi);
- }
-}
-
-Bool
-XkbUseExtension(Display *dpy, int *major_rtrn, int *minor_rtrn)
-{
- xkbUseExtensionReply rep;
- register xkbUseExtensionReq *req;
- XExtCodes *codes;
- int ev_base, forceIgnore;
- XkbInfoPtr xkbi;
- char *str;
- static int debugMsg;
- static int been_here = 0;
-
- if (dpy->xkb_info && !(dpy->flags & XlibDisplayNoXkb)) {
- if (major_rtrn)
- *major_rtrn = dpy->xkb_info->srv_major;
- if (minor_rtrn)
- *minor_rtrn = dpy->xkb_info->srv_minor;
- return True;
- }
- if (!been_here) {
- debugMsg = (getenv("XKB_DEBUG") != NULL);
- been_here = 1;
- }
-
- if (major_rtrn)
- *major_rtrn = 0;
- if (minor_rtrn)
- *minor_rtrn = 0;
-
- if (!dpy->xkb_info) {
- xkbi = _XkbTypedCalloc(1, XkbInfoRec);
- if (!xkbi)
- return False;
- dpy->xkb_info = xkbi;
- dpy->free_funcs->xkb = _XkbFreeInfo;
-
- xkbi->xlib_ctrls |= (XkbLC_ControlFallback | XkbLC_ConsumeLookupMods);
- if ((str = getenv("_XKB_OPTIONS_ENABLE")) != NULL) {
- if ((str = getenv("_XKB_LATIN1_LOOKUP")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_ForceLatin1Lookup;
- else
- xkbi->xlib_ctrls |= XkbLC_ForceLatin1Lookup;
- }
- if ((str = getenv("_XKB_CONSUME_LOOKUP_MODS")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_ConsumeLookupMods;
- else
- xkbi->xlib_ctrls |= XkbLC_ConsumeLookupMods;
- }
- if ((str = getenv("_XKB_CONSUME_SHIFT_AND_LOCK")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_AlwaysConsumeShiftAndLock;
- else
- xkbi->xlib_ctrls |= XkbLC_AlwaysConsumeShiftAndLock;
- }
- if ((str = getenv("_XKB_IGNORE_NEW_KEYBOARDS")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_IgnoreNewKeyboards;
- else
- xkbi->xlib_ctrls |= XkbLC_IgnoreNewKeyboards;
- }
- if ((str = getenv("_XKB_CONTROL_FALLBACK")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_ControlFallback;
- else
- xkbi->xlib_ctrls |= XkbLC_ControlFallback;
- }
- if ((str = getenv("_XKB_COMP_LED")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_ComposeLED;
- else {
- xkbi->xlib_ctrls |= XkbLC_ComposeLED;
- if (strlen(str) > 0)
- xkbi->composeLED = XInternAtom(dpy, str, False);
- }
- }
- if ((str = getenv("_XKB_COMP_FAIL_BEEP")) != NULL) {
- if ((strcmp(str, "off") == 0) || (strcmp(str, "0") == 0))
- xkbi->xlib_ctrls &= ~XkbLC_BeepOnComposeFail;
- else
- xkbi->xlib_ctrls |= XkbLC_BeepOnComposeFail;
- }
- }
- if ((xkbi->composeLED == None) &&
- ((xkbi->xlib_ctrls & XkbLC_ComposeLED) != 0))
- xkbi->composeLED = XInternAtom(dpy, "Compose", False);
-#ifdef DEBUG
- if (debugMsg) {
- register unsigned c = xkbi->xlib_ctrls;
-
- fprintf(stderr,
- "XKEYBOARD compose: beep on failure is %s, LED is %s\n",
- ((c & XkbLC_BeepOnComposeFail) ? "on" : "off"),
- ((c & XkbLC_ComposeLED) ? "on" : "off"));
- fprintf(stderr,
- "XKEYBOARD XLookupString: %slatin-1, %s lookup modifiers\n",
- ((c & XkbLC_ForceLatin1Lookup) ? "allow non-" : "force "),
- ((c & XkbLC_ConsumeLookupMods) ? "consume" : "re-use"));
- fprintf(stderr,
- "XKEYBOARD XLookupString: %sconsume shift and lock, %scontrol fallback\n",
- ((c & XkbLC_AlwaysConsumeShiftAndLock) ? "always " :
- "don't "), ((c & XkbLC_ControlFallback) ? "" : "no "));
-
- }
-#endif
- }
- else
- xkbi = dpy->xkb_info;
-
- forceIgnore = (dpy->flags & XlibDisplayNoXkb) || dpy->keysyms;
- forceIgnore = forceIgnore && (major_rtrn == NULL) && (minor_rtrn == NULL);
- if (forceIgnore || _XkbIgnoreExtension || getenv("XKB_DISABLE")) {
- LockDisplay(dpy);
- dpy->flags |= XlibDisplayNoXkb;
- UnlockDisplay(dpy);
- if (debugMsg)
- fprintf(stderr, "XKEYBOARD extension disabled or missing\n");
- return False;
- }
-
- if ((codes = XInitExtension(dpy, XkbName)) == NULL) {
- LockDisplay(dpy);
- dpy->flags |= XlibDisplayNoXkb;
- UnlockDisplay(dpy);
- if (debugMsg)
- fprintf(stderr, "XKEYBOARD extension not present\n");
- return False;
- }
- xkbi->codes = codes;
- LockDisplay(dpy);
-
- GetReq(kbUseExtension, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbUseExtension;
- req->wantedMajor = XkbMajorVersion;
- req->wantedMinor = XkbMinorVersion;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse) || !rep.supported) {
- Bool fail = True;
-
- if (debugMsg)
- fprintf(stderr,
- "XKEYBOARD version mismatch (want %d.%02d, got %d.%02d)\n",
- XkbMajorVersion, XkbMinorVersion,
- rep.serverMajor, rep.serverMinor);
-
- /* pre-release 0.65 is very close to 1.00 */
- if ((rep.serverMajor == 0) && (rep.serverMinor == 65)) {
- if (debugMsg)
- fprintf(stderr, "Trying to fall back to version 0.65...");
- GetReq(kbUseExtension, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbUseExtension;
- req->wantedMajor = 0;
- req->wantedMinor = 65;
- if (_XReply(dpy, (xReply *) &rep, 0, xFalse) && rep.supported) {
- if (debugMsg)
- fprintf(stderr, "succeeded\n");
- fail = False;
- }
- else if (debugMsg)
- fprintf(stderr, "failed\n");
- }
- if (fail) {
- dpy->flags |= XlibDisplayNoXkb;
- UnlockDisplay(dpy);
- SyncHandle();
- if (major_rtrn)
- *major_rtrn = rep.serverMajor;
- if (minor_rtrn)
- *minor_rtrn = rep.serverMinor;
- return False;
- }
- }
-#ifdef DEBUG
- else if (forceIgnore) {
- fprintf(stderr,
- "Internal Error! XkbUseExtension succeeded with forceIgnore set\n");
- }
-#endif
- UnlockDisplay(dpy);
- xkbi->srv_major = rep.serverMajor;
- xkbi->srv_minor = rep.serverMinor;
- if (major_rtrn)
- *major_rtrn = rep.serverMajor;
- if (minor_rtrn)
- *minor_rtrn = rep.serverMinor;
- if (debugMsg)
- fprintf(stderr, "XKEYBOARD (version %d.%02d/%d.%02d) OK!\n",
- XkbMajorVersion, XkbMinorVersion,
- rep.serverMajor, rep.serverMinor);
-
- ev_base = codes->first_event;
- XESetWireToEvent(dpy, ev_base + XkbEventCode, wire_to_event);
- SyncHandle();
- return True;
-}
diff --git a/nx-X11/lib/X11/XKBleds.c b/nx-X11/lib/X11/XKBleds.c
deleted file mode 100644
index c098ee948..000000000
--- a/nx-X11/lib/X11/XKBleds.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#define NEED_MAP_READERS
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/extensions/XKBproto.h>
-#include "XKBlibint.h"
-
-Status
-XkbGetIndicatorState(Display *dpy, unsigned deviceSpec, unsigned *pStateRtrn)
-{
- register xkbGetIndicatorStateReq *req;
- xkbGetIndicatorStateReply rep;
- XkbInfoPtr xkbi;
- Bool ok;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbGetIndicatorState, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetIndicatorState;
- req->deviceSpec = deviceSpec;
- ok = _XReply(dpy, (xReply *) &rep, 0, xFalse);
- if (ok && (pStateRtrn != NULL))
- *pStateRtrn = rep.state;
- UnlockDisplay(dpy);
- SyncHandle();
- return (ok ? Success : BadImplementation);
-}
-
-Status
-_XkbReadGetIndicatorMapReply(Display *dpy,
- xkbGetIndicatorMapReply *rep,
- XkbDescPtr xkb,
- int *nread_rtrn)
-{
- XkbIndicatorPtr leds;
- XkbReadBufferRec buf;
-
- if ((!xkb->indicators) && (XkbAllocIndicatorMaps(xkb) != Success))
- return BadAlloc;
- leds = xkb->indicators;
-
- leds->phys_indicators = rep->realIndicators;
- if (rep->length > 0) {
- register int left;
-
- if (!_XkbInitReadBuffer(dpy, &buf, (int) rep->length * 4))
- return BadAlloc;
- if (nread_rtrn)
- *nread_rtrn = (int) rep->length * 4;
- if (rep->which) {
- register int i, bit;
-
- left = (int) rep->which;
- for (i = 0, bit = 1; (i < XkbNumIndicators) && (left);
- i++, bit <<= 1) {
- if (left & bit) {
- xkbIndicatorMapWireDesc *wire;
-
- wire = (xkbIndicatorMapWireDesc *)
- _XkbGetReadBufferPtr(&buf,
- SIZEOF(xkbIndicatorMapWireDesc));
- if (wire == NULL) {
- _XkbFreeReadBuffer(&buf);
- return BadAlloc;
- }
- leds->maps[i].flags = wire->flags;
- leds->maps[i].which_groups = wire->whichGroups;
- leds->maps[i].groups = wire->groups;
- leds->maps[i].which_mods = wire->whichMods;
- leds->maps[i].mods.mask = wire->mods;
- leds->maps[i].mods.real_mods = wire->realMods;
- leds->maps[i].mods.vmods = wire->virtualMods;
- leds->maps[i].ctrls = wire->ctrls;
- left &= ~bit;
- }
- }
- }
- left = _XkbFreeReadBuffer(&buf);
- }
- return Success;
-}
-
-Bool
-XkbGetIndicatorMap(Display *dpy, unsigned long which, XkbDescPtr xkb)
-{
- register xkbGetIndicatorMapReq *req;
- xkbGetIndicatorMapReply rep;
- XkbInfoPtr xkbi;
- Status status;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return BadAccess;
- if ((!which) || (!xkb))
- return BadValue;
-
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- if (!xkb->indicators) {
- xkb->indicators = _XkbTypedCalloc(1, XkbIndicatorRec);
- if (!xkb->indicators) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadAlloc;
- }
- }
- GetReq(kbGetIndicatorMap, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetIndicatorMap;
- req->deviceSpec = xkb->device_spec;
- req->which = (CARD32) which;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return BadValue;
- }
- status = _XkbReadGetIndicatorMapReply(dpy, &rep, xkb, NULL);
- UnlockDisplay(dpy);
- SyncHandle();
- return status;
-}
-
-Bool
-XkbSetIndicatorMap(Display *dpy, unsigned long which, XkbDescPtr xkb)
-{
- register xkbSetIndicatorMapReq *req;
- register int i, bit;
- int nMaps;
- xkbIndicatorMapWireDesc *wire;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- if ((!xkb) || (!which) || (!xkb->indicators))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetIndicatorMap, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetIndicatorMap;
- req->deviceSpec = xkb->device_spec;
- req->which = (CARD32) which;
- for (i = nMaps = 0, bit = 1; i < 32; i++, bit <<= 1) {
- if (which & bit)
- nMaps++;
- }
- req->length += (nMaps * sizeof(XkbIndicatorMapRec)) / 4;
- BufAlloc(xkbIndicatorMapWireDesc *, wire,
- (nMaps * SIZEOF(xkbIndicatorMapWireDesc)));
- for (i = 0, bit = 1; i < 32; i++, bit <<= 1) {
- if (which & bit) {
- wire->flags = xkb->indicators->maps[i].flags;
- wire->whichGroups = xkb->indicators->maps[i].which_groups;
- wire->groups = xkb->indicators->maps[i].groups;
- wire->whichMods = xkb->indicators->maps[i].which_mods;
- wire->mods = xkb->indicators->maps[i].mods.real_mods;
- wire->virtualMods = xkb->indicators->maps[i].mods.vmods;
- wire->ctrls = xkb->indicators->maps[i].ctrls;
- wire++;
- }
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbGetNamedDeviceIndicator(Display *dpy,
- unsigned device,
- unsigned class,
- unsigned id,
- Atom name,
- int *pNdxRtrn,
- Bool *pStateRtrn,
- XkbIndicatorMapPtr pMapRtrn,
- Bool *pRealRtrn)
-{
- register xkbGetNamedIndicatorReq *req;
- xkbGetNamedIndicatorReply rep;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) || (name == None) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbGetNamedIndicator, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbGetNamedIndicator;
- req->deviceSpec = device;
- req->ledClass = class;
- req->ledID = id;
- req->indicator = (CARD32) name;
- if (!_XReply(dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return False;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- if ((!rep.found) || (!rep.supported))
- return False;
- if (pNdxRtrn != NULL)
- *pNdxRtrn = rep.ndx;
- if (pStateRtrn != NULL)
- *pStateRtrn = rep.on;
- if (pMapRtrn != NULL) {
- pMapRtrn->flags = rep.flags;
- pMapRtrn->which_groups = rep.whichGroups;
- pMapRtrn->groups = rep.groups;
- pMapRtrn->which_mods = rep.whichMods;
- pMapRtrn->mods.mask = rep.mods;
- pMapRtrn->mods.real_mods = rep.realMods;
- pMapRtrn->mods.vmods = rep.virtualMods;
- pMapRtrn->ctrls = rep.ctrls;
- }
- if (pRealRtrn != NULL)
- *pRealRtrn = rep.realIndicator;
- return True;
-}
-
-Bool
-XkbGetNamedIndicator(Display *dpy,
- Atom name,
- int *pNdxRtrn,
- Bool *pStateRtrn,
- XkbIndicatorMapPtr pMapRtrn,
- Bool *pRealRtrn)
-{
- return XkbGetNamedDeviceIndicator(dpy, XkbUseCoreKbd,
- XkbDfltXIClass, XkbDfltXIId,
- name, pNdxRtrn, pStateRtrn,
- pMapRtrn, pRealRtrn);
-}
-
-Bool
-XkbSetNamedDeviceIndicator(Display *dpy,
- unsigned device,
- unsigned class,
- unsigned id,
- Atom name,
- Bool changeState,
- Bool state,
- Bool createNewMap,
- XkbIndicatorMapPtr pMap)
-{
- register xkbSetNamedIndicatorReq *req;
- XkbInfoPtr xkbi;
-
- if ((dpy->flags & XlibDisplayNoXkb) || (name == None) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)))
- return False;
- LockDisplay(dpy);
- xkbi = dpy->xkb_info;
- GetReq(kbSetNamedIndicator, req);
- req->reqType = xkbi->codes->major_opcode;
- req->xkbReqType = X_kbSetNamedIndicator;
- req->deviceSpec = device;
- req->ledClass = class;
- req->ledID = id;
- req->indicator = (CARD32) name;
- req->setState = changeState;
- if (req->setState)
- req->on = state;
- else
- req->on = False;
- if (pMap != NULL) {
- req->setMap = True;
- req->createMap = createNewMap;
- req->flags = pMap->flags;
- req->whichGroups = pMap->which_groups;
- req->groups = pMap->groups;
- req->whichMods = pMap->which_mods;
- req->realMods = pMap->mods.real_mods;
- req->virtualMods = pMap->mods.vmods;
- req->ctrls = pMap->ctrls;
- }
- else {
- req->setMap = False;
- req->createMap = False;
- req->flags = 0;
- req->whichGroups = 0;
- req->groups = 0;
- req->whichMods = 0;
- req->realMods = 0;
- req->virtualMods = 0;
- req->ctrls = 0;
- }
- UnlockDisplay(dpy);
- SyncHandle();
- return True;
-}
-
-Bool
-XkbSetNamedIndicator(Display *dpy,
- Atom name,
- Bool changeState,
- Bool state,
- Bool createNewMap,
- XkbIndicatorMapPtr pMap)
-{
- return XkbSetNamedDeviceIndicator(dpy, XkbUseCoreKbd,
- XkbDfltXIClass, XkbDfltXIId,
- name, changeState, state,
- createNewMap, pMap);
-}
diff --git a/nx-X11/lib/X11/XKBlib.h b/nx-X11/lib/X11/XKBlib.h
deleted file mode 100644
index dd2841e9a..000000000
--- a/nx-X11/lib/X11/XKBlib.h
+++ /dev/null
@@ -1,1150 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#if !defined(_X11_XKBLIB_H_) && !defined(_XKBLIB_H_)
-#define _X11_XKBLIB_H_
-#define _XKBLIB_H_
-
-#include <nx-X11/Xlib.h>
-#include <nx-X11/extensions/XKBstr.h>
-
-typedef struct _XkbAnyEvent {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* # of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XKB event minor code */
- unsigned int device; /* device ID */
-} XkbAnyEvent;
-
-typedef struct _XkbNewKeyboardNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbNewKeyboardNotify */
- int device; /* device ID */
- int old_device; /* device ID of previous keyboard */
- int min_key_code; /* minimum key code */
- int max_key_code; /* maximum key code */
- int old_min_key_code;/* min key code of previous kbd */
- int old_max_key_code;/* max key code of previous kbd */
- unsigned int changed; /* changed aspects of the keyboard */
- char req_major; /* major and minor opcode of req */
- char req_minor; /* that caused change, if applicable */
-} XkbNewKeyboardNotifyEvent;
-
-typedef struct _XkbMapNotifyEvent {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbMapNotify */
- int device; /* device ID */
- unsigned int changed; /* fields which have been changed */
- unsigned int flags; /* reserved */
- int first_type; /* first changed key type */
- int num_types; /* number of changed key types */
- KeyCode min_key_code;
- KeyCode max_key_code;
- KeyCode first_key_sym;
- KeyCode first_key_act;
- KeyCode first_key_behavior;
- KeyCode first_key_explicit;
- KeyCode first_modmap_key;
- KeyCode first_vmodmap_key;
- int num_key_syms;
- int num_key_acts;
- int num_key_behaviors;
- int num_key_explicit;
- int num_modmap_keys;
- int num_vmodmap_keys;
- unsigned int vmods; /* mask of changed virtual mods */
-} XkbMapNotifyEvent;
-
-typedef struct _XkbStateNotifyEvent {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* # of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbStateNotify */
- int device; /* device ID */
- unsigned int changed; /* mask of changed state components */
- int group; /* keyboard group */
- int base_group; /* base keyboard group */
- int latched_group; /* latched keyboard group */
- int locked_group; /* locked keyboard group */
- unsigned int mods; /* modifier state */
- unsigned int base_mods; /* base modifier state */
- unsigned int latched_mods; /* latched modifiers */
- unsigned int locked_mods; /* locked modifiers */
- int compat_state; /* compatibility state */
- unsigned char grab_mods; /* mods used for grabs */
- unsigned char compat_grab_mods;/* grab mods for non-XKB clients */
- unsigned char lookup_mods; /* mods sent to clients */
- unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */
- int ptr_buttons; /* pointer button state */
- KeyCode keycode; /* keycode that caused the change */
- char event_type; /* KeyPress or KeyRelease */
- char req_major; /* Major opcode of request */
- char req_minor; /* Minor opcode of request */
-} XkbStateNotifyEvent;
-
-typedef struct _XkbControlsNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbControlsNotify */
- int device; /* device ID */
- unsigned int changed_ctrls; /* controls with changed sub-values */
- unsigned int enabled_ctrls; /* controls currently enabled */
- unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */
- int num_groups; /* total groups on keyboard */
- KeyCode keycode; /* key that caused change or 0 */
- char event_type; /* type of event that caused change */
- char req_major; /* if keycode==0, major and minor */
- char req_minor; /* opcode of req that caused change */
-} XkbControlsNotifyEvent;
-
-typedef struct _XkbIndicatorNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbIndicatorNotify */
- int device; /* device ID */
- unsigned int changed; /* indicators with new state or map */
- unsigned int state; /* current state of all indicators */
-} XkbIndicatorNotifyEvent;
-
-typedef struct _XkbNamesNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbNamesNotify */
- int device; /* device ID */
- unsigned int changed; /* names that have changed */
- int first_type; /* first key type with new name */
- int num_types; /* number of key types with new names */
- int first_lvl; /* first key type new new level names */
- int num_lvls; /* # of key types w/new level names */
- int num_aliases; /* total number of key aliases*/
- int num_radio_groups;/* total number of radio groups */
- unsigned int changed_vmods; /* virtual modifiers with new names */
- unsigned int changed_groups; /* groups with new names */
- unsigned int changed_indicators;/* indicators with new names */
- int first_key; /* first key with new name */
- int num_keys; /* number of keys with new names */
-} XkbNamesNotifyEvent;
-
-typedef struct _XkbCompatMapNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbCompatMapNotify */
- int device; /* device ID */
- unsigned int changed_groups; /* groups with new compat maps */
- int first_si; /* first new symbol interp */
- int num_si; /* number of new symbol interps */
- int num_total_si; /* total # of symbol interps */
-} XkbCompatMapNotifyEvent;
-
-typedef struct _XkbBellNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbBellNotify */
- int device; /* device ID */
- int percent; /* requested volume as a % of maximum */
- int pitch; /* requested pitch in Hz */
- int duration; /* requested duration in useconds */
- int bell_class; /* (input extension) feedback class */
- int bell_id; /* (input extension) ID of feedback */
- Atom name; /* "name" of requested bell */
- Window window; /* window associated with event */
- Bool event_only; /* "event only" requested */
-} XkbBellNotifyEvent;
-
-typedef struct _XkbActionMessage {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbActionMessage */
- int device; /* device ID */
- KeyCode keycode; /* key that generated the event */
- Bool press; /* true if act caused by key press */
- Bool key_event_follows;/* true if key event also generated */
- int group; /* effective group */
- unsigned int mods; /* effective mods */
- char message[XkbActionMessageLength+1];
- /* message -- leave space for NUL */
-} XkbActionMessageEvent;
-
-typedef struct _XkbAccessXNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbAccessXNotify */
- int device; /* device ID */
- int detail; /* XkbAXN_* */
- int keycode; /* key of event */
- int sk_delay; /* current slow keys delay */
- int debounce_delay; /* current debounce delay */
-} XkbAccessXNotifyEvent;
-
-typedef struct _XkbExtensionDeviceNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbExtensionDeviceNotify */
- int device; /* device ID */
- unsigned int reason; /* reason for the event */
- unsigned int supported; /* mask of supported features */
- unsigned int unsupported; /* mask of unsupported features */
- /* that some app tried to use */
- int first_btn; /* first button that changed */
- int num_btns; /* range of buttons changed */
- unsigned int leds_defined; /* indicators with names or maps */
- unsigned int led_state; /* current state of the indicators */
- int led_class; /* feedback class for led changes */
- int led_id; /* feedback id for led changes */
-} XkbExtensionDeviceNotifyEvent;
-
-typedef union _XkbEvent {
- int type;
- XkbAnyEvent any;
- XkbNewKeyboardNotifyEvent new_kbd;
- XkbMapNotifyEvent map;
- XkbStateNotifyEvent state;
- XkbControlsNotifyEvent ctrls;
- XkbIndicatorNotifyEvent indicators;
- XkbNamesNotifyEvent names;
- XkbCompatMapNotifyEvent compat;
- XkbBellNotifyEvent bell;
- XkbActionMessageEvent message;
- XkbAccessXNotifyEvent accessx;
- XkbExtensionDeviceNotifyEvent device;
- XEvent core;
-} XkbEvent;
-
-typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;
-
- /* XkbOpenDisplay error codes */
-#define XkbOD_Success 0
-#define XkbOD_BadLibraryVersion 1
-#define XkbOD_ConnectionRefused 2
-#define XkbOD_NonXkbServer 3
-#define XkbOD_BadServerVersion 4
-
- /* Values for XlibFlags */
-#define XkbLC_ForceLatin1Lookup (1<<0)
-#define XkbLC_ConsumeLookupMods (1<<1)
-#define XkbLC_AlwaysConsumeShiftAndLock (1<<2)
-#define XkbLC_IgnoreNewKeyboards (1<<3)
-#define XkbLC_ControlFallback (1<<4)
-#define XkbLC_ConsumeKeysOnComposeFail (1<<29)
-#define XkbLC_ComposeLED (1<<30)
-#define XkbLC_BeepOnComposeFail (1<<31)
-
-#define XkbLC_AllComposeControls (0xc0000000)
-#define XkbLC_AllControls (0xc000001f)
-
-_XFUNCPROTOBEGIN
-
-extern Bool XkbIgnoreExtension(
- Bool /* ignore */
-);
-
-extern Display *XkbOpenDisplay(
- char * /* name */,
- int * /* ev_rtrn */,
- int * /* err_rtrn */,
- int * /* major_rtrn */,
- int * /* minor_rtrn */,
- int * /* reason */
-);
-
-extern Bool XkbQueryExtension(
- Display * /* dpy */,
- int * /* opcodeReturn */,
- int * /* eventBaseReturn */,
- int * /* errorBaseReturn */,
- int * /* majorRtrn */,
- int * /* minorRtrn */
-);
-
-extern Bool XkbUseExtension(
- Display * /* dpy */,
- int * /* major_rtrn */,
- int * /* minor_rtrn */
-);
-
-extern Bool XkbLibraryVersion(
- int * /* libMajorRtrn */,
- int * /* libMinorRtrn */
-);
-
-extern unsigned int XkbSetXlibControls(
- Display* /* dpy */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern unsigned int XkbGetXlibControls(
- Display* /* dpy */
-);
-
-extern unsigned int XkbXlibControlsImplemented(void);
-
-typedef Atom (*XkbInternAtomFunc)(
- Display * /* dpy */,
- _Xconst char * /* name */,
- Bool /* only_if_exists */
-);
-
-typedef char * (*XkbGetAtomNameFunc)(
- Display * /* dpy */,
- Atom /* atom */
-);
-
-extern void XkbSetAtomFuncs(
- XkbInternAtomFunc /* getAtom */,
- XkbGetAtomNameFunc /* getName */
-);
-
-extern KeySym XkbKeycodeToKeysym(
- Display * /* dpy */,
-#if NeedWidePrototypes
- unsigned int /* kc */,
-#else
- KeyCode /* kc */,
-#endif
- int /* group */,
- int /* level */
-);
-
-extern unsigned int XkbKeysymToModifiers(
- Display * /* dpy */,
- KeySym /* ks */
-);
-
-extern Bool XkbLookupKeySym(
- Display * /* dpy */,
- KeyCode /* keycode */,
- unsigned int /* modifiers */,
- unsigned int * /* modifiers_return */,
- KeySym * /* keysym_return */
-);
-
-extern int XkbLookupKeyBinding(
- Display * /* dpy */,
- KeySym /* sym_rtrn */,
- unsigned int /* mods */,
- char * /* buffer */,
- int /* nbytes */,
- int * /* extra_rtrn */
-);
-
-extern Bool XkbTranslateKeyCode(
- XkbDescPtr /* xkb */,
- KeyCode /* keycode */,
- unsigned int /* modifiers */,
- unsigned int * /* modifiers_return */,
- KeySym * /* keysym_return */
-);
-
-extern int XkbTranslateKeySym(
- Display * /* dpy */,
- register KeySym * /* sym_return */,
- unsigned int /* modifiers */,
- char * /* buffer */,
- int /* nbytes */,
- int * /* extra_rtrn */
-);
-
-extern Bool XkbSetAutoRepeatRate(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* delay */,
- unsigned int /* interval */
-);
-
-extern Bool XkbGetAutoRepeatRate(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int * /* delayRtrn */,
- unsigned int * /* intervalRtrn */
-);
-
-extern Bool XkbChangeEnabledControls(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbDeviceBell(
- Display * /* dpy */,
- Window /* win */,
- int /* deviceSpec */,
- int /* bellClass */,
- int /* bellID */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbForceDeviceBell(
- Display * /* dpy */,
- int /* deviceSpec */,
- int /* bellClass */,
- int /* bellID */,
- int /* percent */
-);
-
-extern Bool XkbDeviceBellEvent(
- Display * /* dpy */,
- Window /* win */,
- int /* deviceSpec */,
- int /* bellClass */,
- int /* bellID */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbBell(
- Display * /* dpy */,
- Window /* win */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbForceBell(
- Display * /* dpy */,
- int /* percent */
-);
-
-extern Bool XkbBellEvent(
- Display * /* dpy */,
- Window /* win */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbSelectEvents(
- Display * /* dpy */,
- unsigned int /* deviceID */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbSelectEventDetails(
- Display * /* dpy */,
- unsigned int /* deviceID */,
- unsigned int /* eventType */,
- unsigned long /* affect */,
- unsigned long /* details */
-);
-
-extern void XkbNoteMapChanges(
- XkbMapChangesPtr /* old */,
- XkbMapNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern void XkbNoteNameChanges(
- XkbNameChangesPtr /* old */,
- XkbNamesNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern Status XkbGetIndicatorState(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int * /* pStateRtrn */
-);
-
-extern Status XkbGetDeviceIndicatorState(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- unsigned int * /* pStateRtrn */
-);
-
-extern Status XkbGetIndicatorMap(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbSetIndicatorMap(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-#define XkbNoteIndicatorMapChanges(o,n,w) \
- ((o)->map_changes|=((n)->map_changes&(w)))
-#define XkbNoteIndicatorStateChanges(o,n,w)\
- ((o)->state_changes|=((n)->state_changes&(w)))
-#define XkbGetIndicatorMapChanges(d,x,c) \
- (XkbGetIndicatorMap((d),(c)->map_changes,x))
-#define XkbChangeIndicatorMaps(d,x,c) \
- (XkbSetIndicatorMap((d),(c)->map_changes,x))
-
-extern Bool XkbGetNamedIndicator(
- Display * /* dpy */,
- Atom /* name */,
- int * /* pNdxRtrn */,
- Bool * /* pStateRtrn */,
- XkbIndicatorMapPtr /* pMapRtrn */,
- Bool * /* pRealRtrn */
-);
-
-extern Bool XkbGetNamedDeviceIndicator(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- Atom /* name */,
- int * /* pNdxRtrn */,
- Bool * /* pStateRtrn */,
- XkbIndicatorMapPtr /* pMapRtrn */,
- Bool * /* pRealRtrn */
-);
-
-extern Bool XkbSetNamedIndicator(
- Display * /* dpy */,
- Atom /* name */,
- Bool /* changeState */,
- Bool /* state */,
- Bool /* createNewMap */,
- XkbIndicatorMapPtr /* pMap */
-);
-
-extern Bool XkbSetNamedDeviceIndicator(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- Atom /* name */,
- Bool /* changeState */,
- Bool /* state */,
- Bool /* createNewMap */,
- XkbIndicatorMapPtr /* pMap */
-);
-
-extern Bool XkbLockModifiers(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbLatchModifiers(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbLockGroup(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* group */
-);
-
-extern Bool XkbLatchGroup(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* group */
-);
-
-extern Bool XkbSetServerInternalMods(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affectReal */,
- unsigned int /* realValues */,
- unsigned int /* affectVirtual */,
- unsigned int /* virtualValues */
-);
-
-extern Bool XkbSetIgnoreLockMods(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affectReal */,
- unsigned int /* realValues */,
- unsigned int /* affectVirtual */,
- unsigned int /* virtualValues */
-);
-
-
-extern Bool XkbVirtualModsToReal(
- XkbDescPtr /* xkb */,
- unsigned int /* virtual_mask */,
- unsigned int * /* mask_rtrn */
-);
-
-extern Bool XkbComputeEffectiveMap(
- XkbDescPtr /* xkb */,
- XkbKeyTypePtr /* type */,
- unsigned char * /* map_rtrn */
-);
-
-extern Status XkbInitCanonicalKeyTypes(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- int /* keypadVMod */
-);
-
-extern XkbDescPtr XkbAllocKeyboard(
- void
-);
-
-extern void XkbFreeKeyboard(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeDesc */
-);
-
-extern Status XkbAllocClientMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- unsigned int /* nTypes */
-);
-
-extern Status XkbAllocServerMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- unsigned int /* nActions */
-);
-
-extern void XkbFreeClientMap(
- XkbDescPtr /* xkb */,
- unsigned int /* what */,
- Bool /* freeMap */
-);
-
-extern void XkbFreeServerMap(
- XkbDescPtr /* xkb */,
- unsigned int /* what */,
- Bool /* freeMap */
-);
-
-extern XkbKeyTypePtr XkbAddKeyType(
- XkbDescPtr /* xkb */,
- Atom /* name */,
- int /* map_count */,
- Bool /* want_preserve */,
- int /* num_lvls */
-);
-
-extern Status XkbAllocIndicatorMaps(
- XkbDescPtr /* xkb */
-);
-
-extern void XkbFreeIndicatorMaps(
- XkbDescPtr /* xkb */
-);
-
-extern XkbDescPtr XkbGetMap(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* deviceSpec */
-);
-
-extern Status XkbGetUpdatedMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetMapChanges(
- Display * /* dpy */,
- XkbDescPtr /* xkb */,
- XkbMapChangesPtr /* changes */
-);
-
-
-extern Status XkbRefreshKeyboardMapping(
- XkbMapNotifyEvent * /* event */
-);
-
-extern Status XkbGetKeyTypes(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbGetKeySyms(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbGetKeyActions(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbGetKeyBehaviors(
- Display * /* dpy */,
- unsigned int /* firstKey */,
- unsigned int /* nKeys */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetVirtualMods(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetKeyExplicitComponents(
- Display * /* dpy */,
- unsigned int /* firstKey */,
- unsigned int /* nKeys */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetKeyModifierMap(
- Display * /* dpy */,
- unsigned int /* firstKey */,
- unsigned int /* nKeys */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetKeyVirtualModMap(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbAllocControls(
- XkbDescPtr /* xkb */,
- unsigned int /* which*/
-);
-
-extern void XkbFreeControls(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeMap */
-);
-
-extern Status XkbGetControls(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbSetControls(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-extern void XkbNoteControlsChanges(
- XkbControlsChangesPtr /* old */,
- XkbControlsNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
-#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
-
-extern Status XkbAllocCompatMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- unsigned int /* nInterpret */
-);
-
-extern void XkbFreeCompatMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeMap */
-);
-
-extern Status XkbGetCompatMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* xkb */
-);
-
-extern Bool XkbSetCompatMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* xkb */,
- Bool /* updateActions */
-);
-
-extern XkbSymInterpretPtr XkbAddSymInterpret(
- XkbDescPtr /* xkb */,
- XkbSymInterpretPtr /* si */,
- Bool /* updateMap */,
- XkbChangesPtr /* changes */
-);
-
-extern Status XkbAllocNames(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- int /* nTotalRG */,
- int /* nTotalAliases */
-);
-
-extern Status XkbGetNames(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbSetNames(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* firstType */,
- unsigned int /* nTypes */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbChangeNames(
- Display * /* dpy */,
- XkbDescPtr /* xkb */,
- XkbNameChangesPtr /* changes */
-);
-
-extern void XkbFreeNames(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeMap */
-);
-
-
-extern Status XkbGetState(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- XkbStatePtr /* rtrnState */
-);
-
-extern Bool XkbSetMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbChangeMap(
- Display* /* dpy */,
- XkbDescPtr /* desc */,
- XkbMapChangesPtr /* changes */
-);
-
-extern Bool XkbSetDetectableAutoRepeat(
- Display * /* dpy */,
- Bool /* detectable */,
- Bool * /* supported */
-);
-
-extern Bool XkbGetDetectableAutoRepeat(
- Display * /* dpy */,
- Bool * /* supported */
-);
-
-extern Bool XkbSetAutoResetControls(
- Display * /* dpy */,
- unsigned int /* changes */,
- unsigned int * /* auto_ctrls */,
- unsigned int * /* auto_values */
-);
-
-extern Bool XkbGetAutoResetControls(
- Display * /* dpy */,
- unsigned int * /* auto_ctrls */,
- unsigned int * /* auto_ctrl_values */
-);
-
-extern Bool XkbSetPerClientControls(
- Display * /* dpy */,
- unsigned int /* change */,
- unsigned int * /* values */
-);
-
-extern Bool XkbGetPerClientControls(
- Display * /* dpy */,
- unsigned int * /* ctrls */
-);
-
-extern Status XkbCopyKeyType(
- XkbKeyTypePtr /* from */,
- XkbKeyTypePtr /* into */
-);
-
-extern Status XkbCopyKeyTypes(
- XkbKeyTypePtr /* from */,
- XkbKeyTypePtr /* into */,
- int /* num_types */
-);
-
-extern Status XkbResizeKeyType(
- XkbDescPtr /* xkb */,
- int /* type_ndx */,
- int /* map_count */,
- Bool /* want_preserve */,
- int /* new_num_lvls */
-);
-
-extern KeySym *XkbResizeKeySyms(
- XkbDescPtr /* desc */,
- int /* forKey */,
- int /* symsNeeded */
-);
-
-extern XkbAction *XkbResizeKeyActions(
- XkbDescPtr /* desc */,
- int /* forKey */,
- int /* actsNeeded */
-);
-
-extern Status XkbChangeTypesOfKey(
- XkbDescPtr /* xkb */,
- int /* key */,
- int /* num_groups */,
- unsigned int /* groups */,
- int * /* newTypes */,
- XkbMapChangesPtr /* pChanges */
-);
-
-extern Status XkbChangeKeycodeRange(
- XkbDescPtr /* xkb */,
- int /* minKC */,
- int /* maxKC */,
- XkbChangesPtr /* changes */
-);
-
-/***====================================================================***/
-
-extern XkbComponentListPtr XkbListComponents(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- XkbComponentNamesPtr /* ptrns */,
- int * /* max_inout */
-);
-
-extern void XkbFreeComponentList(
- XkbComponentListPtr /* list */
-);
-
-extern XkbDescPtr XkbGetKeyboard(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* deviceSpec */
-);
-
-extern XkbDescPtr XkbGetKeyboardByName(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- XkbComponentNamesPtr /* names */,
- unsigned int /* want */,
- unsigned int /* need */,
- Bool /* load */
-);
-
-/***====================================================================***/
-
-extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
- XkbDescPtr /* xkb */, /* keyboard device */
- int /* map_width */, /* width of core KeySym array */
- KeySym * /* core_syms */, /* always mapWidth symbols */
- unsigned int /* protected */, /* explicit key types */
- int * /* types_inout */, /* always four type indices */
- KeySym * /* xkb_syms_rtrn */ /* must have enough space */
-);
-
-extern Bool XkbApplyCompatMapToKey( /* False only on error */
- XkbDescPtr /* xkb */, /* keymap to be edited */
- KeyCode /* key */, /* key to be updated */
- XkbChangesPtr /* changes */ /* resulting changes to map */
-);
-
-extern Bool XkbUpdateMapFromCore( /* False only on error */
- XkbDescPtr /* xkb */, /* XKB keyboard to be edited */
- KeyCode /* first_key */, /* first changed key */
- int /* num_keys */, /* number of changed keys */
- int /* map_width */, /* width of core keymap */
- KeySym * /* core_keysyms */, /* symbols from core keymap */
- XkbChangesPtr /* changes */ /* resulting changes */
-);
-
-/***====================================================================***/
-
-extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* ledClass */,
- unsigned int /* ledId */
-);
-
-extern Status XkbResizeDeviceButtonActions(
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* newTotal */
-);
-
-extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
- unsigned int /* deviceSpec */,
- unsigned int /* nButtons */,
- unsigned int /* szLeds */
-);
-
-extern void XkbFreeDeviceInfo(
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* which */,
- Bool /* freeDevI */
-);
-
-extern void XkbNoteDeviceChanges(
- XkbDeviceChangesPtr /* old */,
- XkbExtensionDeviceNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern XkbDeviceInfoPtr XkbGetDeviceInfo(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */
-);
-
-extern Status XkbGetDeviceInfoChanges(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- XkbDeviceChangesPtr /* changes */
-);
-
-extern Status XkbGetDeviceButtonActions(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- Bool /* all */,
- unsigned int /* first */,
- unsigned int /* nBtns */
-);
-
-extern Status XkbGetDeviceLedInfo(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* ledClass (class, XIDflt, XIAll) */,
- unsigned int /* ledId (id, XIDflt, XIAll) */,
- unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */
-);
-
-extern Bool XkbSetDeviceInfo(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDeviceInfoPtr /* devi */
-);
-
-extern Bool XkbChangeDeviceInfo(
- Display* /* dpy */,
- XkbDeviceInfoPtr /* desc */,
- XkbDeviceChangesPtr /* changes */
-);
-
-extern Bool XkbSetDeviceLedInfo(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- unsigned int /* which */
-);
-
-extern Bool XkbSetDeviceButtonActions(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* first */,
- unsigned int /* nBtns */
-);
-
-/***====================================================================***/
-
-extern char XkbToControl(
- char /* c */
-);
-
-/***====================================================================***/
-
-extern Bool XkbSetDebuggingFlags(
- Display * /* dpy */,
- unsigned int /* mask */,
- unsigned int /* flags */,
- char * /* msg */,
- unsigned int /* ctrls_mask */,
- unsigned int /* ctrls */,
- unsigned int * /* rtrn_flags */,
- unsigned int * /* rtrn_ctrls */
-);
-
-extern Bool XkbApplyVirtualModChanges(
- XkbDescPtr /* xkb */,
- unsigned int /* changed */,
- XkbChangesPtr /* changes */
-);
-
-extern Bool XkbUpdateActionVirtualMods(
- XkbDescPtr /* xkb */,
- XkbAction * /* act */,
- unsigned int /* changed */
-);
-
-extern void XkbUpdateKeyTypeVirtualMods(
- XkbDescPtr /* xkb */,
- XkbKeyTypePtr /* type */,
- unsigned int /* changed */,
- XkbChangesPtr /* changes */
-);
-
-_XFUNCPROTOEND
-
-#endif /* !defined(_X11_XKBLIB_H_) && !defined(_XKBLIB_H_) */
diff --git a/nx-X11/lib/X11/XKBlibint.h b/nx-X11/lib/X11/XKBlibint.h
deleted file mode 100644
index dad48b703..000000000
--- a/nx-X11/lib/X11/XKBlibint.h
+++ /dev/null
@@ -1,337 +0,0 @@
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be
-used in advertising or publicity pertaining to distribution
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifndef _XKBLIBINT_H_
-#define _XKBLIBINT_H_
-
-#include <nx-X11/Xutil.h>
-#include <nx-X11/XKBlib.h>
-
-#define XkbMapPending (1<<0)
-#define XkbXlibNewKeyboard (1<<1)
-
-typedef int (*XkbKSToMBFunc)(
- XPointer /* priv */,
- KeySym /* sym */,
- char * /* buf */,
- int /* len */,
- int * /* extra_rtrn */
-);
-
-typedef KeySym (*XkbMBToKSFunc)(
- XPointer /* priv */,
- char * /* buf */,
- int /* len */,
- Status * /* status */
-);
-
-typedef KeySym (*XkbToUpperFunc)(
- KeySym /* sym */
-);
-
-typedef struct _XkbConverters {
- XkbKSToMBFunc KSToMB;
- XPointer KSToMBPriv;
- XkbMBToKSFunc MBToKS;
- XPointer MBToKSPriv;
- XkbToUpperFunc KSToUpper;
-} XkbConverters;
-
-extern XkbInternAtomFunc _XkbInternAtomFunc;
-extern XkbGetAtomNameFunc _XkbGetAtomNameFunc;
-
-typedef struct _XkbInfoRec {
- unsigned flags;
- unsigned xlib_ctrls;
- XExtCodes *codes;
- int srv_major;
- int srv_minor;
- unsigned selected_events;
- unsigned short selected_nkn_details;
- unsigned short selected_map_details;
- XkbDescRec *desc;
- XkbMapChangesRec changes;
- Atom composeLED;
- XkbConverters cvt;
- XkbConverters latin1cvt;
-} XkbInfoRec, *XkbInfoPtr;
-
-
-#define _XkbUnavailable(d) \
- (((d)->flags&XlibDisplayNoXkb) || \
- ((!(d)->xkb_info || (!(d)->xkb_info->desc)) && !_XkbLoadDpy(d)))
-
-#define _XkbCheckPendingRefresh(d,xi) { \
- if ((xi)->flags&XkbXlibNewKeyboard) \
- _XkbReloadDpy((d)); \
- else if ((xi)->flags&XkbMapPending) { \
- if (XkbGetMapChanges((d),(xi)->desc, &(xi)->changes)==Success) { \
- LockDisplay((d)); \
- (xi)->changes.changed= 0; \
- UnlockDisplay((d)); \
- } \
- } \
-}
-
-#define _XkbNeedModmap(i) ((!(i)->desc->map)||(!(i)->desc->map->modmap))
-
- /*
- * mask of the events that the "invisible" XKB support in Xlib needs
- */
-#define XKB_XLIB_MAP_MASK (XkbAllClientInfoMask)
-
- /*
- * Handy helper macros
- */
-
-typedef struct _XkbReadBuffer {
- int error;
- int size;
- char *start;
- char *data;
-} XkbReadBufferRec, *XkbReadBufferPtr;
-
-#define _XkbAlloc(s) Xmalloc((s))
-#define _XkbCalloc(n,s) Xcalloc((n),(s))
-#define _XkbRealloc(o,s) Xrealloc((o),(s))
-#define _XkbTypedAlloc(t) ((t *)Xmalloc(sizeof(t)))
-#define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n),sizeof(t)))
-#define _XkbTypedRealloc(o,n,t) \
- ((o) ? (t *)Xrealloc((o), (n)*sizeof(t)) : _XkbTypedCalloc(n,t))
-#define _XkbClearElems(a,f,l,t) bzero(&(a)[f], ((l)-(f)+1) * sizeof(t))
-#define _XkbFree(p) Xfree(p)
-
-_XFUNCPROTOBEGIN
-
-extern void _XkbReloadDpy(
- Display * /* dpy */
-);
-
-extern KeySym _XKeycodeToKeysym(
- Display * /* display */,
-#if NeedWidePrototypes
- unsigned int /* keycode */,
-#else
- KeyCode /* keycode */,
-#endif
- int /* index */
-);
-
-extern KeyCode _XKeysymToKeycode(
- Display * /* display */,
- KeySym /* keysym */
-);
-
-extern KeySym _XLookupKeysym(
- XKeyEvent * /* key_event */,
- int /* index */
-);
-
-extern int _XRefreshKeyboardMapping(
- XMappingEvent * /* event_map */
-);
-
-extern unsigned _XKeysymToModifiers(
- Display * /* dpy */,
- KeySym /* ks */
-);
-
-extern int _XTranslateKey(
- register Display * /* dpy */,
- KeyCode /* keycode */,
- register unsigned int /* modifiers */,
- unsigned int * /* modifiers_return */,
- KeySym * /* keysym_return */
-);
-
-extern int _XTranslateKeySym(
- Display * /* dpy */,
- register KeySym /* symbol */,
- unsigned int /* modifiers */,
- char * /* buffer */,
- int /* nbytes */
-);
-
-extern int _XLookupString(
- register XKeyEvent * /* event */,
- char * /* buffer */,
- int /* nbytes */,
- KeySym * /* keysym */,
- XComposeStatus * /* status */
-);
-
-extern void _XkbNoteCoreMapChanges(
- XkbMapChangesRec * /* old */,
- XMappingEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern int _XkbInitReadBuffer(
- Display * /* dpy */,
- XkbReadBufferPtr /* buf */,
- int /* size */
-);
-
-extern int _XkbSkipReadBufferData(
- XkbReadBufferPtr /* from */,
- int /* size */
-);
-
-extern int _XkbCopyFromReadBuffer(
- XkbReadBufferPtr /* from */,
- char * /* to */,
- int /* size */
-);
-
-
-#ifdef LONG64
-extern int _XkbReadCopyData32(
- int * /* from */,
- long * /* to */,
- int /* num_words */
-);
-
-extern int _XkbWriteCopyData32(
- unsigned long * /* from */,
- CARD32 * /* to */,
- int /* num_words */
-);
-
-extern int _XkbReadBufferCopy32(
- XkbReadBufferPtr /* from */,
- long * /* to */,
- int /* size */
-);
-#else
-#define _XkbReadCopyData32(f,t,s) memcpy((char *)(t), (char *)(f), (s)*4)
-#define _XkbWriteCopyData32(f,t,s) memcpy((char *)(t), (char *)(f), (s)*4)
-#define _XkbReadBufferCopy32(f,t,s) _XkbCopyFromReadBuffer(f, (char *)t, (s)*4)
-#endif
-
-#ifndef NO_DEC_BINARY_COMPATIBILITY
-#define XKB_FORCE_INT_KEYSYM 1
-#endif
-
-#ifdef XKB_FORCE_INT_KEYSYM
-extern int _XkbReadCopyKeySyms(
- int * /* from */,
- KeySym * /* to */,
- int /* num_words */
-);
-
-extern int _XkbWriteCopyKeySyms(
- KeySym * /* from */,
- CARD32 * /* to */,
- int /* num_words */
-);
-
-extern int _XkbReadBufferCopyKeySyms(
- XkbReadBufferPtr /* from */,
-#ifndef NO_DEC_BUG_FIX
- KeySym * /* to */,
-#else
- long * /* to */,
-#endif
- int /* size */
-);
-#else
-#define _XkbReadCopyKeySyms(f,t,n) _XkbReadCopyData32(f,t,n)
-#define _XkbWriteCopyKeySyms(f,t,n) _XkbWriteCopyData32(f,t,n)
-#define _XkbReadBufferCopyKeySyms(f,t,s) _XkbReadBufferCopy32(f,t,s)
-#endif
-
-extern char *_XkbPeekAtReadBuffer(
- XkbReadBufferPtr /* from */,
- int /* size */
-);
-
-extern char *_XkbGetReadBufferPtr(
- XkbReadBufferPtr /* from */,
- int /* size */
-);
-#define _XkbGetTypedRdBufPtr(b,n,t) ((t *)_XkbGetReadBufferPtr(b,(n)*SIZEOF(t)))
-
-extern int _XkbFreeReadBuffer(
- XkbReadBufferPtr /* buf */
-);
-
-extern Bool
-_XkbGetReadBufferCountedString(
- XkbReadBufferPtr /* buf */,
- char ** /* rtrn */
-);
-
-extern char *_XkbGetCharset(
- void
-);
-
-extern int _XkbGetConverters(
- const char * /* encoding_name */,
- XkbConverters * /* cvt_rtrn */
-);
-
-#ifdef NEED_MAP_READERS
-
-extern Status _XkbReadGetMapReply(
- Display * /* dpy */,
- xkbGetMapReply * /* rep */,
- XkbDescRec * /* xkb */,
- int * /* nread_rtrn */
-);
-
-extern Status _XkbReadGetCompatMapReply(
- Display * /* dpy */,
- xkbGetCompatMapReply * /* rep */,
- XkbDescPtr /* xkb */,
- int * /* nread_rtrn */
-);
-
-extern Status _XkbReadGetIndicatorMapReply(
- Display * /* dpy */,
- xkbGetIndicatorMapReply * /* rep */,
- XkbDescPtr /* xkb */,
- int * /* nread_rtrn */
-);
-
-extern Status _XkbReadGetNamesReply(
- Display * /* dpy */,
- xkbGetNamesReply * /* rep */,
- XkbDescPtr /* xkb */,
- int * /* nread_rtrn */
-);
-
-extern Status _XkbReadGetGeometryReply(
- Display * /* dpy */,
- xkbGetGeometryReply * /* rep */,
- XkbDescPtr /* xkb */,
- int * /* nread_rtrn */
-);
-
-#endif
-
-_XFUNCPROTOEND
-
-#endif /* _XKBLIBINT_H_ */
diff --git a/nx-X11/lib/X11/XRGB.c b/nx-X11/lib/X11/XRGB.c
deleted file mode 100644
index 03f980e99..000000000
--- a/nx-X11/lib/X11/XRGB.c
+++ /dev/null
@@ -1,242 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsRtoX.c
- *
- * DESCRIPTION
- * Convert color specifications in XcmsRGB format in one array of
- * XcmsColor structures to RGB in an array of XColor structures.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * LOCAL VARIABLES
- */
-
-static unsigned short const MASK[17] = {
- 0x0000, /* 0 bitsPerRGB */
- 0x8000, /* 1 bitsPerRGB */
- 0xc000, /* 2 bitsPerRGB */
- 0xe000, /* 3 bitsPerRGB */
- 0xf000, /* 4 bitsPerRGB */
- 0xf800, /* 5 bitsPerRGB */
- 0xfc00, /* 6 bitsPerRGB */
- 0xfe00, /* 7 bitsPerRGB */
- 0xff00, /* 8 bitsPerRGB */
- 0xff80, /* 9 bitsPerRGB */
- 0xffc0, /* 10 bitsPerRGB */
- 0xffe0, /* 11 bitsPerRGB */
- 0xfff0, /* 12 bitsPerRGB */
- 0xfff8, /* 13 bitsPerRGB */
- 0xfffc, /* 14 bitsPerRGB */
- 0xfffe, /* 15 bitsPerRGB */
- 0xffff /* 16 bitsPerRGB */
-};
-
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsRGB_to_XColor -
- *
- * SYNOPSIS
- */
-void
-_XcmsRGB_to_XColor(
- XcmsColor *pColors,
- XColor *pXColors,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Translates a color specification in XcmsRGBFormat in a XcmsColor
- * structure to an XColor structure.
- *
- * RETURNS
- * void.
- */
-{
- for (; nColors--; pXColors++, pColors++) {
- pXColors->pixel = pColors->pixel;
- pXColors->red = pColors->spec.RGB.red;
- pXColors->green = pColors->spec.RGB.green;
- pXColors->blue = pColors->spec.RGB.blue;
- pXColors->flags = (DoRed | DoGreen | DoBlue);
- }
-}
-
-
-/*
- * NAME
- * _XColor_to_XcmsRGB
- *
- * SYNOPSIS
- */
-void
-_XColor_to_XcmsRGB(
- XcmsCCC ccc,
- XColor *pXColors,
- XcmsColor *pColors,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Translates an RGB color specification in an XColor
- * structure to an XcmsRGB structure.
- *
- * IMPORTANT NOTE: Bit replication that may have been caused
- * with ResolveColor() routine in the X Server is undone
- * here if requested! For example, if red = 0xcaca and the
- * bits_per_rgb is 8, then spec.RGB.red will be 0xca00.
- *
- * RETURNS
- * void
- */
-{
- int bits_per_rgb = ccc->visual->bits_per_rgb;
-
- for (; nColors--; pXColors++, pColors++) {
- pColors->spec.RGB.red = (pXColors->red & MASK[bits_per_rgb]);
- pColors->spec.RGB.green = (pXColors->green & MASK[bits_per_rgb]);
- pColors->spec.RGB.blue = (pXColors->blue & MASK[bits_per_rgb]);
- pColors->format = XcmsRGBFormat;
- pColors->pixel = pXColors->pixel;
- }
-}
-
-
-/*
- * NAME
- * _XcmsResolveColor
- *
- * SYNOPSIS
- */
-void
-_XcmsResolveColor(
- XcmsCCC ccc,
- XcmsColor *pXcmsColor)
-/*
- * DESCRIPTION
- * Uses the X Server ResolveColor() algorithm to
- * modify values to closest values supported by hardware.
- * Old algorithm simply masked low-order bits. The new algorithm
- * has the effect of replicating significant bits into lower order
- * bits in order to stretch the hardware value into all 16 bits.
- *
- * On a display with N-bit DACs, the "hardware" color is computed as:
- *
- * ((unsignedlong)(ClientValue >> (16-N)) * 0xFFFF) / ((1 << N) - 1)
- *
- *
- * RETURNS
- * void.
- */
-{
- int shift;
- int max_color;
-
- shift = 16 - ccc->visual->bits_per_rgb;
- max_color = (1 << ccc->visual->bits_per_rgb) - 1;
-
-
- pXcmsColor->spec.RGB.red =
- ((unsigned long)(pXcmsColor->spec.RGB.red >> shift) * 0xFFFF)
- / max_color;
- pXcmsColor->spec.RGB.green =
- ((unsigned long)(pXcmsColor->spec.RGB.green >> shift) * 0xFFFF)
- / max_color;
- pXcmsColor->spec.RGB.blue =
- ((unsigned long)(pXcmsColor->spec.RGB.blue >> shift) * 0xFFFF)
- / max_color;
-}
-
-
-/*
- * NAME
- * _XcmsUnresolveColor
- *
- * SYNOPSIS
- */
-void
-_XcmsUnresolveColor(
- XcmsCCC ccc,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Masks out insignificant bits.
- *
- * RETURNS
- * void.
- *
- * ASSUMPTIONS
- * format == XcmsRGBFormat
- */
-{
- int bits_per_rgb = ccc->visual->bits_per_rgb;
-
- pColor->spec.RGB.red &= MASK[bits_per_rgb];
- pColor->spec.RGB.green &= MASK[bits_per_rgb];
- pColor->spec.RGB.blue &= MASK[bits_per_rgb];
-}
-
-
-/*
- * NAME
- * _XUnresolveColor
- *
- * SYNOPSIS
- */
-void
-_XUnresolveColor(
- XcmsCCC ccc,
- XColor *pXColor)
-/*
- * DESCRIPTION
- * Masks out insignificant bits.
- *
- * RETURNS
- * void.
- */
-{
- int bits_per_rgb = ccc->visual->bits_per_rgb;
-
- pXColor->red &= MASK[bits_per_rgb];
- pXColor->green &= MASK[bits_per_rgb];
- pXColor->blue &= MASK[bits_per_rgb];
-}
-
diff --git a/nx-X11/lib/X11/XYZ.c b/nx-X11/lib/X11/XYZ.c
deleted file mode 100644
index 826565773..000000000
--- a/nx-X11/lib/X11/XYZ.c
+++ /dev/null
@@ -1,203 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- *
- * NAME
- * CIEXYZ.c
- *
- * DESCRIPTION
- * CIE XYZ Color Space
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-#include <stdio.h> /* sscanf */
-
-/*
- * DEFINES
- * Internal definitions that need NOT be exported to any package
- * or program using this package.
- */
-#ifdef DBL_EPSILON
-# define XMY_DBL_EPSILON DBL_EPSILON
-#else
-# define XMY_DBL_EPSILON 0.00001
-#endif
-
-/*
- * FORWARD DECLARATIONS
- */
-static int CIEXYZ_ParseString(register char *spec, XcmsColor *pColor);
-
-/*
- * LOCALS VARIABLES
- */
-
-static XcmsConversionProc Fl_CIEXYZ_to_CIEXYZ[] = {
- NULL
-};
-
-
-
-/*
- * GLOBALS
- * Variables declared in this package that are allowed
- * to be used globally.
- */
- /*
- * CIE XYZ Color Space
- */
-XcmsColorSpace XcmsCIEXYZColorSpace =
- {
- _XcmsCIEXYZ_prefix, /* prefix */
- XcmsCIEXYZFormat, /* id */
- CIEXYZ_ParseString, /* parseString */
- Fl_CIEXYZ_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_CIEXYZ, /* from_CIEXYZ */
- 1
- };
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CIEXYZ_ParseString
- *
- * SYNOPSIS
- */
-static int
-CIEXYZ_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsCIEXYZFormat.
- * The assumed CIEXYZ string syntax is:
- * CIEXYZ:<X>/<Y>/<Z>
- * Where X, Y, and Z are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- */
-{
- size_t n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (size_t)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsCIEXYZ_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIEXYZ.X,
- &pColor->spec.CIEXYZ.Y,
- &pColor->spec.CIEXYZ.Z) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIEXYZ.X,
- &pColor->spec.CIEXYZ.Y,
- &pColor->spec.CIEXYZ.Z) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
- pColor->format = XcmsCIEXYZFormat;
- pColor->pixel = 0;
- return(_XcmsCIEXYZ_ValidSpec(pColor));
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIELab_ValidSpec
- *
- * SYNOPSIS
- */
-Status
-_XcmsCIEXYZ_ValidSpec(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks if color specification valid for CIE XYZ
- *
- * RETURNS
- * XcmsFailure if invalid,
- * XcmsSuccess if valid.
- *
- */
-{
- if (pColor->format != XcmsCIEXYZFormat
- ||
- (pColor->spec.CIEXYZ.Y < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIEXYZ.Y > 1.0 + XMY_DBL_EPSILON)) {
- return(XcmsFailure);
- }
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/Xatomtype.h b/nx-X11/lib/X11/Xatomtype.h
deleted file mode 100644
index 1b2b47766..000000000
--- a/nx-X11/lib/X11/Xatomtype.h
+++ /dev/null
@@ -1,133 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifndef _XATOMTYPE_H_
-#define _XATOMTYPE_H_
-
-/*
- * This files defines crock C structures for calling XGetWindowProperty and
- * XChangeProperty. All fields must be longs as the semantics of property
- * routines will handle conversion to and from actual 32 bit objects. If your
- * compiler doesn't treat &structoflongs the same as &arrayoflongs[0], you
- * will have some work to do.
- */
-
-#define BOOL long
-#define SIGNEDINT long
-#define UNSIGNEDINT unsigned long
-#define RESOURCEID unsigned long
-
-
-/* this structure may be extended, but do not change the order */
-typedef struct {
- UNSIGNEDINT flags;
- SIGNEDINT x, y, width, height; /* need to cvt; only for pre-ICCCM */
- SIGNEDINT minWidth, minHeight; /* need to cvt */
- SIGNEDINT maxWidth, maxHeight; /* need to cvt */
- SIGNEDINT widthInc, heightInc; /* need to cvt */
- SIGNEDINT minAspectX, minAspectY; /* need to cvt */
- SIGNEDINT maxAspectX, maxAspectY; /* need to cvt */
- SIGNEDINT baseWidth,baseHeight; /* need to cvt; ICCCM version 1 */
- SIGNEDINT winGravity; /* need to cvt; ICCCM version 1 */
-} xPropSizeHints;
-#define OldNumPropSizeElements 15 /* pre-ICCCM */
-#define NumPropSizeElements 18 /* ICCCM version 1 */
-
-/* this structure may be extended, but do not change the order */
-/* RGB properties */
-typedef struct {
- RESOURCEID colormap;
- UNSIGNEDINT red_max;
- UNSIGNEDINT red_mult;
- UNSIGNEDINT green_max;
- UNSIGNEDINT green_mult;
- UNSIGNEDINT blue_max;
- UNSIGNEDINT blue_mult;
- UNSIGNEDINT base_pixel;
- RESOURCEID visualid; /* ICCCM version 1 */
- RESOURCEID killid; /* ICCCM version 1 */
-} xPropStandardColormap;
-#define OldNumPropStandardColormapElements 8 /* pre-ICCCM */
-#define NumPropStandardColormapElements 10 /* ICCCM version 1 */
-
-
-/* this structure may be extended, but do not change the order */
-typedef struct {
- UNSIGNEDINT flags;
- BOOL input; /* need to convert */
- SIGNEDINT initialState; /* need to cvt */
- RESOURCEID iconPixmap;
- RESOURCEID iconWindow;
- SIGNEDINT iconX; /* need to cvt */
- SIGNEDINT iconY; /* need to cvt */
- RESOURCEID iconMask;
- UNSIGNEDINT windowGroup;
- } xPropWMHints;
-#define NumPropWMHintsElements 9 /* number of elements in this structure */
-
-/* this structure defines the icon size hints information */
-typedef struct {
- SIGNEDINT minWidth, minHeight; /* need to cvt */
- SIGNEDINT maxWidth, maxHeight; /* need to cvt */
- SIGNEDINT widthInc, heightInc; /* need to cvt */
- } xPropIconSize;
-#define NumPropIconSizeElements 6 /* number of elements in this structure */
-
-/* this structure defines the window manager state information */
-typedef struct {
- SIGNEDINT state; /* need to cvt */
- RESOURCEID iconWindow;
-} xPropWMState;
-#define NumPropWMStateElements 2 /* number of elements in struct */
-
-#undef BOOL
-#undef SIGNEDINT
-#undef UNSIGNEDINT
-#undef RESOURCEID
-
-#endif /* _XATOMTYPE_H_ */
diff --git a/nx-X11/lib/X11/Xcms.h b/nx-X11/lib/X11/Xcms.h
deleted file mode 100644
index 3b0410533..000000000
--- a/nx-X11/lib/X11/Xcms.h
+++ /dev/null
@@ -1,816 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * DESCRIPTION
- * Public include file for X Color Management System
- */
-#if !defined(_X11_XCMS_H_) && !defined(_XCMS_H_)
-#define _X11_XCMS_H_
-#define _XCMS_H_
-
-#include <nx-X11/Xlib.h>
-
-/* The Xcms structs are full of implicit padding to properly align members.
- We can't clean that up without breaking ABI, so tell clang not to bother
- complaining about it. */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
- /*
- * XCMS Status Values
- */
-#define XcmsFailure 0
-#define XcmsSuccess 1
-#define XcmsSuccessWithCompression 2
-
- /*
- * Color Space Format ID's
- * Color Space ID's are of XcmsColorFormat type.
- *
- * bit 31
- * 0 == Device-Independent
- * 1 == Device-Dependent
- *
- * bit 30:
- * 0 == Registered with X Consortium
- * 1 == Unregistered
- */
-#define XcmsUndefinedFormat (XcmsColorFormat)0x00000000
-#define XcmsCIEXYZFormat (XcmsColorFormat)0x00000001
-#define XcmsCIEuvYFormat (XcmsColorFormat)0x00000002
-#define XcmsCIExyYFormat (XcmsColorFormat)0x00000003
-#define XcmsCIELabFormat (XcmsColorFormat)0x00000004
-#define XcmsCIELuvFormat (XcmsColorFormat)0x00000005
-#define XcmsTekHVCFormat (XcmsColorFormat)0x00000006
-#define XcmsRGBFormat (XcmsColorFormat)0x80000000
-#define XcmsRGBiFormat (XcmsColorFormat)0x80000001
-
- /*
- * State of XcmsPerScrnInfo
- */
-#define XcmsInitNone 0x00 /* no initialization attempted */
-#define XcmsInitSuccess 0x01 /* initialization successful */
-#define XcmsInitFailure 0xff /* failure, use defaults */
-
-#define DisplayOfCCC(ccc) ((ccc)->dpy)
-#define ScreenNumberOfCCC(ccc) ((ccc)->screenNumber)
-#define VisualOfCCC(ccc) ((ccc)->visual)
-#define ClientWhitePointOfCCC(ccc) (&(ccc)->clientWhitePt)
-#define ScreenWhitePointOfCCC(ccc) (&(ccc)->pPerScrnInfo->screenWhitePt)
-#define FunctionSetOfCCC(ccc) ((ccc)->pPerScrnInfo->functionSet)
-
-typedef unsigned long XcmsColorFormat; /* Color Space Format ID */
-
-typedef double XcmsFloat;
-
- /*
- * Device RGB
- */
-typedef struct {
- unsigned short red; /* scaled from 0x0000 to 0xffff */
- unsigned short green; /* scaled from 0x0000 to 0xffff */
- unsigned short blue; /* scaled from 0x0000 to 0xffff */
-} XcmsRGB;
-
- /*
- * RGB Intensity
- */
-typedef struct {
- XcmsFloat red; /* 0.0 - 1.0 */
- XcmsFloat green; /* 0.0 - 1.0 */
- XcmsFloat blue; /* 0.0 - 1.0 */
-} XcmsRGBi;
-
- /*
- * CIE XYZ
- */
-typedef struct {
- XcmsFloat X;
- XcmsFloat Y;
- XcmsFloat Z;
-} XcmsCIEXYZ;
-
- /*
- * CIE u'v'Y
- */
-typedef struct {
- XcmsFloat u_prime; /* 0.0 - 1.0 */
- XcmsFloat v_prime; /* 0.0 - 1.0 */
- XcmsFloat Y; /* 0.0 - 1.0 */
-} XcmsCIEuvY;
-
- /*
- * CIE xyY
- */
-typedef struct {
- XcmsFloat x; /* 0.0 - 1.0 */
- XcmsFloat y; /* 0.0 - 1.0 */
- XcmsFloat Y; /* 0.0 - 1.0 */
-} XcmsCIExyY;
-
- /*
- * CIE L*a*b*
- */
-typedef struct {
- XcmsFloat L_star; /* 0.0 - 100.0 */
- XcmsFloat a_star;
- XcmsFloat b_star;
-} XcmsCIELab;
-
- /*
- * CIE L*u*v*
- */
-typedef struct {
- XcmsFloat L_star; /* 0.0 - 100.0 */
- XcmsFloat u_star;
- XcmsFloat v_star;
-} XcmsCIELuv;
-
- /*
- * TekHVC
- */
-typedef struct {
- XcmsFloat H; /* 0.0 - 360.0 */
- XcmsFloat V; /* 0.0 - 100.0 */
- XcmsFloat C; /* 0.0 - 100.0 */
-} XcmsTekHVC;
-
- /*
- * PAD
- */
-typedef struct {
- XcmsFloat pad0;
- XcmsFloat pad1;
- XcmsFloat pad2;
- XcmsFloat pad3;
-} XcmsPad;
-
-
- /*
- * XCMS Color Structure
- */
-typedef struct {
- union {
- XcmsRGB RGB;
- XcmsRGBi RGBi;
- XcmsCIEXYZ CIEXYZ;
- XcmsCIEuvY CIEuvY;
- XcmsCIExyY CIExyY;
- XcmsCIELab CIELab;
- XcmsCIELuv CIELuv;
- XcmsTekHVC TekHVC;
- XcmsPad Pad;
- } spec; /* the color specification */
- unsigned long pixel; /* pixel value (as needed) */
- XcmsColorFormat format; /* the specification format */
-} XcmsColor;
-
-
- /*
- * XCMS Per Screen related data
- */
-
-typedef struct _XcmsPerScrnInfo {
- XcmsColor screenWhitePt; /* Screen White point */
- XPointer functionSet; /* pointer to Screen Color Characterization */
- /* Function Set structure */
- XPointer screenData; /* pointer to corresponding Screen Color*/
- /* Characterization Data */
- unsigned char state; /* XcmsInitNone, XcmsInitSuccess, XcmsInitFailure */
- char pad[3];
-} XcmsPerScrnInfo;
-
-typedef struct _XcmsCCC *XcmsCCC;
-
-typedef Status (*XcmsCompressionProc)( /* Gamut Compression Proc */
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-typedef Status (*XcmsWhiteAdjustProc)( /* White Point Adjust Proc */
- XcmsCCC /* ccc */,
- XcmsColor* /* initial_white_point*/,
- XcmsColor* /* target_white_point*/,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
- /*
- * XCMS Color Conversion Context
- */
-typedef struct _XcmsCCC {
- Display *dpy; /* X Display */
- int screenNumber; /* X screen number */
- Visual *visual; /* X Visual */
- XcmsColor clientWhitePt; /* Client White Point */
- XcmsCompressionProc gamutCompProc; /* Gamut Compression Function */
- XPointer gamutCompClientData; /* Gamut Comp Func Client Data */
- XcmsWhiteAdjustProc whitePtAdjProc; /* White Point Adjustment Function */
- XPointer whitePtAdjClientData; /* White Pt Adj Func Client Data */
- XcmsPerScrnInfo *pPerScrnInfo; /* pointer to per screen information */
- /* associated with the above display */
- /* screenNumber */
-} XcmsCCCRec;
-
-typedef Status (*XcmsScreenInitProc)( /* Screen Initialization Proc */
- Display* /* dpy */,
- int /* screen_number */,
- XcmsPerScrnInfo* /* screen_info */
-);
-
-typedef void (*XcmsScreenFreeProc)(
- XPointer /* screenData */
-);
-
- /*
- * Function List Pointer -- pointer to an array of function pointers.
- * The end of list is indicated by a NULL pointer.
- */
-/*
- * XXX: The use of the XcmsConversionProc type is broken. The
- * device-independent colour conversion code uses it as:
-
-typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, XcmsColor *,
- unsigned int);
-
- * while the device-dependent code uses it as:
-
-typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, unsigned int,
- Bool *);
-
- * Until this is reworked, it's probably best to leave it unprotoized.
- * The code works regardless.
- */
-typedef Status (*XcmsDDConversionProc)( /* using device-dependent version */
- XcmsCCC /* ccc */,
- XcmsColor* /* pcolors_in_out */,
- unsigned int /* ncolors */,
- Bool* /* pCompressed */
- );
-
-typedef Status (*XcmsDIConversionProc)( /* using device-independent version */
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* pcolors_in_out */,
- unsigned int /* ncolors */
- );
-
-typedef XcmsDIConversionProc XcmsConversionProc;
-typedef XcmsConversionProc *XcmsFuncListPtr;
-
-typedef int (*XcmsParseStringProc)( /* Color String Parsing Proc */
- char* /* color_string */,
- XcmsColor* /* color_return */
-);
-
- /*
- * Color Space -- per Color Space related data (Device-Independent
- * or Device-Dependent)
- */
-typedef struct _XcmsColorSpace {
- const char *prefix; /* Prefix of string format. */
- XcmsColorFormat id; /* Format ID number. */
- XcmsParseStringProc parseString;
- /* String format parsing function */
- XcmsFuncListPtr to_CIEXYZ; /* Pointer to an array of function */
- /* pointers such that when the */
- /* functions are executed in sequence */
- /* will convert a XcmsColor structure */
- /* from this color space to CIEXYZ */
- /* space. */
- XcmsFuncListPtr from_CIEXYZ;/* Pointer to an array of function */
- /* pointers such that when the */
- /* functions are executed in sequence */
- /* will convert a XcmsColor structure */
- /* from CIEXYZ space to this color */
- /* space. */
- int inverse_flag; /* If 1, indicates that for 0 <= i < n */
- /* where n is the number of function */
- /* pointers in the lists to_CIEXYZ */
- /* and from_CIEXYZ; for each function */
- /* to_CIEXYZ[i] its inverse function */
- /* is from_CIEXYZ[n - i]. */
-
-} XcmsColorSpace;
-
- /*
- * Screen Color Characterization Function Set -- per device class
- * color space conversion functions.
- */
-typedef struct _XcmsFunctionSet {
- XcmsColorSpace **DDColorSpaces;
- /* Pointer to an array of pointers to */
- /* Device-DEPENDENT color spaces */
- /* understood by this SCCFuncSet. */
- XcmsScreenInitProc screenInitProc;
- /* Screen initialization function that */
- /* reads Screen Color Characterization*/
- /* Data off properties on the screen's*/
- /* root window. */
- XcmsScreenFreeProc screenFreeProc;
- /* Function that frees the SCCData */
- /* structures. */
-} XcmsFunctionSet;
-
-_XFUNCPROTOBEGIN
-
-extern Status XcmsAddColorSpace (
- XcmsColorSpace* /* pColorSpace */
-);
-
-extern Status XcmsAddFunctionSet (
- XcmsFunctionSet* /* functionSet */
-);
-
-extern Status XcmsAllocColor (
- Display* /* dpy */,
- Colormap /* colormap */,
- XcmsColor* /* color_in_out */,
- XcmsColorFormat /* result_format */
-);
-
-extern Status XcmsAllocNamedColor (
- Display* /* dpy */,
- Colormap /* colormap */,
- _Xconst char* /* color_string */,
- XcmsColor* /* color_scrn_return */,
- XcmsColor* /* color_exact_return */,
- XcmsColorFormat /* result_format */
-);
-
-extern XcmsCCC XcmsCCCOfColormap (
- Display* /* dpy */,
- Colormap /* colormap */
-);
-
-extern Status XcmsCIELabClipab(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELabClipL(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELabClipLab(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELabQueryMaxC (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsFloat /* L_star */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELabQueryMaxL (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsFloat /* chroma */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELabQueryMaxLC (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELabQueryMinL (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsFloat /* chroma */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELabToCIEXYZ (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIELabWhiteShiftColors(
- XcmsCCC /* ccc */,
- XcmsColor* /* initial_white_point*/,
- XcmsColor* /* target_white_point*/,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELuvClipL(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELuvClipLuv(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELuvClipuv(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIELuvQueryMaxC (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsFloat /* L_star */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELuvQueryMaxL (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsFloat /* chroma */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELuvQueryMaxLC (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELuvQueryMinL (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue_angle */,
- XcmsFloat /* chroma */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsCIELuvToCIEuvY (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIELuvWhiteShiftColors(
- XcmsCCC /* ccc */,
- XcmsColor* /* initial_white_point*/,
- XcmsColor* /* target_white_point*/,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIEXYZToCIELab (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIEXYZToCIEuvY (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIEXYZToCIExyY (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIEXYZToRGBi (
- XcmsCCC /* ccc */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsCIEuvYToCIELuv (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIEuvYToCIEXYZ (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIEuvYToTekHVC (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsCIExyYToCIEXYZ (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern XcmsColor *XcmsClientWhitePointOfCCC (
- XcmsCCC /* ccc */
-);
-
-extern Status XcmsConvertColors (
- XcmsCCC /* ccc */,
- XcmsColor* /* colorArry_in_out */,
- unsigned int /* nColors */,
- XcmsColorFormat /* targetFormat */,
- Bool* /* compArry_return */
-);
-
-extern XcmsCCC XcmsCreateCCC (
- Display* /* dpy */,
- int /* screenNumber */,
- Visual* /* visual */,
- XcmsColor* /* clientWhitePt */,
- XcmsCompressionProc /* gamutCompProc */,
- XPointer /* gamutCompClientData */,
- XcmsWhiteAdjustProc /* whitePtAdjProc */,
- XPointer /* whitePtAdjClientData */
-);
-
-extern XcmsCCC XcmsDefaultCCC (
- Display* /* dpy */,
- int /* screenNumber */
-);
-
-extern Display *XcmsDisplayOfCCC (
- XcmsCCC /* ccc */
-);
-
-extern XcmsColorFormat XcmsFormatOfPrefix (
- char* /* prefix */
-);
-
-extern void XcmsFreeCCC (
- XcmsCCC /* ccc */
-);
-
-extern Status XcmsLookupColor (
- Display* /* dpy */,
- Colormap /* colormap */,
- _Xconst char* /* color_string */,
- XcmsColor* /* pColor_exact_in_out */,
- XcmsColor* /* pColor_scrn_in_out */,
- XcmsColorFormat /* result_format */
-);
-
-extern char *XcmsPrefixOfFormat (
- XcmsColorFormat /* id */
-);
-
-extern Status XcmsQueryBlack (
- XcmsCCC /* ccc */,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsQueryBlue (
- XcmsCCC /* ccc */,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsQueryColor (
- Display* /* dpy */,
- Colormap /* colormap */,
- XcmsColor* /* pColor_in_out */,
- XcmsColorFormat /* result_format */
-);
-
-extern Status XcmsQueryColors (
- Display* /* dpy */,
- Colormap /* colormap */,
- XcmsColor* /* colorArry_in_out */,
- unsigned int /* nColors */,
- XcmsColorFormat /* result_format */
-);
-
-extern Status XcmsQueryGreen (
- XcmsCCC /* ccc */,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsQueryRed (
- XcmsCCC /* ccc */,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsQueryWhite (
- XcmsCCC /* ccc */,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsRGBiToCIEXYZ (
- XcmsCCC /* ccc */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsRGBiToRGB (
- XcmsCCC /* ccc */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsRGBToRGBi (
- XcmsCCC /* ccc */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern int XcmsScreenNumberOfCCC (
- XcmsCCC /* ccc */
-);
-
-extern XcmsColor *XcmsScreenWhitePointOfCCC (
- XcmsCCC /* ccc */
-);
-
-extern XcmsCCC XcmsSetCCCOfColormap(
- Display* /* dpy */,
- Colormap /* colormap */,
- XcmsCCC /* ccc */
-);
-
-extern XcmsCompressionProc XcmsSetCompressionProc (
- XcmsCCC /* ccc */,
- XcmsCompressionProc /* compression_proc */,
- XPointer /* client_data */
-);
-
-extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
- XcmsCCC /* ccc */,
- XcmsWhiteAdjustProc /* white_adjust_proc */,
- XPointer /* client_data */
-);
-
-extern Status XcmsSetWhitePoint (
- XcmsCCC /* ccc */,
- XcmsColor* /* color */
-);
-
-extern Status XcmsStoreColor (
- Display* /* dpy */,
- Colormap /* colormap */,
- XcmsColor* /* pColor_in */
-);
-
-extern Status XcmsStoreColors (
- Display* /* dpy */,
- Colormap /* colormap */,
- XcmsColor* /* colorArry_in */,
- unsigned int /* nColors */,
- Bool* /* compArry_return */
-);
-
-extern Status XcmsTekHVCClipC(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsTekHVCClipV(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsTekHVCClipVC(
- XcmsCCC /* ccc */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- unsigned int /* index */,
- Bool* /* compression_flags_return */
-);
-
-extern Status XcmsTekHVCQueryMaxC (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue */,
- XcmsFloat /* value */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsTekHVCQueryMaxV (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue */,
- XcmsFloat /* chroma */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsTekHVCQueryMaxVC (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsTekHVCQueryMaxVSamples (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue */,
- XcmsColor* /* colors_return */,
- unsigned int /* nsamples */
-);
-
-extern Status XcmsTekHVCQueryMinV (
- XcmsCCC /* ccc */,
- XcmsFloat /* hue */,
- XcmsFloat /* chroma */,
- XcmsColor* /* color_return */
-);
-
-extern Status XcmsTekHVCToCIEuvY (
- XcmsCCC /* ccc */,
- XcmsColor* /* white_point */,
- XcmsColor* /* colors */,
- unsigned int /* ncolors */
-);
-
-extern Status XcmsTekHVCWhiteShiftColors(
- XcmsCCC /* ccc */,
- XcmsColor* /* initial_white_point*/,
- XcmsColor* /* target_white_point*/,
- XcmsColorFormat /* target_format */,
- XcmsColor* /* colors_in_out */,
- unsigned int /* ncolors */,
- Bool* /* compression_flags_return */
-);
-
-extern Visual *XcmsVisualOfCCC (
- XcmsCCC /* ccc */
-);
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-_XFUNCPROTOEND
-
-#endif /* !defined(_X11_XCMS_H_) && !defined(_XCMS_H_) */
diff --git a/nx-X11/lib/X11/Xcms.txt b/nx-X11/lib/X11/Xcms.txt
deleted file mode 100644
index 1c5b1adec..000000000
--- a/nx-X11/lib/X11/Xcms.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * (c) Copyright 1990 1991 Tektronix Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Tektronix not be used
- * in advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * Tektronix disclaims all warranties with regard to this software, including
- * all implied warranties of merchantability and fitness, in no event shall
- * Tektronix be liable for any special, indirect or consequential damages or
- * any damages whatsoever resulting from loss of use, data or profits,
- * whether in an action of contract, negligence or other tortious action,
- * arising out of or in connection with the use or performance of this
- * software.
- *
- *
- * NAME
- * Xcms.txt
- *
- * DESCRIPTION
- * Sample Color Name Database
- *
- */
-
-
-This device-independent color name database is provided just as an example.
-There are no claims that these color specifications are or should be bound
-to the corresponding color name.
-
-As you can see, the start of the database is indicated by "XCMS_COLORDB_START".
-Anything before this is assumed to be comments. The "0.1" indicates the
-version number of the format/syntax used in this file. The color name is
-delimited from the color specification by one or more tabs.
-
-XCMS_COLORDB_START 0.1
-cms red CIEXYZ:0.3811/0.2073/0.0213
-cms green CIEXYZ:0.3203/0.6805/0.1430
-cms blue CIEXYZ:0.2483/0.1122/1.2417
-XCMS_COLORDB_END
diff --git a/nx-X11/lib/X11/Xcmsint.h b/nx-X11/lib/X11/Xcmsint.h
deleted file mode 100644
index 8a2decb11..000000000
--- a/nx-X11/lib/X11/Xcmsint.h
+++ /dev/null
@@ -1,260 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * DESCRIPTION
- * Private include file for Color Management System.
- * (i.e., for API internal use only)
- *
- */
-
-#ifndef _XCMSINT_H_
-#define _XCMSINT_H_
-
-#include <nx-X11/Xcms.h>
-
-/*
- * DEFINES
- */
-
- /*
- * Private Status Value
- */
-#define _XCMS_NEWNAME -1
-
- /*
- * Color Space ID's are of XcmsColorFormat type.
- *
- * bit 31
- * 0 == Device-Independent
- * 1 == Device-Dependent
- *
- * bit 30:
- * 0 == Registered with X Consortium
- * 1 == Unregistered
- */
-#define XCMS_DD_ID(id) ((id) & (XcmsColorFormat)0x80000000)
-#define XCMS_DI_ID(id) (!((id) & (XcmsColorFormat)0x80000000))
-#define XCMS_UNREG_ID(id) ((id) & (XcmsColorFormat)0x40000000)
-#define XCMS_REG_ID(id) (!((id) & (XcmsColorFormat)0x40000000))
-#define XCMS_FIRST_REG_DI_ID (XcmsColorFormat)0x00000001
-#define XCMS_FIRST_UNREG_DI_ID (XcmsColorFormat)0x40000000
-#define XCMS_FIRST_REG_DD_ID (XcmsColorFormat)0x80000000
-#define XCMS_FIRST_UNREG_DD_ID (XcmsColorFormat)0xc0000000
-
-/*
- * TYPEDEFS
- */
-
- /*
- * Structure for caching Colormap info.
- * This is provided for the Xlib modifications to:
- * XAllocNamedColor()
- * XLookupColor()
- * XParseColor()
- * XStoreNamedColor()
- */
-typedef struct _XcmsCmapRec {
- Colormap cmapID;
- Display *dpy;
- Window windowID;
- Visual *visual;
- struct _XcmsCCC *ccc;
- struct _XcmsCmapRec *pNext;
-} XcmsCmapRec;
-
- /*
- * Intensity Record (i.e., value / intensity tuple)
- */
-typedef struct _IntensityRec {
- unsigned short value;
- XcmsFloat intensity;
-} IntensityRec;
-
- /*
- * Intensity Table
- */
-typedef struct _IntensityTbl {
- IntensityRec *pBase;
- unsigned int nEntries;
-} IntensityTbl;
-
- /*
- * Structure for storing per-Visual Intensity Tables (aka gamma maps).
- */
-typedef struct _XcmsIntensityMap {
- VisualID visualID;
- XPointer screenData; /* pointer to corresponding Screen Color*/
- /* Characterization Data */
- void (*pFreeScreenData)(XPointer pScreenDataTemp); /* Function that frees a Screen */
- /* structure. */
- struct _XcmsIntensityMap *pNext;
-} XcmsIntensityMap;
-
-
- /*
- * Structure for storing "registered" color space prefix/ID
- */
-typedef struct _XcmsRegColorSpaceEntry {
- const char *prefix; /* Color Space prefix (e.g., "CIEXYZ:") */
- XcmsColorFormat id; /* Color Space ID (e.g., XcmsCIEXYZFormat) */
-} XcmsRegColorSpaceEntry;
-
-
- /*
- * Xcms Per Display (i.e. connection) related data
- */
-typedef struct _XcmsPerDpyInfo {
-
- XcmsCCC paDefaultCCC; /* based on default visual of screen */
- /*
- * Pointer to an array of XcmsCCC structures, one for
- * each screen.
- */
- XcmsCmapRec *pClientCmaps; /* Pointer to linked list of XcmsCmapRec's */
-
-} XcmsPerDpyInfo, *XcmsPerDpyInfoPtr;
-
-/*
- * DEFINES
- */
-
-#define XDCCC_NUMBER 0x8000000L /* 2**27 per XDCCC */
-
-#ifdef GRAY
-#define XDCCC_SCREENWHITEPT_ATOM_NAME "XDCCC_GRAY_SCREENWHITEPOINT"
-#define XDCCC_GRAY_CORRECT_ATOM_NAME "XDCCC_GRAY_CORRECTION"
-#endif /* GRAY */
-
-#ifndef _ConversionValues
-typedef struct _ConversionValues {
- IntensityTbl IntensityTbl;
-} ConversionValues;
-#endif
-
-#ifdef GRAY
-typedef struct {
- IntensityTbl *IntensityTbl;
-} GRAY_SCCData;
-#endif /* GRAY */
-
-/*
- * DEFINES
- */
-
-#define XDCCC_MATRIX_ATOM_NAME "XDCCC_LINEAR_RGB_MATRICES"
-#define XDCCC_CORRECT_ATOM_NAME "XDCCC_LINEAR_RGB_CORRECTION"
-
-typedef struct {
- XcmsFloat XYZtoRGBmatrix[3][3];
- XcmsFloat RGBtoXYZmatrix[3][3];
- IntensityTbl *pRedTbl;
- IntensityTbl *pGreenTbl;
- IntensityTbl *pBlueTbl;
-} LINEAR_RGB_SCCData;
-
-/* function prototypes */
-extern XcmsCmapRec *
-_XcmsAddCmapRec(
- Display *dpy,
- Colormap cmap,
- Window windowID,
- Visual *visual);
-extern void
-_XcmsRGB_to_XColor(
- XcmsColor *pColors,
- XColor *pXColors,
- unsigned int nColors);
-extern Status
-_XcmsResolveColorString (
- XcmsCCC ccc,
- const char **color_string,
- XcmsColor *pColor_exact_return,
- XcmsColorFormat result_format);
-extern void
-_XUnresolveColor(
- XcmsCCC ccc,
- XColor *pXColor);
-/*
- * DESCRIPTION
- * Include file for defining the math macros used in the
- * XCMS source. Instead of using math library routines
- * directly, XCMS uses macros so that based on the
- * definitions here, vendors and sites can specify exactly
- * what routine will be called (those from libm.a or their
- * custom routines). If not defined to math library routines
- * (e.g., sqrt in libm.a), then the client is not forced to
- * be linked with -lm.
- */
-
-#define XCMS_ATAN(x) _XcmsArcTangent(x)
-#define XCMS_COS(x) _XcmsCosine(x)
-#define XCMS_CUBEROOT(x) _XcmsCubeRoot(x)
-#define XCMS_FABS(x) ((x) < 0.0 ? -(x) : (x))
-#define XCMS_SIN(x) _XcmsSine(x)
-#define XCMS_SQRT(x) _XcmsSquareRoot(x)
-#define XCMS_TAN(x) (XCMS_SIN(x) / XCMS_COS(x))
-
-double _XcmsArcTangent(double a);
-double _XcmsCosine(double a);
-double _XcmsCubeRoot(double a);
-double _XcmsSine(double a);
-double _XcmsSquareRoot(double a);
-
-/*
- * DEFINES FOR GAMUT COMPRESSION AND QUERY ROUTINES
- */
-#ifndef PI
-# ifdef M_PI
-# define PI M_PI
-# else
-# define PI 3.14159265358979323846264338327950
-# endif /* M_PI */
-#endif /* PI */
-#ifndef degrees
-# define degrees(r) ((XcmsFloat)(r) * 180.0 / PI)
-#endif /* degrees */
-#ifndef radians
-# define radians(d) ((XcmsFloat)(d) * PI / 180.0)
-#endif /* radians */
-
-#define XCMS_CIEUSTAROFHUE(h,c) \
-((XCMS_COS((h)) == 0.0) ? (XcmsFloat)0.0 : (XcmsFloat) \
-((XcmsFloat)(c) / (XcmsFloat)XCMS_SQRT((XCMS_TAN(h) * XCMS_TAN(h)) + \
-(XcmsFloat)1.0)))
-#define XCMS_CIEVSTAROFHUE(h,c) \
-((XCMS_COS((h)) == 0.0) ? (XcmsFloat)0.0 : (XcmsFloat) \
-((XcmsFloat)(c) / (XcmsFloat)XCMS_SQRT(((XcmsFloat)1.0 / \
-(XcmsFloat)(XCMS_TAN(h) * XCMS_TAN(h))) + (XcmsFloat)1.0)))
-/* this hue is returned in radians */
-#define XCMS_CIELUV_PMETRIC_HUE(u,v) \
-(((u) != 0.0) ? XCMS_ATAN( (v) / (u)) : ((v >= 0.0) ? PI / 2 : -(PI / 2)))
-#define XCMS_CIELUV_PMETRIC_CHROMA(u,v) XCMS_SQRT(((u)*(u)) + ((v)*(v)))
-
-#define XCMS_CIEASTAROFHUE(h,c) XCMS_CIEUSTAROFHUE((h), (c))
-#define XCMS_CIEBSTAROFHUE(h,c) XCMS_CIEVSTAROFHUE((h), (c))
-#define XCMS_CIELAB_PMETRIC_HUE(a,b) XCMS_CIELUV_PMETRIC_HUE((a), (b))
-#define XCMS_CIELAB_PMETRIC_CHROMA(a,b) XCMS_CIELUV_PMETRIC_CHROMA((a), (b))
-
-#endif /* _XCMSINT_H_ */
diff --git a/nx-X11/lib/X11/XimImSw.h b/nx-X11/lib/X11/XimImSw.h
deleted file mode 100644
index e3a962552..000000000
--- a/nx-X11/lib/X11/XimImSw.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifndef _XIMIMSW_H
-#define _XIMIMSW_H
-
-typedef struct {
- Bool (*checkprocessing)(
- Xim im
- );
- Bool (*im_open)(
- Xim im
- );
- void (*im_free)(
- Xim im
- );
-} XimImsportSW;
-
-extern XimImsportSW _XimImSportRec[];
-
-#endif /* _XIMIMSW_H */
diff --git a/nx-X11/lib/X11/XimProto.h b/nx-X11/lib/X11/XimProto.h
deleted file mode 100644
index 6b0096dd6..000000000
--- a/nx-X11/lib/X11/XimProto.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifndef _XIMPROTO_H
-#define _XIMPROTO_H
-
-/*
- * Default Preconnection selection target
- */
-#define XIM_SERVERS "XIM_SERVERS"
-#define XIM_LOCALES "LOCALES"
-#define XIM_TRANSPORT "TRANSPORT"
-
-/*
- * categories in XIM_SERVERS
- */
-#define XIM_SERVER_CATEGORY "@server="
-#define XIM_LOCAL_CATEGORY "@locale="
-#define XIM_TRANSPORT_CATEGORY "@transport="
-
-/*
- * Xim implementation revision
- */
-#define PROTOCOLMAJORVERSION 1
-#define PROTOCOLMINORVERSION 0
-
-/*
- * Major Protocol number
- */
-#define XIM_CONNECT 1
-#define XIM_CONNECT_REPLY 2
-#define XIM_DISCONNECT 3
-#define XIM_DISCONNECT_REPLY 4
-
-#define XIM_AUTH_REQUIRED 10
-#define XIM_AUTH_REPLY 11
-#define XIM_AUTH_NEXT 12
-#define XIM_AUTH_SETUP 13
-#define XIM_AUTH_NG 14
-
-#define XIM_ERROR 20
-
-#define XIM_OPEN 30
-#define XIM_OPEN_REPLY 31
-#define XIM_CLOSE 32
-#define XIM_CLOSE_REPLY 33
-#define XIM_REGISTER_TRIGGERKEYS 34
-#define XIM_TRIGGER_NOTIFY 35
-#define XIM_TRIGGER_NOTIFY_REPLY 36
-#define XIM_SET_EVENT_MASK 37
-#define XIM_ENCODING_NEGOTIATION 38
-#define XIM_ENCODING_NEGOTIATION_REPLY 39
-#define XIM_QUERY_EXTENSION 40
-#define XIM_QUERY_EXTENSION_REPLY 41
-#define XIM_SET_IM_VALUES 42
-#define XIM_SET_IM_VALUES_REPLY 43
-#define XIM_GET_IM_VALUES 44
-#define XIM_GET_IM_VALUES_REPLY 45
-
-#define XIM_CREATE_IC 50
-#define XIM_CREATE_IC_REPLY 51
-#define XIM_DESTROY_IC 52
-#define XIM_DESTROY_IC_REPLY 53
-#define XIM_SET_IC_VALUES 54
-#define XIM_SET_IC_VALUES_REPLY 55
-#define XIM_GET_IC_VALUES 56
-#define XIM_GET_IC_VALUES_REPLY 57
-#define XIM_SET_IC_FOCUS 58
-#define XIM_UNSET_IC_FOCUS 59
-#define XIM_FORWARD_EVENT 60
-#define XIM_SYNC 61
-#define XIM_SYNC_REPLY 62
-#define XIM_COMMIT 63
-#define XIM_RESET_IC 64
-#define XIM_RESET_IC_REPLY 65
-
-#define XIM_GEOMETRY 70
-#define XIM_STR_CONVERSION 71
-#define XIM_STR_CONVERSION_REPLY 72
-#define XIM_PREEDIT_START 73
-#define XIM_PREEDIT_START_REPLY 74
-#define XIM_PREEDIT_DRAW 75
-#define XIM_PREEDIT_CARET 76
-#define XIM_PREEDIT_CARET_REPLY 77
-#define XIM_PREEDIT_DONE 78
-#define XIM_STATUS_START 79
-#define XIM_STATUS_DRAW 80
-#define XIM_STATUS_DONE 81
-#define XIM_PREEDITSTATE 82
-
-/*
- * values for the flag of XIM_ERROR
- */
-#define XIM_IMID_VALID 0x0001
-#define XIM_ICID_VALID 0x0002
-
-/*
- * XIM Error Code
- */
-#define XIM_BadAlloc 1
-#define XIM_BadStyle 2
-#define XIM_BadClientWindow 3
-#define XIM_BadFocusWindow 4
-#define XIM_BadArea 5
-#define XIM_BadSpotLocation 6
-#define XIM_BadColormap 7
-#define XIM_BadAtom 8
-#define XIM_BadPixel 9
-#define XIM_BadPixmap 10
-#define XIM_BadName 11
-#define XIM_BadCursor 12
-#define XIM_BadProtocol 13
-#define XIM_BadForeground 14
-#define XIM_BadBackground 15
-#define XIM_LocaleNotSupported 16
-#define XIM_BadSomething 999
-
-/*
- * byte order
- */
-#define BIGENDIAN (CARD8)0x42 /* MSB first */
-#define LITTLEENDIAN (CARD8)0x6c /* LSB first */
-
-/*
- * values for the type of XIMATTR & XICATTR
- */
-#define XimType_SeparatorOfNestedList 0
-#define XimType_CARD8 1
-#define XimType_CARD16 2
-#define XimType_CARD32 3
-#define XimType_STRING8 4
-#define XimType_Window 5
-#define XimType_XIMStyles 10
-#define XimType_XRectangle 11
-#define XimType_XPoint 12
-#define XimType_XFontSet 13
-#define XimType_XIMOptions 14
-#define XimType_XIMHotKeyTriggers 15
-#define XimType_XIMHotKeyState 16
-#define XimType_XIMStringConversion 17
-#define XimType_NEST 0x7fff
-
-/*
- * values for the category of XIM_ENCODING_NEGITIATON_REPLY
- */
-#define XIM_Encoding_NameCategory 0
-#define XIM_Encoding_DetailCategory 1
-
-/*
- * value for the index of XIM_ENCODING_NEGITIATON_REPLY
- */
-#define XIM_Default_Encoding_IDX -1
-
-/*
- * value for the flag of XIM_FORWARD_EVENT, XIM_COMMIT
- */
-#define XimSYNCHRONUS 0x0001
-#define XimLookupChars 0x0002
-#define XimLookupKeySym 0x0004
-#define XimLookupBoth 0x0006
-
-/*
- * request packet header size
- */
-#define XIM_HEADER_SIZE \
- sizeof(CARD8) /* sizeof mejor-opcode */ \
- + sizeof(CARD8) /* sizeof minor-opcode */ \
- + sizeof(INT16) /* sizeof length */
-
-/*
- * Client Message data size
- */
-#define XIM_CM_DATA_SIZE 20
-
-/*
- * XIM data structure
- */
-typedef CARD16 BITMASK16;
-typedef CARD32 BITMASK32;
-typedef CARD32 EVENTMASK;
-
-typedef CARD16 XIMID; /* Input Method ID */
-typedef CARD16 XICID; /* Input Context ID */
-
-/*
- * Padding macro
- */
-#define XIM_PAD(length) ((4 - ((length) % 4)) % 4)
-
-#define XIM_SET_PAD(ptr, length) \
- { \
- register int Counter = XIM_PAD((int)length); \
- if (Counter) { \
- register char *Ptr = (char *)(ptr) + (length); \
- length += Counter; \
- for (; Counter; --Counter, ++Ptr) \
- *Ptr = '\0'; \
- } \
- }
-
-#endif /* _XIMPROTO_H */
diff --git a/nx-X11/lib/X11/XimThai.h b/nx-X11/lib/X11/XimThai.h
deleted file mode 100644
index 7cc238311..000000000
--- a/nx-X11/lib/X11/XimThai.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/***********************************************************
-
-Copyright 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-/*
-**++
-** FACILITY:
-**
-** Xlib
-**
-** ABSTRACT:
-**
-** Definition file for Thai specific functions.
-**
-** MODIFICATION HISTORY:
-**
-**/
-
-#ifndef _XIMTHAI_H_
-#define _XIMTHAI_H_
-
-#include <nx-X11/Xlib.h>
-
-/* Classification of characters in TIS620 according to WTT */
-
-#define CTRL 0 /* control chars */
-#define NON 1 /* non composibles */
-#define CONS 2 /* consonants */
-#define LV 3 /* leading vowels */
-#define FV1 4 /* following vowels */
-#define FV2 5
-#define FV3 6
-#define BV1 7 /* below vowels */
-#define BV2 8
-#define BD 9 /* below diacritics */
-#define TONE 10 /* tonemarks */
-#define AD1 11 /* above diacritics */
-#define AD2 12
-#define AD3 13
-#define AV1 14 /* above vowels */
-#define AV2 15
-#define AV3 16
-
-
-/* extended classification */
-
-#define DEAD 17 /* group of non-spacing characters */
-
-
-/* display levels in display cell */
-
-#define NONDISP 0 /* non displayable */
-#define TOP 1
-#define ABOVE 2
-#define BASE 3
-#define BELOW 4
-
-
-/* Input Sequence Check modes */
-
-#define WTT_ISC1 1 /* WTT default ISC mode */
-#define WTT_ISC2 2 /* WTT strict ISC mode */
-#define THAICAT_ISC 3 /* THAICAT ISC mode */
-#define NOISC 255 /* No ISC */
-
-
-#endif /* _XIMTHAI_H_ */
diff --git a/nx-X11/lib/X11/XimTrInt.h b/nx-X11/lib/X11/XimTrInt.h
deleted file mode 100644
index bceab9886..000000000
--- a/nx-X11/lib/X11/XimTrInt.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifndef _XIMTRINT_H
-#define _XIMTRINT_H
-
-#include "Ximint.h"
-
-typedef struct {
- const char *transportname;
- Bool (*config)(
- Xim,
- char *
- );
-} TransportSW;
-
-extern TransportSW _XimTransportRec[];
-
-/*
- * Global symbols
- */
-
-extern Bool _XimXConf(
- Xim im,
- char *address
-);
-
-#if defined(TCPCONN) || defined(UNIXCONN)
-
-extern Bool _XimTransConf(
- Xim im,
- char *address
-);
-
-#endif
-
-#endif /* _XIMTRINT_H */
diff --git a/nx-X11/lib/X11/XimTrX.h b/nx-X11/lib/X11/XimTrX.h
deleted file mode 100644
index 198d5fa5f..000000000
--- a/nx-X11/lib/X11/XimTrX.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifndef _XIMTRX_H
-#define _XIMTRX_H
-
-typedef struct _XIntrCallbackRec *XIntrCallbackPtr;
-
-typedef struct _XIntrCallbackRec {
- Bool (*func)(
- Xim, INT16, XPointer, XPointer
-);
- XPointer call_data;
- XIntrCallbackPtr next;
-} XIntrCallbackRec ;
-
-typedef struct _XSpecRec {
- XIntrCallbackPtr intr_cb;
- Atom imconnectid;
- Atom improtocolid;
- Atom immoredataid;
- Window lib_connect_wid;
- Window ims_connect_wid;
- XPointer ev;
- CARD32 major_code;
- CARD32 minor_code;
- CARD32 BoundarySize;
-} XSpecRec;
-
-#define _XIM_PROTOCOL "_XIM_PROTOCOL"
-#define _XIM_XCONNECT "_XIM_XCONNECT"
-#define _XIM_MOREDATA "_XIM_MOREDATA"
-
-#define MAJOR_TRANSPORT_VERSION 0
-#define MINOR_TRANSPORT_VERSION 0
-
-#endif /* _XIMTRX_H */
diff --git a/nx-X11/lib/X11/XimTrans.h b/nx-X11/lib/X11/XimTrans.h
deleted file mode 100644
index 8c3aa829a..000000000
--- a/nx-X11/lib/X11/XimTrans.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifndef _XIMTRANS_H
-#define _XIMTRANS_H
-
-typedef struct _TransIntrCallbackRec *TransIntrCallbackPtr;
-
-typedef struct _TransIntrCallbackRec {
- Bool (*func)(
- Xim, INT16, XPointer, XPointer
- );
- XPointer call_data;
- TransIntrCallbackPtr next;
-} TransIntrCallbackRec ;
-
-typedef struct {
- TransIntrCallbackPtr intr_cb;
- struct _XtransConnInfo *trans_conn; /* transport connection object */
- int fd;
- char *address;
- Window window;
- Bool is_putback;
-} TransSpecRec;
-
-
-/*
- * Prototypes
- */
-
-extern Bool _XimTransRegisterDispatcher(
- Xim im,
- Bool (*callback)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data
-);
-
-
-extern Bool _XimTransIntrCallback(
- Xim im,
- Bool (*callback)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data
-);
-
-extern Bool _XimTransCallDispatcher(
- Xim im,
- INT16 len,
- XPointer data
-);
-
-extern void _XimFreeTransIntrCallback(
- Xim im
-);
-
-extern Bool _XimTransFilterWaitEvent(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer arg
-);
-
-extern void _XimTransInternalConnection(
- Display *d,
- int fd,
- XPointer arg
-);
-
-extern Bool _XimTransWrite(
- Xim im,
- INT16 len,
- XPointer data
-);
-
-extern Bool _XimTransRead(
- Xim im,
- XPointer recv_buf,
- int buf_len,
- int *ret_len
-);
-
-extern void _XimTransFlush(
- Xim im
-);
-
-#endif /* _XIMTRANS__H */
diff --git a/nx-X11/lib/X11/Ximint.h b/nx-X11/lib/X11/Ximint.h
deleted file mode 100644
index 9550c6851..000000000
--- a/nx-X11/lib/X11/Ximint.h
+++ /dev/null
@@ -1,995 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Sony Corporation not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. FUJITSU LIMITED and Sony Corporation makes no
-representations about the suitability of this software for any
-purpose. It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED AND SONY CORPORATION DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU LIMITED AND
-SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Motifier: Makoto Wakamatsu Sony Corporation
- makoto@sm.sony.co.jp
-
-******************************************************************/
-
-#ifndef _XIMINT_H
-#define _XIMINT_H
-
-#include <stdio.h>
-#include <nx-X11/Xutil.h>
-
-typedef struct _Xim *Xim;
-typedef struct _Xic *Xic;
-
-/*
- * Input Method data
- */
-#include "XimintP.h"
-#include "XimintL.h"
-
-/*
- * XIM dependent data
- */
-
-typedef struct _XimCommonPrivateRec {
- /* This struct is also inlined in XimLocalPrivateRec, XimProtoPrivateRec. */
- XlcConv ctom_conv;
- XlcConv ctow_conv;
- XlcConv ctoutf8_conv;
- XlcConv cstomb_conv;
- XlcConv cstowc_conv;
- XlcConv cstoutf8_conv;
- XlcConv ucstoc_conv;
- XlcConv ucstoutf8_conv;
-} XimCommonPrivateRec;
-
-typedef union _XIMPrivateRec {
- XimCommonPrivateRec common;
- XimLocalPrivateRec local;
- XimProtoPrivateRec proto;
-} XIMPrivateRec;
-
-/*
- * IM struct
- */
-typedef struct _Xim {
- XIMMethods methods;
- XIMCoreRec core;
- XIMPrivateRec private;
-} XimRec;
-
-/*
- * IC deprndent data
- */
-typedef union _XICPrivateRec {
- XicLocalPrivateRec local;
- XicProtoPrivateRec proto;
-} XICPrivateRec;
-
-/*
- * IC struct
- */
-typedef struct _Xic {
- XICMethods methods;
- XICCoreRec core;
- XICPrivateRec private;
-} XicRec;
-
-typedef struct _XimDefIMValues {
- XIMValuesList *im_values_list;
- XIMValuesList *ic_values_list;
- XIMStyles *styles;
- XIMCallback destroy_callback;
- char *res_name;
- char *res_class;
- Bool visible_position;
-} XimDefIMValues;
-
-typedef struct _XimDefICValues {
- XIMStyle input_style;
- Window client_window;
- Window focus_window;
- unsigned long filter_events;
- XICCallback geometry_callback;
- char *res_name;
- char *res_class;
- XICCallback destroy_callback;
- XICCallback preedit_state_notify_callback;
- XICCallback string_conversion_callback;
- XIMStringConversionText string_conversion;
- XIMResetState reset_state;
- XIMHotKeyTriggers *hotkey;
- XIMHotKeyState hotkey_state;
- ICPreeditAttributes preedit_attr;
- ICStatusAttributes status_attr;
-} XimDefICValues;
-
-#define XIM_MODE_IM_GET (1 << 0)
-#define XIM_MODE_IM_SET (1 << 1)
-#define XIM_MODE_IM_DEFAULT (1 << 2)
-
-#define XIM_MODE_PRE_GET (1 << 0)
-#define XIM_MODE_PRE_SET (1 << 1)
-#define XIM_MODE_PRE_CREATE (1 << 2)
-#define XIM_MODE_PRE_ONCE (1 << 3)
-#define XIM_MODE_PRE_DEFAULT (1 << 4)
-
-#define XIM_MODE_STS_GET (1 << 5)
-#define XIM_MODE_STS_SET (1 << 6)
-#define XIM_MODE_STS_CREATE (1 << 7)
-#define XIM_MODE_STS_ONCE (1 << 8)
-#define XIM_MODE_STS_DEFAULT (1 << 9)
-
-#define XIM_MODE_IC_GET (XIM_MODE_PRE_GET | XIM_MODE_STS_GET)
-#define XIM_MODE_IC_SET (XIM_MODE_PRE_SET | XIM_MODE_STS_SET)
-#define XIM_MODE_IC_CREATE (XIM_MODE_PRE_CREATE | XIM_MODE_STS_CREATE)
-#define XIM_MODE_IC_ONCE (XIM_MODE_PRE_ONCE | XIM_MODE_STS_ONCE)
-#define XIM_MODE_IC_DEFAULT (XIM_MODE_PRE_DEFAULT | XIM_MODE_STS_DEFAULT)
-
-#define XIM_MODE_PRE_MASK (XIM_MODE_PRE_GET | XIM_MODE_PRE_SET | \
- XIM_MODE_PRE_CREATE | XIM_MODE_PRE_ONCE | \
- XIM_MODE_PRE_DEFAULT)
-#define XIM_MODE_STS_MASK (XIM_MODE_STS_GET | XIM_MODE_STS_SET | \
- XIM_MODE_STS_CREATE | XIM_MODE_STS_ONCE | \
- XIM_MODE_STS_DEFAULT)
-
-#define XIM_SETIMDEFAULTS (1L << 0)
-#define XIM_SETIMVALUES (1L << 1)
-#define XIM_GETIMVALUES (1L << 2)
-
-#define XIM_SETICDEFAULTS (1L << 0)
-#define XIM_CREATEIC (1L << 1)
-#define XIM_SETICVALUES (1L << 2)
-#define XIM_GETICVALUES (1L << 3)
-#define XIM_PREEDIT_ATTR (1L << 4)
-#define XIM_STATUS_ATTR (1L << 5)
-
-#define XIM_CHECK_VALID 0
-#define XIM_CHECK_INVALID 1
-#define XIM_CHECK_ERROR 2
-
-#define FILTERD True
-#define NOTFILTERD False
-
-#define XIMMODIFIER "@im="
-
-#define XIM_TRUE True
-#define XIM_FALSE False
-#define XIM_OVERFLOW (-1)
-
-#define BRL_UC_ROW 0x2800
-
-/*
- * Global symbols
- */
-
-XPointer _XimGetLocaleCode (
- const char *encoding_name
-);
-
-int _XimGetCharCode (
- XPointer conv,
- KeySym keysym,
- unsigned char *buf,
- int nbytes
-);
-
-unsigned int KeySymToUcs4 (
- KeySym keysym
-);
-
-extern Bool _XimSetIMResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num
-);
-
-extern Bool _XimSetICResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num
-);
-
-extern Bool _XimSetInnerIMResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num
-);
-
-extern Bool _XimSetInnerICResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num
-);
-
-extern Bool _XimCheckCreateICValues(
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern XIMResourceList _XimGetResourceListRec(
- XIMResourceList res_list,
- unsigned int list_num,
- const char *name
-);
-
-extern void _XimSetIMMode(
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern void _XimSetICMode(
- XIMResourceList res_list,
- unsigned int list_num,
- XIMStyle style
-);
-
-extern int _XimCheckIMMode(
- XIMResourceList res_list,
- unsigned long mode
-);
-
-extern int _XimCheckICMode(
- XIMResourceList res_list,
- unsigned long mode
-);
-
-extern Bool _XimSetLocalIMDefaults(
- Xim im,
- XPointer top,
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern Bool _XimSetICDefaults(
- Xic ic,
- XPointer top,
- unsigned long mode,
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern Bool _XimEncodeLocalIMAttr(
- XIMResourceList res,
- XPointer top,
- XPointer val
-);
-
-extern Bool _XimEncodeLocalICAttr(
- Xic ic,
- XIMResourceList res,
- XPointer top,
- XIMArg *arg,
- unsigned long mode
-);
-
-extern Bool _XimCheckLocalInputStyle(
- Xic ic,
- XPointer top,
- XIMArg *values,
- XIMStyles *styles,
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern Bool _XimDecodeLocalIMAttr(
- XIMResourceList res,
- XPointer top,
- XPointer val
-);
-
-extern Bool _XimDecodeLocalICAttr(
- XIMResourceList res,
- XPointer top,
- XPointer val,
- unsigned long mode
-);
-
-extern void _XimGetCurrentIMValues(
- Xim im,
- XimDefIMValues *im_values
-);
-
-extern void _XimSetCurrentIMValues(
- Xim im,
- XimDefIMValues *im_values
-);
-
-extern void _XimGetCurrentICValues(
- Xic ic,
- XimDefICValues *ic_values
-);
-
-extern void _XimSetCurrentICValues(
- Xic ic,
- XimDefICValues *ic_values
-);
-
-extern void _XimInitialResourceInfo(
- void
-);
-
-extern void _XimParseStringFile(
- FILE *fp,
- Xim im
-);
-
-extern Bool _XimCheckIfLocalProcessing(
- Xim im
-);
-
-extern Bool _XimCheckIfThaiProcessing(
- Xim im
-);
-
-extern Bool _XimLocalOpenIM(
- Xim im
-);
-
-extern Bool _XimThaiOpenIM(
- Xim im
-);
-
-extern Bool _XimProtoOpenIM(
- Xim im
-);
-
-extern void _XimLocalIMFree(
- Xim im
-);
-
-extern void _XimThaiIMFree(
- Xim im
-);
-
-extern void _XimProtoIMFree(
- Xim im
-);
-
-extern char * _XimSetIMValueData(
- Xim im,
- XPointer top,
- XIMArg *arg,
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern char * _XimGetIMValueData(
- Xim im,
- XPointer top,
- XIMArg *arg,
- XIMResourceList res_list,
- unsigned int list_num
-);
-
-extern char * _XimSetICValueData(
- Xic ic,
- XPointer top,
- XIMResourceList res_list,
- unsigned int list_num,
- XIMArg *arg,
- unsigned long mode,
- Bool flag
-);
-
-extern char * _XimGetICValueData(
- Xic ic,
- XPointer top,
- XIMResourceList res_list,
- unsigned int list_num,
- XIMArg *arg,
- unsigned long mode
-);
-
-extern char * _XimLocalSetIMValues(
- XIM im,
- XIMArg *arg
-);
-
-extern char * _XimLocalGetIMValues(
- XIM im,
- XIMArg *arg
-);
-
-extern XIC _XimLocalCreateIC(
- XIM im,
- XIMArg *arg
-);
-
-extern Bool _XimDispatchInit(
- Xim im
-);
-
-extern Bool _XimGetAttributeID(
- Xim im,
- CARD16 *buf
-);
-
-extern Bool _XimExtension(
- Xim im
-);
-
-extern void _XimDestroyIMStructureList(
- Xim im
-);
-
-extern char * _XimMakeIMAttrIDList(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- CARD16 *buf,
- INT16 *len,
- unsigned long mode
-);
-
-extern char * _XimMakeICAttrIDList(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- CARD16 *idList,
- INT16 *num,
- unsigned long mode
-);
-
-extern char * _XimDecodeIMATTRIBUTE(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- CARD16 *buf,
- INT16 buf_len,
- XIMArg *arg,
- BITMASK32 mode
-);
-
-extern char * _XimDecodeICATTRIBUTE(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- CARD16 *buf,
- INT16 buf_len,
- XIMArg *arg,
- BITMASK32 mode
-);
-
-extern Bool _XimRegProtoIntrCallback(
- Xim im,
- CARD16 major_code,
- CARD16 minor_code,
- Bool (*proc)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data
-);
-
-extern Bool _XimErrorCallback(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern Bool _XimError(
- Xim im,
- Xic ic,
- CARD16 error_code,
- INT16 detail_length,
- CARD16 type,
- char *detail
-);
-
-extern Bool _XimRegisterTriggerKeysCallback(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern Bool _XimSetEventMaskCallback(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern Bool _XimForwardEventCallback(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern Bool _XimCommitCallback(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern Bool _XimSyncCallback(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern void _XimFreeProtoIntrCallback(
- Xim im
-);
-
-extern XIC _XimProtoCreateIC(
- XIM im,
- XIMArg *arg
-);
-
-extern void _XimRegisterServerFilter(
- Xim im
-);
-
-extern void _XimUnregisterServerFilter(
- Xim im
-);
-
-extern Bool _XimTriggerNotify(
- Xim im,
- Xic ic,
- int mode,
- CARD32 idx
-);
-
-extern Bool _XimProcSyncReply(
- Xim im,
- Xic ic
-);
-
-extern void _XimSendSetFocus(
- Xim im,
- Xic ic
-);
-
-extern Bool _XimForwardEvent(
- Xic ic,
- XEvent *ev,
- Bool sync
-);
-
-extern void _XimFreeRemakeArg(
- XIMArg *arg
-);
-
-extern void _XimServerDestroy(
- Xim im
-);
-
-extern char * _XimEncodeIMATTRIBUTE(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- XIMArg **arg_ret,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- unsigned long mode
-);
-
-extern char * _XimEncodeICATTRIBUTE(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- XIMArg **arg_ret,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- BITMASK32 *flag,
- unsigned long mode
-);
-
-#ifdef EXT_MOVE
-extern Bool _XimExtenMove(
- Xim im,
- Xic ic,
- CARD32 flag,
- CARD16 *buf,
- INT16 length
-);
-#endif
-
-extern int _Ximctstombs(
- XIM im,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state
-);
-
-extern int _Ximctstowcs(
- XIM im,
- char *from,
- int from_len,
- wchar_t *to,
- int to_len,
- Status *state
-);
-
-extern int _Ximctstoutf8(
- XIM im,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state
-);
-
-extern int _XimLcctstombs(
- XIM im,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state
-);
-
-extern int _XimLcctstowcs(
- XIM im,
- char *from,
- int from_len,
- wchar_t *to,
- int to_len,
- Status *state
-);
-
-extern int _XimLcctstoutf8(
- XIM im,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state
-);
-
-extern char _XimGetMyEndian(
- void
-);
-
-extern int _XimCheckDataSize(
- XPointer buf,
- int len
-);
-
-extern void _XimSetHeader(
- XPointer buf,
- CARD8 major_opcode,
- CARD8 minor_opcode,
- INT16 *len
-);
-
-extern Bool _XimSync(
- Xim im,
- Xic ic
-);
-
-extern int _XimProtoMbLookupString(
- XIC xic,
- XKeyEvent *ev,
- char *buffer,
- int bytes,
- KeySym *keysym,
- Status *state
-);
-
-extern int _XimProtoWcLookupString(
- XIC xic,
- XKeyEvent *ev,
- wchar_t *buffer,
- int bytes,
- KeySym *keysym,
- Status *state
-);
-
-extern int _XimProtoUtf8LookupString(
- XIC xic,
- XKeyEvent *ev,
- char *buffer,
- int bytes,
- KeySym *keysym,
- Status *state
-);
-
-extern void _XimRegisterFilter(
- Xic ic
-);
-
-extern void _XimUnregisterFilter(
- Xic ic
-);
-
-extern void _XimReregisterFilter(
- Xic ic
-);
-
-extern Status _XimProtoEventToWire(
- XEvent *re,
- xEvent *event,
- Bool sw
-);
-
-extern Bool _XimProtoWireToEvent(
- XEvent *re,
- xEvent *event,
- Bool sw
-);
-
-#ifdef EXT_FORWARD
-extern Bool _XimExtForwardKeyEvent(
- Xic ic,
- XKeyEvent *ev,
- Bool sync
-);
-#endif
-
-extern int _XimLookupMBText(
- Xic ic,
- XKeyEvent *event,
- char *buffer,
- int nbytes,
- KeySym *keysym,
- XComposeStatus *status
-);
-
-extern int _XimLookupWCText(
- Xic ic,
- XKeyEvent *event,
- wchar_t *buffer,
- int nbytes,
- KeySym *keysym,
- XComposeStatus *status
-);
-
-extern int _XimLookupUTF8Text(
- Xic ic,
- XKeyEvent *event,
- char *buffer,
- int nbytes,
- KeySym *keysym,
- XComposeStatus *status
-);
-
-extern EVENTMASK _XimGetWindowEventmask(
- Xic ic
-);
-
-extern Xic _XimICOfXICID(
- Xim im,
- XICID icid
-);
-
-extern void _XimResetIMInstantiateCallback(
- Xim xim
-);
-
-extern Bool _XimRegisterIMInstantiateCallback(
- XLCd lcd,
- Display *display,
- XrmDatabase rdb,
- char *res_name,
- char *res_class,
- XIDProc callback,
- XPointer client_data
-);
-
-extern Bool _XimUnRegisterIMInstantiateCallback(
- XLCd lcd,
- Display *display,
- XrmDatabase rdb,
- char *res_name,
- char *res_class,
- XIDProc callback,
- XPointer client_data
-);
-
-extern void _XimFreeCommitInfo(
- Xic ic
-);
-
-extern Bool _XimConnect(
- Xim im
-);
-
-extern Bool _XimShutdown(
- Xim im
-);
-
-extern Bool _XimWrite(
- Xim im,
- INT16 len,
- XPointer data
-);
-
-extern Bool _XimRead(
- Xim im,
- INT16 *len,
- XPointer data,
- int data_len,
- Bool (*predicate)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer arg
-);
-
-extern void _XimFlush(
- Xim im
-);
-
-extern Bool _XimFilterWaitEvent(
- Xim im
-);
-
-extern void _XimProcError(
- Xim im,
- Xic ic,
- XPointer data
-);
-
-#ifdef EXT_MOVE
-extern CARD32 _XimExtenArgCheck(
- XIMArg *arg
-);
-#endif
-
-extern Bool _XimCbDispatch(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data
-);
-
-extern Bool _XimLocalFilter(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer client_data
-);
-
-extern XIMResourceList _XimGetResourceListRecByQuark(
- XIMResourceList res_list,
- unsigned int list_num,
- XrmQuark quark
-);
-
-extern Bool _XimReconnectModeCreateIC(
- Xic ic
-);
-
-extern char *_XimLocalSetICValues(
- XIC ic,
- XIMArg *values
-);
-
-extern char * _XimLocalGetICValues(
- XIC ic,
- XIMArg *values
-);
-
-extern int _XimLocalMbLookupString(
- XIC ic,
- XKeyEvent *ev,
- char *buffer,
- int bytes,
- KeySym *keysym,
- Status *status
-);
-
-extern int _XimLocalWcLookupString(
- XIC ic,
- XKeyEvent *ev,
- wchar_t *buffer,
- int bytes,
- KeySym *keysym,
- Status *status
-);
-
-extern int _XimLocalUtf8LookupString(
- XIC ic,
- XKeyEvent *ev,
- char *buffer,
- int bytes,
- KeySym *keysym,
- Status *status
-);
-
-extern Bool _XimThaiFilter(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer client_data
-);
-
-extern XIC _XimThaiCreateIC(
- XIM im,
- XIMArg *values
-);
-
-extern Status _XimThaiCloseIM(
- XIM xim
-);
-
-#ifdef XIM_CONNECTABLE
-extern void _XimSetProtoResource(
- Xim im
-);
-
-extern Bool _XimConnectServer(
- Xim im
-);
-
-extern Bool _XimDelayModeSetAttr(
- Xim im
-);
-
-extern void _XimServerReconectableDestroy(
- void
-);
-
-extern Bool _XimReCreateIC(
- Xic ic
-);
-
-extern Bool _XimEncodeSavedIMATTRIBUTE(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- int *idx,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- unsigned long mode
-);
-
-extern Bool _XimEncodeSavedICATTRIBUTE(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- int *idx,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- unsigned long mode
-);
-#endif
-
-extern Bool
-_XimRegisterDispatcher(
- Xim im,
- Bool (*callback)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data);
-
-extern Bool
-_XimRespSyncReply(
- Xic ic,
- BITMASK16 mode);
-
-#endif /* _XIMINT_H */
diff --git a/nx-X11/lib/X11/XimintL.h b/nx-X11/lib/X11/XimintL.h
deleted file mode 100644
index d2d92387f..000000000
--- a/nx-X11/lib/X11/XimintL.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/******************************************************************
-
- Copyright 1991, 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission. FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Modifier: Franky Ling Digital Equipment Corporation
- frankyling@hgrd01.enet.dec.com
-
-******************************************************************/
-
-#ifndef _XIMINTL_H
-#define _XIMINTL_H
-
-#define COMPOSE_FILE "Compose"
-
-/*
- * Data Structures for Local Processing
- */
-typedef INT32 DTIndex;
-typedef INT32 DTCharIndex;
-typedef BITS32 DTModifier;
-
-typedef struct _DefTree {
- DTIndex next;
- DTIndex succession; /* successive Key Sequence */
- /* Key definitions */
- DTModifier modifier_mask;
- DTModifier modifier;
- KeySym keysym; /* leaf only */
- DTCharIndex mb;
- DTCharIndex wc; /* make from mb */
- DTCharIndex utf8; /* make from mb */
- KeySym ks;
-} DefTree;
-
-typedef struct _DefTreeBase {
- DefTree *tree;
- char *mb;
- wchar_t *wc;
- char *utf8;
- DTIndex treeused, treesize;
- DTCharIndex mbused, mbsize;
- DTCharIndex wcused, wcsize;
- DTCharIndex utf8used, utf8size;
-} DefTreeBase;
-
-typedef struct _XimLocalPrivateRec {
- /* The first fields are identical with XimCommonPrivateRec. */
- XlcConv ctom_conv;
- XlcConv ctow_conv;
- XlcConv ctoutf8_conv;
- XlcConv cstomb_conv;
- XlcConv cstowc_conv;
- XlcConv cstoutf8_conv;
- XlcConv ucstoc_conv;
- XlcConv ucstoutf8_conv;
-
- XIC current_ic;
- DefTreeBase base;
- DTIndex top;
-} XimLocalPrivateRec;
-
-typedef struct _XicThaiPart {
- int comp_state;
- KeySym keysym;
- int input_mode;
-} XicThaiPart;
-
-typedef struct _XicLocalPrivateRec {
- long value_mask;
- DefTreeBase base;
- DTIndex context;
- DTIndex composed;
- XicThaiPart thai;
-
- XIMResourceList ic_resources;
- unsigned int ic_num_resources;
-
- unsigned char brl_pressed, brl_committing, brl_committed;
- Time brl_release_start;
-} XicLocalPrivateRec;
-#endif /* _XIMINTL_H */
diff --git a/nx-X11/lib/X11/XimintP.h b/nx-X11/lib/X11/XimintP.h
deleted file mode 100644
index 14a7e6d5a..000000000
--- a/nx-X11/lib/X11/XimintP.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright 1991, 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software and
-its documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation, and that the name of FUJITSU LIMITED and Sony Corporation
-not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission. FUJITSU LIMITED and
-Sony Corporation makes no representations about the suitability of this
-software for any purpose. It is provided "as is" without express or
-implied warranty.
-
-FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL FUJITSU LIMITED OR SONY CORPORATION BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
-USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Makoto Wakamatsu Sony Corporation
- makoto@sm.sony.co.jp
- Hiroyuki Miyamoto Digital Equipment Corporation
- miyamoto@jrd.dec.com
-
-******************************************************************/
-
-#ifndef _XIMINTP_H
-#define _XIMINTP_H
-
-#include "XimProto.h"
-#include "XlcPublic.h"
-
-/*
- * for protocol layer callback function
- */
-typedef Bool (*XimProtoIntrProc)(
- Xim, INT16, XPointer, XPointer
-);
-typedef struct _XimProtoIntrRec {
- XimProtoIntrProc func;
- CARD16 major_code;
- CARD16 minor_code;
- XPointer call_data;
- struct _XimProtoIntrRec *next;
-} XimProtoIntrRec;
-
-/*
- * for transport layer methods
- */
-typedef Bool (*XimTransConnectProc)(
- Xim
-);
-typedef Bool (*XimTransShutdownProc)(
- Xim
-);
-typedef Bool (*XimTransWriteProc)(
- Xim, INT16, XPointer
-);
-typedef Bool (*XimTransReadProc)(
- Xim, XPointer, int, int *
-);
-typedef void (*XimTransFlushProc)(
- Xim
-);
-typedef Bool (*XimTransRegDispatcher)(
- Xim, Bool (*)(Xim, INT16, XPointer, XPointer), XPointer
-);
-typedef Bool (*XimTransCallDispatcher)(
- Xim, INT16, XPointer
-);
-
-/*
- * private part of IM
- */
-typedef struct _XimProtoPrivateRec {
- /* The first fields are identical with XimCommonPrivateRec. */
- XlcConv ctom_conv;
- XlcConv ctow_conv;
- XlcConv ctoutf8_conv;
- XlcConv cstomb_conv;
- XlcConv cstowc_conv;
- XlcConv cstoutf8_conv;
- XlcConv ucstoc_conv;
- XlcConv ucstoutf8_conv;
-
- Window im_window;
- XIMID imid;
- CARD16 unused;
- XIMStyles *default_styles;
- CARD32 *im_onkeylist;
- CARD32 *im_offkeylist;
- BITMASK32 flag;
-
- BITMASK32 registed_filter_event;
- EVENTMASK forward_event_mask;
- EVENTMASK synchronous_event_mask;
-
- XimProtoIntrRec *intrproto;
- XIMResourceList im_inner_resources;
- unsigned int im_num_inner_resources;
- XIMResourceList ic_inner_resources;
- unsigned int ic_num_inner_resources;
- char *hold_data;
- int hold_data_len;
- char *locale_name;
- CARD16 protocol_major_version;
- CARD16 protocol_minor_version;
- XrmQuark *saved_imvalues;
- int num_saved_imvalues;
-
- /*
- * transport specific
- */
- XimTransConnectProc connect;
- XimTransShutdownProc shutdown;
- XimTransWriteProc write;
- XimTransReadProc read;
- XimTransFlushProc flush;
- XimTransRegDispatcher register_dispatcher;
- XimTransCallDispatcher call_dispatcher;
- XPointer spec;
-} XimProtoPrivateRec;
-
-/*
- * bit mask for the flag of XIMPrivateRec
- */
-#define SERVER_CONNECTED (1L)
-#define DYNAMIC_EVENT_FLOW (1L << 1)
-#define USE_AUTHORIZATION_FUNC (1L << 2)
-#ifdef XIM_CONNECTABLE
-#define DELAYBINDABLE (1L << 3)
-#define RECONNECTABLE (1L << 4)
-#endif /* XIM_CONNECTABLE */
-#define FABRICATED (1L << 5)
-#define NEED_SYNC_REPLY (1L << 6)
-
-/*
- * macro for the flag of XIMPrivateRec
- */
-#define IS_SERVER_CONNECTED(im) \
- ((((Xim)im))->private.proto.flag & SERVER_CONNECTED)
-#define MARK_SERVER_CONNECTED(im) \
- ((((Xim)im))->private.proto.flag |= SERVER_CONNECTED)
-#define UNMARK_SERVER_CONNECTED(im) \
- ((((Xim)im))->private.proto.flag &= ~SERVER_CONNECTED)
-
-#define IS_DYNAMIC_EVENT_FLOW(im) \
- (((Xim)im)->private.proto.flag & DYNAMIC_EVENT_FLOW)
-#define MARK_DYNAMIC_EVENT_FLOW(im) \
- (((Xim)im)->private.proto.flag |= DYNAMIC_EVENT_FLOW)
-
-#define IS_USE_AUTHORIZATION_FUNC(im) \
- (((Xim)im)->private.proto.flag & USE_AUTHORIZATION_FUNC)
-#define MARK_USE_AUTHORIZATION_FUNC(im) \
- (((Xim)im)->private.proto.flag |= USE_AUTHORIZATION_FUNC)
-
-#ifdef XIM_CONNECTABLE
-#define IS_DELAYBINDABLE(im) \
- (((Xim)im)->private.proto.flag & DELAYBINDABLE)
-#define MARK_DELAYBINDABLE(im) \
- (((Xim)im)->private.proto.flag |= DELAYBINDABLE)
-
-#define IS_RECONNECTABLE(im) \
- (((Xim)im)->private.proto.flag & RECONNECTABLE)
-#define MARK_RECONNECTABLE(im) \
- (((Xim)im)->private.proto.flag |= RECONNECTABLE)
-
-#define IS_CONNECTABLE(im) \
- (((Xim)im)->private.proto.flag & (DELAYBINDABLE|RECONNECTABLE))
-#define UNMAKE_CONNECTABLE(im) \
- (((Xim)im)->private.proto.flag &= ~(DELAYBINDABLE|RECONNECTABLE))
-#endif /* XIM_CONNECTABLE */
-
-#define IS_FABRICATED(im) \
- (((Xim)im)->private.proto.flag & FABRICATED)
-#define MARK_FABRICATED(im) \
- (((Xim)im)->private.proto.flag |= FABRICATED)
-#define UNMARK_FABRICATED(im) \
- (((Xim)im)->private.proto.flag &= ~FABRICATED)
-
-#define IS_NEED_SYNC_REPLY(im) \
- (((Xim)im)->private.proto.flag & NEED_SYNC_REPLY)
-#define MARK_NEED_SYNC_REPLY(im) \
- (((Xim)im)->private.proto.flag |= NEED_SYNC_REPLY)
-#define UNMARK_NEED_SYNC_REPLY(im) \
- (((Xim)im)->private.proto.flag &= ~NEED_SYNC_REPLY)
-
-/*
- * bit mask for the register_filter_event of XIMPrivateRec/XICPrivateRec
- */
-#define KEYPRESS_MASK (1L)
-#define KEYRELEASE_MASK (1L << 1)
-#define DESTROYNOTIFY_MASK (1L << 2)
-
-typedef struct _XimCommitInfoRec {
- struct _XimCommitInfoRec *next;
- char *string;
- int string_len;
- KeySym *keysym;
- int keysym_len;
-} XimCommitInfoRec, *XimCommitInfo;
-
-typedef struct _XimPendingCallback {
- int major_opcode;
- Xim im;
- Xic ic;
- char *proto;
- int proto_len;
- struct _XimPendingCallback *next;
-} XimPendingCallbackRec, *XimPendingCallback;
-
-
-/*
- * private part of IC
- */
-typedef struct _XicProtoPrivateRec {
- XICID icid; /* ICID */
- CARD16 dmy;
- BITMASK32 flag; /* Input Mode */
-
- BITMASK32 registed_filter_event; /* registed filter mask */
- EVENTMASK forward_event_mask; /* forward event mask */
- EVENTMASK synchronous_event_mask;/* sync event mask */
- EVENTMASK filter_event_mask; /* negrect event mask */
- EVENTMASK intercept_event_mask; /* deselect event mask */
- EVENTMASK select_event_mask; /* select event mask */
-
- char *preedit_font; /* Base font name list */
- int preedit_font_length; /* length of base font name */
- char *status_font; /* Base font name list */
- int status_font_length; /* length of base font name */
-
- XimCommitInfo commit_info;
- XIMResourceList ic_resources;
- unsigned int ic_num_resources;
- XIMResourceList ic_inner_resources;
- unsigned int ic_num_inner_resources;
- XrmQuark *saved_icvalues;
- int num_saved_icvalues;
- XimPendingCallback pend_cb_que;
- Bool waitCallback;
-} XicProtoPrivateRec ;
-
-/*
- * bit mask for the flag of XICPrivateRec
- */
-#define IC_CONNECTED (1L)
-
-/*
- * macro for the flag of XICPrivateRec
- */
-#define IS_IC_CONNECTED(ic) \
- (((Xic)ic)->private.proto.flag & IC_CONNECTED)
-#define MARK_IC_CONNECTED(ic) \
- (((Xic)ic)->private.proto.flag |= IC_CONNECTED)
-#define UNMARK_IC_CONNECTED(ic) \
- (((Xic)ic)->private.proto.flag &= ~IC_CONNECTED)
-
-/*
- * macro for the filter_event_mask of XICPrivateRec
- */
-#define IS_NEGLECT_EVENT(ic, mask) \
- (((Xic)ic)->private.proto.filter_event_mask & (mask))
-
-/*
- * macro for the forward_event_mask of XICPrivateRec
- */
-#define IS_FORWARD_EVENT(ic, mask) \
- (((Xic)ic)->private.proto.forward_event_mask & (mask))
-
-/*
- * macro for the synchronous_event_mask of XICPrivateRec
- */
-#define IS_SYNCHRONOUS_EVENT(ic, mask) \
- ((((Xic)ic)->private.proto.synchronous_event_mask & (mask)) ? True: False)
-
-#define XIM_MAXIMNAMELEN 64
-#define XIM_MAXLCNAMELEN 64
-
-#endif /* _XIMINTP_H */
diff --git a/nx-X11/lib/X11/Xintatom.h b/nx-X11/lib/X11/Xintatom.h
deleted file mode 100644
index b2d307bab..000000000
--- a/nx-X11/lib/X11/Xintatom.h
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef _XINTATOM_H_
-#define _XINTATOM_H_ 1
-
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xfuncproto.h>
-
-/* IntAtom.c */
-
-#define TABLESIZE 64
-
-typedef struct _Entry {
- unsigned long sig;
- Atom atom;
-} EntryRec, *Entry;
-
-#define RESERVED ((Entry) 1)
-
-#define EntryName(e) ((char *)(e+1))
-
-typedef struct _XDisplayAtoms {
- Entry table[TABLESIZE];
-} AtomTable;
-
-_XFUNCPROTOBEGIN
-
-extern void _XUpdateAtomCache(Display *dpy, const char *name, Atom atom,
- unsigned long sig, int idx, int n);
-extern void _XFreeAtomTable(Display *dpy);
-
-_XFUNCPROTOEND
-
-#endif /* _XINTATOM_H_ */
diff --git a/nx-X11/lib/X11/Xintconn.h b/nx-X11/lib/X11/Xintconn.h
deleted file mode 100644
index 675f684ac..000000000
--- a/nx-X11/lib/X11/Xintconn.h
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef _XINTCONN_H_
-#define _XINTCONN_H_ 1
-
-#include <nx-X11/Xfuncproto.h>
-#include <nx-X11/Xlib.h>
-
-_XFUNCPROTOBEGIN
-
-#if !USE_XCB
-/* ConnDis.c */
-
-int _XConnectDisplay (
- char *display_name,
- char **fullnamep, /* RETURN */
- int *dpynump, /* RETURN */
- int *screenp, /* RETURN */
- char **auth_namep, /* RETURN */
- int *auth_namelenp, /* RETURN */
- char **auth_datap, /* RETURN */
- int *auth_datalenp); /* RETURN */
-extern int _XDisconnectDisplay(XtransConnInfo trans_conn);
-extern Bool _XSendClientPrefix(Display *dpy, xConnClientPrefix *client,
- char *auth_proto, char *auth_string,
- xConnSetupPrefix *prefix);
-extern XtransConnInfo _X11TransConnectDisplay(char *display_name,
- char **fullnamep, int *dpynump,
- int *screenp, char **auth_namep,
- int *auth_namelenp, char **auth_datap,
- int *auth_datalenp);
-#endif /* !USE_XCB */
-
-/* OpenDis.c */
-extern void _XFreeDisplayStructure(Display *dpy);
-
-_XFUNCPROTOEND
-
-#endif /* _XINTCONN_H_ */
diff --git a/nx-X11/lib/X11/XlcGeneric.h b/nx-X11/lib/X11/XlcGeneric.h
deleted file mode 100644
index 0c008fdaa..000000000
--- a/nx-X11/lib/X11/XlcGeneric.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Takanori Tateno FUJITSU LIMITED
- *
- */
-
-#ifndef _XLCGENERIC_H_
-#define _XLCGENERIC_H_
-
-#include "XlcPubI.h"
-
-typedef struct _ByteInfo {
- unsigned char start,end;
-} ByteInfoRec, *ByteInfo;
-
-typedef struct _ByteInfoList {
- int M; /* 1 <= M <= length */
- int byteinfo_num;
- ByteInfo byteinfo;
-} ByteInfoListRec, *ByteInfoList;
-
-/* conversion_type values */
-#define LOCALCONV 1
-#define FILECONV 2
-#define FUNCTIONCONV 4
-
-typedef struct _Conversion {
- unsigned long conversion_type;
- int conv_num;
- FontScope convlist;
- char *cnv_file;
- XlcConv cnvfunc;
-} ConversionRec, *Conversion;
-
-typedef struct _ExtdSegment {
- char *name;
- XlcSide side;
- FontScope area;
- int area_num;
- XlcCharSet charset;
-} ExtdSegmentRec, *ExtdSegment;
-
-typedef struct _SegConvRec {
- int length;
- char *source_encoding;
- XlcCharSet source;
- char *destination_encoding;
- XlcCharSet dest;
- FontScopeRec range;
- int conv_num;
- FontScope conv;
-} SegConvRec, *SegConv;
-
-typedef struct _ParseInfoRec *ParseInfo;
-
-typedef struct _CodeSetRec {
- XlcCharSet *charset_list;
- int num_charsets;
- int cs_num;
- XlcSide side;
- int length;
- ByteInfoList byteM;
- Conversion mbconv;
- Conversion ctconv;
- ExtdSegment ctextseg;
- ParseInfo parse_info;
- unsigned long wc_encoding;
- Bool string_encoding;
-} CodeSetRec, *CodeSet;
-
-typedef enum {
- E_GL, /* GL encoding */
- E_GR, /* GR encoding */
- E_SS, /* single shift */
- E_LSL, /* locking shift left */
- E_LSR, /* locking shift right */
- E_LAST
-} EncodingType;
-
-typedef struct _ParseInfoRec {
- EncodingType type;
- char *encoding;
- CodeSet codeset;
-} ParseInfoRec;
-
-/*
- * XLCd private data
- */
-
-#define XLC_GENERIC(lcd, x) (((XLCdGeneric) lcd->core)->gen.x)
-#define XLC_GENERIC_PART(lcd) (&(((XLCdGeneric) lcd->core)->gen))
-
-typedef struct _XLCdGenericPart {
- int codeset_num;
- CodeSet *codeset_list;
- unsigned char *mb_parse_table;
- int mb_parse_list_num;
- ParseInfo *mb_parse_list;
- unsigned long wc_encode_mask;
- unsigned long wc_shift_bits;
- CodeSet initial_state_GL;
- CodeSet initial_state_GR;
- int segment_conv_num; /* UDC */
- SegConv segment_conv; /* UDC */
- Bool use_stdc_env;
- Bool force_convert_to_mb;
-} XLCdGenericPart;
-
-typedef struct _XLCdGenericRec {
- XLCdCoreRec core;
- XLCdPublicPart pub;
- XLCdGenericPart gen;
-} XLCdGenericRec, *XLCdGeneric;
-
-extern XLCdMethods _XlcGenericMethods;
-
-extern FontScope
-_XlcParse_scopemaps(
- const char *str,
- int *size);
-extern void
-_XlcDbg_printValue(
- const char *str,
- char **value,
- int num);
-
-extern XIM
-_XDefaultOpenIM(
- XLCd lcd,
- Display *dpy,
- XrmDatabase rdb,
- char *res_name,
- char *res_class);
-
-#endif /* _XLCGENERIC_H_ */
diff --git a/nx-X11/lib/X11/XlcPubI.h b/nx-X11/lib/X11/XlcPubI.h
deleted file mode 100644
index c454c7ddd..000000000
--- a/nx-X11/lib/X11/XlcPubI.h
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifndef _XLCPUBLICI_H_
-#define _XLCPUBLICI_H_
-
-#include "XlcPublic.h"
-
-#define XLC_PUBLIC(lcd, x) (((XLCdPublic) lcd->core)->pub.x)
-#define XLC_PUBLIC_PART(lcd) (&(((XLCdPublic) lcd->core)->pub))
-#define XLC_PUBLIC_METHODS(lcd) (&(((XLCdPublicMethods) lcd->methods)->pub))
-
-/*
- * XLCd public methods
- */
-
-typedef struct _XLCdPublicMethodsRec *XLCdPublicMethods;
-
-typedef XLCd (*XlcPubCreateProc)(
- const char* name,
- XLCdMethods methods
-);
-
-typedef Bool (*XlcPubInitializeProc)(
- XLCd lcd
-);
-
-typedef void (*XlcPubDestroyProc)(
- XLCd lcd
-);
-
-typedef char* (*XlcPubGetValuesProc)(
- XLCd lcd,
- XlcArgList args,
- int num_args
-);
-
-typedef void (*XlcPubGetResourceProc)(
- XLCd lcd,
- const char* category,
- const char* _class,
- char*** value,
- int* count
-);
-
-typedef struct _XLCdPublicMethodsPart {
- XLCdPublicMethods superclass;
- XlcPubCreateProc create;
- XlcPubInitializeProc initialize;
- XlcPubDestroyProc destroy;
- XlcPubGetValuesProc get_values;
- XlcPubGetResourceProc get_resource;
-} XLCdPublicMethodsPart;
-
-typedef struct _XLCdPublicMethodsRec {
- XLCdMethodsRec core;
- XLCdPublicMethodsPart pub;
-} XLCdPublicMethodsRec;
-
-/*
- * XLCd public data
- */
-
-typedef struct _XLCdPublicPart {
- char *siname; /* for _XlcMapOSLocaleName() */
- char *language; /* language part of locale name */
- char *territory; /* territory part of locale name */
- char *codeset; /* codeset part of locale name */
- char *encoding_name; /* encoding name */
- int mb_cur_max; /* ANSI C MB_CUR_MAX */
- Bool is_state_depend; /* state-depend encoding */
- const char *default_string; /* for XDefaultString() */
- XPointer xlocale_db;
-} XLCdPublicPart;
-
-typedef struct _XLCdPublicRec {
- XLCdCoreRec core;
- XLCdPublicPart pub;
-} XLCdPublicRec, *XLCdPublic;
-
-extern XLCdMethods _XlcPublicMethods;
-
-_XFUNCPROTOBEGIN
-
-extern XLCd _XlcCreateLC(
- const char* name,
- XLCdMethods methods
-);
-
-extern void _XlcDestroyLC(
- XLCd lcd
-);
-
-/* Fills into a freshly created XlcCharSet the fields that can be inferred
- from the ESC sequence. These are side, char_size, set_size. */
-extern Bool _XlcParseCharSet(
- XlcCharSet charset
-);
-
-/* Creates a new XlcCharSet, given its name (including side suffix) and
- Compound Text ESC sequence (normally at most 4 bytes). */
-extern XlcCharSet _XlcCreateDefaultCharSet(
- const char* name,
- const char* ct_sequence
-);
-
-extern XlcCharSet _XlcAddCT(
- const char* name,
- const char* ct_sequence
-);
-
-extern Bool _XlcInitCTInfo (void);
-
-extern XrmMethods _XrmDefaultInitParseInfo(
- XLCd lcd,
- XPointer* state
-);
-
-extern int _XmbTextPropertyToTextList(
- XLCd lcd,
- Display* dpy,
- const XTextProperty* text_prop,
- char*** list_ret,
- int* count_ret
-);
-
-extern int _XwcTextPropertyToTextList(
- XLCd lcd,
- Display* dpy,
- const XTextProperty* text_prop,
- wchar_t*** list_ret,
- int* count_ret
-);
-
-extern int _Xutf8TextPropertyToTextList(
- XLCd lcd,
- Display* dpy,
- const XTextProperty* text_prop,
- char*** list_ret,
- int* count_ret
-);
-
-extern int _XmbTextListToTextProperty(
- XLCd /* lcd */,
- Display* /* dpy */,
- char** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop */
-);
-
-extern int _XwcTextListToTextProperty(
- XLCd /* lcd */,
- Display* /* dpy */,
- wchar_t** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop */
-);
-
-extern int _Xutf8TextListToTextProperty(
- XLCd /* lcd */,
- Display* /* dpy */,
- char** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop */
-);
-
-extern void _XwcFreeStringList(
- XLCd /* lcd */,
- wchar_t** /* list */
-);
-
-extern int _XlcResolveLocaleName(
- const char* lc_name,
- XLCdPublicPart* pub
-);
-
-extern int _XlcResolveI18NPath(
- char* buf,
- int buf_len
-);
-
-extern char *_XlcLocaleLibDirName(
- char* /* dir_name */,
- size_t, /* dir_len */
- const char* /* lc_name */
-);
-
-extern char *_XlcLocaleDirName(
- char* /* dir_name */,
- size_t, /* dir_len */
- const char* /* lc_name */
-);
-
-extern XPointer _XlcCreateLocaleDataBase(
- XLCd lcd
-);
-
-extern void _XlcDestroyLocaleDataBase(
- XLCd lcd
-);
-
-extern void _XlcGetLocaleDataBase(
- XLCd /* lcd */,
- const char* /* category */,
- const char* /* name */,
- char*** /* value */,
- int* /* count */
-);
-
-#if defined(__APPLE__) || defined(__DARWIN__)
-extern char *
-_Xsetlocale(
- int category,
- _Xconst char *name);
-#endif
-extern char *_XlcMapOSLocaleName(
- char *osname,
- char *siname);
-
-extern int
-_Xmbstoutf8(
- char *ustr,
- const char *str,
- int len);
-extern int
-_Xlcmbstoutf8(
- XLCd lcd,
- char *ustr,
- const char *str,
- int len);
-extern int
-_Xmbstowcs(
- wchar_t *wstr,
- char *str,
- int len);
-extern int
-_Xlcwcstombs(
- XLCd lcd,
- char *str,
- wchar_t *wstr,
- int len);
-extern int
-_Xlcmbstowcs(
- XLCd lcd,
- wchar_t *wstr,
- char *str,
- int len);
-extern int
-_Xwcstombs(
- char *str,
- wchar_t *wstr,
- int len);
-extern int
-_Xlcmbtowc(
- XLCd lcd,
- wchar_t *wstr,
- char *str,
- int len);
-extern int
-_Xlcwctomb(
- XLCd lcd,
- char *str,
- wchar_t wc);
-
-
-
-extern XPointer
-_Utf8GetConvByName(
- const char *name);
-
-_XFUNCPROTOEND
-
-#endif /* _XLCPUBLICI_H_ */
diff --git a/nx-X11/lib/X11/XlcPublic.h b/nx-X11/lib/X11/XlcPublic.h
deleted file mode 100644
index 3d94ef37d..000000000
--- a/nx-X11/lib/X11/XlcPublic.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Takanori Tateno FUJITSU LIMITED
- *
- */
-/*
- * Most of this API is documented in i18n/Framework.PS
- */
-
-#ifndef _XLCPUBLIC_H_
-#define _XLCPUBLIC_H_
-
-#include "Xlcint.h"
-
-
-/*
- * Character sets.
- */
-
-/* Every character set has a "side". It denotes the range of byte values for
- which the character set is responsible. This means that the character
- set's encoded characters will only assumes bytes within the range, and
- that the character set can be used simultaneously with another character
- set responsible for a disjoint range. */
-typedef enum {
- XlcUnknown,
- XlcC0, /* responsible for values 0x00..0x1F */
- XlcGL, /* responsible for values 0x00..0x7F or 0x20..0x7F */
- XlcC1, /* responsible for values 0x80..0x9F */
- XlcGR, /* responsible for values 0x80..0xFF or 0xA0..0xFF */
- XlcGLGR, /* responsible for values 0x00..0xFF */
- XlcOther, /* unused */
- XlcNONE
-} XlcSide;
-
-/* Data read from XLC_LOCALE files.
- XXX Apparently superseded by _XUDCGlyphRegion. */
-typedef struct _UDCArea {
- unsigned long start;
- unsigned long end;
-} UDCAreaRec, *UDCArea;
-
-/* Where the character set comes from. */
-typedef enum {
- CSsrcUndef, /* unused */
- CSsrcStd, /* defined in libX11 */
- CSsrcXLC /* defined in an XLC_LOCALE file */
-} CSSrc;
-
-/* These are the supported properties of XlcCharSet. */
-#define XlcNCharSize "charSize"
-#define XlcNControlSequence "controlSequence"
-#define XlcNEncodingName "encodingName"
-#define XlcNName "name"
-#define XlcNSetSize "setSize"
-#define XlcNSide "side"
-
-/* This is the structure of an XlcCharSet.
- Once allocated, they are never freed. */
-typedef struct _XlcCharSetRec {
- /* Character set name, including side suffix */
- const char *name;
- XrmQuark xrm_name;
-
- /* XLFD encoding name, no side suffix */
- const char *encoding_name;
- XrmQuark xrm_encoding_name;
-
- /* Range for which the charset is responsible: XlcGL, XlcGR or XlcGLGR */
- XlcSide side;
-
- /* Number of bytes per character. 0 means a varying number (e.g. UTF-8) */
- int char_size;
- /* Classification of the character set according to ISO-2022 */
- int set_size; /* e.g. 94 or 96 */
- const char *ct_sequence; /* control sequence of CT */
- /* (normally at most 4 bytes) */
-
- /* for UDC */
- Bool string_encoding;
- UDCArea udc_area;
- int udc_area_num;
-
- /* Description source */
- CSSrc source;
-} XlcCharSetRec, *XlcCharSet;
-
-_XFUNCPROTOBEGIN
-
-/* Returns the charset with the given name (including side suffix).
- Returns NULL if not found. */
-extern XlcCharSet _XlcGetCharSet(
- const char* name
-);
-
-/* Returns the charset with the given encoding (no side suffix) and
- responsible for at least the given side (XlcGL or XlcGR).
- Returns NULL if not found. */
-extern XlcCharSet _XlcGetCharSetWithSide(
- const char* encoding_name,
- XlcSide side
-);
-
-/* Registers an XlcCharSet in the list of character sets.
- Returns True if successful. */
-extern Bool _XlcAddCharSet(
- XlcCharSet charset
-);
-
-/* Retrieves a number of attributes of an XlcCharSet.
- Return NULL if successful, otherwise the name of the first argument
- specifiying a nonexistent attribute. */
-extern char *_XlcGetCSValues(
- XlcCharSet charset,
- ...
-);
-
-_XFUNCPROTOEND
-
-
-#define XlcNCodeset "codeset"
-#define XlcNDefaultString "defaultString"
-#define XlcNLanguage "language"
-#define XlcNMbCurMax "mbCurMax"
-#define XlcNStateDependentEncoding "stateDependentEncoding"
-#define XlcNTerritory "territory"
-
-typedef struct _FontScope {
- unsigned long start;
- unsigned long end;
- unsigned long shift;
- unsigned long shift_direction;
-} FontScopeRec, *FontScope;
-
-/*
- * conversion methods
- */
-
-typedef struct _XlcConvRec *XlcConv;
-
-typedef XlcConv (*XlcOpenConverterProc)(
- XLCd from_lcd,
- const char* from_type,
- XLCd to_lcd,
- const char* to_type
-);
-
-typedef void (*XlcCloseConverterProc)(
- XlcConv /* conv */
-);
-
-typedef int (*XlcConvertProc)(
- XlcConv /* conv */,
- XPointer* /* from */,
- int* /* from_left */,
- XPointer* /* to */,
- int* /* to_left */,
- XPointer* /* args */,
- int /* num_args */
-);
-
-typedef void (*XlcResetConverterProc)(
- XlcConv /* conv */
-);
-
-typedef struct _XlcConvMethodsRec{
- XlcCloseConverterProc close;
- XlcConvertProc convert;
- XlcResetConverterProc reset;
-} XlcConvMethodsRec, *XlcConvMethods;
-
-/*
- * conversion data
- */
-
-#define XlcNMultiByte "multiByte"
-#define XlcNWideChar "wideChar"
-#define XlcNCompoundText "compoundText"
-#define XlcNString "string"
-#define XlcNUtf8String "utf8String"
-#define XlcNCharSet "charSet"
-#define XlcNCTCharSet "CTcharSet"
-#define XlcNFontCharSet "FontCharSet"
-#define XlcNChar "char"
-#define XlcNUcsChar "UCSchar"
-
-typedef struct _XlcConvRec {
- XlcConvMethods methods;
- XPointer state;
-} XlcConvRec;
-
-
-_XFUNCPROTOBEGIN
-
-extern Bool _XInitOM(
- XLCd /* lcd */
-);
-
-extern Bool _XInitIM(
- XLCd /* lcd */
-);
-
-extern XIM _XimOpenIM(
- XLCd /* lcd */,
- Display * /* dpy */,
- XrmDatabase /* rdb */,
- char * /* res_name */,
- char * /* res_class */
-);
-
-extern char *_XGetLCValues(
- XLCd /* lcd */,
- ...
-);
-
-extern XlcConv _XlcOpenConverter(
- XLCd from_lcd,
- const char* from_type,
- XLCd to_lcd,
- const char* to_type
-);
-
-extern void _XlcCloseConverter(
- XlcConv conv
-);
-
-extern int _XlcConvert(
- XlcConv conv,
- XPointer* from,
- int* from_left,
- XPointer* to,
- int* to_left,
- XPointer* args,
- int num_args
-);
-
-extern void _XlcResetConverter(
- XlcConv conv
-);
-
-extern Bool _XlcSetConverter(
- XLCd from_lcd,
- const char* from_type,
- XLCd to_lcd,
- const char* to_type,
- XlcOpenConverterProc open_converter
-);
-
-extern void _XlcGetResource(
- XLCd lcd,
- const char* category,
- const char* _class,
- char*** value,
- int* count
-);
-
-extern char *_XlcFileName(
- XLCd lcd,
- const char* category
-);
-
-extern int _Xwcslen(
- wchar_t* /* wstr */
-);
-
-extern wchar_t *_Xwcscpy(
- wchar_t* /* wstr1 */,
- wchar_t* /* wstr2 */
-);
-
-extern wchar_t *_Xwcsncpy(wchar_t *wstr1, wchar_t *wstr2, int len);
-extern int _Xwcscmp(wchar_t *wstr1, wchar_t *wstr2);
-extern int _Xwcsncmp(wchar_t *wstr1, wchar_t *wstr2, int len);
-
-/* Compares two ISO 8859-1 strings, ignoring case of ASCII letters.
- Like strcasecmp in an ASCII locale. */
-extern int _XlcCompareISOLatin1(
- const char* str1,
- const char* str2
-);
-
-/* Compares two ISO 8859-1 strings, at most len bytes of each, ignoring
- case of ASCII letters. Like strncasecmp in an ASCII locale. */
-extern int _XlcNCompareISOLatin1(
- const char* str1,
- const char* str2,
- int len
-);
-
-extern XOM
-_XDefaultOpenOM(
- XLCd lcd, Display *dpy, XrmDatabase rdb,
- _Xconst char *res_name, _Xconst char *res_class);
-
-_XFUNCPROTOEND
-
-#endif /* _XLCPUBLIC_H_ */
diff --git a/nx-X11/lib/X11/Xlcint.h b/nx-X11/lib/X11/Xlcint.h
deleted file mode 100644
index 5a6205a1f..000000000
--- a/nx-X11/lib/X11/Xlcint.h
+++ /dev/null
@@ -1,964 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- * Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
- * and Nippon Telegraph and Telephone Corporation
- * Copyright 1991 by the Open Software Foundation
- * Copyright 1993 by the TOSHIBA Corp.
- * Copyright 1993, 1994 by Sony Corporation
- * Copyright 1993, 1994 by the FUJITSU LIMITED
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of OMRON, NTT Software, NTT, Open
- * Software Foundation, and Sony Corporation not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. OMRON, NTT Software, NTT, Open Software
- * Foundation, and Sony Corporation make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, AND SONY
- * CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
- * SHALL OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, OR SONY
- * CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
- * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Authors: Li Yuhong OMRON Corporation
- * Tatsuya Kato NTT Software Corporation
- * Hiroshi Kuribayashi OMRON Coproration
- * Muneiyoshi Suzuki Nippon Telegraph and Telephone Co.
- *
- * M. Collins OSF
- * Katsuhisa Yano TOSHIBA Corp.
- * Makoto Wakamatsu Sony Corporation
- * Takashi Fujiwara FUJITSU LIMITED
- */
-
-
-#ifndef _XLCINT_H_
-#define _XLCINT_H_
-
-#ifndef _XP_PRINT_SERVER_
-
-#include <nx-X11/Xresource.h>
-#include <nx-X11/Xutil.h>
-#include <stdarg.h>
-
-typedef Bool (*XFilterEventProc)(
- Display* /* display */,
- Window /* window */,
- XEvent* /* event */,
- XPointer /* client_data */
-);
-
-typedef struct _XIMFilter {
- struct _XIMFilter *next;
- Window window;
- unsigned long event_mask;
- int start_type, end_type;
- XFilterEventProc filter;
- XPointer client_data;
-} XFilterEventRec, *XFilterEventList;
-
-typedef struct {
- char *name;
- XPointer value;
-} XIMArg;
-
-#ifdef offsetof
-#define XOffsetOf(s_type,field) offsetof(s_type,field)
-#else
-#define XOffsetOf(s_type,field) ((unsigned int)&(((s_type*)NULL)->field))
-#endif
-
-#define XIMNumber(arr) ((unsigned int) (sizeof(arr) / sizeof(arr[0])))
-
-/*
- * define secondary data structs which are part of Input Methods
- * and Input Context
- */
-typedef struct {
- const char *resource_name; /* Resource string */
- XrmQuark xrm_name; /* Resource name quark */
- int resource_size; /* Size in bytes of data */
- long resource_offset; /* Offset from base */
- unsigned short mode; /* Read Write Permission */
- unsigned short id; /* Input Method Protocol */
-} XIMResource, *XIMResourceList;
-
-/*
- * data block describing the visual attributes associated with
- * an input context
- */
-typedef struct {
- XRectangle area;
- XRectangle area_needed;
- XPoint spot_location;
- Colormap colormap;
- Atom std_colormap;
- unsigned long foreground;
- unsigned long background;
- Pixmap background_pixmap;
- XFontSet fontset;
- int line_spacing;
- Cursor cursor;
- XICCallback start_callback;
- XICCallback done_callback;
- XICCallback draw_callback;
- XICCallback caret_callback;
- XIMPreeditState preedit_state;
- XICCallback state_notify_callback;
-} ICPreeditAttributes, *ICPreeditAttributesPtr;
-
-typedef struct {
- XRectangle area;
- XRectangle area_needed;
- Colormap colormap;
- Atom std_colormap;
- unsigned long foreground;
- unsigned long background;
- Pixmap background_pixmap;
- XFontSet fontset;
- int line_spacing;
- Cursor cursor;
- XICCallback start_callback;
- XICCallback done_callback;
- XICCallback draw_callback;
-} ICStatusAttributes, *ICStatusAttributesPtr;
-
-#endif /* !_XP_PRINT_SERVER_ */
-
-/*
- * Methods for Xrm parsing
- */
-
-/* The state is a pointer to an object created by the locale's
- init_parse_info function (default: _XrmDefaultInitParseInfo). */
-
-/* Sets the state to the initial state.
- Initiates a sequence of calls to the XmbCharProc. */
-typedef void (*XmbInitProc)(
- XPointer state
-);
-
-/* Transforms one multibyte character, starting at str, and return a 'char'
- in the same parsing class (not a wide character!). Returns the number of
- consumed bytes in *lenp. */
-typedef char (*XmbCharProc)(
- XPointer state,
- const char * str,
- int* lenp
-);
-
-/* Terminates a sequence of calls to the XmbCharProc. */
-typedef void (*XmbFinishProc)(
- XPointer state
-);
-
-/* Returns the name of the state's locale, as a static string. */
-typedef const char* (*XlcNameProc)(
- XPointer state
-);
-
-/* Frees the state, which was allocated by the locale's init_parse_info
- function. */
-typedef void (*XrmDestroyProc)(
- XPointer state
-);
-
-/* Set of methods for Xrm parsing. */
-typedef struct {
- XmbInitProc mbinit;
- XmbCharProc mbchar;
- XmbFinishProc mbfinish;
- XlcNameProc lcname;
- XrmDestroyProc destroy;
-} XrmMethodsRec;
-typedef const XrmMethodsRec *XrmMethods;
-
-#ifndef _XP_PRINT_SERVER_
-
-typedef struct _XLCd *XLCd; /* need forward reference */
-
-/*
- * define an LC, it's methods, and data.
- */
-
-typedef void (*XCloseLCProc)(
- XLCd /* lcd */
-);
-
-typedef char* (*XlcMapModifiersProc)(
- XLCd /* lcd */,
- _Xconst char* /* user_mods */,
- _Xconst char* /* prog_mods */
-);
-
-typedef XOM (*XOpenOMProc)(
- XLCd /* lcd */,
- Display* /* display */,
- XrmDatabase /* rdb */,
- _Xconst char* /* res_name */,
- _Xconst char* /* res_class */
-);
-
-typedef XIM (*XOpenIMProc)(
- XLCd /* lcd */,
- Display* /* display */,
- XrmDatabase /* rdb */,
- char* /* res_name */,
- char* /* res_class */
-);
-
-typedef Bool (*XRegisterIMInstantiateCBProc)(
- XLCd /* lcd */,
- Display* /* display */,
- XrmDatabase /* rdb */,
- char* /* res_name */,
- char* /* res_class */,
- XIDProc /* callback */,
- XPointer /* client_data */
-);
-
-typedef Bool (*XUnregisterIMInstantiateCBProc)(
- XLCd /* lcd */,
- Display* /* display */,
- XrmDatabase /* rdb */,
- char* /* res_name */,
- char* /* res_class */,
- XIDProc /* callback */,
- XPointer /* client_data */
-);
-
-typedef XrmMethods (*XrmInitParseInfoProc)(
- XLCd /* lcd */,
- XPointer* /* state */
-);
-
-typedef int (*XmbTextPropertyToTextListProc)(
- XLCd lcd,
- Display* display,
- const XTextProperty* text_prop,
- char*** list_return,
- int* count_return
-);
-
-typedef int (*XwcTextPropertyToTextListProc)(
- XLCd lcd,
- Display* display,
- const XTextProperty* text_prop,
- wchar_t*** list_return,
- int* count_return
-);
-
-typedef int (*XmbTextListToTextPropertyProc)(
- XLCd lcd,
- Display* display,
- char** list,
- int count,
- XICCEncodingStyle style,
- XTextProperty* text_prop_return
-);
-
-typedef int (*XwcTextListToTextPropertyProc)(
- XLCd lcd,
- Display* display,
- wchar_t** list,
- int count,
- XICCEncodingStyle style,
- XTextProperty* text_prop_return
-);
-
-typedef void (*XwcFreeStringListProc)(
- XLCd lcd,
- wchar_t** list
-);
-
-typedef const char* (*XDefaultStringProc)(
- XLCd lcd
-);
-
-typedef struct {
- XCloseLCProc close;
- XlcMapModifiersProc map_modifiers;
- XOpenOMProc open_om;
- XOpenIMProc open_im;
- XrmInitParseInfoProc init_parse_info;
- XmbTextPropertyToTextListProc mb_text_prop_to_list;
- XwcTextPropertyToTextListProc wc_text_prop_to_list;
- XmbTextPropertyToTextListProc utf8_text_prop_to_list;
- XmbTextListToTextPropertyProc mb_text_list_to_prop;
- XwcTextListToTextPropertyProc wc_text_list_to_prop;
- XmbTextListToTextPropertyProc utf8_text_list_to_prop;
- XwcFreeStringListProc wc_free_string_list;
- XDefaultStringProc default_string;
- XRegisterIMInstantiateCBProc register_callback;
- XUnregisterIMInstantiateCBProc unregister_callback;
-} XLCdMethodsRec, *XLCdMethods;
-
-
-typedef struct {
- char* name; /* name of this LC */
- char* modifiers; /* modifiers of locale */
-} XLCdCoreRec, *XLCdCore;
-
-
-typedef struct _XLCd {
- XLCdMethods methods; /* methods of this LC */
- XLCdCore core; /* data of this LC */
- XPointer opaque; /* LDX specific data */
-} XLCdRec;
-
-typedef int XlcPosition;
-
-#define XlcHead 0
-#define XlcTail -1
-
-typedef struct {
- char *name;
- XPointer value;
-} XlcArg, *XlcArgList;
-
-typedef struct _XlcResource {
- const char *name;
- XrmQuark xrm_name;
- int size;
- int offset;
- unsigned long mask;
-} XlcResource, *XlcResourceList;
-
-#define XlcCreateMask (1L<<0)
-#define XlcDefaultMask (1L<<1)
-#define XlcGetMask (1L<<2)
-#define XlcSetMask (1L<<3)
-#define XlcIgnoreMask (1L<<4)
-
-#define XlcNumber(arr) (sizeof(arr) / sizeof(arr[0]))
-
-typedef Status (*XCloseOMProc)(
- XOM /* om */
-);
-
-typedef char* (*XSetOMValuesProc)(
- XOM /* om */,
- XlcArgList /* args */,
- int /* num_args */
-);
-
-typedef char* (*XGetOMValuesProc)(
- XOM /* om */,
- XlcArgList /* args */,
- int /* num_args */
-);
-
-typedef XOC (*XCreateOCProc)(
- XOM /* om */,
- XlcArgList /* args */,
- int /* num_args */
-);
-
-typedef struct _XOMMethodsRec {
- XCloseOMProc close;
- XSetOMValuesProc set_values;
- XGetOMValuesProc get_values;
- XCreateOCProc create_oc;
-} XOMMethodsRec, *XOMMethods;
-
-typedef struct _XOMCoreRec {
- XLCd lcd; /* lcd */
- Display *display; /* display */
- XrmDatabase rdb; /* database */
- char *res_name; /* resource name */
- char *res_class; /* resource class */
- XOC oc_list; /* xoc list */
- XlcResourceList resources; /* xom resources */
- int num_resources; /* number of xom resources */
- XOMCharSetList required_charset; /* required charset list */
- XOMOrientation orientation_list; /* orientation list */
- Bool directional_dependent; /* directional-dependent */
- Bool contextual_drawing; /* contextual drawing */
- Bool context_dependent; /* context-dependent drawing */
-} XOMCoreRec, *XOMCore;
-
-typedef struct _XOM {
- XOMMethods methods;
- XOMCoreRec core;
-} XOMRec;
-
-typedef void (*XDestroyOCProc)(
- XOC /* oc */
-);
-
-typedef char* (*XSetOCValuesProc)(
- XOC /* oc */,
- XlcArgList /* args */,
- int /* num_args */
-);
-
-typedef char* (*XGetOCValuesProc)(
- XOC /* oc */,
- XlcArgList /* args */,
- int /* num_args */
-);
-
-/*
- * X Font Sets are an instantiable object, so we define it, the
- * object itself, a method list and data
- */
-
-/*
- * XFontSet object method list
- */
-
-typedef int (*XmbTextEscapementProc)(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* text_len */
-);
-
-typedef int (*XmbTextExtentsProc)(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* text_len */,
- XRectangle* /* overall_ink_extents */,
- XRectangle* /* overall_logical_extents */
-);
-
-typedef Status (*XmbTextPerCharExtentsProc)(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* text_len */,
- XRectangle* /* ink_extents_buffer */,
- XRectangle* /* logical_extents_buffer */,
- int /* buffer_size */,
- int* /* num_chars */,
- XRectangle* /* max_ink_extents */,
- XRectangle* /* max_logical_extents */
-);
-
-typedef int (*XmbDrawStringProc)(
- Display* /* display */,
- Drawable /* drawable */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* text */,
- int /* text_len */
-);
-
-typedef void (*XmbDrawImageStringProc)(
- Display* /* display */,
- Drawable /* drawable */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* text */,
- int /* text_len */
-);
-
-typedef int (*XwcTextEscapementProc)(
- XFontSet /* font_set */,
- _Xconst wchar_t* /* text */,
- int /* text_len */
-);
-
-typedef int (*XwcTextExtentsProc)(
- XFontSet /* font_set */,
- _Xconst wchar_t* /* text */,
- int /* text_len */,
- XRectangle* /* overall_ink_extents */,
- XRectangle* /* overall_logical_extents */
-);
-
-typedef Status (*XwcTextPerCharExtentsProc)(
- XFontSet /* font_set */,
- _Xconst wchar_t* /* text */,
- int /* text_len */,
- XRectangle* /* ink_extents_buffer */,
- XRectangle* /* logical_extents_buffer */,
- int /* buffer_size */,
- int* /* num_chars */,
- XRectangle* /* max_ink_extents */,
- XRectangle* /* max_logical_extents */
-);
-
-typedef int (*XwcDrawStringProc)(
- Display* /* display */,
- Drawable /* drawable */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst wchar_t* /* text */,
- int /* text_len */
-);
-
-typedef void (*XwcDrawImageStringProc)(
- Display* /* display */,
- Drawable /* drawable */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst wchar_t* /* text */,
- int /* text_len */
-);
-
-typedef struct {
- XDestroyOCProc destroy;
- XSetOCValuesProc set_values;
- XGetOCValuesProc get_values;
-
- /* multi-byte text drawing methods */
-
- XmbTextEscapementProc mb_escapement;
- XmbTextExtentsProc mb_extents;
- XmbTextPerCharExtentsProc mb_extents_per_char;
- XmbDrawStringProc mb_draw_string;
- XmbDrawImageStringProc mb_draw_image_string;
-
- /* wide character text drawing methods */
-
- XwcTextEscapementProc wc_escapement;
- XwcTextExtentsProc wc_extents;
- XwcTextPerCharExtentsProc wc_extents_per_char;
- XwcDrawStringProc wc_draw_string;
- XwcDrawImageStringProc wc_draw_image_string;
-
- /* UTF-8 text drawing methods */
-
- XmbTextEscapementProc utf8_escapement;
- XmbTextExtentsProc utf8_extents;
- XmbTextPerCharExtentsProc utf8_extents_per_char;
- XmbDrawStringProc utf8_draw_string;
- XmbDrawImageStringProc utf8_draw_image_string;
-} XOCMethodsRec, *XOCMethods;
-
-
-/*
- * XOC independent data
- */
-
-typedef struct {
- XOM om; /* XOM */
- XOC next; /* next XOC */
- XlcResourceList resources; /* xoc resources */
- int num_resources; /* number of xoc resources */
- char *base_name_list; /* base font name list */
- Bool om_automatic; /* OM Automatic */
- XOMFontInfo font_info; /* font info */
- XFontSetExtents font_set_extents; /* font set extents */
- char *default_string; /* default string */
- XOMCharSetList missing_list; /* missing charset list */
- XOrientation orientation; /* orientation */
- char *res_name; /* resource name */
- char *res_class; /* resource class */
-} XOCCoreRec, *XOCCore;
-
-typedef struct _XOC {
- XOCMethods methods;
- XOCCoreRec core;
-} XOCRec;
-
-
-/*
- * X Input Managers are an instantiable object, so we define it, the
- * object itself, a method list and data.
- */
-
-/*
- * an Input Manager object method list
- */
-typedef struct {
- Status (*close)(
- XIM
- );
- char* (*set_values)(
- XIM, XIMArg*
- );
- char* (*get_values)(
- XIM, XIMArg*
- );
- XIC (*create_ic)(
- XIM, XIMArg*
- );
- int (*ctstombs)(
- XIM, char*, int, char*, int, Status *
- );
- int (*ctstowcs)(
- XIM, char*, int, wchar_t*, int, Status *
- );
- int (*ctstoutf8)(
- XIM, char*, int, char*, int, Status *
- );
-} XIMMethodsRec, *XIMMethods;
-
-/*
- * Input Manager LC independent data
- */
-typedef struct {
- XLCd lcd; /* LC of this input method */
- XIC ic_chain; /* list of ICs for this IM */
-
- Display * display; /* display */
- XrmDatabase rdb;
- char * res_name;
- char * res_class;
-
- XIMValuesList *im_values_list;
- XIMValuesList *ic_values_list;
- XIMStyles *styles;
- XIMCallback destroy_callback;
- char * im_name; /* XIMMODIFIER name */
- XIMResourceList im_resources; /* compiled IM resource list */
- unsigned int im_num_resources;
- XIMResourceList ic_resources; /* compiled IC resource list */
- unsigned int ic_num_resources;
- Bool visible_position;
-} XIMCoreRec, *XIMCore;
-
-
-
-/*
- * An X Input Manager (IM). Implementations may need to extend this data
- * structure to accomodate additional data, state information etc.
- */
-typedef struct _XIM {
- XIMMethods methods; /* method list of this IM */
- XIMCoreRec core; /* data of this IM */
-} XIMRec;
-
-
-
-/*
- * X Input Contexts (IC) are an instantiable object, so we define it, the
- * object itself, a method list and data for this object
- */
-
-/*
- * Input Context method list
- */
-typedef struct {
- void (*destroy)(
- XIC
- );
- void (*set_focus)(
- XIC
- );
- void (*unset_focus)(
- XIC
- );
- char* (*set_values)(
- XIC, XIMArg*
- );
- char* (*get_values)(
- XIC, XIMArg*
- );
- char* (*mb_reset)(
- XIC
- );
- wchar_t* (*wc_reset)(
- XIC
- );
- char* (*utf8_reset)(
- XIC
- );
- int (*mb_lookup_string)(
- XIC, XKeyEvent*, char*, int, KeySym*, Status*
- );
- int (*wc_lookup_string)(
- XIC, XKeyEvent*, wchar_t*, int, KeySym*, Status*
- );
- int (*utf8_lookup_string)(
- XIC, XKeyEvent*, char*, int, KeySym*, Status*
- );
-} XICMethodsRec, *XICMethods;
-
-
-/*
- * Input Context LC independent data
- */
-typedef struct {
- XIM im; /* XIM this IC belongs too */
- XIC next; /* linked list of ICs for IM */
-
- Window client_window; /* window IM can use for */
- /* display or subwindows */
- XIMStyle input_style; /* IM's input style */
- Window focus_window; /* where key events go */
- unsigned long filter_events; /* event mask from IM */
- XICCallback geometry_callback; /* client callback */
- char * res_name;
- char * res_class;
-
- XICCallback destroy_callback;
- XICCallback string_conversion_callback;
- XIMStringConversionText string_conversion;
- XIMResetState reset_state;
- XIMHotKeyTriggers *hotkey;
- XIMHotKeyState hotkey_state;
-
- ICPreeditAttributes preedit_attr; /* visuals of preedit area */
- ICStatusAttributes status_attr; /* visuals of status area */
-} XICCoreRec, *XICCore;
-
-
-/*
- * an Input Context. Implementations may need to extend this data
- * structure to accomodate additional data, state information etc.
- */
-typedef struct _XIC {
- XICMethods methods; /* method list of this IC */
- XICCoreRec core; /* data of this IC */
-} XICRec;
-
-
-/* If the argument 'name' is appropriate for this loader, it instantiates an
- XLCd object with appropriate locale methods and returns it. May return
- NULL; in this case, the remaining loaders are tried. */
-typedef XLCd (*XLCdLoadProc)(
- const char* name
-);
-
-_XFUNCPROTOBEGIN
-
-extern XLCd _XOpenLC(
- char* name
-);
-
-extern void _XCloseLC(
- XLCd lcd
-);
-
-extern XLCd _XlcCurrentLC (void);
-
-extern Bool _XlcValidModSyntax(
- const char* mods,
- const char* const * valid
-);
-
-extern char *_XlcDefaultMapModifiers(
- XLCd lcd,
- _Xconst char* user_mods,
- _Xconst char* prog_mods
-);
-
-extern void _XIMCompileResourceList(
- XIMResourceList /* res */,
- unsigned int /* num_res */
-);
-
-extern void _XCopyToArg(
- XPointer /* src */,
- XPointer* /* dst */,
- unsigned int /* size */
-);
-
-extern char ** _XParseBaseFontNameList(
- char* /* str */,
- int* /* num */
-);
-
-extern XrmMethods _XrmInitParseInfo(
- XPointer* statep
-);
-
-extern void _XRegisterFilterByMask(
- Display* /* dpy */,
- Window /* window */,
- unsigned long /* event_mask */,
- Bool (*)(
- Display* /* display */,
- Window /* window */,
- XEvent* /* event */,
- XPointer /* client_data */
- ) /* filter */,
- XPointer /* client_data */
-);
-
-extern void _XRegisterFilterByType(
- Display* /* dpy */,
- Window /* window */,
- int /* start_type */,
- int /* end_type */,
- Bool (*)(
- Display* /* display */,
- Window /* window */,
- XEvent* /* event */,
- XPointer /* client_data */
- ) /* filter */,
- XPointer /* client_data */
-);
-
-extern void _XUnregisterFilter(
- Display* /* dpy */,
- Window /* window */,
- Bool (*)(
- Display* /* display */,
- Window /* window */,
- XEvent* /* event */,
- XPointer /* client_data */
- ) /* filter */,
- XPointer /* client_data */
-);
-
-extern void _XlcCountVaList(
- va_list var,
- int* count_return
-);
-
-extern void _XlcVaToArgList(
- va_list var,
- int count,
- XlcArgList* args_return
-);
-
-
-extern void _XlcCopyFromArg(
- char * src,
- char * dst,
- int size
-);
-
-extern void _XlcCopyToArg(
- char * src,
- char ** dst,
- int size
-);
-
-extern void _XlcCompileResourceList(
- XlcResourceList resources,
- int num_resources
-);
-
-extern char *_XlcGetValues(
- XPointer base,
- XlcResourceList resources,
- int num_resources,
- XlcArgList args,
- int num_args,
- unsigned long mask
-);
-
-extern char *_XlcSetValues(
- XPointer base,
- XlcResourceList resources,
- int num_resources,
- XlcArgList args,
- int num_args,
- unsigned long mask
-);
-
-/* documented in i18n/Framework.PS */
-extern void _XlcInitLoader (void);
-
-extern void _XlcDeInitLoader (void);
-
-/* documented in i18n/Framework.PS */
-/* Returns True on success, False on failure. */
-extern Bool _XlcAddLoader(
- XLCdLoadProc proc,
- XlcPosition position
-);
-
-/* documented in i18n/Framework.PS */
-extern void _XlcRemoveLoader(
- XLCdLoadProc proc
-);
-
-/* Registers UTF-8 converters for a non-UTF-8 locale. */
-extern void _XlcAddUtf8Converters(
- XLCd lcd
-);
-
-/* Registers UTF-8 converters for a UTF-8 locale. */
-extern void _XlcAddUtf8LocaleConverters(
- XLCd lcd
-);
-
-/* Registers GB18030 converters for a GB18030 locale. */
-extern void _XlcAddGB18030LocaleConverters(
- XLCd lcd
-);
-
-/* The default locale loader. Assumes an ASCII encoding. */
-extern XLCd _XlcDefaultLoader(
- const char* name
-);
-
-/* The generic locale loader. Suitable for all encodings except UTF-8.
- Uses an XLC_LOCALE configuration file. */
-extern XLCd _XlcGenericLoader(
- const char* name
-);
-
-/* The UTF-8 locale loader. Suitable for UTF-8 encoding.
- Uses an XLC_LOCALE configuration file. */
-extern XLCd _XlcUtf8Loader(
- const char* name
-);
-
-extern XLCd _XlcDynamicLoad(
- const char* name
-);
-
-/* The old dynamic loader. */
-extern XLCd _XlcDynamicLoader(
- const char* name
-);
-
-extern Bool _XInitDefaultIM(
- XLCd lcd
-);
-
-extern Bool _XInitDefaultOM(
- XLCd lcd
-);
-
-extern Bool _XInitDynamicIM(
- XLCd lcd
-);
-
-extern Bool _XInitDynamicOM(
- XLCd lcd
-);
-
-_XFUNCPROTOEND
-
-#endif /* !_XP_PRINT_SERVER_ */
-
-#endif /* _XLCINT_H_ */
diff --git a/nx-X11/lib/X11/Xlib.h b/nx-X11/lib/X11/Xlib.h
deleted file mode 100644
index 362fdb69e..000000000
--- a/nx-X11/lib/X11/Xlib.h
+++ /dev/null
@@ -1,4036 +0,0 @@
-/*
-
-Copyright 1985, 1986, 1987, 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-
-/*
- * Xlib.h - Header definition and support file for the C subroutine
- * interface library (Xlib) to the X Window System Protocol (V11).
- * Structures and symbols starting with "_" are private to the library.
- */
-#if !defined(_X11_XLIB_H_) && !defined(_XLIB_H_)
-#define _X11_XLIB_H_
-#define _XLIB_H_
-
-#define XlibSpecificationRelease 6
-
-#include <sys/types.h>
-
-#if defined(__SCO__) || defined(__UNIXWARE__)
-#include <stdint.h>
-#endif
-
-#include <nx-X11/X.h>
-
-/* applications should not depend on these two headers being included! */
-#include <nx-X11/Xfuncproto.h>
-#include <nx-X11/Xosdefs.h>
-
-#ifndef X_WCHAR
-#include <stddef.h>
-#else
-/* replace this with #include or typedef appropriate for your system */
-typedef unsigned long wchar_t;
-#endif
-
-
-extern int
-_Xmblen(
- char *str,
- int len
- );
-
-/* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
- November 2000. Its presence is indicated through the following macro. */
-#define X_HAVE_UTF8_STRING 1
-
-/* The Xlib structs are full of implicit padding to properly align members.
- We can't clean that up without breaking ABI, so tell clang not to bother
- complaining about it. */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-typedef char *XPointer;
-
-#define Bool int
-#define Status int
-#define True 1
-#define False 0
-
-#define QueuedAlready 0
-#define QueuedAfterReading 1
-#define QueuedAfterFlush 2
-
-#define ConnectionNumber(dpy) (((_XPrivDisplay)(dpy))->fd)
-#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root)
-#define DefaultScreen(dpy) (((_XPrivDisplay)(dpy))->default_screen)
-#define DefaultRootWindow(dpy) (ScreenOfDisplay(dpy,DefaultScreen(dpy))->root)
-#define DefaultVisual(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_visual)
-#define DefaultGC(dpy, scr) (ScreenOfDisplay(dpy,scr)->default_gc)
-#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel)
-#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel)
-#define AllPlanes ((unsigned long)~0L)
-#define QLength(dpy) (((_XPrivDisplay)(dpy))->qlen)
-#define DisplayWidth(dpy, scr) (ScreenOfDisplay(dpy,scr)->width)
-#define DisplayHeight(dpy, scr) (ScreenOfDisplay(dpy,scr)->height)
-#define DisplayWidthMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mwidth)
-#define DisplayHeightMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mheight)
-#define DisplayPlanes(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
-#define DisplayCells(dpy, scr) (DefaultVisual(dpy,scr)->map_entries)
-#define ScreenCount(dpy) (((_XPrivDisplay)(dpy))->nscreens)
-#define ServerVendor(dpy) (((_XPrivDisplay)(dpy))->vendor)
-#define ProtocolVersion(dpy) (((_XPrivDisplay)(dpy))->proto_major_version)
-#define ProtocolRevision(dpy) (((_XPrivDisplay)(dpy))->proto_minor_version)
-#define VendorRelease(dpy) (((_XPrivDisplay)(dpy))->release)
-#define DisplayString(dpy) (((_XPrivDisplay)(dpy))->display_name)
-#define DefaultDepth(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
-#define DefaultColormap(dpy, scr)(ScreenOfDisplay(dpy,scr)->cmap)
-#define BitmapUnit(dpy) (((_XPrivDisplay)(dpy))->bitmap_unit)
-#define BitmapBitOrder(dpy) (((_XPrivDisplay)(dpy))->bitmap_bit_order)
-#define BitmapPad(dpy) (((_XPrivDisplay)(dpy))->bitmap_pad)
-#define ImageByteOrder(dpy) (((_XPrivDisplay)(dpy))->byte_order)
-#define NextRequest(dpy) (((_XPrivDisplay)(dpy))->request + 1)
-#define LastKnownRequestProcessed(dpy) (((_XPrivDisplay)(dpy))->last_request_read)
-
-/* macros for screen oriented applications (toolkit) */
-#define ScreenOfDisplay(dpy, scr)(&((_XPrivDisplay)(dpy))->screens[scr])
-#define DefaultScreenOfDisplay(dpy) ScreenOfDisplay(dpy,DefaultScreen(dpy))
-#define DisplayOfScreen(s) ((s)->display)
-#define RootWindowOfScreen(s) ((s)->root)
-#define BlackPixelOfScreen(s) ((s)->black_pixel)
-#define WhitePixelOfScreen(s) ((s)->white_pixel)
-#define DefaultColormapOfScreen(s)((s)->cmap)
-#define DefaultDepthOfScreen(s) ((s)->root_depth)
-#define DefaultGCOfScreen(s) ((s)->default_gc)
-#define DefaultVisualOfScreen(s)((s)->root_visual)
-#define WidthOfScreen(s) ((s)->width)
-#define HeightOfScreen(s) ((s)->height)
-#define WidthMMOfScreen(s) ((s)->mwidth)
-#define HeightMMOfScreen(s) ((s)->mheight)
-#define PlanesOfScreen(s) ((s)->root_depth)
-#define CellsOfScreen(s) (DefaultVisualOfScreen((s))->map_entries)
-#define MinCmapsOfScreen(s) ((s)->min_maps)
-#define MaxCmapsOfScreen(s) ((s)->max_maps)
-#define DoesSaveUnders(s) ((s)->save_unders)
-#define DoesBackingStore(s) ((s)->backing_store)
-#define EventMaskOfScreen(s) ((s)->root_input_mask)
-
-/*
- * Extensions need a way to hang private data on some structures.
- */
-typedef struct _XExtData {
- int number; /* number returned by XRegisterExtension */
- struct _XExtData *next; /* next item on list of data for structure */
- int (*free_private)( /* called to free private storage */
- struct _XExtData *extension
- );
- XPointer private_data; /* data private to this extension. */
-} XExtData;
-
-/*
- * This file contains structures used by the extension mechanism.
- */
-typedef struct { /* public to extension, cannot be changed */
- int extension; /* extension number */
- int major_opcode; /* major op-code assigned by server */
- int first_event; /* first event number for the extension */
- int first_error; /* first error number for the extension */
-} XExtCodes;
-
-/*
- * Data structure for retrieving info about pixmap formats.
- */
-
-typedef struct {
- int depth;
- int bits_per_pixel;
- int scanline_pad;
-} XPixmapFormatValues;
-
-
-/*
- * Data structure for setting graphics context.
- */
-typedef struct {
- int function; /* logical operation */
- unsigned long plane_mask;/* plane mask */
- unsigned long foreground;/* foreground pixel */
- unsigned long background;/* background pixel */
- int line_width; /* line width */
- int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */
- int cap_style; /* CapNotLast, CapButt,
- CapRound, CapProjecting */
- int join_style; /* JoinMiter, JoinRound, JoinBevel */
- int fill_style; /* FillSolid, FillTiled,
- FillStippled, FillOpaeueStippled */
- int fill_rule; /* EvenOddRule, WindingRule */
- int arc_mode; /* ArcChord, ArcPieSlice */
- Pixmap tile; /* tile pixmap for tiling operations */
- Pixmap stipple; /* stipple 1 plane pixmap for stipping */
- int ts_x_origin; /* offset for tile or stipple operations */
- int ts_y_origin;
- Font font; /* default text font for text operations */
- int subwindow_mode; /* ClipByChildren, IncludeInferiors */
- Bool graphics_exposures;/* boolean, should exposures be generated */
- int clip_x_origin; /* origin for clipping */
- int clip_y_origin;
- Pixmap clip_mask; /* bitmap clipping; other calls for rects */
- int dash_offset; /* patterned/dashed line information */
- char dashes;
-} XGCValues;
-
-/*
- * Graphics context. The contents of this structure are implementation
- * dependent. A GC should be treated as opaque by application code.
- */
-
-typedef struct _XGC
-#ifdef XLIB_ILLEGAL_ACCESS
-{
- XExtData *ext_data; /* hook for extension to hang data */
- GContext gid; /* protocol ID for graphics context */
- /* there is more to this structure, but it is private to Xlib */
-}
-#endif
-*GC;
-
-/*
- * Visual structure; contains information about colormapping possible.
- */
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- VisualID visualid; /* visual id of this visual */
-#if defined(__cplusplus) || defined(c_plusplus)
- int c_class; /* C++ class of screen (monochrome, etc.) */
-#else
- int class; /* class of screen (monochrome, etc.) */
-#endif
- unsigned long red_mask, green_mask, blue_mask; /* mask values */
- int bits_per_rgb; /* log base 2 of distinct color values */
- int map_entries; /* color map entries */
-} Visual;
-
-/*
- * Depth structure; contains information for each possible depth.
- */
-typedef struct {
- int depth; /* this depth (Z) of the depth */
- int nvisuals; /* number of Visual types at this depth */
- Visual *visuals; /* list of visuals possible at this depth */
-} Depth;
-
-/*
- * Information about the screen. The contents of this structure are
- * implementation dependent. A Screen should be treated as opaque
- * by application code.
- */
-
-struct _XDisplay; /* Forward declare before use for C++ */
-
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- struct _XDisplay *display;/* back pointer to display structure */
- Window root; /* Root window id. */
- int width, height; /* width and height of screen */
- int mwidth, mheight; /* width and height of in millimeters */
- int ndepths; /* number of depths possible */
- Depth *depths; /* list of allowable depths on the screen */
- int root_depth; /* bits per pixel */
- Visual *root_visual; /* root visual */
- GC default_gc; /* GC for the root root visual */
- Colormap cmap; /* default color map */
- unsigned long white_pixel;
- unsigned long black_pixel; /* White and Black pixel values */
- int max_maps, min_maps; /* max and min color maps */
- int backing_store; /* Never, WhenMapped, Always */
- Bool save_unders;
- long root_input_mask; /* initial root input mask */
-} Screen;
-
-/*
- * Format structure; describes ZFormat data the screen will understand.
- */
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- int depth; /* depth of this image format */
- int bits_per_pixel; /* bits/pixel at this depth */
- int scanline_pad; /* scanline must padded to this multiple */
-} ScreenFormat;
-
-/*
- * Data structure for setting window attributes.
- */
-typedef struct {
- Pixmap background_pixmap; /* background or None or ParentRelative */
- unsigned long background_pixel; /* background pixel */
- Pixmap border_pixmap; /* border of the window */
- unsigned long border_pixel; /* border pixel value */
- int bit_gravity; /* one of bit gravity values */
- int win_gravity; /* one of the window gravity values */
- int backing_store; /* NotUseful, WhenMapped, Always */
- unsigned long backing_planes;/* planes to be preseved if possible */
- unsigned long backing_pixel;/* value to use in restoring planes */
- Bool save_under; /* should bits under be saved? (popups) */
- long event_mask; /* set of events that should be saved */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override-redirect */
- Colormap colormap; /* color map to be associated with window */
- Cursor cursor; /* cursor to be displayed (or None) */
-} XSetWindowAttributes;
-
-typedef struct {
- int x, y; /* location of window */
- int width, height; /* width and height of window */
- int border_width; /* border width of window */
- int depth; /* depth of window */
- Visual *visual; /* the associated visual structure */
- Window root; /* root of screen containing window */
-#if defined(__cplusplus) || defined(c_plusplus)
- int c_class; /* C++ InputOutput, InputOnly*/
-#else
- int class; /* InputOutput, InputOnly*/
-#endif
- int bit_gravity; /* one of bit gravity values */
- int win_gravity; /* one of the window gravity values */
- int backing_store; /* NotUseful, WhenMapped, Always */
- unsigned long backing_planes;/* planes to be preserved if possible */
- unsigned long backing_pixel;/* value to be used when restoring planes */
- Bool save_under; /* boolean, should bits under be saved? */
- Colormap colormap; /* color map to be associated with window */
- Bool map_installed; /* boolean, is color map currently installed*/
- int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
- long all_event_masks; /* set of events all people have interest in*/
- long your_event_mask; /* my event mask */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override-redirect */
- Screen *screen; /* back pointer to correct screen */
-} XWindowAttributes;
-
-/*
- * Data structure for host setting; getting routines.
- *
- */
-
-typedef struct {
- int family; /* for example FamilyInternet */
- int length; /* length of address, in bytes */
- char *address; /* pointer to where to find the bytes */
-} XHostAddress;
-
-/*
- * Data structure for ServerFamilyInterpreted addresses in host routines
- */
-typedef struct {
- int typelength; /* length of type string, in bytes */
- int valuelength; /* length of value string, in bytes */
- char *type; /* pointer to where to find the type string */
- char *value; /* pointer to where to find the address */
-} XServerInterpretedAddress;
-
-/*
- * Data structure for "image" data, used by image manipulation routines.
- */
-typedef struct _XImage {
- int width, height; /* size of image */
- int xoffset; /* number of pixels offset in X direction */
- int format; /* XYBitmap, XYPixmap, ZPixmap */
- char *data; /* pointer to image data */
- int byte_order; /* data byte order, LSBFirst, MSBFirst */
- int bitmap_unit; /* quant. of scanline 8, 16, 32 */
- int bitmap_bit_order; /* LSBFirst, MSBFirst */
- int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */
- int depth; /* depth of image */
- int bytes_per_line; /* accelarator to next line */
- int bits_per_pixel; /* bits per pixel (ZPixmap) */
- unsigned long red_mask; /* bits in z arrangment */
- unsigned long green_mask;
- unsigned long blue_mask;
- XPointer obdata; /* hook for the object routines to hang on */
- struct funcs { /* image manipulation routines */
- struct _XImage *(*create_image)(
- struct _XDisplay* /* display */,
- Visual* /* visual */,
- unsigned int /* depth */,
- int /* format */,
- int /* offset */,
- char* /* data */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* bitmap_pad */,
- int /* bytes_per_line */);
- int (*destroy_image) (struct _XImage *);
- unsigned long (*get_pixel) (struct _XImage *, int, int);
- int (*put_pixel) (struct _XImage *, int, int, unsigned long);
- struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
- int (*add_pixel) (struct _XImage *, long);
- } f;
-} XImage;
-
-/*
- * Data structure for XReconfigureWindow
- */
-typedef struct {
- int x, y;
- int width, height;
- int border_width;
- Window sibling;
- int stack_mode;
-} XWindowChanges;
-
-/*
- * Data structure used by color operations
- */
-typedef struct {
- unsigned long pixel;
- unsigned short red, green, blue;
- char flags; /* do_red, do_green, do_blue */
- char pad;
-} XColor;
-
-/*
- * Data structures for graphics operations. On most machines, these are
- * congruent with the wire protocol structures, so reformatting the data
- * can be avoided on these architectures.
- */
-typedef struct {
- short x1, y1, x2, y2;
-} XSegment;
-
-typedef struct {
- short x, y;
-} XPoint;
-
-typedef struct {
- short x, y;
- unsigned short width, height;
-} XRectangle;
-
-typedef struct {
- short x, y;
- unsigned short width, height;
- short angle1, angle2;
-} XArc;
-
-
-/* Data structure for XChangeKeyboardControl */
-
-typedef struct {
- int key_click_percent;
- int bell_percent;
- int bell_pitch;
- int bell_duration;
- int led;
- int led_mode;
- int key;
- int auto_repeat_mode; /* On, Off, Default */
-} XKeyboardControl;
-
-/* Data structure for XGetKeyboardControl */
-
-typedef struct {
- int key_click_percent;
- int bell_percent;
- unsigned int bell_pitch, bell_duration;
- unsigned long led_mask;
- int global_auto_repeat;
- char auto_repeats[32];
-} XKeyboardState;
-
-/* Data structure for XGetMotionEvents. */
-
-typedef struct {
- Time time;
- short x, y;
-} XTimeCoord;
-
-/* Data structure for X{Set,Get}ModifierMapping */
-
-typedef struct {
- int max_keypermod; /* The server's max # of keys per modifier */
- KeyCode *modifiermap; /* An 8 by max_keypermod array of modifiers */
-} XModifierKeymap;
-
-
-/*
- * Display datatype maintaining display specific data.
- * The contents of this structure are implementation dependent.
- * A Display should be treated as opaque by application code.
- */
-#ifndef XLIB_ILLEGAL_ACCESS
-typedef struct _XDisplay Display;
-#endif
-
-struct _XPrivate; /* Forward declare before use for C++ */
-struct _XrmHashBucketRec;
-
-typedef struct
-#ifdef XLIB_ILLEGAL_ACCESS
-_XDisplay
-#endif
-{
- XExtData *ext_data; /* hook for extension to hang data */
- struct _XPrivate *private1;
- int fd; /* Network socket. */
- int private2;
- int proto_major_version;/* major version of server's X protocol */
- int proto_minor_version;/* minor version of servers X protocol */
- char *vendor; /* vendor of the server hardware */
- XID private3;
- XID private4;
- XID private5;
- int private6;
- XID (*resource_alloc)( /* allocator function */
- struct _XDisplay*
- );
- int byte_order; /* screen byte order, LSBFirst, MSBFirst */
- int bitmap_unit; /* padding and data requirements */
- int bitmap_pad; /* padding requirements on bitmaps */
- int bitmap_bit_order; /* LeastSignificant or MostSignificant */
- int nformats; /* number of pixmap formats in list */
- ScreenFormat *pixmap_format; /* pixmap format list */
- int private8;
- int release; /* release of the server */
- struct _XPrivate *private9, *private10;
- int qlen; /* Length of input event queue */
- unsigned long last_request_read; /* seq number of last event read */
- unsigned long request; /* sequence number of last request. */
- XPointer private11;
- XPointer private12;
- XPointer private13;
- XPointer private14;
- unsigned max_request_size; /* maximum number 32 bit words in request*/
- struct _XrmHashBucketRec *db;
- int (*private15)(
- struct _XDisplay*
- );
- char *display_name; /* "host:display" string used on this connect*/
- int default_screen; /* default screen for operations */
- int nscreens; /* number of screens on this server*/
- Screen *screens; /* pointer to list of screens */
- unsigned long motion_buffer; /* size of motion buffer */
- unsigned long private16;
- int min_keycode; /* minimum defined keycode */
- int max_keycode; /* maximum defined keycode */
- XPointer private17;
- XPointer private18;
- int private19;
- char *xdefaults; /* contents of defaults from server */
- /* there is more to this structure, but it is private to Xlib */
-}
-#ifdef XLIB_ILLEGAL_ACCESS
-Display,
-#endif
-*_XPrivDisplay;
-
-#undef _XEVENT_
-#ifndef _XEVENT_
-/*
- * Definitions of specific events.
- */
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window it is reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- unsigned int keycode; /* detail */
- Bool same_screen; /* same screen flag */
-} XKeyEvent;
-typedef XKeyEvent XKeyPressedEvent;
-typedef XKeyEvent XKeyReleasedEvent;
-
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window it is reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- unsigned int button; /* detail */
- Bool same_screen; /* same screen flag */
-} XButtonEvent;
-typedef XButtonEvent XButtonPressedEvent;
-typedef XButtonEvent XButtonReleasedEvent;
-
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- char is_hint; /* detail */
- Bool same_screen; /* same screen flag */
-} XMotionEvent;
-typedef XMotionEvent XPointerMovedEvent;
-
-typedef struct {
- int type; /* of event */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* "event" window reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
- int detail;
- /*
- * NotifyAncestor, NotifyVirtual, NotifyInferior,
- * NotifyNonlinear,NotifyNonlinearVirtual
- */
- Bool same_screen; /* same screen flag */
- Bool focus; /* boolean focus */
- unsigned int state; /* key or button mask */
-} XCrossingEvent;
-typedef XCrossingEvent XEnterWindowEvent;
-typedef XCrossingEvent XLeaveWindowEvent;
-
-typedef struct {
- int type; /* FocusIn or FocusOut */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* window of event */
- int mode; /* NotifyNormal, NotifyWhileGrabbed,
- NotifyGrab, NotifyUngrab */
- int detail;
- /*
- * NotifyAncestor, NotifyVirtual, NotifyInferior,
- * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
- * NotifyPointerRoot, NotifyDetailNone
- */
-} XFocusChangeEvent;
-typedef XFocusChangeEvent XFocusInEvent;
-typedef XFocusChangeEvent XFocusOutEvent;
-
-/* generated on EnterWindow and FocusIn when KeyMapState selected */
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- char key_vector[32];
-} XKeymapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- int x, y;
- int width, height;
- int count; /* if non-zero, at least this many more */
-} XExposeEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Drawable drawable;
- int x, y;
- int width, height;
- int count; /* if non-zero, at least this many more */
- int major_code; /* core is CopyArea or CopyPlane */
- int minor_code; /* not defined in the core */
-} XGraphicsExposeEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Drawable drawable;
- int major_code; /* core is CopyArea or CopyPlane */
- int minor_code; /* not defined in the core */
-} XNoExposeEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- int state; /* Visibility state */
-} XVisibilityEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent; /* parent of the window */
- Window window; /* window id of window created */
- int x, y; /* window location */
- int width, height; /* size of window */
- int border_width; /* border width */
- Bool override_redirect; /* creation should be overridden */
-} XCreateWindowEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
-} XDestroyWindowEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- Bool from_configure;
-} XUnmapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- Bool override_redirect; /* boolean, is override set... */
-} XMapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent;
- Window window;
-} XMapRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- Window parent;
- int x, y;
- Bool override_redirect;
-} XReparentEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- int x, y;
- int width, height;
- int border_width;
- Window above;
- Bool override_redirect;
-} XConfigureEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- int x, y;
-} XGravityEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- int width, height;
-} XResizeRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent;
- Window window;
- int x, y;
- int width, height;
- int border_width;
- Window above;
- int detail; /* Above, Below, TopIf, BottomIf, Opposite */
- unsigned long value_mask;
-} XConfigureRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window event;
- Window window;
- int place; /* PlaceOnTop, PlaceOnBottom */
-} XCirculateEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent;
- Window window;
- int place; /* PlaceOnTop, PlaceOnBottom */
-} XCirculateRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Atom atom;
- Time time;
- int state; /* NewValue, Deleted */
-} XPropertyEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Atom selection;
- Time time;
-} XSelectionClearEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window owner;
- Window requestor;
- Atom selection;
- Atom target;
- Atom property;
- Time time;
-} XSelectionRequestEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window requestor;
- Atom selection;
- Atom target;
- Atom property; /* ATOM or None */
- Time time;
-} XSelectionEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Colormap colormap; /* COLORMAP or None */
-#if defined(__cplusplus) || defined(c_plusplus)
- Bool c_new; /* C++ */
-#else
- Bool new;
-#endif
- int state; /* ColormapInstalled, ColormapUninstalled */
-} XColormapEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window;
- Atom message_type;
- int format;
- union {
- char b[20];
- short s[10];
- long l[5];
- } data;
-} XClientMessageEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* unused */
- int request; /* one of MappingModifier, MappingKeyboard,
- MappingPointer */
- int first_keycode; /* first keycode */
- int count; /* defines range of change w. first_keycode*/
-} XMappingEvent;
-
-typedef struct {
- int type;
- Display *display; /* Display the event was read from */
- XID resourceid; /* resource id */
- unsigned long serial; /* serial number of failed request */
- unsigned char error_code; /* error code of failed request */
- unsigned char request_code; /* Major op-code of failed request */
- unsigned char minor_code; /* Minor op-code of failed request */
-} XErrorEvent;
-
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display;/* Display the event was read from */
- Window window; /* window on which event was requested in event mask */
-} XAnyEvent;
-
-
-/***************************************************************
- *
- * GenericEvent. This event is the standard event for all newer extensions.
- */
-
-typedef struct
- {
- int type; /* of event. Always GenericEvent */
- unsigned long serial; /* # of last request processed */
- Bool send_event; /* true if from SendEvent request */
- Display *display; /* Display the event was read from */
- int extension; /* major opcode of extension that caused the event */
- int evtype; /* actual event type. */
- } XGenericEvent;
-
-typedef struct {
- int type; /* of event. Always GenericEvent */
- unsigned long serial; /* # of last request processed */
- Bool send_event; /* true if from SendEvent request */
- Display *display; /* Display the event was read from */
- int extension; /* major opcode of extension that caused the event */
- int evtype; /* actual event type. */
- unsigned int cookie;
- void *data;
-} XGenericEventCookie;
-
-/*
- * this union is defined so Xlib can always use the same sized
- * event structure internally, to avoid memory fragmentation.
- */
-typedef union _XEvent {
- int type; /* must not be changed; first element */
- XAnyEvent xany;
- XKeyEvent xkey;
- XButtonEvent xbutton;
- XMotionEvent xmotion;
- XCrossingEvent xcrossing;
- XFocusChangeEvent xfocus;
- XExposeEvent xexpose;
- XGraphicsExposeEvent xgraphicsexpose;
- XNoExposeEvent xnoexpose;
- XVisibilityEvent xvisibility;
- XCreateWindowEvent xcreatewindow;
- XDestroyWindowEvent xdestroywindow;
- XUnmapEvent xunmap;
- XMapEvent xmap;
- XMapRequestEvent xmaprequest;
- XReparentEvent xreparent;
- XConfigureEvent xconfigure;
- XGravityEvent xgravity;
- XResizeRequestEvent xresizerequest;
- XConfigureRequestEvent xconfigurerequest;
- XCirculateEvent xcirculate;
- XCirculateRequestEvent xcirculaterequest;
- XPropertyEvent xproperty;
- XSelectionClearEvent xselectionclear;
- XSelectionRequestEvent xselectionrequest;
- XSelectionEvent xselection;
- XColormapEvent xcolormap;
- XClientMessageEvent xclient;
- XMappingEvent xmapping;
- XErrorEvent xerror;
- XKeymapEvent xkeymap;
- XGenericEvent xgeneric;
- XGenericEventCookie xcookie;
- long pad[24];
-} XEvent;
-#endif
-
-#define XAllocID(dpy) ((*((_XPrivDisplay)(dpy))->resource_alloc)((dpy)))
-
-/*
- * per character font metric information.
- */
-typedef struct {
- short lbearing; /* origin to left edge of raster */
- short rbearing; /* origin to right edge of raster */
- short width; /* advance to next char's origin */
- short ascent; /* baseline to top edge of raster */
- short descent; /* baseline to bottom edge of raster */
- unsigned short attributes; /* per char flags (not predefined) */
-} XCharStruct;
-
-/*
- * To allow arbitrary information with fonts, there are additional properties
- * returned.
- */
-typedef struct {
- Atom name;
- unsigned long card32;
-} XFontProp;
-
-typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- Font fid; /* Font id for this font */
- unsigned direction; /* hint about direction the font is painted */
- unsigned min_char_or_byte2;/* first character */
- unsigned max_char_or_byte2;/* last character */
- unsigned min_byte1; /* first row that exists */
- unsigned max_byte1; /* last row that exists */
- Bool all_chars_exist;/* flag if all characters have non-zero size*/
- unsigned default_char; /* char to print for undefined character */
- int n_properties; /* how many properties there are */
- XFontProp *properties; /* pointer to array of additional properties*/
- XCharStruct min_bounds; /* minimum bounds over all existing char*/
- XCharStruct max_bounds; /* maximum bounds over all existing char*/
- XCharStruct *per_char; /* first_char to last_char information */
- int ascent; /* log. extent above baseline for spacing */
- int descent; /* log. descent below baseline for spacing */
-} XFontStruct;
-
-/*
- * PolyText routines take these as arguments.
- */
-typedef struct {
- char *chars; /* pointer to string */
- int nchars; /* number of characters */
- int delta; /* delta between strings */
- Font font; /* font to print it in, None don't change */
-} XTextItem;
-
-typedef struct { /* normal 16 bit characters are two bytes */
- unsigned char byte1;
- unsigned char byte2;
-} XChar2b;
-
-typedef struct {
- XChar2b *chars; /* two byte characters */
- int nchars; /* number of characters */
- int delta; /* delta between strings */
- Font font; /* font to print it in, None don't change */
-} XTextItem16;
-
-
-typedef union { Display *display;
- GC gc;
- Visual *visual;
- Screen *screen;
- ScreenFormat *pixmap_format;
- XFontStruct *font; } XEDataObject;
-
-typedef struct {
- XRectangle max_ink_extent;
- XRectangle max_logical_extent;
-} XFontSetExtents;
-
-/* unused:
-typedef void (*XOMProc)();
- */
-
-typedef struct _XOM *XOM;
-typedef struct _XOC *XOC, *XFontSet;
-
-typedef struct {
- char *chars;
- int nchars;
- int delta;
- XFontSet font_set;
-} XmbTextItem;
-
-typedef struct {
- wchar_t *chars;
- int nchars;
- int delta;
- XFontSet font_set;
-} XwcTextItem;
-
-#define XNRequiredCharSet "requiredCharSet"
-#define XNQueryOrientation "queryOrientation"
-#define XNBaseFontName "baseFontName"
-#define XNOMAutomatic "omAutomatic"
-#define XNMissingCharSet "missingCharSet"
-#define XNDefaultString "defaultString"
-#define XNOrientation "orientation"
-#define XNDirectionalDependentDrawing "directionalDependentDrawing"
-#define XNContextualDrawing "contextualDrawing"
-#define XNFontInfo "fontInfo"
-
-typedef struct {
- int charset_count;
- char **charset_list;
-} XOMCharSetList;
-
-typedef enum {
- XOMOrientation_LTR_TTB,
- XOMOrientation_RTL_TTB,
- XOMOrientation_TTB_LTR,
- XOMOrientation_TTB_RTL,
- XOMOrientation_Context
-} XOrientation;
-
-typedef struct {
- int num_orientation;
- XOrientation *orientation; /* Input Text description */
-} XOMOrientation;
-
-typedef struct {
- int num_font;
- XFontStruct **font_struct_list;
- char **font_name_list;
-} XOMFontInfo;
-
-typedef struct _XIM *XIM;
-typedef struct _XIC *XIC;
-
-typedef void (*XIMProc)(
- XIM,
- XPointer,
- XPointer
-);
-
-typedef Bool (*XICProc)(
- XIC,
- XPointer,
- XPointer
-);
-
-typedef void (*XIDProc)(
- Display*,
- XPointer,
- XPointer
-);
-
-typedef unsigned long XIMStyle;
-
-typedef struct {
- unsigned short count_styles;
- XIMStyle *supported_styles;
-} XIMStyles;
-
-#define XIMPreeditArea 0x0001L
-#define XIMPreeditCallbacks 0x0002L
-#define XIMPreeditPosition 0x0004L
-#define XIMPreeditNothing 0x0008L
-#define XIMPreeditNone 0x0010L
-#define XIMStatusArea 0x0100L
-#define XIMStatusCallbacks 0x0200L
-#define XIMStatusNothing 0x0400L
-#define XIMStatusNone 0x0800L
-
-#define XNVaNestedList "XNVaNestedList"
-#define XNQueryInputStyle "queryInputStyle"
-#define XNClientWindow "clientWindow"
-#define XNInputStyle "inputStyle"
-#define XNFocusWindow "focusWindow"
-#define XNResourceName "resourceName"
-#define XNResourceClass "resourceClass"
-#define XNGeometryCallback "geometryCallback"
-#define XNDestroyCallback "destroyCallback"
-#define XNFilterEvents "filterEvents"
-#define XNPreeditStartCallback "preeditStartCallback"
-#define XNPreeditDoneCallback "preeditDoneCallback"
-#define XNPreeditDrawCallback "preeditDrawCallback"
-#define XNPreeditCaretCallback "preeditCaretCallback"
-#define XNPreeditStateNotifyCallback "preeditStateNotifyCallback"
-#define XNPreeditAttributes "preeditAttributes"
-#define XNStatusStartCallback "statusStartCallback"
-#define XNStatusDoneCallback "statusDoneCallback"
-#define XNStatusDrawCallback "statusDrawCallback"
-#define XNStatusAttributes "statusAttributes"
-#define XNArea "area"
-#define XNAreaNeeded "areaNeeded"
-#define XNSpotLocation "spotLocation"
-#define XNColormap "colorMap"
-#define XNStdColormap "stdColorMap"
-#define XNForeground "foreground"
-#define XNBackground "background"
-#define XNBackgroundPixmap "backgroundPixmap"
-#define XNFontSet "fontSet"
-#define XNLineSpace "lineSpace"
-#define XNCursor "cursor"
-
-#define XNQueryIMValuesList "queryIMValuesList"
-#define XNQueryICValuesList "queryICValuesList"
-#define XNVisiblePosition "visiblePosition"
-#define XNR6PreeditCallback "r6PreeditCallback"
-#define XNStringConversionCallback "stringConversionCallback"
-#define XNStringConversion "stringConversion"
-#define XNResetState "resetState"
-#define XNHotKey "hotKey"
-#define XNHotKeyState "hotKeyState"
-#define XNPreeditState "preeditState"
-#define XNSeparatorofNestedList "separatorofNestedList"
-
-#define XBufferOverflow -1
-#define XLookupNone 1
-#define XLookupChars 2
-#define XLookupKeySym 3
-#define XLookupBoth 4
-
-typedef void *XVaNestedList;
-
-typedef struct {
- XPointer client_data;
- XIMProc callback;
-} XIMCallback;
-
-typedef struct {
- XPointer client_data;
- XICProc callback;
-} XICCallback;
-
-typedef unsigned long XIMFeedback;
-
-#define XIMReverse 1L
-#define XIMUnderline (1L<<1)
-#define XIMHighlight (1L<<2)
-#define XIMPrimary (1L<<5)
-#define XIMSecondary (1L<<6)
-#define XIMTertiary (1L<<7)
-#define XIMVisibleToForward (1L<<8)
-#define XIMVisibleToBackword (1L<<9)
-#define XIMVisibleToCenter (1L<<10)
-
-typedef struct _XIMText {
- unsigned short length;
- XIMFeedback *feedback;
- Bool encoding_is_wchar;
- union {
- char *multi_byte;
- wchar_t *wide_char;
- } string;
-} XIMText;
-
-typedef unsigned long XIMPreeditState;
-
-#define XIMPreeditUnKnown 0L
-#define XIMPreeditEnable 1L
-#define XIMPreeditDisable (1L<<1)
-
-typedef struct _XIMPreeditStateNotifyCallbackStruct {
- XIMPreeditState state;
-} XIMPreeditStateNotifyCallbackStruct;
-
-typedef unsigned long XIMResetState;
-
-#define XIMInitialState 1L
-#define XIMPreserveState (1L<<1)
-
-typedef unsigned long XIMStringConversionFeedback;
-
-#define XIMStringConversionLeftEdge (0x00000001)
-#define XIMStringConversionRightEdge (0x00000002)
-#define XIMStringConversionTopEdge (0x00000004)
-#define XIMStringConversionBottomEdge (0x00000008)
-#define XIMStringConversionConcealed (0x00000010)
-#define XIMStringConversionWrapped (0x00000020)
-
-typedef struct _XIMStringConversionText {
- unsigned short length;
- XIMStringConversionFeedback *feedback;
- Bool encoding_is_wchar;
- union {
- char *mbs;
- wchar_t *wcs;
- } string;
-} XIMStringConversionText;
-
-typedef unsigned short XIMStringConversionPosition;
-
-typedef unsigned short XIMStringConversionType;
-
-#define XIMStringConversionBuffer (0x0001)
-#define XIMStringConversionLine (0x0002)
-#define XIMStringConversionWord (0x0003)
-#define XIMStringConversionChar (0x0004)
-
-typedef unsigned short XIMStringConversionOperation;
-
-#define XIMStringConversionSubstitution (0x0001)
-#define XIMStringConversionRetrieval (0x0002)
-
-typedef enum {
- XIMForwardChar, XIMBackwardChar,
- XIMForwardWord, XIMBackwardWord,
- XIMCaretUp, XIMCaretDown,
- XIMNextLine, XIMPreviousLine,
- XIMLineStart, XIMLineEnd,
- XIMAbsolutePosition,
- XIMDontChange
-} XIMCaretDirection;
-
-typedef struct _XIMStringConversionCallbackStruct {
- XIMStringConversionPosition position;
- XIMCaretDirection direction;
- XIMStringConversionOperation operation;
- unsigned short factor;
- XIMStringConversionText *text;
-} XIMStringConversionCallbackStruct;
-
-typedef struct _XIMPreeditDrawCallbackStruct {
- int caret; /* Cursor offset within pre-edit string */
- int chg_first; /* Starting change position */
- int chg_length; /* Length of the change in character count */
- XIMText *text;
-} XIMPreeditDrawCallbackStruct;
-
-typedef enum {
- XIMIsInvisible, /* Disable caret feedback */
- XIMIsPrimary, /* UI defined caret feedback */
- XIMIsSecondary /* UI defined caret feedback */
-} XIMCaretStyle;
-
-typedef struct _XIMPreeditCaretCallbackStruct {
- int position; /* Caret offset within pre-edit string */
- XIMCaretDirection direction; /* Caret moves direction */
- XIMCaretStyle style; /* Feedback of the caret */
-} XIMPreeditCaretCallbackStruct;
-
-typedef enum {
- XIMTextType,
- XIMBitmapType
-} XIMStatusDataType;
-
-typedef struct _XIMStatusDrawCallbackStruct {
- XIMStatusDataType type;
- union {
- XIMText *text;
- Pixmap bitmap;
- } data;
-} XIMStatusDrawCallbackStruct;
-
-typedef struct _XIMHotKeyTrigger {
- KeySym keysym;
- int modifier;
- int modifier_mask;
-} XIMHotKeyTrigger;
-
-typedef struct _XIMHotKeyTriggers {
- int num_hot_key;
- XIMHotKeyTrigger *key;
-} XIMHotKeyTriggers;
-
-typedef unsigned long XIMHotKeyState;
-
-#define XIMHotKeyStateON (0x0001L)
-#define XIMHotKeyStateOFF (0x0002L)
-
-typedef struct {
- unsigned short count_values;
- char **supported_values;
-} XIMValuesList;
-
-_XFUNCPROTOBEGIN
-
-#if defined(WIN32) && !defined(_XLIBINT_)
-#define _Xdebug (*_Xdebug_p)
-#endif
-
-extern int _Xdebug;
-
-extern XFontStruct *XLoadQueryFont(
- Display* /* display */,
- _Xconst char* /* name */
-);
-
-extern XFontStruct *XQueryFont(
- Display* /* display */,
- XID /* font_ID */
-);
-
-
-extern XTimeCoord *XGetMotionEvents(
- Display* /* display */,
- Window /* w */,
- Time /* start */,
- Time /* stop */,
- int* /* nevents_return */
-);
-
-extern XModifierKeymap *XDeleteModifiermapEntry(
- XModifierKeymap* /* modmap */,
-#if NeedWidePrototypes
- unsigned int /* keycode_entry */,
-#else
- KeyCode /* keycode_entry */,
-#endif
- int /* modifier */
-);
-
-extern XModifierKeymap *XGetModifierMapping(
- Display* /* display */
-);
-
-extern XModifierKeymap *XInsertModifiermapEntry(
- XModifierKeymap* /* modmap */,
-#if NeedWidePrototypes
- unsigned int /* keycode_entry */,
-#else
- KeyCode /* keycode_entry */,
-#endif
- int /* modifier */
-);
-
-extern XModifierKeymap *XNewModifiermap(
- int /* max_keys_per_mod */
-);
-
-extern XImage *XCreateImage(
- Display* /* display */,
- Visual* /* visual */,
- unsigned int /* depth */,
- int /* format */,
- int /* offset */,
- char* /* data */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* bitmap_pad */,
- int /* bytes_per_line */
-);
-extern Status XInitImage(
- XImage* /* image */
-);
-extern XImage *XGetImage(
- Display* /* display */,
- Drawable /* d */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned long /* plane_mask */,
- int /* format */
-);
-extern XImage *XGetSubImage(
- Display* /* display */,
- Drawable /* d */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned long /* plane_mask */,
- int /* format */,
- XImage* /* dest_image */,
- int /* dest_x */,
- int /* dest_y */
-);
-
-/*
- * X function declarations.
- */
-extern Display *XOpenDisplay(
- _Xconst char* /* display_name */
-);
-
-extern void XrmInitialize(
- void
-);
-
-extern char *XFetchBytes(
- Display* /* display */,
- int* /* nbytes_return */
-);
-extern char *XFetchBuffer(
- Display* /* display */,
- int* /* nbytes_return */,
- int /* buffer */
-);
-extern char *XGetAtomName(
- Display* /* display */,
- Atom /* atom */
-);
-extern Status XGetAtomNames(
- Display* /* dpy */,
- Atom* /* atoms */,
- int /* count */,
- char** /* names_return */
-);
-extern char *XGetDefault(
- Display* /* display */,
- _Xconst char* /* program */,
- _Xconst char* /* option */
-);
-extern char *XDisplayName(
- _Xconst char* /* string */
-);
-extern char *XKeysymToString(
- KeySym /* keysym */
-);
-
-extern int (*XSynchronize(
- Display* /* display */,
- Bool /* onoff */
-))(
- Display* /* display */
-);
-extern int (*XSetAfterFunction(
- Display* /* display */,
- int (*) (
- Display* /* display */
- ) /* procedure */
-))(
- Display* /* display */
-);
-extern Atom XInternAtom(
- Display* /* display */,
- _Xconst char* /* atom_name */,
- Bool /* only_if_exists */
-);
-extern Status XInternAtoms(
- Display* /* dpy */,
- char** /* names */,
- int /* count */,
- Bool /* onlyIfExists */,
- Atom* /* atoms_return */
-);
-extern Colormap XCopyColormapAndFree(
- Display* /* display */,
- Colormap /* colormap */
-);
-extern Colormap XCreateColormap(
- Display* /* display */,
- Window /* w */,
- Visual* /* visual */,
- int /* alloc */
-);
-extern Cursor XCreatePixmapCursor(
- Display* /* display */,
- Pixmap /* source */,
- Pixmap /* mask */,
- XColor* /* foreground_color */,
- XColor* /* background_color */,
- unsigned int /* x */,
- unsigned int /* y */
-);
-extern Cursor XCreateGlyphCursor(
- Display* /* display */,
- Font /* source_font */,
- Font /* mask_font */,
- unsigned int /* source_char */,
- unsigned int /* mask_char */,
- XColor _Xconst * /* foreground_color */,
- XColor _Xconst * /* background_color */
-);
-extern Cursor XCreateFontCursor(
- Display* /* display */,
- unsigned int /* shape */
-);
-extern Font XLoadFont(
- Display* /* display */,
- _Xconst char* /* name */
-);
-extern GC XCreateGC(
- Display* /* display */,
- Drawable /* d */,
- unsigned long /* valuemask */,
- XGCValues* /* values */
-);
-extern GContext XGContextFromGC(
- GC /* gc */
-);
-extern void XFlushGC(
- Display* /* display */,
- GC /* gc */
-);
-extern Pixmap XCreatePixmap(
- Display* /* display */,
- Drawable /* d */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int /* depth */
-);
-extern Pixmap XCreateBitmapFromData(
- Display* /* display */,
- Drawable /* d */,
- _Xconst char* /* data */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-extern Pixmap XCreatePixmapFromBitmapData(
- Display* /* display */,
- Drawable /* d */,
- char* /* data */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned long /* fg */,
- unsigned long /* bg */,
- unsigned int /* depth */
-);
-extern Window XCreateSimpleWindow(
- Display* /* display */,
- Window /* parent */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int /* border_width */,
- unsigned long /* border */,
- unsigned long /* background */
-);
-extern Window XGetSelectionOwner(
- Display* /* display */,
- Atom /* selection */
-);
-extern Window XCreateWindow(
- Display* /* display */,
- Window /* parent */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int /* border_width */,
- int /* depth */,
- unsigned int /* class */,
- Visual* /* visual */,
- unsigned long /* valuemask */,
- XSetWindowAttributes* /* attributes */
-);
-extern Colormap *XListInstalledColormaps(
- Display* /* display */,
- Window /* w */,
- int* /* num_return */
-);
-extern char **XListFonts(
- Display* /* display */,
- _Xconst char* /* pattern */,
- int /* maxnames */,
- int* /* actual_count_return */
-);
-extern char **XListFontsWithInfo(
- Display* /* display */,
- _Xconst char* /* pattern */,
- int /* maxnames */,
- int* /* count_return */,
- XFontStruct** /* info_return */
-);
-extern char **XGetFontPath(
- Display* /* display */,
- int* /* npaths_return */
-);
-extern char **XListExtensions(
- Display* /* display */,
- int* /* nextensions_return */
-);
-extern Atom *XListProperties(
- Display* /* display */,
- Window /* w */,
- int* /* num_prop_return */
-);
-extern XHostAddress *XListHosts(
- Display* /* display */,
- int* /* nhosts_return */,
- Bool* /* state_return */
-);
-
-/* this is marked as_X_DEPRECATED in Xorg's upstream libX11 but NX
- needs it for performance reasons. Should be moved into the
- server. */
-extern KeySym XKeycodeToKeysym(
- Display* /* display */,
-#if NeedWidePrototypes
- unsigned int /* keycode */,
-#else
- KeyCode /* keycode */,
-#endif
- int /* index */
-);
-extern KeySym XLookupKeysym(
- XKeyEvent* /* key_event */,
- int /* index */
-);
-extern KeySym *XGetKeyboardMapping(
- Display* /* display */,
-#if NeedWidePrototypes
- unsigned int /* first_keycode */,
-#else
- KeyCode /* first_keycode */,
-#endif
- int /* keycode_count */,
- int* /* keysyms_per_keycode_return */
-);
-extern KeySym XStringToKeysym(
- _Xconst char* /* string */
-);
-extern long XMaxRequestSize(
- Display* /* display */
-);
-extern long XExtendedMaxRequestSize(
- Display* /* display */
-);
-extern char *XResourceManagerString(
- Display* /* display */
-);
-extern char *XScreenResourceString(
- Screen* /* screen */
-);
-extern unsigned long XDisplayMotionBufferSize(
- Display* /* display */
-);
-extern VisualID XVisualIDFromVisual(
- Visual* /* visual */
-);
-
-/* multithread routines */
-
-extern Status XInitThreads(
- void
-);
-
-extern void XLockDisplay(
- Display* /* display */
-);
-
-extern void XUnlockDisplay(
- Display* /* display */
-);
-
-/* routines for dealing with extensions */
-
-extern XExtCodes *XInitExtension(
- Display* /* display */,
- _Xconst char* /* name */
-);
-
-extern XExtCodes *XAddExtension(
- Display* /* display */
-);
-extern XExtData *XFindOnExtensionList(
- XExtData** /* structure */,
- int /* number */
-);
-extern XExtData **XEHeadOfExtensionList(
- XEDataObject /* object */
-);
-
-/* these are routines for which there are also macros */
-extern Window XRootWindow(
- Display* /* display */,
- int /* screen_number */
-);
-extern Window XDefaultRootWindow(
- Display* /* display */
-);
-extern Window XRootWindowOfScreen(
- Screen* /* screen */
-);
-extern Visual *XDefaultVisual(
- Display* /* display */,
- int /* screen_number */
-);
-extern Visual *XDefaultVisualOfScreen(
- Screen* /* screen */
-);
-extern GC XDefaultGC(
- Display* /* display */,
- int /* screen_number */
-);
-extern GC XDefaultGCOfScreen(
- Screen* /* screen */
-);
-extern unsigned long XBlackPixel(
- Display* /* display */,
- int /* screen_number */
-);
-extern unsigned long XWhitePixel(
- Display* /* display */,
- int /* screen_number */
-);
-extern unsigned long XAllPlanes(
- void
-);
-extern unsigned long XBlackPixelOfScreen(
- Screen* /* screen */
-);
-extern unsigned long XWhitePixelOfScreen(
- Screen* /* screen */
-);
-extern unsigned long XNextRequest(
- Display* /* display */
-);
-extern unsigned long XLastKnownRequestProcessed(
- Display* /* display */
-);
-extern char *XServerVendor(
- Display* /* display */
-);
-extern char *XDisplayString(
- Display* /* display */
-);
-extern Colormap XDefaultColormap(
- Display* /* display */,
- int /* screen_number */
-);
-extern Colormap XDefaultColormapOfScreen(
- Screen* /* screen */
-);
-extern Display *XDisplayOfScreen(
- Screen* /* screen */
-);
-extern Screen *XScreenOfDisplay(
- Display* /* display */,
- int /* screen_number */
-);
-extern Screen *XDefaultScreenOfDisplay(
- Display* /* display */
-);
-extern long XEventMaskOfScreen(
- Screen* /* screen */
-);
-
-extern int XScreenNumberOfScreen(
- Screen* /* screen */
-);
-
-typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */
- Display* /* display */,
- XErrorEvent* /* error_event */
-);
-
-extern XErrorHandler XSetErrorHandler (
- XErrorHandler /* handler */
-);
-
-
-typedef int (*XIOErrorHandler) ( /* WARNING, this type not in Xlib spec */
- Display* /* display */
-);
-
-extern XIOErrorHandler XSetIOErrorHandler (
- XIOErrorHandler /* handler */
-);
-
-
-extern XPixmapFormatValues *XListPixmapFormats(
- Display* /* display */,
- int* /* count_return */
-);
-extern int *XListDepths(
- Display* /* display */,
- int /* screen_number */,
- int* /* count_return */
-);
-
-/* ICCCM routines for things that don't require special include files; */
-/* other declarations are given in Xutil.h */
-extern Status XReconfigureWMWindow(
- Display* /* display */,
- Window /* w */,
- int /* screen_number */,
- unsigned int /* mask */,
- XWindowChanges* /* changes */
-);
-
-extern Status XGetWMProtocols(
- Display* /* display */,
- Window /* w */,
- Atom** /* protocols_return */,
- int* /* count_return */
-);
-extern Status XSetWMProtocols(
- Display* /* display */,
- Window /* w */,
- Atom* /* protocols */,
- int /* count */
-);
-extern Status XIconifyWindow(
- Display* /* display */,
- Window /* w */,
- int /* screen_number */
-);
-extern Status XWithdrawWindow(
- Display* /* display */,
- Window /* w */,
- int /* screen_number */
-);
-extern Status XGetCommand(
- Display* /* display */,
- Window /* w */,
- char*** /* argv_return */,
- int* /* argc_return */
-);
-extern Status XGetWMColormapWindows(
- Display* /* display */,
- Window /* w */,
- Window** /* windows_return */,
- int* /* count_return */
-);
-extern Status XSetWMColormapWindows(
- Display* /* display */,
- Window /* w */,
- Window* /* colormap_windows */,
- int /* count */
-);
-extern void XFreeStringList(
- char** /* list */
-);
-extern int XSetTransientForHint(
- Display* /* display */,
- Window /* w */,
- Window /* prop_window */
-);
-
-/* The following are given in alphabetical order */
-
-extern int XActivateScreenSaver(
- Display* /* display */
-);
-
-extern int XAddHost(
- Display* /* display */,
- XHostAddress* /* host */
-);
-
-extern int XAddHosts(
- Display* /* display */,
- XHostAddress* /* hosts */,
- int /* num_hosts */
-);
-
-extern int XAddToExtensionList(
- struct _XExtData** /* structure */,
- XExtData* /* ext_data */
-);
-
-extern int XAddToSaveSet(
- Display* /* display */,
- Window /* w */
-);
-
-extern Status XAllocColor(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* screen_in_out */
-);
-
-extern Status XAllocColorCells(
- Display* /* display */,
- Colormap /* colormap */,
- Bool /* contig */,
- unsigned long* /* plane_masks_return */,
- unsigned int /* nplanes */,
- unsigned long* /* pixels_return */,
- unsigned int /* npixels */
-);
-
-extern Status XAllocColorPlanes(
- Display* /* display */,
- Colormap /* colormap */,
- Bool /* contig */,
- unsigned long* /* pixels_return */,
- int /* ncolors */,
- int /* nreds */,
- int /* ngreens */,
- int /* nblues */,
- unsigned long* /* rmask_return */,
- unsigned long* /* gmask_return */,
- unsigned long* /* bmask_return */
-);
-
-extern Status XAllocNamedColor(
- Display* /* display */,
- Colormap /* colormap */,
- _Xconst char* /* color_name */,
- XColor* /* screen_def_return */,
- XColor* /* exact_def_return */
-);
-
-extern int XAllowEvents(
- Display* /* display */,
- int /* event_mode */,
- Time /* time */
-);
-
-extern int XAutoRepeatOff(
- Display* /* display */
-);
-
-extern int XAutoRepeatOn(
- Display* /* display */
-);
-
-extern int XBell(
- Display* /* display */,
- int /* percent */
-);
-
-extern int XBitmapBitOrder(
- Display* /* display */
-);
-
-extern int XBitmapPad(
- Display* /* display */
-);
-
-extern int XBitmapUnit(
- Display* /* display */
-);
-
-extern int XCellsOfScreen(
- Screen* /* screen */
-);
-
-extern int XChangeActivePointerGrab(
- Display* /* display */,
- unsigned int /* event_mask */,
- Cursor /* cursor */,
- Time /* time */
-);
-
-extern int XChangeGC(
- Display* /* display */,
- GC /* gc */,
- unsigned long /* valuemask */,
- XGCValues* /* values */
-);
-
-extern int XChangeKeyboardControl(
- Display* /* display */,
- unsigned long /* value_mask */,
- XKeyboardControl* /* values */
-);
-
-extern int XChangeKeyboardMapping(
- Display* /* display */,
- int /* first_keycode */,
- int /* keysyms_per_keycode */,
- KeySym* /* keysyms */,
- int /* num_codes */
-);
-
-extern int XChangePointerControl(
- Display* /* display */,
- Bool /* do_accel */,
- Bool /* do_threshold */,
- int /* accel_numerator */,
- int /* accel_denominator */,
- int /* threshold */
-);
-
-extern int XChangeProperty(
- Display* /* display */,
- Window /* w */,
- Atom /* property */,
- Atom /* type */,
- int /* format */,
- int /* mode */,
- _Xconst unsigned char* /* data */,
- int /* nelements */
-);
-
-extern int XChangeSaveSet(
- Display* /* display */,
- Window /* w */,
- int /* change_mode */
-);
-
-extern int XChangeWindowAttributes(
- Display* /* display */,
- Window /* w */,
- unsigned long /* valuemask */,
- XSetWindowAttributes* /* attributes */
-);
-
-extern Bool XCheckIfEvent(
- Display* /* display */,
- XEvent* /* event_return */,
- Bool (*) (
- Display* /* display */,
- XEvent* /* event */,
- XPointer /* arg */
- ) /* predicate */,
- XPointer /* arg */
-);
-
-#ifdef NX_TRANS_SOCKET
-
-/*
- * This is just like XCheckIfEvent() but doesn't
- * flush the output buffer if it can't read new
- * events.
- */
-
-extern Bool XCheckIfEventNoFlush(
- Display* /* display */,
- XEvent* /* event_return */,
- Bool (*) (
- Display* /* display */,
- XEvent* /* event */,
- XPointer /* arg */
- ) /* predicate */,
- XPointer /* arg */
-);
-
-#endif
-
-extern Bool XCheckMaskEvent(
- Display* /* display */,
- long /* event_mask */,
- XEvent* /* event_return */
-);
-
-extern Bool XCheckTypedEvent(
- Display* /* display */,
- int /* event_type */,
- XEvent* /* event_return */
-);
-
-extern Bool XCheckTypedWindowEvent(
- Display* /* display */,
- Window /* w */,
- int /* event_type */,
- XEvent* /* event_return */
-);
-
-extern Bool XCheckWindowEvent(
- Display* /* display */,
- Window /* w */,
- long /* event_mask */,
- XEvent* /* event_return */
-);
-
-extern int XCirculateSubwindows(
- Display* /* display */,
- Window /* w */,
- int /* direction */
-);
-
-extern int XCirculateSubwindowsDown(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XCirculateSubwindowsUp(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XClearArea(
- Display* /* display */,
- Window /* w */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- Bool /* exposures */
-);
-
-extern int XClearWindow(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XCloseDisplay(
- Display* /* display */
-);
-
-extern int XConfigureWindow(
- Display* /* display */,
- Window /* w */,
- unsigned int /* value_mask */,
- XWindowChanges* /* values */
-);
-
-extern int XConnectionNumber(
- Display* /* display */
-);
-
-extern int XConvertSelection(
- Display* /* display */,
- Atom /* selection */,
- Atom /* target */,
- Atom /* property */,
- Window /* requestor */,
- Time /* time */
-);
-
-extern int XCopyArea(
- Display* /* display */,
- Drawable /* src */,
- Drawable /* dest */,
- GC /* gc */,
- int /* src_x */,
- int /* src_y */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* dest_x */,
- int /* dest_y */
-);
-
-extern int XCopyGC(
- Display* /* display */,
- GC /* src */,
- unsigned long /* valuemask */,
- GC /* dest */
-);
-
-extern int XCopyPlane(
- Display* /* display */,
- Drawable /* src */,
- Drawable /* dest */,
- GC /* gc */,
- int /* src_x */,
- int /* src_y */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* dest_x */,
- int /* dest_y */,
- unsigned long /* plane */
-);
-
-extern int XDefaultDepth(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDefaultDepthOfScreen(
- Screen* /* screen */
-);
-
-extern int XDefaultScreen(
- Display* /* display */
-);
-
-extern int XDefineCursor(
- Display* /* display */,
- Window /* w */,
- Cursor /* cursor */
-);
-
-extern int XDeleteProperty(
- Display* /* display */,
- Window /* w */,
- Atom /* property */
-);
-
-extern int XDestroyWindow(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XDestroySubwindows(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XDoesBackingStore(
- Screen* /* screen */
-);
-
-extern Bool XDoesSaveUnders(
- Screen* /* screen */
-);
-
-extern int XDisableAccessControl(
- Display* /* display */
-);
-
-
-extern int XDisplayCells(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDisplayHeight(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDisplayHeightMM(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDisplayKeycodes(
- Display* /* display */,
- int* /* min_keycodes_return */,
- int* /* max_keycodes_return */
-);
-
-extern int XDisplayPlanes(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDisplayWidth(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDisplayWidthMM(
- Display* /* display */,
- int /* screen_number */
-);
-
-extern int XDrawArc(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* angle1 */,
- int /* angle2 */
-);
-
-extern int XDrawArcs(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XArc* /* arcs */,
- int /* narcs */
-);
-
-extern int XDrawImageString(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* string */,
- int /* length */
-);
-
-extern int XDrawImageString16(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst XChar2b* /* string */,
- int /* length */
-);
-
-extern int XDrawLine(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x1 */,
- int /* y1 */,
- int /* x2 */,
- int /* y2 */
-);
-
-extern int XDrawLines(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XPoint* /* points */,
- int /* npoints */,
- int /* mode */
-);
-
-extern int XDrawPoint(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */
-);
-
-extern int XDrawPoints(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XPoint* /* points */,
- int /* npoints */,
- int /* mode */
-);
-
-extern int XDrawRectangle(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-
-extern int XDrawRectangles(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XRectangle* /* rectangles */,
- int /* nrectangles */
-);
-
-extern int XDrawSegments(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XSegment* /* segments */,
- int /* nsegments */
-);
-
-extern int XDrawString(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* string */,
- int /* length */
-);
-
-extern int XDrawString16(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst XChar2b* /* string */,
- int /* length */
-);
-
-extern int XDrawText(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- XTextItem* /* items */,
- int /* nitems */
-);
-
-extern int XDrawText16(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- XTextItem16* /* items */,
- int /* nitems */
-);
-
-extern int XEnableAccessControl(
- Display* /* display */
-);
-
-extern int XEventsQueued(
- Display* /* display */,
- int /* mode */
-);
-
-extern Status XFetchName(
- Display* /* display */,
- Window /* w */,
- char** /* window_name_return */
-);
-
-extern int XFillArc(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* angle1 */,
- int /* angle2 */
-);
-
-extern int XFillArcs(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XArc* /* arcs */,
- int /* narcs */
-);
-
-extern int XFillPolygon(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XPoint* /* points */,
- int /* npoints */,
- int /* shape */,
- int /* mode */
-);
-
-extern int XFillRectangle(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-
-extern int XFillRectangles(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XRectangle* /* rectangles */,
- int /* nrectangles */
-);
-
-extern int XFlush(
- Display* /* display */
-);
-
-extern int XForceScreenSaver(
- Display* /* display */,
- int /* mode */
-);
-
-extern int XFree(
- void* /* data */
-);
-
-extern int XFreeColormap(
- Display* /* display */,
- Colormap /* colormap */
-);
-
-extern int XFreeColors(
- Display* /* display */,
- Colormap /* colormap */,
- unsigned long* /* pixels */,
- int /* npixels */,
- unsigned long /* planes */
-);
-
-extern int XFreeCursor(
- Display* /* display */,
- Cursor /* cursor */
-);
-
-extern int XFreeExtensionList(
- char** /* list */
-);
-
-extern int XFreeFont(
- Display* /* display */,
- XFontStruct* /* font_struct */
-);
-
-extern int XFreeFontInfo(
- char** /* names */,
- XFontStruct* /* free_info */,
- int /* actual_count */
-);
-
-extern int XFreeFontNames(
- char** /* list */
-);
-
-extern int XFreeFontPath(
- char** /* list */
-);
-
-extern int XFreeGC(
- Display* /* display */,
- GC /* gc */
-);
-
-extern int XFreeModifiermap(
- XModifierKeymap* /* modmap */
-);
-
-extern int XFreePixmap(
- Display* /* display */,
- Pixmap /* pixmap */
-);
-
-extern int XGeometry(
- Display* /* display */,
- int /* screen */,
- _Xconst char* /* position */,
- _Xconst char* /* default_position */,
- unsigned int /* bwidth */,
- unsigned int /* fwidth */,
- unsigned int /* fheight */,
- int /* xadder */,
- int /* yadder */,
- int* /* x_return */,
- int* /* y_return */,
- int* /* width_return */,
- int* /* height_return */
-);
-
-extern int XGetErrorDatabaseText(
- Display* /* display */,
- _Xconst char* /* name */,
- _Xconst char* /* message */,
- _Xconst char* /* default_string */,
- char* /* buffer_return */,
- int /* length */
-);
-
-extern int XGetErrorText(
- Display* /* display */,
- int /* code */,
- char* /* buffer_return */,
- int /* length */
-);
-
-extern Bool XGetFontProperty(
- XFontStruct* /* font_struct */,
- Atom /* atom */,
- unsigned long* /* value_return */
-);
-
-extern Status XGetGCValues(
- Display* /* display */,
- GC /* gc */,
- unsigned long /* valuemask */,
- XGCValues* /* values_return */
-);
-
-extern Status XGetGeometry(
- Display* /* display */,
- Drawable /* d */,
- Window* /* root_return */,
- int* /* x_return */,
- int* /* y_return */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */,
- unsigned int* /* border_width_return */,
- unsigned int* /* depth_return */
-);
-
-extern Status XGetIconName(
- Display* /* display */,
- Window /* w */,
- char** /* icon_name_return */
-);
-
-extern int XGetInputFocus(
- Display* /* display */,
- Window* /* focus_return */,
- int* /* revert_to_return */
-);
-
-extern int XGetKeyboardControl(
- Display* /* display */,
- XKeyboardState* /* values_return */
-);
-
-extern int XGetPointerControl(
- Display* /* display */,
- int* /* accel_numerator_return */,
- int* /* accel_denominator_return */,
- int* /* threshold_return */
-);
-
-extern int XGetPointerMapping(
- Display* /* display */,
- unsigned char* /* map_return */,
- int /* nmap */
-);
-
-extern int XGetScreenSaver(
- Display* /* display */,
- int* /* timeout_return */,
- int* /* interval_return */,
- int* /* prefer_blanking_return */,
- int* /* allow_exposures_return */
-);
-
-extern Status XGetTransientForHint(
- Display* /* display */,
- Window /* w */,
- Window* /* prop_window_return */
-);
-
-extern int XGetWindowProperty(
- Display* /* display */,
- Window /* w */,
- Atom /* property */,
- long /* long_offset */,
- long /* long_length */,
- Bool /* delete */,
- Atom /* req_type */,
- Atom* /* actual_type_return */,
- int* /* actual_format_return */,
- unsigned long* /* nitems_return */,
- unsigned long* /* bytes_after_return */,
- unsigned char** /* prop_return */
-);
-
-extern Status XGetWindowAttributes(
- Display* /* display */,
- Window /* w */,
- XWindowAttributes* /* window_attributes_return */
-);
-
-extern int XGrabButton(
- Display* /* display */,
- unsigned int /* button */,
- unsigned int /* modifiers */,
- Window /* grab_window */,
- Bool /* owner_events */,
- unsigned int /* event_mask */,
- int /* pointer_mode */,
- int /* keyboard_mode */,
- Window /* confine_to */,
- Cursor /* cursor */
-);
-
-extern int XGrabKey(
- Display* /* display */,
- int /* keycode */,
- unsigned int /* modifiers */,
- Window /* grab_window */,
- Bool /* owner_events */,
- int /* pointer_mode */,
- int /* keyboard_mode */
-);
-
-extern int XGrabKeyboard(
- Display* /* display */,
- Window /* grab_window */,
- Bool /* owner_events */,
- int /* pointer_mode */,
- int /* keyboard_mode */,
- Time /* time */
-);
-
-extern int XGrabPointer(
- Display* /* display */,
- Window /* grab_window */,
- Bool /* owner_events */,
- unsigned int /* event_mask */,
- int /* pointer_mode */,
- int /* keyboard_mode */,
- Window /* confine_to */,
- Cursor /* cursor */,
- Time /* time */
-);
-
-extern int XGrabServer(
- Display* /* display */
-);
-
-extern int XHeightMMOfScreen(
- Screen* /* screen */
-);
-
-extern int XHeightOfScreen(
- Screen* /* screen */
-);
-
-extern int XIfEvent(
- Display* /* display */,
- XEvent* /* event_return */,
- Bool (*) (
- Display* /* display */,
- XEvent* /* event */,
- XPointer /* arg */
- ) /* predicate */,
- XPointer /* arg */
-);
-
-extern int XImageByteOrder(
- Display* /* display */
-);
-
-extern int XInstallColormap(
- Display* /* display */,
- Colormap /* colormap */
-);
-
-extern KeyCode XKeysymToKeycode(
- Display* /* display */,
- KeySym /* keysym */
-);
-
-extern int XKillClient(
- Display* /* display */,
- XID /* resource */
-);
-
-extern Status XLookupColor(
- Display* /* display */,
- Colormap /* colormap */,
- _Xconst char* /* color_name */,
- XColor* /* exact_def_return */,
- XColor* /* screen_def_return */
-);
-
-extern int XLowerWindow(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XMapRaised(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XMapSubwindows(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XMapWindow(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XMaskEvent(
- Display* /* display */,
- long /* event_mask */,
- XEvent* /* event_return */
-);
-
-extern int XMaxCmapsOfScreen(
- Screen* /* screen */
-);
-
-extern int XMinCmapsOfScreen(
- Screen* /* screen */
-);
-
-extern int XMoveResizeWindow(
- Display* /* display */,
- Window /* w */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-
-extern int XMoveWindow(
- Display* /* display */,
- Window /* w */,
- int /* x */,
- int /* y */
-);
-
-extern int XNextEvent(
- Display* /* display */,
- XEvent* /* event_return */
-);
-
-extern int XNoOp(
- Display* /* display */
-);
-
-extern Status XParseColor(
- Display* /* display */,
- Colormap /* colormap */,
- _Xconst char* /* spec */,
- XColor* /* exact_def_return */
-);
-
-extern int XParseGeometry(
- _Xconst char* /* parsestring */,
- int* /* x_return */,
- int* /* y_return */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */
-);
-
-extern int XPeekEvent(
- Display* /* display */,
- XEvent* /* event_return */
-);
-
-extern int XPeekIfEvent(
- Display* /* display */,
- XEvent* /* event_return */,
- Bool (*) (
- Display* /* display */,
- XEvent* /* event */,
- XPointer /* arg */
- ) /* predicate */,
- XPointer /* arg */
-);
-
-extern int XPending(
- Display* /* display */
-);
-
-extern int XPlanesOfScreen(
- Screen* /* screen */
-);
-
-extern int XProtocolRevision(
- Display* /* display */
-);
-
-extern int XProtocolVersion(
- Display* /* display */
-);
-
-
-extern int XPutBackEvent(
- Display* /* display */,
- XEvent* /* event */
-);
-
-extern int XPutImage(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- XImage* /* image */,
- int /* src_x */,
- int /* src_y */,
- int /* dest_x */,
- int /* dest_y */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-
-extern int XQLength(
- Display* /* display */
-);
-
-extern Status XQueryBestCursor(
- Display* /* display */,
- Drawable /* d */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */
-);
-
-extern Status XQueryBestSize(
- Display* /* display */,
- int /* class */,
- Drawable /* which_screen */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */
-);
-
-extern Status XQueryBestStipple(
- Display* /* display */,
- Drawable /* which_screen */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */
-);
-
-extern Status XQueryBestTile(
- Display* /* display */,
- Drawable /* which_screen */,
- unsigned int /* width */,
- unsigned int /* height */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */
-);
-
-extern int XQueryColor(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* def_in_out */
-);
-
-extern int XQueryColors(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* defs_in_out */,
- int /* ncolors */
-);
-
-extern Bool XQueryExtension(
- Display* /* display */,
- _Xconst char* /* name */,
- int* /* major_opcode_return */,
- int* /* first_event_return */,
- int* /* first_error_return */
-);
-
-extern int XQueryKeymap(
- Display* /* display */,
- char [32] /* keys_return */
-);
-
-extern Bool XQueryPointer(
- Display* /* display */,
- Window /* w */,
- Window* /* root_return */,
- Window* /* child_return */,
- int* /* root_x_return */,
- int* /* root_y_return */,
- int* /* win_x_return */,
- int* /* win_y_return */,
- unsigned int* /* mask_return */
-);
-
-extern int XQueryTextExtents(
- Display* /* display */,
- XID /* font_ID */,
- _Xconst char* /* string */,
- int /* nchars */,
- int* /* direction_return */,
- int* /* font_ascent_return */,
- int* /* font_descent_return */,
- XCharStruct* /* overall_return */
-);
-
-extern int XQueryTextExtents16(
- Display* /* display */,
- XID /* font_ID */,
- _Xconst XChar2b* /* string */,
- int /* nchars */,
- int* /* direction_return */,
- int* /* font_ascent_return */,
- int* /* font_descent_return */,
- XCharStruct* /* overall_return */
-);
-
-extern Status XQueryTree(
- Display* /* display */,
- Window /* w */,
- Window* /* root_return */,
- Window* /* parent_return */,
- Window** /* children_return */,
- unsigned int* /* nchildren_return */
-);
-
-extern int XRaiseWindow(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XReadBitmapFile(
- Display* /* display */,
- Drawable /* d */,
- _Xconst char* /* filename */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */,
- Pixmap* /* bitmap_return */,
- int* /* x_hot_return */,
- int* /* y_hot_return */
-);
-
-extern int XReadBitmapFileData(
- _Xconst char* /* filename */,
- unsigned int* /* width_return */,
- unsigned int* /* height_return */,
- unsigned char** /* data_return */,
- int* /* x_hot_return */,
- int* /* y_hot_return */
-);
-
-extern int XRebindKeysym(
- Display* /* display */,
- KeySym /* keysym */,
- KeySym* /* list */,
- int /* mod_count */,
- _Xconst unsigned char* /* string */,
- int /* bytes_string */
-);
-
-extern int XRecolorCursor(
- Display* /* display */,
- Cursor /* cursor */,
- XColor* /* foreground_color */,
- XColor* /* background_color */
-);
-
-extern int XRefreshKeyboardMapping(
- XMappingEvent* /* event_map */
-);
-
-extern int XRemoveFromSaveSet(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XRemoveHost(
- Display* /* display */,
- XHostAddress* /* host */
-);
-
-extern int XRemoveHosts(
- Display* /* display */,
- XHostAddress* /* hosts */,
- int /* num_hosts */
-);
-
-extern int XReparentWindow(
- Display* /* display */,
- Window /* w */,
- Window /* parent */,
- int /* x */,
- int /* y */
-);
-
-extern int XResetScreenSaver(
- Display* /* display */
-);
-
-extern int XResizeWindow(
- Display* /* display */,
- Window /* w */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-
-extern int XRestackWindows(
- Display* /* display */,
- Window* /* windows */,
- int /* nwindows */
-);
-
-extern int XRotateBuffers(
- Display* /* display */,
- int /* rotate */
-);
-
-extern int XRotateWindowProperties(
- Display* /* display */,
- Window /* w */,
- Atom* /* properties */,
- int /* num_prop */,
- int /* npositions */
-);
-
-extern int XScreenCount(
- Display* /* display */
-);
-
-extern int XSelectInput(
- Display* /* display */,
- Window /* w */,
- long /* event_mask */
-);
-
-extern Status XSendEvent(
- Display* /* display */,
- Window /* w */,
- Bool /* propagate */,
- long /* event_mask */,
- XEvent* /* event_send */
-);
-
-extern int XSetAccessControl(
- Display* /* display */,
- int /* mode */
-);
-
-extern int XSetArcMode(
- Display* /* display */,
- GC /* gc */,
- int /* arc_mode */
-);
-
-extern int XSetBackground(
- Display* /* display */,
- GC /* gc */,
- unsigned long /* background */
-);
-
-extern int XSetClipMask(
- Display* /* display */,
- GC /* gc */,
- Pixmap /* pixmap */
-);
-
-extern int XSetClipOrigin(
- Display* /* display */,
- GC /* gc */,
- int /* clip_x_origin */,
- int /* clip_y_origin */
-);
-
-extern int XSetClipRectangles(
- Display* /* display */,
- GC /* gc */,
- int /* clip_x_origin */,
- int /* clip_y_origin */,
- XRectangle* /* rectangles */,
- int /* n */,
- int /* ordering */
-);
-
-extern int XSetCloseDownMode(
- Display* /* display */,
- int /* close_mode */
-);
-
-extern int XSetCommand(
- Display* /* display */,
- Window /* w */,
- char** /* argv */,
- int /* argc */
-);
-
-extern int XSetDashes(
- Display* /* display */,
- GC /* gc */,
- int /* dash_offset */,
- _Xconst char* /* dash_list */,
- int /* n */
-);
-
-extern int XSetFillRule(
- Display* /* display */,
- GC /* gc */,
- int /* fill_rule */
-);
-
-extern int XSetFillStyle(
- Display* /* display */,
- GC /* gc */,
- int /* fill_style */
-);
-
-extern int XSetFont(
- Display* /* display */,
- GC /* gc */,
- Font /* font */
-);
-
-extern int XSetFontPath(
- Display* /* display */,
- char** /* directories */,
- int /* ndirs */
-);
-
-extern int XSetForeground(
- Display* /* display */,
- GC /* gc */,
- unsigned long /* foreground */
-);
-
-extern int XSetFunction(
- Display* /* display */,
- GC /* gc */,
- int /* function */
-);
-
-extern int XSetGraphicsExposures(
- Display* /* display */,
- GC /* gc */,
- Bool /* graphics_exposures */
-);
-
-extern int XSetIconName(
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* icon_name */
-);
-
-extern int XSetInputFocus(
- Display* /* display */,
- Window /* focus */,
- int /* revert_to */,
- Time /* time */
-);
-
-extern int XSetLineAttributes(
- Display* /* display */,
- GC /* gc */,
- unsigned int /* line_width */,
- int /* line_style */,
- int /* cap_style */,
- int /* join_style */
-);
-
-extern int XSetModifierMapping(
- Display* /* display */,
- XModifierKeymap* /* modmap */
-);
-
-extern int XSetPlaneMask(
- Display* /* display */,
- GC /* gc */,
- unsigned long /* plane_mask */
-);
-
-extern int XSetPointerMapping(
- Display* /* display */,
- _Xconst unsigned char* /* map */,
- int /* nmap */
-);
-
-extern int XSetScreenSaver(
- Display* /* display */,
- int /* timeout */,
- int /* interval */,
- int /* prefer_blanking */,
- int /* allow_exposures */
-);
-
-extern int XSetSelectionOwner(
- Display* /* display */,
- Atom /* selection */,
- Window /* owner */,
- Time /* time */
-);
-
-extern int XSetState(
- Display* /* display */,
- GC /* gc */,
- unsigned long /* foreground */,
- unsigned long /* background */,
- int /* function */,
- unsigned long /* plane_mask */
-);
-
-extern int XSetStipple(
- Display* /* display */,
- GC /* gc */,
- Pixmap /* stipple */
-);
-
-extern int XSetSubwindowMode(
- Display* /* display */,
- GC /* gc */,
- int /* subwindow_mode */
-);
-
-extern int XSetTSOrigin(
- Display* /* display */,
- GC /* gc */,
- int /* ts_x_origin */,
- int /* ts_y_origin */
-);
-
-extern int XSetTile(
- Display* /* display */,
- GC /* gc */,
- Pixmap /* tile */
-);
-
-extern int XSetWindowBackground(
- Display* /* display */,
- Window /* w */,
- unsigned long /* background_pixel */
-);
-
-extern int XSetWindowBackgroundPixmap(
- Display* /* display */,
- Window /* w */,
- Pixmap /* background_pixmap */
-);
-
-extern int XSetWindowBorder(
- Display* /* display */,
- Window /* w */,
- unsigned long /* border_pixel */
-);
-
-extern int XSetWindowBorderPixmap(
- Display* /* display */,
- Window /* w */,
- Pixmap /* border_pixmap */
-);
-
-extern int XSetWindowBorderWidth(
- Display* /* display */,
- Window /* w */,
- unsigned int /* width */
-);
-
-extern int XSetWindowColormap(
- Display* /* display */,
- Window /* w */,
- Colormap /* colormap */
-);
-
-extern int XStoreBuffer(
- Display* /* display */,
- _Xconst char* /* bytes */,
- int /* nbytes */,
- int /* buffer */
-);
-
-extern int XStoreBytes(
- Display* /* display */,
- _Xconst char* /* bytes */,
- int /* nbytes */
-);
-
-extern int XStoreColor(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* color */
-);
-
-extern int XStoreColors(
- Display* /* display */,
- Colormap /* colormap */,
- XColor* /* color */,
- int /* ncolors */
-);
-
-extern int XStoreName(
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* window_name */
-);
-
-extern int XStoreNamedColor(
- Display* /* display */,
- Colormap /* colormap */,
- _Xconst char* /* color */,
- unsigned long /* pixel */,
- int /* flags */
-);
-
-extern int XSync(
- Display* /* display */,
- Bool /* discard */
-);
-
-extern int XTextExtents(
- XFontStruct* /* font_struct */,
- _Xconst char* /* string */,
- int /* nchars */,
- int* /* direction_return */,
- int* /* font_ascent_return */,
- int* /* font_descent_return */,
- XCharStruct* /* overall_return */
-);
-
-extern int XTextExtents16(
- XFontStruct* /* font_struct */,
- _Xconst XChar2b* /* string */,
- int /* nchars */,
- int* /* direction_return */,
- int* /* font_ascent_return */,
- int* /* font_descent_return */,
- XCharStruct* /* overall_return */
-);
-
-extern int XTextWidth(
- XFontStruct* /* font_struct */,
- _Xconst char* /* string */,
- int /* count */
-);
-
-extern int XTextWidth16(
- XFontStruct* /* font_struct */,
- _Xconst XChar2b* /* string */,
- int /* count */
-);
-
-extern Bool XTranslateCoordinates(
- Display* /* display */,
- Window /* src_w */,
- Window /* dest_w */,
- int /* src_x */,
- int /* src_y */,
- int* /* dest_x_return */,
- int* /* dest_y_return */,
- Window* /* child_return */
-);
-
-extern int XUndefineCursor(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XUngrabButton(
- Display* /* display */,
- unsigned int /* button */,
- unsigned int /* modifiers */,
- Window /* grab_window */
-);
-
-extern int XUngrabKey(
- Display* /* display */,
- int /* keycode */,
- unsigned int /* modifiers */,
- Window /* grab_window */
-);
-
-extern int XUngrabKeyboard(
- Display* /* display */,
- Time /* time */
-);
-
-extern int XUngrabPointer(
- Display* /* display */,
- Time /* time */
-);
-
-extern int XUngrabServer(
- Display* /* display */
-);
-
-extern int XUninstallColormap(
- Display* /* display */,
- Colormap /* colormap */
-);
-
-extern int XUnloadFont(
- Display* /* display */,
- Font /* font */
-);
-
-extern int XUnmapSubwindows(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XUnmapWindow(
- Display* /* display */,
- Window /* w */
-);
-
-extern int XVendorRelease(
- Display* /* display */
-);
-
-extern int XWarpPointer(
- Display* /* display */,
- Window /* src_w */,
- Window /* dest_w */,
- int /* src_x */,
- int /* src_y */,
- unsigned int /* src_width */,
- unsigned int /* src_height */,
- int /* dest_x */,
- int /* dest_y */
-);
-
-extern int XWidthMMOfScreen(
- Screen* /* screen */
-);
-
-extern int XWidthOfScreen(
- Screen* /* screen */
-);
-
-extern int XWindowEvent(
- Display* /* display */,
- Window /* w */,
- long /* event_mask */,
- XEvent* /* event_return */
-);
-
-extern int XWriteBitmapFile(
- Display* /* display */,
- _Xconst char* /* filename */,
- Pixmap /* bitmap */,
- unsigned int /* width */,
- unsigned int /* height */,
- int /* x_hot */,
- int /* y_hot */
-);
-
-extern Bool XSupportsLocale (void);
-
-extern char *XSetLocaleModifiers(
- const char* /* modifier_list */
-);
-
-extern XOM XOpenOM(
- Display* /* display */,
- struct _XrmHashBucketRec* /* rdb */,
- _Xconst char* /* res_name */,
- _Xconst char* /* res_class */
-);
-
-extern Status XCloseOM(
- XOM /* om */
-);
-
-extern char *XSetOMValues(
- XOM /* om */,
- ...
-) _X_SENTINEL(0);
-
-extern char *XGetOMValues(
- XOM /* om */,
- ...
-) _X_SENTINEL(0);
-
-extern Display *XDisplayOfOM(
- XOM /* om */
-);
-
-extern char *XLocaleOfOM(
- XOM /* om */
-);
-
-extern XOC XCreateOC(
- XOM /* om */,
- ...
-) _X_SENTINEL(0);
-
-extern void XDestroyOC(
- XOC /* oc */
-);
-
-extern XOM XOMOfOC(
- XOC /* oc */
-);
-
-extern char *XSetOCValues(
- XOC /* oc */,
- ...
-) _X_SENTINEL(0);
-
-extern char *XGetOCValues(
- XOC /* oc */,
- ...
-) _X_SENTINEL(0);
-
-extern XFontSet XCreateFontSet(
- Display* /* display */,
- _Xconst char* /* base_font_name_list */,
- char*** /* missing_charset_list */,
- int* /* missing_charset_count */,
- char** /* def_string */
-);
-
-extern void XFreeFontSet(
- Display* /* display */,
- XFontSet /* font_set */
-);
-
-extern int XFontsOfFontSet(
- XFontSet /* font_set */,
- XFontStruct*** /* font_struct_list */,
- char*** /* font_name_list */
-);
-
-extern char *XBaseFontNameListOfFontSet(
- XFontSet /* font_set */
-);
-
-extern char *XLocaleOfFontSet(
- XFontSet /* font_set */
-);
-
-extern Bool XContextDependentDrawing(
- XFontSet /* font_set */
-);
-
-extern Bool XDirectionalDependentDrawing(
- XFontSet /* font_set */
-);
-
-extern Bool XContextualDrawing(
- XFontSet /* font_set */
-);
-
-extern XFontSetExtents *XExtentsOfFontSet(
- XFontSet /* font_set */
-);
-
-extern int XmbTextEscapement(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* bytes_text */
-);
-
-extern int XwcTextEscapement(
- XFontSet /* font_set */,
- _Xconst wchar_t* /* text */,
- int /* num_wchars */
-);
-
-extern int Xutf8TextEscapement(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* bytes_text */
-);
-
-extern int XmbTextExtents(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* bytes_text */,
- XRectangle* /* overall_ink_return */,
- XRectangle* /* overall_logical_return */
-);
-
-extern int XwcTextExtents(
- XFontSet /* font_set */,
- _Xconst wchar_t* /* text */,
- int /* num_wchars */,
- XRectangle* /* overall_ink_return */,
- XRectangle* /* overall_logical_return */
-);
-
-extern int Xutf8TextExtents(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* bytes_text */,
- XRectangle* /* overall_ink_return */,
- XRectangle* /* overall_logical_return */
-);
-
-extern Status XmbTextPerCharExtents(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* bytes_text */,
- XRectangle* /* ink_extents_buffer */,
- XRectangle* /* logical_extents_buffer */,
- int /* buffer_size */,
- int* /* num_chars */,
- XRectangle* /* overall_ink_return */,
- XRectangle* /* overall_logical_return */
-);
-
-extern Status XwcTextPerCharExtents(
- XFontSet /* font_set */,
- _Xconst wchar_t* /* text */,
- int /* num_wchars */,
- XRectangle* /* ink_extents_buffer */,
- XRectangle* /* logical_extents_buffer */,
- int /* buffer_size */,
- int* /* num_chars */,
- XRectangle* /* overall_ink_return */,
- XRectangle* /* overall_logical_return */
-);
-
-extern Status Xutf8TextPerCharExtents(
- XFontSet /* font_set */,
- _Xconst char* /* text */,
- int /* bytes_text */,
- XRectangle* /* ink_extents_buffer */,
- XRectangle* /* logical_extents_buffer */,
- int /* buffer_size */,
- int* /* num_chars */,
- XRectangle* /* overall_ink_return */,
- XRectangle* /* overall_logical_return */
-);
-
-extern void XmbDrawText(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- XmbTextItem* /* text_items */,
- int /* nitems */
-);
-
-extern void XwcDrawText(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- XwcTextItem* /* text_items */,
- int /* nitems */
-);
-
-extern void Xutf8DrawText(
- Display* /* display */,
- Drawable /* d */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- XmbTextItem* /* text_items */,
- int /* nitems */
-);
-
-extern void XmbDrawString(
- Display* /* display */,
- Drawable /* d */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* text */,
- int /* bytes_text */
-);
-
-extern void XwcDrawString(
- Display* /* display */,
- Drawable /* d */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst wchar_t* /* text */,
- int /* num_wchars */
-);
-
-extern void Xutf8DrawString(
- Display* /* display */,
- Drawable /* d */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* text */,
- int /* bytes_text */
-);
-
-extern void XmbDrawImageString(
- Display* /* display */,
- Drawable /* d */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* text */,
- int /* bytes_text */
-);
-
-extern void XwcDrawImageString(
- Display* /* display */,
- Drawable /* d */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst wchar_t* /* text */,
- int /* num_wchars */
-);
-
-extern void Xutf8DrawImageString(
- Display* /* display */,
- Drawable /* d */,
- XFontSet /* font_set */,
- GC /* gc */,
- int /* x */,
- int /* y */,
- _Xconst char* /* text */,
- int /* bytes_text */
-);
-
-extern XIM XOpenIM(
- Display* /* dpy */,
- struct _XrmHashBucketRec* /* rdb */,
- char* /* res_name */,
- char* /* res_class */
-);
-
-extern Status XCloseIM(
- XIM /* im */
-);
-
-extern char *XGetIMValues(
- XIM /* im */, ...
-) _X_SENTINEL(0);
-
-extern char *XSetIMValues(
- XIM /* im */, ...
-) _X_SENTINEL(0);
-
-extern Display *XDisplayOfIM(
- XIM /* im */
-);
-
-extern char *XLocaleOfIM(
- XIM /* im*/
-);
-
-extern XIC XCreateIC(
- XIM /* im */, ...
-) _X_SENTINEL(0);
-
-extern void XDestroyIC(
- XIC /* ic */
-);
-
-extern void XSetICFocus(
- XIC /* ic */
-);
-
-extern void XUnsetICFocus(
- XIC /* ic */
-);
-
-extern wchar_t *XwcResetIC(
- XIC /* ic */
-);
-
-extern char *XmbResetIC(
- XIC /* ic */
-);
-
-extern char *Xutf8ResetIC(
- XIC /* ic */
-);
-
-extern char *XSetICValues(
- XIC /* ic */, ...
-) _X_SENTINEL(0);
-
-extern char *XGetICValues(
- XIC /* ic */, ...
-) _X_SENTINEL(0);
-
-extern XIM XIMOfIC(
- XIC /* ic */
-);
-
-extern Bool XFilterEvent(
- XEvent* /* event */,
- Window /* window */
-);
-
-extern int XmbLookupString(
- XIC /* ic */,
- XKeyPressedEvent* /* event */,
- char* /* buffer_return */,
- int /* bytes_buffer */,
- KeySym* /* keysym_return */,
- Status* /* status_return */
-);
-
-extern int XwcLookupString(
- XIC /* ic */,
- XKeyPressedEvent* /* event */,
- wchar_t* /* buffer_return */,
- int /* wchars_buffer */,
- KeySym* /* keysym_return */,
- Status* /* status_return */
-);
-
-extern int Xutf8LookupString(
- XIC /* ic */,
- XKeyPressedEvent* /* event */,
- char* /* buffer_return */,
- int /* bytes_buffer */,
- KeySym* /* keysym_return */,
- Status* /* status_return */
-);
-
-extern XVaNestedList XVaCreateNestedList(
- int /*unused*/, ...
-) _X_SENTINEL(0);
-
-/* internal connections for IMs */
-
-extern Bool XRegisterIMInstantiateCallback(
- Display* /* dpy */,
- struct _XrmHashBucketRec* /* rdb */,
- char* /* res_name */,
- char* /* res_class */,
- XIDProc /* callback */,
- XPointer /* client_data */
-);
-
-extern Bool XUnregisterIMInstantiateCallback(
- Display* /* dpy */,
- struct _XrmHashBucketRec* /* rdb */,
- char* /* res_name */,
- char* /* res_class */,
- XIDProc /* callback */,
- XPointer /* client_data */
-);
-
-typedef void (*XConnectionWatchProc)(
- Display* /* dpy */,
- XPointer /* client_data */,
- int /* fd */,
- Bool /* opening */, /* open or close flag */
- XPointer* /* watch_data */ /* open sets, close uses */
-);
-
-
-extern Status XInternalConnectionNumbers(
- Display* /* dpy */,
- int** /* fd_return */,
- int* /* count_return */
-);
-
-extern void XProcessInternalConnection(
- Display* /* dpy */,
- int /* fd */
-);
-
-extern Status XAddConnectionWatch(
- Display* /* dpy */,
- XConnectionWatchProc /* callback */,
- XPointer /* client_data */
-);
-
-extern void XRemoveConnectionWatch(
- Display* /* dpy */,
- XConnectionWatchProc /* callback */,
- XPointer /* client_data */
-);
-
-extern void XSetAuthorization(
- char * /* name */,
- int /* namelen */,
- char * /* data */,
- int /* datalen */
-);
-
-extern int _Xmbtowc(
- wchar_t * /* wstr */,
- char * /* str */,
- int /* len */
-);
-
-extern int _Xwctomb(
- char * /* str */,
- wchar_t /* wc */
-);
-
-extern Bool XGetEventData(
- Display* /* dpy */,
- XGenericEventCookie* /* cookie*/
-);
-
-extern void XFreeEventData(
- Display* /* dpy */,
- XGenericEventCookie* /* cookie*/
-);
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-_XFUNCPROTOEND
-
-#endif /* #if !defined(_X11_XLIB_H_) && !defined(_XLIB_H_) */
diff --git a/nx-X11/lib/X11/XlibAsync.c b/nx-X11/lib/X11/XlibAsync.c
deleted file mode 100644
index 2e528d8b1..000000000
--- a/nx-X11/lib/X11/XlibAsync.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* nx-X11, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
-/*
-
-Copyright 1992, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xos.h>
-
-/*ARGSUSED*/
-Bool
-_XAsyncErrorHandler(
- register Display *dpy,
- register xReply *rep,
- char *buf,
- int len,
- XPointer data)
-{
- register _XAsyncErrorState *state;
-
- state = (_XAsyncErrorState *)data;
- if (rep->generic.type == X_Error &&
- (!state->error_code ||
- rep->error.errorCode == state->error_code) &&
- (!state->major_opcode ||
- rep->error.majorCode == state->major_opcode) &&
- (!state->minor_opcode ||
- rep->error.minorCode == state->minor_opcode) &&
- (!state->min_sequence_number ||
- (state->min_sequence_number <= dpy->last_request_read)) &&
- (!state->max_sequence_number ||
- (state->max_sequence_number >= dpy->last_request_read))) {
- state->last_error_received = rep->error.errorCode;
- state->error_count++;
- return True;
- }
- return False;
-}
-
-void _XDeqAsyncHandler(
- Display *dpy,
- register _XAsyncHandler *handler)
-{
- register _XAsyncHandler **prev;
- register _XAsyncHandler *async;
-
- for (prev = &dpy->async_handlers;
- (async = *prev) && (async != handler);
- prev = &async->next)
- ;
- if (async)
- *prev = async->next;
-}
-
-char *
-_XGetAsyncReply(
- register Display *dpy,
- register char *replbuf, /* data is read into this buffer */
- register xReply *rep, /* value passed to calling handler */
- char *buf, /* value passed to calling handler */
- int len, /* value passed to calling handler */
- int extra, /* extra words to read, ala _XReply */
- Bool discard) /* discard after extra?, ala _XReply */
-{
- if (extra == 0) {
- if (discard && (rep->generic.length << 2) > len)
- _XEatData (dpy, (rep->generic.length << 2) - len);
- return (char *)rep;
- }
-
- if (extra <= rep->generic.length) {
- int size = SIZEOF(xReply) + (extra << 2);
- if (size > len) {
- memcpy(replbuf, buf, len);
- _XRead(dpy, replbuf + len, size - len);
- buf = replbuf;
- len = size;
- }
-
- if (discard && rep->generic.length > extra &&
- (rep->generic.length << 2) > len)
- _XEatData (dpy, (rep->generic.length << 2) - len);
-
- return buf;
- }
- /*
- *if we get here, then extra > rep->generic.length--meaning we
- * read a reply that's shorter than we expected. This is an
- * error, but we still need to figure out how to handle it...
- */
- if ((rep->generic.length << 2) > len)
- _XEatData (dpy, (rep->generic.length << 2) - len);
-#ifdef NX_TRANS_SOCKET
-
- /*
- * The original code has provision
- * for returning already.
- */
-
-#endif
- _XIOError (dpy);
- return (char *)rep;
-}
-
-void
-_XGetAsyncData(
- Display *dpy,
- char *data, /* data is read into this buffer */
- char *buf, /* value passed to calling handler */
- int len, /* value passed to calling handler */
- int skip, /* number of bytes already read in previous
- _XGetAsyncReply or _XGetAsyncData calls */
- int datalen, /* size of data buffer in bytes */
- int discardtotal) /* min. bytes to consume (after skip) */
-{
- buf += skip;
- len -= skip;
- if (!data) {
- if (datalen > len)
- _XEatData(dpy, datalen - len);
- } else if (datalen <= len) {
- memcpy(data, buf, datalen);
- } else {
- memcpy(data, buf, len);
- _XRead(dpy, data + len, datalen - len);
- }
- if (discardtotal > len) {
- if (datalen > len)
- len = datalen;
- _XEatData(dpy, discardtotal - len);
- }
-}
diff --git a/nx-X11/lib/X11/XlibConf.h b/nx-X11/lib/X11/XlibConf.h
deleted file mode 100644
index 32fc91b2e..000000000
--- a/nx-X11/lib/X11/XlibConf.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Defines needed to use Xlib from non-imake projects */
-#ifndef XTHREADS
-#define XTHREADS
-#endif
-#ifndef XUSE_MTSAFE_API
-#define XUSE_MTSAFE_API
-#endif
diff --git a/nx-X11/lib/X11/XlibInt.c b/nx-X11/lib/X11/XlibInt.c
deleted file mode 100644
index 5afc65149..000000000
--- a/nx-X11/lib/X11/XlibInt.c
+++ /dev/null
@@ -1,4199 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* nx-X11, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
-/*
-
-Copyright 1985, 1986, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- * XlibInt.c - Internal support routines for the C subroutine
- * interface library (Xlib) to the X Window System Protocol V11.0.
- */
-
-#ifdef WIN32
-#define _XLIBINT_
-#endif
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xprivate.h"
-#include <nx-X11/Xpoll.h>
-#if !USE_XCB
-#include <nx-X11/Xtrans/Xtrans.h>
-#include <nx-X11/extensions/xcmiscstr.h>
-#endif /* !USE_XCB */
-#include <assert.h>
-#include <stdio.h>
-#ifdef WIN32
-#include <direct.h>
-#endif
-
-#ifdef XTHREADS
-#include "locking.h"
-
-/* these pointers get initialized by XInitThreads */
-LockInfoPtr _Xglobal_lock = NULL;
-void (*_XCreateMutex_fn)(LockInfoPtr) = NULL;
-/* struct _XCVList *(*_XCreateCVL_fn)() = NULL; */
-void (*_XFreeMutex_fn)(LockInfoPtr) = NULL;
-void (*_XLockMutex_fn)(
- LockInfoPtr /* lock */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char * /* file */
- , int /* line */
-#endif
- ) = NULL;
-void (*_XUnlockMutex_fn)(
- LockInfoPtr /* lock */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char * /* file */
- , int /* line */
-#endif
- ) = NULL;
-xthread_t (*_Xthread_self_fn)(void) = NULL;
-
-#define XThread_Self() ((*_Xthread_self_fn)())
-
-#if !USE_XCB
-#define UnlockNextReplyReader(d) if ((d)->lock) \
- (*(d)->lock->pop_reader)((d),&(d)->lock->reply_awaiters,&(d)->lock->reply_awaiters_tail)
-
-#define QueueReplyReaderLock(d) ((d)->lock ? \
- (*(d)->lock->push_reader)(d,&(d)->lock->reply_awaiters_tail) : NULL)
-#define QueueEventReaderLock(d) ((d)->lock ? \
- (*(d)->lock->push_reader)(d,&(d)->lock->event_awaiters_tail) : NULL)
-#endif /* !USE_XCB */
-
-#else /* XTHREADS else */
-
-#if !USE_XCB
-#define UnlockNextReplyReader(d)
-#define UnlockNextEventReader(d)
-#endif /* !USE_XCB */
-
-#endif /* XTHREADS else */
-
-#ifdef NX_TRANS_SOCKET
-
-#include <nx/NX.h>
-#include <nx/NXvars.h>
-
-static struct timeval retry;
-
-/*
- * From Xtranssock.c. Presently the congestion state
- * is reported by the proxy to the application, by
- * invoking the callback directly. The function will
- * be possibly used in the future, to be able to track
- * the bandwidth usage even when the NX transport is
- * not running. Note that in this sample implementation
- * the congestion state is checked very often and can
- * be surely optimized.
- */
-
-#ifdef NX_TRANS_CHANGE
-extern int _X11TransSocketCongestionChange(XtransConnInfo, int *);
-#endif
-
-#endif /* #ifdef NX_TRANS_SOCKET */
-
-/* check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX
- * systems are broken and return EWOULDBLOCK when they should return EAGAIN
- */
-#ifdef WIN32
-#define ETEST() (WSAGetLastError() == WSAEWOULDBLOCK)
-#else
-#ifdef __CYGWIN__ /* Cygwin uses ENOBUFS to signal socket is full */
-#define ETEST() (errno == EAGAIN || errno == EWOULDBLOCK || errno == ENOBUFS)
-#else
-#if defined(EAGAIN) && defined(EWOULDBLOCK)
-#define ETEST() (errno == EAGAIN || errno == EWOULDBLOCK)
-#else
-#ifdef EAGAIN
-#define ETEST() (errno == EAGAIN)
-#else
-#define ETEST() (errno == EWOULDBLOCK)
-#endif /* EAGAIN */
-#endif /* EAGAIN && EWOULDBLOCK */
-#endif /* __CYGWIN__ */
-#endif /* WIN32 */
-
-#ifdef WIN32
-#define ECHECK(err) (WSAGetLastError() == err)
-#define ESET(val) WSASetLastError(val)
-#else
-#define ECHECK(err) (errno == err)
-#define ESET(val) errno = val
-#endif
-
-#if defined(LOCALCONN) || defined(LACHMAN)
-#ifdef EMSGSIZE
-#define ESZTEST() (ECHECK(EMSGSIZE) || ECHECK(ERANGE))
-#else
-#define ESZTEST() ECHECK(ERANGE)
-#endif
-#else
-#ifdef EMSGSIZE
-#define ESZTEST() ECHECK(EMSGSIZE)
-#endif
-#endif
-
-#if !USE_XCB
-
-#define STARTITERATE(tpvar,type,start,endcond) \
- for (tpvar = (type *) (start); endcond; )
-#define ITERPTR(tpvar) (char *)tpvar
-#define RESETITERPTR(tpvar,type,start) tpvar = (type *) (start)
-#define INCITERPTR(tpvar,type) tpvar++
-#define ENDITERATE
-
-
-typedef union {
- xReply rep;
- char buf[BUFSIZE];
-} _XAlignedBuffer;
-
-static char *_XAsyncReply(
- Display *dpy,
- register xReply *rep,
- char *buf,
- register int *lenp,
- Bool discard);
-#endif /* !USE_XCB */
-
-/*
- * The following routines are internal routines used by Xlib for protocol
- * packet transmission and reception.
- *
- * _XIOError(Display *) will be called if any sort of system call error occurs.
- * This is assumed to be a fatal condition, i.e., XIOError should not return.
- *
- * _XError(Display *, xError *) will be called whenever an X_Error event is
- * received. This is not assumed to be a fatal condition, i.e., it is
- * acceptable for this procedure to return. However, XError should NOT
- * perform any operations (directly or indirectly) on the DISPLAY.
- *
- * Routines declared with a return type of 'Status' return 0 on failure,
- * and non 0 on success. Routines with no declared return type don't
- * return anything. Whenever possible routines that create objects return
- * the object they have created.
- */
-
-#if !USE_XCB
-static xReq _dummy_request = {
- 0, 0, 0
-};
-
-#ifdef NX_TRANS_SOCKET
-
-/*
- * Replace the standard Select with a version giving NX a
- * chance to check its own descriptors. This doesn't cover
- * the cases where the system is using poll or when system-
- * specific defines override the Select definition (OS/2).
- */
-
-int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
- fd_set *exceptfds, struct timeval *timeout)
-{
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XSelect: Called with [%d][%p][%p][%p][%p].\n",
- maxfds, (void *) readfds, (void *) writefds, (void *) exceptfds,
- (void *) timeout);
-#endif
-
- if (NXTransRunning(NX_FD_ANY))
- {
- fd_set t_readfds, t_writefds;
- struct timeval t_timeout;
-
- int n, r, e;
-
-#ifdef NX_TRANS_TEST
-
- if (exceptfds != NULL)
- {
- fprintf(stderr, "_XSelect: WARNING! Can't handle exception fds in select.\n");
- }
-
-#endif
-
- if (readfds == NULL)
- {
- FD_ZERO(&t_readfds);
-
- readfds = &t_readfds;
- }
-
- if (writefds == NULL)
- {
- FD_ZERO(&t_writefds);
-
- writefds = &t_writefds;
- }
-
- if (timeout == NULL)
- {
- t_timeout.tv_sec = 10;
- t_timeout.tv_usec = 0;
-
- timeout = &t_timeout;
- }
-
- n = maxfds;
-
- /*
- * If the transport is gone avoid
- * sleeping until the timeout.
- */
-
- if (NXTransPrepare(&n, readfds, writefds, timeout) != 0)
- {
- NXTransSelect(&r, &e, &n, readfds, writefds, timeout);
-
- NXTransExecute(&r, &e, &n, readfds, writefds, timeout);
-
- errno = e;
-
- return r;
- }
- else
- {
- return 0;
- }
- }
- else
- {
- return select(maxfds, readfds, writefds, exceptfds, timeout);
- }
-}
-
-#else /* #ifdef NX_TRANS_SOCKET */
-
-int _XSelect(int maxfds, fd_set *readfds, fd_set *writefds,
- fd_set *exceptfds, struct timeval *timeout)
-{
- return select(maxfds, readfds, writefds, exceptfds, timeout);
-}
-
-#endif /* #ifdef NX_TRANS_SOCKET */
-
-/*
- * This is an OS dependent routine which:
- * 1) returns as soon as the connection can be written on....
- * 2) if the connection can be read, must enqueue events and handle errors,
- * until the connection is writable.
- */
-static void
-_XWaitForWritable(
- Display *dpy
-#ifdef XTHREADS
- ,
- xcondition_t cv /* our reading condition variable */
-#endif
- )
-{
-#ifdef USE_POLL
- struct pollfd filedes;
-#else
- fd_set r_mask;
- fd_set w_mask;
-#endif
- int nfound;
-
-#ifdef NX_TRANS_SOCKET
-#if defined(NX_TRANS_CHANGE)
- int congestion;
-#endif
- if (_XGetIOError(dpy)) {
- return;
- }
-#endif
-
-#ifdef USE_POLL
- filedes.fd = dpy->fd;
- filedes.events = 0;
-#else
- FD_ZERO(&r_mask);
- FD_ZERO(&w_mask);
-#endif
-
- for (;;) {
-#ifdef XTHREADS
- /* We allow only one thread at a time to read, to minimize
- passing of read data between threads.
- Now, who is it? If there is a non-NULL reply_awaiters and
- we (i.e., our cv) are not at the head of it, then whoever
- is at the head is the reader, and we don't read.
- Otherwise there is no reply_awaiters or we are at the
- head, having just appended ourselves.
- In this case, if there is a event_awaiters, then whoever
- is at the head of it got there before we did, and they are the
- reader.
-
- Last cases: no event_awaiters and we are at the head of
- reply_awaiters or reply_awaiters is NULL: we are the reader,
- since there is obviously no one else involved.
-
- XXX - what if cv is NULL and someone else comes along after
- us while we are waiting?
- */
-
- if (!dpy->lock ||
- (!dpy->lock->event_awaiters &&
- (!dpy->lock->reply_awaiters ||
- dpy->lock->reply_awaiters->cv == cv)))
-#endif
-
-#ifndef NX_TRANS_SOCKET
-#ifdef USE_POLL
- filedes.events = POLLIN;
- filedes.events |= POLLOUT;
-#else
- FD_SET(dpy->fd, &r_mask);
- FD_SET(dpy->fd, &w_mask);
-#endif
-#endif /* #ifndef NX_TRANS_SOCKET */
-
- do {
-#ifdef NX_TRANS_SOCKET
- /*
- * Give a chance to the registered client to perform
- * any needed operation before entering the select.
- */
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XWaitForWritable: WAIT! Waiting for the display to become writable.\n");
-#endif
- NXTransFlush(dpy->fd);
-
- if (_NXDisplayBlockFunction != NULL) {
- (*_NXDisplayBlockFunction)(dpy, NXBlockWrite);
- }
-
- /*
- * Need to set again the descriptors as we could have
- * run multiple selects before having the possibility
- * to read or write to the X connection.
- */
-
-#ifdef USE_POLL
- filedes.events = POLLIN;
- filedes.events |= POLLOUT;
-#else
- FD_SET(dpy->fd, &r_mask);
- FD_SET(dpy->fd, &w_mask);
-#endif
-#endif /* #ifdef NX_TRANS_SOCKET */
- UnlockDisplay(dpy);
-#ifdef USE_POLL
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XWaitForWritable: Calling poll().\n");
-#endif
- nfound = poll (&filedes, 1, -1);
-#else /* USE_POLL */
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XWaitForWritable: Calling select() after [%ld] ms.\n",
- NXTransTime());
-#endif /* defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG) */
-#ifdef NX_TRANS_SOCKET
- /*
- * Give a chance to the callback to detect
- * the failure of the display even if we
- * miss the interrupt inside the select.
- */
-
- if (_NXDisplayErrorFunction != NULL) {
- retry.tv_sec = 5;
- retry.tv_usec = 0;
- nfound = Select (dpy->fd + 1, &r_mask, &w_mask, NULL, &retry);
- } else {
- nfound = Select (dpy->fd + 1, &r_mask, &w_mask, NULL, NULL);
- }
-#else /* NX_TRANS_SOCKET */
- nfound = Select (dpy->fd + 1, &r_mask, &w_mask, NULL, NULL);
-#endif /* NX_TRANS_SOCKET */
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XWaitForWritable: Out of select() with [%d] after [%ld] ms.\n",
- nfound, NXTransTime());
-
- if (FD_ISSET(dpy->fd, &r_mask))
- {
- BytesReadable_t pend;
-
- _X11TransBytesReadable(dpy->trans_conn, &pend);
-
- fprintf(stderr, "_XWaitForWritable: Descriptor [%d] is ready with [%ld] bytes to read.\n",
- dpy->fd, pend);
- }
-
- if (FD_ISSET(dpy->fd, &w_mask))
- {
- fprintf(stderr, "_XWaitForWritable: Descriptor [%d] has become writable.\n\n",
- dpy->fd);
- }
-#endif /* defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG) */
-#endif /* USE_POLL */
- InternalLockDisplay(dpy, cv != NULL);
-#ifdef NX_TRANS_SOCKET
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
-#endif /* defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE) */
- if (nfound <= 0) {
- if ((nfound == -1 && !(ECHECK(EINTR) || ETEST())) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return;
- }
- }
-#else /* NX_TRANS_SOCKET */
- if (nfound < 0 && !(ECHECK(EINTR) || ETEST()))
- _XIOError(dpy);
-#endif /* NX_TRANS_SOCKET */
- } while (nfound <= 0);
-
- if (
-#ifdef USE_POLL
- filedes.revents & POLLIN
-#else /* USE_POLL */
- FD_ISSET(dpy->fd, &r_mask)
-#endif /* USE_POLL */
- )
- {
- _XAlignedBuffer buf;
- BytesReadable_t pend;
- register int len;
- register xReply *rep;
-
- /* find out how much data can be read */
- if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
-#ifdef NX_TRANS_SOCKET
- {
- _XIOError(dpy);
-
- return;
- }
-#else /* NX_TRANS_SOCKET */
- _XIOError(dpy);
-#endif /* NX_TRANS_SOCKET */
- len = pend;
-
- /* must read at least one xEvent; if none is pending, then
- we'll just block waiting for it */
- if (len < SIZEOF(xReply)
-#ifdef XTHREADS
- || dpy->async_handlers
-#endif
- )
- len = SIZEOF(xReply);
-
- /* but we won't read more than the max buffer size */
- if (len > BUFSIZE) len = BUFSIZE;
-
- /* round down to an integral number of XReps */
- len = (len / SIZEOF(xReply)) * SIZEOF(xReply);
-
- (void) _XRead (dpy, buf.buf, (long) len);
-
- STARTITERATE(rep,xReply,buf.buf,len > 0) {
- if (rep->generic.type == X_Reply) {
- int tmp = len;
- RESETITERPTR(rep,xReply,
- _XAsyncReply (dpy, rep,
- ITERPTR(rep), &tmp, True));
- len = tmp;
- pend = len;
- } else {
- if (rep->generic.type == X_Error)
- _XError (dpy, (xError *)rep);
- else /* must be an event packet */
- _XEnq (dpy, (xEvent *)rep);
- INCITERPTR(rep,xReply);
- len -= SIZEOF(xReply);
- }
- } ENDITERATE
-#ifdef XTHREADS
- if (dpy->lock && dpy->lock->event_awaiters)
- ConditionSignal(dpy, dpy->lock->event_awaiters->cv);
-#endif
- }
-#ifdef USE_POLL
- if (filedes.revents & (POLLOUT|POLLHUP|POLLERR))
-#else
- if (FD_ISSET(dpy->fd, &w_mask))
-#endif
- {
-#ifdef XTHREADS
- if (dpy->lock) {
- ConditionBroadcast(dpy, dpy->lock->writers);
- }
-#endif
- return;
- }
- }
-}
-#endif /* !USE_XCB */
-
-
-#define POLLFD_CACHE_SIZE 5
-
-/* initialize the struct array passed to poll() below */
-Bool _XPollfdCacheInit(
- Display *dpy)
-{
-#ifdef USE_POLL
- struct pollfd *pfp;
-
- pfp = Xmalloc(POLLFD_CACHE_SIZE * sizeof(struct pollfd));
- if (!pfp)
- return False;
- pfp[0].fd = dpy->fd;
- pfp[0].events = POLLIN;
-
- dpy->filedes = (XPointer)pfp;
-#endif
- return True;
-}
-
-void _XPollfdCacheAdd(
- Display *dpy,
- int fd)
-{
-#ifdef USE_POLL
- struct pollfd *pfp = (struct pollfd *)dpy->filedes;
-
- if (dpy->im_fd_length <= POLLFD_CACHE_SIZE) {
- pfp[dpy->im_fd_length].fd = fd;
- pfp[dpy->im_fd_length].events = POLLIN;
- }
-#endif
-}
-
-/* ARGSUSED */
-void _XPollfdCacheDel(
- Display *dpy,
- int fd) /* not used */
-{
-#ifdef USE_POLL
- struct pollfd *pfp = (struct pollfd *)dpy->filedes;
- struct _XConnectionInfo *conni;
-
- /* just recalculate whole list */
- if (dpy->im_fd_length <= POLLFD_CACHE_SIZE) {
- int loc = 1;
- for (conni = dpy->im_fd_info; conni; conni=conni->next) {
- pfp[loc].fd = conni->fd;
- pfp[loc].events = POLLIN;
- loc++;
- }
- }
-#endif
-}
-
-#if !USE_XCB
-/* returns True iff there is an event in the queue newer than serial_num */
-
-static Bool
-_XNewerQueuedEvent(
- Display *dpy,
- int serial_num)
-{
- _XQEvent *qev;
-
- if (dpy->next_event_serial_num == serial_num)
- return False;
-
- qev = dpy->head;
- while (qev) {
- if (qev->qserial_num >= serial_num) {
- return True;
- }
- qev = qev->next;
- }
- return False;
-}
-
-static int
-_XWaitForReadable(
- Display *dpy)
-{
- int result;
- int fd = dpy->fd;
- struct _XConnectionInfo *ilist;
- register int saved_event_serial = 0;
- int in_read_events = 0;
- register Bool did_proc_conni = False;
-#ifdef USE_POLL
- struct pollfd *filedes;
-#else
- fd_set r_mask;
- int highest_fd = fd;
-#endif
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- int congestion;
-#endif
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- return -1;
- }
-#endif
-
-#ifdef USE_POLL
- if (dpy->im_fd_length + 1 > POLLFD_CACHE_SIZE
- && !(dpy->flags & XlibDisplayProcConni)) {
- /* XXX - this fallback is gross */
- int i;
-
- filedes = (struct pollfd *)Xmalloc(dpy->im_fd_length * sizeof(struct pollfd));
- filedes[0].fd = fd;
- filedes[0].events = POLLIN;
- for (ilist=dpy->im_fd_info, i=1; ilist; ilist=ilist->next, i++) {
- filedes[i].fd = ilist->fd;
- filedes[i].events = POLLIN;
- }
- } else {
- filedes = (struct pollfd *)dpy->filedes;
- }
-#else /* USE_POLL */
- FD_ZERO(&r_mask);
-#endif /* USE_POLL */
- for (;;) {
-#ifndef USE_POLL
- FD_SET(fd, &r_mask);
- if (!(dpy->flags & XlibDisplayProcConni))
- for (ilist=dpy->im_fd_info; ilist; ilist=ilist->next) {
- FD_SET(ilist->fd, &r_mask);
- if (ilist->fd > highest_fd)
- highest_fd = ilist->fd;
- }
-#endif /* USE_POLL */
- UnlockDisplay(dpy);
-#ifdef USE_POLL
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XWaitForReadable: Calling poll().\n");
-#endif
- result = poll(filedes,
- (dpy->flags & XlibDisplayProcConni) ? 1 : 1+dpy->im_fd_length,
- -1);
-#else /* USE_POLL */
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XWaitForReadable: Calling select().\n");
-#endif
-#ifdef NX_TRANS_SOCKET
- /*
- * Give a chance to the registered application
- * to perform any needed operation.
- */
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XWaitForReadable: WAIT! Waiting for the display to become readable.\n");
-#endif
- NXTransFlush(dpy->fd);
-
- if (_NXDisplayBlockFunction != NULL) {
- (*_NXDisplayBlockFunction)(dpy, NXBlockRead);
- }
-
- if (_NXDisplayErrorFunction != NULL) {
- retry.tv_sec = 5;
- retry.tv_usec = 0;
- result = Select(highest_fd + 1, &r_mask, NULL, NULL, &retry);
- } else {
- result = Select(highest_fd + 1, &r_mask, NULL, NULL, NULL);
- }
-#else /* NX_TRANS_SOCKET */
- result = Select(highest_fd + 1, &r_mask, NULL, NULL, NULL);
-#endif /* NX_TRANS_SOCKET */
-#endif /* USE_POLL */
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XWaitForReadable: Out of select with result [%d] and errno [%d].\n",
- result, (result < 0 ? errno : 0));
-#endif
- InternalLockDisplay(dpy, dpy->flags & XlibDisplayReply);
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
-#endif
-#ifdef NX_TRANS_SOCKET
- if (result <= 0) {
- if ((result == -1 && !(ECHECK(EINTR) || ETEST())) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return -1;
- }
- continue;
- }
-#else
- if (result == -1 && !(ECHECK(EINTR) || ETEST())) _XIOError(dpy);
- if (result <= 0)
- continue;
-#endif
-#ifdef USE_POLL
- if (filedes[0].revents & (POLLIN|POLLHUP|POLLERR))
-#else
- if (FD_ISSET(fd, &r_mask))
-#endif
- break;
- if (!(dpy->flags & XlibDisplayProcConni)) {
- int i;
-
- saved_event_serial = dpy->next_event_serial_num;
- /* dpy flags can be clobbered by internal connection callback */
- in_read_events = dpy->flags & XlibDisplayReadEvents;
- for (ilist=dpy->im_fd_info, i=1; ilist; ilist=ilist->next, i++) {
-#ifdef USE_POLL
- if (filedes[i].revents & POLLIN)
-#else
- if (FD_ISSET(ilist->fd, &r_mask))
-#endif
- {
- _XProcessInternalConnection(dpy, ilist);
- did_proc_conni = True;
- }
- }
-#ifdef USE_POLL
- if (dpy->im_fd_length + 1 > POLLFD_CACHE_SIZE)
- Xfree(filedes);
-#endif
- }
- if (did_proc_conni) {
- /* some internal connection callback might have done an
- XPutBackEvent. We notice it here and if we needed an event,
- we can return all the way. */
- if (_XNewerQueuedEvent(dpy, saved_event_serial)
- && (in_read_events
-#ifdef XTHREADS
- || (dpy->lock && dpy->lock->event_awaiters)
-#endif
- ))
- return -2;
- did_proc_conni = False;
- }
- }
-#ifdef XTHREADS
-#ifdef XTHREADS_DEBUG
- printf("thread %x _XWaitForReadable returning\n", XThread_Self());
-#endif
-#endif
- return 0;
-}
-#endif /* !USE_XCB */
-
-static int sync_hazard(Display *dpy)
-{
- unsigned long span = dpy->request - dpy->last_request_read;
- unsigned long hazard = min((dpy->bufmax - dpy->buffer) / SIZEOF(xReq), 65535 - 10);
- return span >= 65535 - hazard - 10;
-}
-
-static
-void sync_while_locked(Display *dpy)
-{
-#ifdef XTHREADS
- if (dpy->lock)
- (*dpy->lock->user_lock_display)(dpy);
-#endif
- UnlockDisplay(dpy);
- SyncHandle();
- InternalLockDisplay(dpy, /* don't skip user locks */ 0);
-#ifdef XTHREADS
- if (dpy->lock)
- (*dpy->lock->user_unlock_display)(dpy);
-#endif
-}
-
-void _XSeqSyncFunction(
- register Display *dpy)
-{
- xGetInputFocusReply rep;
- _X_UNUSED register xReq *req;
-
-#ifdef NX_TRANS_SOCKET
-#ifdef NX_TRANS_DEBUG
- fprintf(stderr, "_XSeqSyncFunction: Going to synchronize the display.\n");
-#endif
-
- if (dpy->flags & XlibDisplayIOError)
- {
-#ifdef NX_TRANS_DEBUG
- fprintf(stderr, "_XSeqSyncFunction: Returning 0 with I/O error detected.\n");
-#endif
- return;
- }
-#endif /* NX_TRANS_SOCKET */
- if ((dpy->request - dpy->last_request_read) >= (65535 - BUFSIZE/SIZEOF(xReq))) {
- GetEmptyReq(GetInputFocus, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- sync_while_locked(dpy);
- } else if (sync_hazard(dpy))
- _XSetPrivSyncFunction(dpy);
-}
-
-/* NOTE: only called if !XTHREADS, or when XInitThreads wasn't called. */
-static int
-_XPrivSyncFunction (Display *dpy)
-{
-#ifdef XTHREADS
- assert(!dpy->lock_fns);
-#endif
- assert(dpy->synchandler == _XPrivSyncFunction);
- assert((dpy->flags & XlibDisplayPrivSync) != 0);
- dpy->synchandler = dpy->savedsynchandler;
- dpy->savedsynchandler = NULL;
- dpy->flags &= ~XlibDisplayPrivSync;
- if(dpy->synchandler)
- dpy->synchandler(dpy);
- _XIDHandler(dpy);
- _XSeqSyncFunction(dpy);
- return 0;
-}
-
-void _XSetPrivSyncFunction(Display *dpy)
-{
-#ifdef XTHREADS
- if (dpy->lock_fns)
- return;
-#endif
- if (!(dpy->flags & XlibDisplayPrivSync)) {
- dpy->savedsynchandler = dpy->synchandler;
- dpy->synchandler = _XPrivSyncFunction;
- dpy->flags |= XlibDisplayPrivSync;
- }
-}
-
-void _XSetSeqSyncFunction(Display *dpy)
-{
- if (sync_hazard(dpy))
- _XSetPrivSyncFunction (dpy);
-}
-
-#if !USE_XCB
-#ifdef XTHREADS
-static void _XFlushInt(
- register Display *dpy,
- register xcondition_t cv);
-#endif
-
-/*
- * _XFlush - Flush the X request buffer. If the buffer is empty, no
- * action is taken. This routine correctly handles incremental writes.
- * This routine may have to be reworked if int < long.
- */
-void _XFlush(
- register Display *dpy)
-{
-#ifdef XTHREADS
- /* With multi-threading we introduce an internal routine to which
- we can pass a condition variable to do locking correctly. */
-
- _XFlushInt(dpy, NULL);
-}
-
-/* _XFlushInt - Internal version of _XFlush used to do multi-threaded
- * locking correctly.
- */
-
-static void _XFlushInt(
- register Display *dpy,
- register xcondition_t cv)
-{
-#endif /* XTHREADS*/
- register long size, todo;
- register int write_stat;
- register char *bufindex;
- _XExtension *ext;
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- int congestion;
-#endif
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XFlushInt: Entering flush with [%d] bytes to write.\n",
- (dpy->bufptr - dpy->buffer));
-#endif
- /* This fix resets the bufptr to the front of the buffer so
- * additional appends to the bufptr will not corrupt memory. Since
- * the server is down, these appends are no-op's anyway but
- * callers of _XFlush() are not verifying this before they call it.
- */
- if (dpy->flags & XlibDisplayIOError)
- {
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XFlushInt: Returning with I/O error detected.\n");
-#endif
- dpy->bufptr = dpy->buffer;
- dpy->last_req = (char *)&_dummy_request;
- return;
- }
-
-#ifdef XTHREADS
-#ifdef NX_TRANS_SOCKET
- while (dpy->flags & XlibDisplayWriting) {
- if (_XGetIOError(dpy)) {
- return;
- }
-#else
- while (dpy->flags & XlibDisplayWriting) {
-#endif
- if (dpy->lock) {
- ConditionWait(dpy, dpy->lock->writers);
- } else {
- _XWaitForWritable (dpy, cv);
- }
- }
-#endif
- size = todo = dpy->bufptr - dpy->buffer;
- if (!size) return;
-#ifdef XTHREADS
- dpy->flags |= XlibDisplayWriting;
- /* make sure no one else can put in data */
- dpy->bufptr = dpy->bufmax;
-#endif
- for (ext = dpy->flushes; ext; ext = ext->next_flush)
- (*ext->before_flush)(dpy, &ext->codes, dpy->buffer, size);
- bufindex = dpy->buffer;
- /*
- * While write has not written the entire buffer, keep looping
- * until the entire buffer is written. bufindex will be
- * incremented and size decremented as buffer is written out.
- */
- while (size) {
- ESET(0);
- write_stat = _X11TransWrite(dpy->trans_conn,
- bufindex, (int) todo);
- if (write_stat >= 0) {
-#ifdef NX_TRANS_SOCKET
- if (_NXDisplayWriteFunction != NULL) {
- (*_NXDisplayWriteFunction)(dpy, write_stat);
- }
-#ifdef NX_TRANS_CHANGE
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
-#endif
-#endif
- size -= write_stat;
- todo = size;
- bufindex += write_stat;
- } else if (ETEST()) {
- _XWaitForWritable(dpy
-#ifdef XTHREADS
- , cv
-#endif
- );
-#ifdef SUNSYSV
- } else if (ECHECK(0)) {
- _XWaitForWritable(dpy
-#ifdef XTHREADS
- , cv
-#endif
- );
-#endif
-#ifdef ESZTEST
- } else if (ESZTEST()) {
- if (todo > 1)
- todo >>= 1;
- else {
- _XWaitForWritable(dpy
-#ifdef XTHREADS
- , cv
-#endif
- );
- }
-#endif
-#ifdef NX_TRANS_SOCKET
- } else if (!ECHECK(EINTR) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return;
- }
-#else
- } else if (!ECHECK(EINTR)) {
- /* Write failed! */
- /* errno set by write system call. */
- _XIOError(dpy);
- }
-#endif
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- return;
- }
-#endif
- }
- dpy->last_req = (char *)&_dummy_request;
- _XSetSeqSyncFunction(dpy);
- dpy->bufptr = dpy->buffer;
-#ifdef XTHREADS
- dpy->flags &= ~XlibDisplayWriting;
-#endif
-}
-
-int
-_XEventsQueued(
- register Display *dpy,
- int mode)
-{
- register int len;
- BytesReadable_t pend;
- _XAlignedBuffer buf;
- register xReply *rep;
- char *read_buf;
-#ifdef XTHREADS
- int entry_event_serial_num;
- struct _XCVList *cvl = NULL;
- xthread_t self;
-
-#ifdef XTHREADS_DEBUG
- printf("_XEventsQueued called in thread %x\n", XThread_Self());
-#endif
-#endif /* XTHREADS*/
-
- if (mode == QueuedAfterFlush)
- {
- _XFlush(dpy);
- if (dpy->qlen)
- return(dpy->qlen);
- }
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- if (dpy->flags & XlibDisplayIOError) {
- fprintf(stderr, "_XEventsQueued: Returning [%d] after display failure.\n",
- dpy->qlen);
- }
-#endif
- if (dpy->flags & XlibDisplayIOError) return(dpy->qlen);
-
-#ifdef XTHREADS
- /* create our condition variable and append to list,
- * unless we were called from within XProcessInternalConnection
- * or XLockDisplay
- */
- xthread_clear_id(self);
- if (dpy->lock && (xthread_have_id (dpy->lock->conni_thread)
- || xthread_have_id (dpy->lock->locking_thread)))
- /* some thread is in XProcessInternalConnection or XLockDisplay
- so we have to see if we are it */
- self = XThread_Self();
- if (!xthread_have_id(self)
- || (!xthread_equal(self, dpy->lock->conni_thread)
- && !xthread_equal(self, dpy->lock->locking_thread))) {
- /* In the multi-threaded case, if there is someone else
- reading events, then there aren't any available, so
- we just return. If we waited we would block.
- */
- if (dpy->lock && dpy->lock->event_awaiters)
- return dpy->qlen;
- /* nobody here but us, so lock out any newcomers */
- cvl = QueueEventReaderLock(dpy);
- }
-
- while (dpy->lock && cvl && dpy->lock->reply_first) {
- /* note which events we have already seen so we'll know
- if _XReply (in another thread) reads one */
- entry_event_serial_num = dpy->next_event_serial_num;
- ConditionWait(dpy, cvl->cv);
- /* did _XReply read an event we can return? */
- if (_XNewerQueuedEvent(dpy, entry_event_serial_num))
- {
- UnlockNextEventReader(dpy);
- return 0;
- }
- }
-#endif /* XTHREADS*/
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XEventsQueued: Checking bytes readable.\n");
-#endif
- if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
-#ifdef NX_TRANS_SOCKET
- {
- _XIOError(dpy);
-
- return (dpy->qlen);
- }
-#else
- _XIOError(dpy);
-#endif
-#ifdef XCONN_CHECK_FREQ
- /* This is a crock, required because FIONREAD or equivalent is
- * not guaranteed to detect a broken connection.
- */
- if (!pend && !dpy->qlen && ++dpy->conn_checker >= XCONN_CHECK_FREQ)
- {
- int result;
-#ifdef USE_POLL
- struct pollfd filedes;
-#else
- fd_set r_mask;
- static struct timeval zero_time;
-#endif
-
- dpy->conn_checker = 0;
-#ifdef USE_POLL
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XEventsQueued: Calling poll().\n");
-#endif
- filedes.fd = dpy->fd;
- filedes.events = POLLIN;
- if ((result = poll(&filedes, 1, 0)))
-#else
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XEventsQueued: Calling select().\n");
-#endif
- FD_ZERO(&r_mask);
- FD_SET(dpy->fd, &r_mask);
- if ((result = Select(dpy->fd + 1, &r_mask, NULL, NULL, &zero_time)))
-#endif
- {
- if (result > 0)
- {
- if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
-#ifdef NX_TRANS_SOCKET
- {
- _XIOError(dpy);
-
- return (dpy->qlen);
- }
-#else
- _XIOError(dpy);
-#endif
- /* we should not get zero, if we do, force a read */
- if (!pend)
- pend = SIZEOF(xReply);
- }
-#ifdef NX_TRANS_SOCKET
- if (result <= 0) {
- if ((result == -1 && !(ECHECK(EINTR) || ETEST())) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return (dpy->qlen);
- }
- }
-#else
- else if (result < 0 && !(ECHECK(EINTR) || ETEST()))
-#endif
- _XIOError(dpy);
- }
- }
-#endif /* XCONN_CHECK_FREQ */
- if (!(len = pend)) {
- /* _XFlush can enqueue events */
-#ifdef XTHREADS
- if (cvl)
-#endif
- {
- UnlockNextEventReader(dpy);
- }
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XEventsQueued: Returning [%d].\n", dpy->qlen);
-#endif
- return(dpy->qlen);
- }
- /* Force a read if there is not enough data. Otherwise,
- * a select() loop at a higher-level will spin undesirably,
- * and we've seen at least one OS that appears to not update
- * the result from FIONREAD once it has returned nonzero.
- */
-#ifdef XTHREADS
- if (dpy->lock && dpy->lock->reply_awaiters) {
- read_buf = (char *)dpy->lock->reply_awaiters->buf;
- len = SIZEOF(xReply);
- } else
-#endif /* XTHREADS*/
- {
- read_buf = buf.buf;
-
- if (len < SIZEOF(xReply)
-#ifdef XTHREADS
- || dpy->async_handlers
-#endif
- )
- len = SIZEOF(xReply);
- else if (len > BUFSIZE)
- len = BUFSIZE;
- len = (len / SIZEOF(xReply)) * SIZEOF(xReply);
- }
-#ifdef XCONN_CHECK_FREQ
- dpy->conn_checker = 0;
-#endif
-
- (void) _XRead (dpy, read_buf, (long) len);
-
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- return(dpy->qlen);
- }
-#endif
-#ifdef XTHREADS
- /* what did we actually read: reply or event? */
- if (dpy->lock && dpy->lock->reply_awaiters) {
- if (((xReply *)read_buf)->generic.type == X_Reply ||
- ((xReply *)read_buf)->generic.type == X_Error)
- {
- dpy->lock->reply_was_read = True;
- dpy->lock->reply_first = True;
- if (read_buf != (char *)dpy->lock->reply_awaiters->buf)
- memcpy(dpy->lock->reply_awaiters->buf, read_buf,
- len);
- if (cvl) {
- UnlockNextEventReader(dpy);
- }
- return(dpy->qlen); /* we read, so we can return */
- } else if (read_buf != buf.buf)
- memcpy(buf.buf, read_buf, len);
- }
-#endif /* XTHREADS*/
-
- STARTITERATE(rep,xReply,buf.buf,len > 0) {
- if (rep->generic.type == X_Reply) {
- int tmp = len;
- RESETITERPTR(rep,xReply,
- _XAsyncReply (dpy, rep,
- ITERPTR(rep), &tmp, True));
- len = tmp;
- pend = len;
- } else {
- if (rep->generic.type == X_Error)
- _XError (dpy, (xError *)rep);
- else /* must be an event packet */
- _XEnq (dpy, (xEvent *)rep);
- INCITERPTR(rep,xReply);
- len -= SIZEOF(xReply);
- }
- } ENDITERATE
-
-#ifdef XTHREADS
- if (cvl)
-#endif
- {
- UnlockNextEventReader(dpy);
- }
- return(dpy->qlen);
-}
-
-/* _XReadEvents - Flush the output queue,
- * then read as many events as possible (but at least 1) and enqueue them
- */
-void _XReadEvents(
- register Display *dpy)
-{
- _XAlignedBuffer buf;
- BytesReadable_t pend;
- int len;
- register xReply *rep;
- Bool not_yet_flushed = True;
- char *read_buf;
- int i;
- int entry_event_serial_num = dpy->next_event_serial_num;
-#ifdef XTHREADS
- struct _XCVList *cvl = NULL;
- xthread_t self;
-
-#ifdef XTHREADS_DEBUG
- printf("_XReadEvents called in thread %x\n",
- XThread_Self());
-#endif
- /* create our condition variable and append to list,
- * unless we were called from within XProcessInternalConnection
- * or XLockDisplay
- */
- xthread_clear_id(self);
- if (dpy->lock && (xthread_have_id (dpy->lock->conni_thread)
- || xthread_have_id (dpy->lock->locking_thread)))
- /* some thread is in XProcessInternalConnection or XLockDisplay
- so we have to see if we are it */
- self = XThread_Self();
- if (!xthread_have_id(self)
- || (!xthread_equal(self, dpy->lock->conni_thread)
- && !xthread_equal(self, dpy->lock->locking_thread)))
- cvl = QueueEventReaderLock(dpy);
-#endif /* XTHREADS */
-
- do {
-#ifdef XTHREADS
- /* if it is not our turn to read an event off the wire,
- wait til we're at head of list */
- if (dpy->lock && cvl &&
- (dpy->lock->event_awaiters != cvl ||
- dpy->lock->reply_first)) {
- ConditionWait(dpy, cvl->cv);
- continue;
- }
-#endif /* XTHREADS */
- /* find out how much data can be read */
- if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
- {
- _XIOError(dpy);
-#ifdef NX_TRANS_SOCKET
- return;
-#endif
- }
- len = pend;
-
- /* must read at least one xEvent; if none is pending, then
- we'll just flush and block waiting for it */
- if (len < SIZEOF(xEvent)
-#ifdef XTHREADS
- || dpy->async_handlers
-#endif
- ) {
- len = SIZEOF(xEvent);
- /* don't flush until the first time we would block */
- if (not_yet_flushed) {
- _XFlush (dpy);
- if (_XNewerQueuedEvent(dpy, entry_event_serial_num)) {
- /* _XReply has read an event for us */
- goto got_event;
- }
- not_yet_flushed = False;
- }
- }
-
-#ifdef XTHREADS
- /* If someone is waiting for a reply, gamble that
- the reply will be the next thing on the wire
- and read it into their buffer. */
- if (dpy->lock && dpy->lock->reply_awaiters) {
- read_buf = (char *)dpy->lock->reply_awaiters->buf;
- len = SIZEOF(xReply);
- } else
-#endif /* XTHREADS*/
- {
- read_buf = buf.buf;
-
- /* but we won't read more than the max buffer size */
- if (len > BUFSIZE)
- len = BUFSIZE;
-
- /* round down to an integral number of XReps */
- len = (len / SIZEOF(xEvent)) * SIZEOF(xEvent);
- }
-
-#ifdef XTHREADS
- if (xthread_have_id(self))
- /* save value we may have to stick in conni_thread */
- dpy->lock->reading_thread = self;
-#endif /* XTHREADS */
- dpy->flags |= XlibDisplayReadEvents;
- i = _XRead (dpy, read_buf, (long) len);
- dpy->flags &= ~XlibDisplayReadEvents;
-#ifdef NX_TRANS_SOCKET
- if (dpy->flags & XlibDisplayIOError)
- {
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XReadEvents: Returning with I/O error detected.\n");
-#endif
- return;
- }
-#endif
- if (i == -2) {
- /* special flag from _XRead to say that internal connection has
- done XPutBackEvent. Which we can use so we're done. */
- got_event:
-#ifdef XTHREADS
- if (dpy->lock && dpy->lock->lock_wait) {
- if (dpy->lock->event_awaiters != cvl)
- /* since it is not us, must be user lock thread */
- ConditionSignal(dpy,
- dpy->lock->event_awaiters->cv);
- (*dpy->lock->lock_wait)(dpy);
- continue;
- }
-#endif
- break;
- }
-#ifdef XTHREADS
- if (xthread_have_id(self))
- xthread_clear_id(dpy->lock->reading_thread);
-
- /* what did we actually read: reply or event? */
- if (dpy->lock && dpy->lock->reply_awaiters) {
- if (((xReply *)read_buf)->generic.type == X_Reply ||
- ((xReply *)read_buf)->generic.type == X_Error)
- {
- dpy->lock->reply_was_read = True;
- dpy->lock->reply_first = True;
- if (read_buf != (char *)dpy->lock->reply_awaiters->buf)
- memcpy(dpy->lock->reply_awaiters->buf,
- read_buf, len);
- ConditionSignal(dpy, dpy->lock->reply_awaiters->cv);
- continue;
- } else if (read_buf != buf.buf)
- memcpy(buf.buf, read_buf, len);
- }
-#endif /* XTHREADS */
-
- STARTITERATE(rep,xReply,buf.buf,len > 0) {
- if (rep->generic.type == X_Reply) {
- RESETITERPTR(rep,xReply,
- _XAsyncReply (dpy, rep,
- ITERPTR(rep), &len, True));
- pend = len;
- } else {
- if (rep->generic.type == X_Error)
- _XError (dpy, (xError *) rep);
- else /* must be an event packet */
- {
- if (rep->generic.type == GenericEvent)
- {
- int evlen;
- evlen = (rep->generic.length << 2);
- if (_XRead(dpy, &read_buf[len], evlen) == -2)
- goto got_event; /* XXX: aargh! */
- }
-
- _XEnq (dpy, (xEvent *)rep);
- }
- INCITERPTR(rep,xReply);
- len -= SIZEOF(xReply);
- }
- } ENDITERATE;
- } while (!_XNewerQueuedEvent(dpy, entry_event_serial_num));
-
- UnlockNextEventReader(dpy);
-}
-
-/*
- * _XRead - Read bytes from the socket taking into account incomplete
- * reads. This routine may have to be reworked if int < long.
- */
-int _XRead(
- register Display *dpy,
- register char *data,
- register long size)
-{
- register long bytes_read;
-#ifdef XTHREADS
- int original_size = size;
-#endif
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- int congestion;
-#endif
-
- if ((dpy->flags & XlibDisplayIOError) || size == 0)
- return 0;
- ESET(0);
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- while (1) {
- /*
- * Need to check the congestion state
- * after the read so split the statement
- * in multiple blocks.
- */
-
- bytes_read = _X11TransRead(dpy->trans_conn, data, (int)size);
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
- if (bytes_read == size) {
- break;
- }
-#else
- while ((bytes_read = _X11TransRead(dpy->trans_conn, data, (int)size))
- != size) {
-#endif
-
- if (bytes_read > 0) {
- size -= bytes_read;
- data += bytes_read;
- }
- else if (ETEST()) {
- if (_XWaitForReadable(dpy) == -2)
- return -2; /* internal connection did XPutBackEvent */
- ESET(0);
- }
-#ifdef SUNSYSV
- else if (ECHECK(0)) {
- if (_XWaitForReadable(dpy) == -2)
- return -2; /* internal connection did XPutBackEvent */
- }
-#endif
- else if (bytes_read == 0) {
- /* Read failed because of end of file! */
- ESET(EPIPE);
-#ifdef NX_TRANS_SOCKET
- _XIOError(dpy);
-
- return -1;
-#else
- _XIOError(dpy);
-#endif
- }
-
- else /* bytes_read is less than 0; presumably -1 */ {
- /* If it's a system call interrupt, it's not an error. */
-#ifdef NX_TRANS_SOCKET
- if (!ECHECK(EINTR) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return -1;
- }
-#else
- if (!ECHECK(EINTR))
- _XIOError(dpy);
-#endif
- }
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- return -1;
- }
-#endif
- }
-#ifdef XTHREADS
- if (dpy->lock && dpy->lock->reply_bytes_left > 0)
- {
- dpy->lock->reply_bytes_left -= original_size;
- if (dpy->lock->reply_bytes_left == 0) {
- dpy->flags &= ~XlibDisplayReply;
- UnlockNextReplyReader(dpy);
- }
- }
-#endif /* XTHREADS*/
- return 0;
-}
-#endif /* !USE_XCB */
-
-#ifdef LONG64
-void _XRead32(
- Display *dpy,
- register long *data,
- long len)
-{
- register int *buf;
- register long i;
-
- if (len) {
- (void) _XRead(dpy, (char *)data, len);
- i = len >> 2;
- buf = (int *)data + i;
- data += i;
- while (--i >= 0)
- *--data = *--buf;
- }
-}
-#endif /* LONG64 */
-
-
-
-#if !USE_XCB
-/*
- * _XReadPad - Read bytes from the socket taking into account incomplete
- * reads. If the number of bytes is not 0 mod 4, read additional pad
- * bytes. This routine may have to be reworked if int < long.
- */
-void _XReadPad(
- register Display *dpy,
- register char *data,
- register long size)
-{
- register long bytes_read;
- struct iovec iov[2];
- char pad[3];
-#ifdef XTHREADS
- int original_size;
-#endif
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- int congestion;
-#endif
-
- if ((dpy->flags & XlibDisplayIOError) || size == 0) return;
- iov[0].iov_len = (int)size;
- iov[0].iov_base = data;
- /*
- * The following hack is used to provide 32 bit long-word
- * aligned padding. The [1] vector is of length 0, 1, 2, or 3,
- * whatever is needed.
- */
-
- iov[1].iov_len = -size & 3;
- iov[1].iov_base = pad;
- size += iov[1].iov_len;
-#ifdef XTHREADS
- original_size = size;
-#endif
- ESET(0);
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- while (1) {
- bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2);
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
- if (bytes_read == size) {
- break;
- }
-#else
- while ((bytes_read = _X11TransReadv (dpy->trans_conn, iov, 2)) != size) {
-#endif
-
- if (bytes_read > 0) {
- size -= bytes_read;
- if (iov[0].iov_len < bytes_read) {
- int pad_bytes_read = bytes_read - iov[0].iov_len;
- iov[1].iov_len -= pad_bytes_read;
- iov[1].iov_base =
- (char *)iov[1].iov_base + pad_bytes_read;
- iov[0].iov_len = 0;
- }
- else {
- iov[0].iov_len -= bytes_read;
- iov[0].iov_base = (char *)iov[0].iov_base + bytes_read;
- }
- }
- else if (ETEST()) {
- _XWaitForReadable(dpy);
- ESET(0);
- }
-#ifdef SUNSYSV
- else if (ECHECK(0)) {
- _XWaitForReadable(dpy);
- }
-#endif
- else if (bytes_read == 0) {
- /* Read failed because of end of file! */
- ESET(EPIPE);
-#ifdef NX_TRANS_SOCKET
- _XIOError(dpy);
-
- return;
-#else
- _XIOError(dpy);
-#endif
- }
-
- else /* bytes_read is less than 0; presumably -1 */ {
- /* If it's a system call interrupt, it's not an error. */
-#ifdef NX_TRANS_SOCKET
- if (!ECHECK(EINTR) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return;
- }
-#else
- if (!ECHECK(EINTR))
- _XIOError(dpy);
-#endif
- }
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- return;
- }
-#endif
- }
-#ifdef XTHREADS
- if (dpy->lock && dpy->lock->reply_bytes_left > 0)
- {
- dpy->lock->reply_bytes_left -= original_size;
- if (dpy->lock->reply_bytes_left == 0) {
- dpy->flags &= ~XlibDisplayReply;
- UnlockNextReplyReader(dpy);
- }
- }
-#endif /* XTHREADS*/
-}
-
-/*
- * _XSend - Flush the buffer and send the client data. 32 bit word aligned
- * transmission is used, if size is not 0 mod 4, extra bytes are transmitted.
- * This routine may have to be reworked if int < long;
- */
-void
-_XSend (
- register Display *dpy,
- _Xconst char *data,
- register long size)
-{
- struct iovec iov[3];
- static char const pad[3] = {0, 0, 0};
- /* XText8 and XText16 require that the padding bytes be zero! */
-
- long skip, dbufsize, padsize, total, todo;
- _XExtension *ext;
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_CHANGE)
- int congestion;
-#endif
-
-#ifdef NX_TRANS_SOCKET
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XSend: Sending data with [%d] bytes to write.\n",
- (dpy->bufptr - dpy->buffer));
-#endif
- if (!size || (dpy->flags & XlibDisplayIOError))
- {
- if (dpy->flags & XlibDisplayIOError)
- {
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XSend: Returning with I/O error detected.\n");
-#endif
- dpy->bufptr = dpy->buffer;
- dpy->last_req = (char *)&_dummy_request;
- }
-
- return;
- }
-#else
- if (!size || (dpy->flags & XlibDisplayIOError)) return;
-#endif
- dbufsize = dpy->bufptr - dpy->buffer;
-#ifdef XTHREADS
- dpy->flags |= XlibDisplayWriting;
- /* make sure no one else can put in data */
- dpy->bufptr = dpy->bufmax;
-#endif
- padsize = -size & 3;
- for (ext = dpy->flushes; ext; ext = ext->next_flush) {
- (*ext->before_flush)(dpy, &ext->codes, dpy->buffer, dbufsize);
- (*ext->before_flush)(dpy, &ext->codes, (char *)data, size);
- if (padsize)
- (*ext->before_flush)(dpy, &ext->codes, pad, padsize);
- }
- skip = 0;
- todo = total = dbufsize + size + padsize;
-
- /*
- * There are 3 pieces that may need to be written out:
- *
- * o whatever is in the display buffer
- * o the data passed in by the user
- * o any padding needed to 32bit align the whole mess
- *
- * This loop looks at all 3 pieces each time through. It uses skip
- * to figure out whether or not a given piece is needed.
- */
- while (total) {
- long before = skip; /* amount of whole thing written */
- long remain = todo; /* amount to try this time, <= total */
- int i = 0;
- long len;
-
- /* You could be very general here and have "in" and "out" iovecs
- * and write a loop without using a macro, but what the heck. This
- * translates to:
- *
- * how much of this piece is new?
- * if more new then we are trying this time, clamp
- * if nothing new
- * then bump down amount already written, for next piece
- * else put new stuff in iovec, will need all of next piece
- *
- * Note that todo had better be at least 1 or else we'll end up
- * writing 0 iovecs.
- */
-#define InsertIOV(pointer, length) \
- len = (length) - before; \
- if (len > remain) \
- len = remain; \
- if (len <= 0) { \
- before = (-len); \
- } else { \
- iov[i].iov_len = len; \
- iov[i].iov_base = (pointer) + before; \
- i++; \
- remain -= len; \
- before = 0; \
- }
-
- InsertIOV (dpy->buffer, dbufsize)
- InsertIOV ((char *)data, size)
- InsertIOV ((char *)pad, padsize)
-
- ESET(0);
- if ((len = _X11TransWritev(dpy->trans_conn, iov, i)) >= 0) {
-#ifdef NX_TRANS_SOCKET
- if (_NXDisplayWriteFunction != NULL) {
- (*_NXDisplayWriteFunction)(dpy, len);
- }
-#ifdef NX_TRANS_CHANGE
- if (_NXDisplayCongestionFunction != NULL &&
- _X11TransSocketCongestionChange(dpy->trans_conn, &congestion) == 1) {
- (*_NXDisplayCongestionFunction)(dpy, congestion);
- }
-#endif
-#endif
- skip += len;
- total -= len;
- todo = total;
- } else if (ETEST()) {
- _XWaitForWritable(dpy
-#ifdef XTHREADS
- , NULL
-#endif
- );
-#ifdef SUNSYSV
- } else if (ECHECK(0)) {
- _XWaitForWritable(dpy
-#ifdef XTHREADS
- , NULL
-#endif
- );
-#endif
-#ifdef ESZTEST
- } else if (ESZTEST()) {
- if (todo > 1)
- todo >>= 1;
- else {
- _XWaitForWritable(dpy
-#ifdef XTHREADS
- , NULL
-#endif
- );
- }
-#endif
-#ifdef NX_TRANS_SOCKET
- } else if (!ECHECK(EINTR) ||
- (_NXDisplayErrorFunction != NULL &&
- (*_NXDisplayErrorFunction)(dpy, _XGetIOError(dpy)))) {
- _XIOError(dpy);
- return;
- }
-#else
- } else if (!ECHECK(EINTR)) {
- _XIOError(dpy);
- }
-#endif
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- return;
- }
-#endif
- }
- dpy->last_req = (char *) & _dummy_request;
- _XSetSeqSyncFunction(dpy);
- dpy->bufptr = dpy->buffer;
-#ifdef XTHREADS
- dpy->flags &= ~XlibDisplayWriting;
-#endif
- return;
-}
-
-static void
-_XGetMiscCode(
- register Display *dpy)
-{
- xQueryExtensionReply qrep;
- register xQueryExtensionReq *qreq;
- xXCMiscGetVersionReply vrep;
- register xXCMiscGetVersionReq *vreq;
-
- if (dpy->xcmisc_opcode)
- return;
- GetReq(QueryExtension, qreq);
- qreq->nbytes = sizeof(XCMiscExtensionName) - 1;
- qreq->length += (qreq->nbytes+(unsigned)3)>>2;
- _XSend(dpy, XCMiscExtensionName, (long)qreq->nbytes);
- if (!_XReply (dpy, (xReply *)&qrep, 0, xTrue))
- dpy->xcmisc_opcode = -1;
- else {
- GetReq(XCMiscGetVersion, vreq);
- vreq->reqType = qrep.major_opcode;
- vreq->miscReqType = X_XCMiscGetVersion;
- vreq->majorVersion = XCMiscMajorVersion;
- vreq->minorVersion = XCMiscMinorVersion;
- if (!_XReply (dpy, (xReply *)&vrep, 0, xTrue))
- dpy->xcmisc_opcode = -1;
- else
- dpy->xcmisc_opcode = qrep.major_opcode;
- }
-}
-
-void
-_XIDHandler(
- register Display *dpy)
-{
- xXCMiscGetXIDRangeReply grep;
- register xXCMiscGetXIDRangeReq *greq;
-
- if (dpy->resource_max == dpy->resource_mask + 1) {
- _XGetMiscCode(dpy);
- if (dpy->xcmisc_opcode > 0) {
- GetReq(XCMiscGetXIDRange, greq);
- greq->reqType = dpy->xcmisc_opcode;
- greq->miscReqType = X_XCMiscGetXIDRange;
- if (_XReply (dpy, (xReply *)&grep, 0, xTrue) && grep.count) {
- dpy->resource_id = ((grep.start_id - dpy->resource_base) >>
- dpy->resource_shift);
- dpy->resource_max = dpy->resource_id;
- if (grep.count > 5)
- dpy->resource_max += grep.count - 6;
- dpy->resource_max <<= dpy->resource_shift;
- }
- sync_while_locked(dpy);
- }
- }
-}
-
-/*
- * _XAllocID - resource ID allocation routine.
- */
-XID _XAllocID(
- register Display *dpy)
-{
- XID id;
-
- id = dpy->resource_id << dpy->resource_shift;
- if (id >= dpy->resource_max) {
- _XSetPrivSyncFunction(dpy);
- dpy->resource_max = dpy->resource_mask + 1;
- }
- if (id <= dpy->resource_mask) {
- dpy->resource_id++;
- return (dpy->resource_base + id);
- }
- if (id != 0x10000000) {
- (void) fprintf(stderr,
- "Xlib: resource ID allocation space exhausted!\n");
- id = 0x10000000;
- dpy->resource_id = id >> dpy->resource_shift;
- }
- return id;
-}
-
-/*
- * _XAllocIDs - multiple resource ID allocation routine.
- */
-void _XAllocIDs(
- register Display *dpy,
- XID *ids,
- int count)
-{
- XID id;
- int i;
- xXCMiscGetXIDListReply grep;
- register xXCMiscGetXIDListReq *greq;
-
- id = dpy->resource_id << dpy->resource_shift;
- if (dpy->resource_max <= dpy->resource_mask &&
- id <= dpy->resource_mask &&
- (dpy->resource_max - id) > ((count - 1) << dpy->resource_shift)) {
- id += dpy->resource_base;
- for (i = 0; i < count; i++) {
- ids[i] = id;
- id += (1 << dpy->resource_shift);
- dpy->resource_id++;
- }
- return;
- }
- grep.count = 0;
- _XGetMiscCode(dpy);
- if (dpy->xcmisc_opcode > 0) {
- GetReq(XCMiscGetXIDList, greq);
- greq->reqType = dpy->xcmisc_opcode;
- greq->miscReqType = X_XCMiscGetXIDList;
- greq->count = count;
- if (_XReply(dpy, (xReply *)&grep, 0, xFalse) && grep.count) {
- _XRead32(dpy, (long *) ids, 4L * (long) (grep.count));
- for (i = 0; i < grep.count; i++) {
- id = (ids[i] - dpy->resource_base) >> dpy->resource_shift;
- if (id >= dpy->resource_id)
- dpy->resource_id = id;
- }
- if (id >= dpy->resource_max) {
- _XSetPrivSyncFunction(dpy);
- dpy->resource_max = dpy->resource_mask + 1;
- }
- }
- }
- for (i = grep.count; i < count; i++)
- ids[i] = XAllocID(dpy);
-}
-#endif /* !USE_XCB */
-
-/*
- * The hard part about this is that we only get 16 bits from a reply.
- * We have three values that will march along, with the following invariant:
- * dpy->last_request_read <= rep->sequenceNumber <= dpy->request
- * We have to keep
- * dpy->request - dpy->last_request_read < 2^16
- * or else we won't know for sure what value to use in events. We do this
- * by forcing syncs when we get close.
- */
-
-unsigned long
-_XSetLastRequestRead(
- register Display *dpy,
- register xGenericReply *rep)
-{
- register unsigned long newseq, lastseq;
-
- lastseq = dpy->last_request_read;
- /*
- * KeymapNotify has no sequence number, but is always guaranteed
- * to immediately follow another event, except when generated via
- * SendEvent (hmmm).
- */
- if ((rep->type & 0x7f) == KeymapNotify)
- return(lastseq);
-
- newseq = (lastseq & ~((unsigned long)0xffff)) | rep->sequenceNumber;
-
- if (newseq < lastseq) {
- newseq += 0x10000;
- if (newseq > dpy->request) {
-#ifdef NX_TRANS_SOCKET
- if (_NXLostSequenceFunction != NULL)
- {
- (*_NXLostSequenceFunction)(dpy, newseq, dpy->request,
- (unsigned int) rep->type);
- }
- else
-#endif /* #ifdef NX_TRANS_SOCKET */
- {
- (void) fprintf (stderr,
- "Xlib: sequence lost (0x%lx > 0x%lx) in reply type 0x%x!\n",
- newseq, dpy->request,
- (unsigned int) rep->type);
- }
- newseq -= 0x10000;
- }
- }
-
- dpy->last_request_read = newseq;
- return(newseq);
-}
-
-#if !USE_XCB
-/*
- * _XReply - Wait for a reply packet and copy its contents into the
- * specified rep. Meanwhile we must handle error and event packets that
- * we may encounter.
- */
-Status
-_XReply (
- register Display *dpy,
- register xReply *rep,
- int extra, /* number of 32-bit words expected after the reply */
- Bool discard) /* should I discard data following "extra" words? */
-{
- /* Pull out the serial number now, so that (currently illegal) requests
- * generated by an error handler don't confuse us.
- */
- unsigned long cur_request = dpy->request;
-#ifdef XTHREADS
- struct _XCVList *cvl;
-#endif
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XReply: Going to wait for an X reply.\n");
-#endif
-
-#ifdef NX_TRANS_SOCKET
- if (dpy->flags & XlibDisplayIOError)
- {
-#ifdef NX_TRANS_DEBUG
- fprintf(stderr, "_XReply: Returning 0 with I/O error detected.\n");
-#endif
- return 0;
- }
-#else
- if (dpy->flags & XlibDisplayIOError)
- return 0;
-#endif
-
-#ifdef XTHREADS
- /* create our condition variable and append to list */
- cvl = QueueReplyReaderLock(dpy);
- if (cvl) {
- cvl->buf = rep;
- if (dpy->lock->reply_awaiters == cvl && !dpy->lock->event_awaiters)
- dpy->lock->reply_first = True;
- }
-
-#ifdef XTHREADS_DEBUG
- printf("_XReply called in thread %x, adding %x to cvl\n",
- XThread_Self(), cvl);
-#endif
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XReply: Going to flush the display buffer.\n");
-#endif
- _XFlushInt(dpy, cvl ? cvl->cv : NULL);
- /* if it is not our turn to read a reply off the wire,
- * wait til we're at head of list. if there is an event waiter,
- * and our reply hasn't been read, they'll be in select and will
- * hand control back to us next.
- */
- if(dpy->lock &&
- (dpy->lock->reply_awaiters != cvl || !dpy->lock->reply_first)) {
- ConditionWait(dpy, cvl->cv);
- }
- dpy->flags |= XlibDisplayReply;
-#else /* XTHREADS else */
- _XFlush(dpy);
-#endif
-
-#ifdef NX_TRANS_SOCKET
- /*
- * We are going to block waiting for the remote
- * X server. Be sure that the proxy has flushed
- * all the data.
- */
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XReply: Requesting a flush of the NX transport.\n");
-#endif
- NXTransFlush(dpy->fd);
-#endif
-
- for (;;) {
-#ifdef XTHREADS
- /* Did another thread's _XReadEvents get our reply by accident? */
- if (!dpy->lock || !dpy->lock->reply_was_read)
-#endif
- (void) _XRead(dpy, (char *)rep, (long)SIZEOF(xReply));
-#ifdef XTHREADS
- if (dpy->lock)
- dpy->lock->reply_was_read = False;
-#endif
-
- switch ((int)rep->generic.type) {
-
- case X_Reply:
- /* Reply received. Fast update for synchronous replies,
- * but deal with multiple outstanding replies.
- */
- if (rep->generic.sequenceNumber == (cur_request & 0xffff))
- dpy->last_request_read = cur_request;
- else {
- int pend = SIZEOF(xReply);
- if (_XAsyncReply(dpy, rep, (char *)rep, &pend, False)
- != (char *)rep)
- continue;
- }
- if (extra <= rep->generic.length) {
- if (extra > 0)
- /*
- * Read the extra data into storage immediately
- * following the GenericReply structure.
- */
- (void) _XRead (dpy, (char *) (NEXTPTR(rep,xReply)),
- ((long)extra) << 2);
- if (discard) {
- if (extra < rep->generic.length)
- _XEatData(dpy, (rep->generic.length - extra) << 2);
- }
-#ifdef XTHREADS
- if (dpy->lock) {
- if (discard) {
- dpy->lock->reply_bytes_left = 0;
- } else {
- dpy->lock->reply_bytes_left =
- (rep->generic.length - extra) << 2;
- }
- if (dpy->lock->reply_bytes_left == 0) {
- dpy->flags &= ~XlibDisplayReply;
- UnlockNextReplyReader(dpy);
- }
- } else
- dpy->flags &= ~XlibDisplayReply;
-#endif
- return 1;
- }
- /*
- *if we get here, then extra > rep->generic.length--meaning we
- * read a reply that's shorter than we expected. This is an
- * error, but we still need to figure out how to handle it...
- */
- (void) _XRead (dpy, (char *) (NEXTPTR(rep,xReply)),
- ((long) rep->generic.length) << 2);
- dpy->flags &= ~XlibDisplayReply;
- UnlockNextReplyReader(dpy);
-#ifdef NX_TRANS_SOCKET
- /*
- * The original code has provision
- * for returning already.
- */
-#endif
- _XIOError (dpy);
- return (0);
-
- case X_Error:
- {
- register _XExtension *ext;
- register Bool ret = False;
- int ret_code;
- xError *err = (xError *) rep;
- unsigned long serial;
-
- dpy->flags &= ~XlibDisplayReply;
- serial = _XSetLastRequestRead(dpy, (xGenericReply *)rep);
- if (serial == cur_request)
- /* do not die on "no such font", "can't allocate",
- "can't grab" failures */
- switch ((int)err->errorCode) {
- case BadName:
- switch (err->majorCode) {
- case X_LookupColor:
- case X_AllocNamedColor:
- UnlockNextReplyReader(dpy);
- return(0);
- }
- break;
- case BadFont:
- if (err->majorCode == X_QueryFont) {
- UnlockNextReplyReader(dpy);
- return (0);
- }
- break;
- case BadAlloc:
- case BadAccess:
- UnlockNextReplyReader(dpy);
- return (0);
- }
- /*
- * we better see if there is an extension who may
- * want to suppress the error.
- */
- for (ext = dpy->ext_procs; !ret && ext; ext = ext->next) {
- if (ext->error)
- ret = (*ext->error)(dpy, err, &ext->codes, &ret_code);
- }
- if (!ret) {
- _XError(dpy, err);
- ret_code = 0;
- }
- if (serial == cur_request) {
- UnlockNextReplyReader(dpy);
- return(ret_code);
- }
-
- } /* case X_Error */
- break;
- default:
- _XEnq(dpy, (xEvent *) rep);
-#ifdef XTHREADS
- if (dpy->lock && dpy->lock->event_awaiters)
- ConditionSignal(dpy, dpy->lock->event_awaiters->cv);
-#endif
- break;
- }
-#ifdef NX_TRANS_SOCKET
- if (_XGetIOError(dpy)) {
- UnlockNextReplyReader(dpy);
- return 0;
- }
-#endif
- }
-}
-
-static char *
-_XAsyncReply(
- Display *dpy,
- register xReply *rep,
- char *buf,
- register int *lenp,
- Bool discard)
-{
- register _XAsyncHandler *async, *next;
- register int len;
- register Bool consumed = False;
- char *nbuf;
-
- (void) _XSetLastRequestRead(dpy, &rep->generic);
- len = SIZEOF(xReply) + (rep->generic.length << 2);
- if (len < SIZEOF(xReply)) {
-#ifdef NX_TRANS_SOCKET
-
- /*
- * The original code has provision
- * for returning already.
- */
-
-#endif
- _XIOError (dpy);
- buf += *lenp;
- *lenp = 0;
- return buf;
- }
-
- for (async = dpy->async_handlers; async; async = next) {
- next = async->next;
- if ((consumed = (*async->handler)(dpy, rep, buf, *lenp, async->data)))
- break;
- }
- if (!consumed) {
- if (!discard)
- return buf;
- (void) fprintf(stderr,
- "Xlib: unexpected async reply (sequence 0x%lx)!\n",
- dpy->last_request_read);
-#ifdef XTHREADS
-#ifdef XTHREADS_DEBUG
- printf("thread %x, unexpected async reply\n", XThread_Self());
-#endif
-#endif
- if (len > *lenp)
- _XEatData(dpy, len - *lenp);
- }
- if (len < SIZEOF(xReply))
- {
-#ifdef NX_TRANS_SOCKET
-
- /*
- * The original code has provision
- * for returning already.
- */
-
-#endif
- _XIOError (dpy);
- buf += *lenp;
- *lenp = 0;
- return buf;
- }
- if (len >= *lenp) {
- buf += *lenp;
- *lenp = 0;
- return buf;
- }
- *lenp -= len;
- buf += len;
- len = *lenp;
- nbuf = buf;
- while (len > SIZEOF(xReply)) {
- if (*buf == X_Reply)
- return nbuf;
- buf += SIZEOF(xReply);
- len -= SIZEOF(xReply);
- }
- if (len > 0 && len < SIZEOF(xReply)) {
- buf = nbuf;
- len = SIZEOF(xReply) - len;
- nbuf -= len;
- memmove(nbuf, buf, *lenp);
- (void) _XRead(dpy, nbuf + *lenp, (long)len);
- *lenp += len;
- }
- return nbuf;
-}
-#endif /* !USE_XCB */
-
-/*
- * Support for internal connections, such as an IM might use.
- * By Stephen Gildea, X Consortium, September 1993
- */
-
-/* _XRegisterInternalConnection
- * Each IM (or Xlib extension) that opens a file descriptor that Xlib should
- * include in its select/poll mask must call this function to register the
- * fd with Xlib. Any XConnectionWatchProc registered by XAddConnectionWatch
- * will also be called.
- *
- * Whenever Xlib detects input available on fd, it will call callback
- * with call_data to process it. If non-Xlib code calls select/poll
- * and detects input available, it must call XProcessInternalConnection,
- * which will call the associated callback.
- *
- * Non-Xlib code can learn about these additional fds by calling
- * XInternalConnectionNumbers or, more typically, by registering
- * a XConnectionWatchProc with XAddConnectionWatch
- * to be called when fds are registered or unregistered.
- *
- * Returns True if registration succeeded, False if not, typically
- * because could not allocate memory.
- * Assumes Display locked when called.
- */
-Status
-_XRegisterInternalConnection(
- Display* dpy,
- int fd,
- _XInternalConnectionProc callback,
- XPointer call_data
-)
-{
- struct _XConnectionInfo *new_conni, **iptr;
- struct _XConnWatchInfo *watchers;
- XPointer *wd;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XRegisterInternalConnection: Got called.\n");
-#endif
- new_conni = Xmalloc(sizeof(struct _XConnectionInfo));
- if (!new_conni)
- return 0;
- new_conni->watch_data = Xmalloc(dpy->watcher_count * sizeof(XPointer));
- if (!new_conni->watch_data) {
- Xfree(new_conni);
- return 0;
- }
- new_conni->fd = fd;
- new_conni->read_callback = callback;
- new_conni->call_data = call_data;
- new_conni->next = NULL;
- /* link new structure onto end of list */
- for (iptr = &dpy->im_fd_info; *iptr; iptr = &(*iptr)->next)
- ;
- *iptr = new_conni;
- dpy->im_fd_length++;
- _XPollfdCacheAdd(dpy, fd);
-
- for (watchers=dpy->conn_watchers, wd=new_conni->watch_data;
- watchers;
- watchers=watchers->next, wd++) {
- *wd = NULL; /* for cleanliness */
- (*watchers->fn) (dpy, watchers->client_data, fd, True, wd);
- }
-
- return 1;
-}
-
-/* _XUnregisterInternalConnection
- * Each IM (or Xlib extension) that closes a file descriptor previously
- * registered with _XRegisterInternalConnection must call this function.
- * Any XConnectionWatchProc registered by XAddConnectionWatch
- * will also be called.
- *
- * Assumes Display locked when called.
- */
-void
-_XUnregisterInternalConnection(
- Display* dpy,
- int fd
-)
-{
- struct _XConnectionInfo *info_list, **prev;
- struct _XConnWatchInfo *watch;
- XPointer *wd;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XUnregisterInternalConnection: Got called.\n");
-#endif
- for (prev = &dpy->im_fd_info; (info_list = *prev);
- prev = &info_list->next) {
- if (info_list->fd == fd) {
- *prev = info_list->next;
- dpy->im_fd_length--;
- for (watch=dpy->conn_watchers, wd=info_list->watch_data;
- watch;
- watch=watch->next, wd++) {
- (*watch->fn) (dpy, watch->client_data, fd, False, wd);
- }
- Xfree (info_list->watch_data);
- Xfree (info_list);
- break;
- }
- }
- _XPollfdCacheDel(dpy, fd);
-}
-
-/* XInternalConnectionNumbers
- * Returns an array of fds and an array of corresponding call data.
- * Typically a XConnectionWatchProc registered with XAddConnectionWatch
- * will be used instead of this function to discover
- * additional fds to include in the select/poll mask.
- *
- * The list is allocated with Xmalloc and should be freed by the caller
- * with Xfree;
- */
-Status
-XInternalConnectionNumbers(
- Display *dpy,
- int **fd_return,
- int *count_return
-)
-{
- int count;
- struct _XConnectionInfo *info_list;
- int *fd_list;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "XInternalConnectionNumbers: Got called.\n");
-#endif
- LockDisplay(dpy);
- count = 0;
- for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next)
- count++;
- fd_list = Xmalloc (count * sizeof(int));
- if (!fd_list) {
- UnlockDisplay(dpy);
- return 0;
- }
- count = 0;
- for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
- fd_list[count] = info_list->fd;
- count++;
- }
- UnlockDisplay(dpy);
-
- *fd_return = fd_list;
- *count_return = count;
- return 1;
-}
-
-void _XProcessInternalConnection(
- Display *dpy,
- struct _XConnectionInfo *conn_info)
-{
- dpy->flags |= XlibDisplayProcConni;
-#if defined(XTHREADS) && !USE_XCB
- if (dpy->lock) {
- /* check cache to avoid call to thread_self */
- if (xthread_have_id(dpy->lock->reading_thread))
- dpy->lock->conni_thread = dpy->lock->reading_thread;
- else
- dpy->lock->conni_thread = XThread_Self();
- }
-#endif /* XTHREADS && !USE_XCB */
- UnlockDisplay(dpy);
- (*conn_info->read_callback) (dpy, conn_info->fd, conn_info->call_data);
- LockDisplay(dpy);
-#if defined(XTHREADS) && !USE_XCB
- if (dpy->lock)
- xthread_clear_id(dpy->lock->conni_thread);
-#endif /* XTHREADS && !USE_XCB */
- dpy->flags &= ~XlibDisplayProcConni;
-}
-
-/* XProcessInternalConnection
- * Call the _XInternalConnectionProc registered by _XRegisterInternalConnection
- * for this fd.
- * The Display is NOT locked during the call.
- */
-void
-XProcessInternalConnection(
- Display* dpy,
- int fd
-)
-{
- struct _XConnectionInfo *info_list;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "XProcessInternalConnection: Got called.\n");
-#endif
-
- LockDisplay(dpy);
- for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
- if (info_list->fd == fd) {
- _XProcessInternalConnection(dpy, info_list);
- break;
- }
- }
- UnlockDisplay(dpy);
-}
-
-/* XAddConnectionWatch
- * Register a callback to be called whenever _XRegisterInternalConnection
- * or _XUnregisterInternalConnection is called.
- * Callbacks are called with the Display locked.
- * If any connections are already registered, the callback is immediately
- * called for each of them.
- */
-Status
-XAddConnectionWatch(
- Display* dpy,
- XConnectionWatchProc callback,
- XPointer client_data
-)
-{
- struct _XConnWatchInfo *new_watcher, **wptr;
- struct _XConnectionInfo *info_list;
- XPointer *wd_array;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "XAddConnectionWatch: Got called.\n");
-#endif
- LockDisplay(dpy);
-
- /* allocate new watch data */
- for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
- wd_array = Xrealloc(info_list->watch_data,
- (dpy->watcher_count + 1) * sizeof(XPointer));
- if (!wd_array) {
- UnlockDisplay(dpy);
- return 0;
- }
- info_list->watch_data = wd_array;
- wd_array[dpy->watcher_count] = NULL; /* for cleanliness */
- }
-
- new_watcher = Xmalloc(sizeof(struct _XConnWatchInfo));
- if (!new_watcher) {
- UnlockDisplay(dpy);
- return 0;
- }
- new_watcher->fn = callback;
- new_watcher->client_data = client_data;
- new_watcher->next = NULL;
-
- /* link new structure onto end of list */
- for (wptr = &dpy->conn_watchers; *wptr; wptr = &(*wptr)->next)
- ;
- *wptr = new_watcher;
- dpy->watcher_count++;
-
- /* call new watcher on all currently registered fds */
- for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
- (*callback) (dpy, client_data, info_list->fd, True,
- info_list->watch_data + dpy->watcher_count - 1);
- }
-
- UnlockDisplay(dpy);
- return 1;
-}
-
-/* XRemoveConnectionWatch
- * Unregister a callback registered by XAddConnectionWatch.
- * Both callback and client_data must match what was passed to
- * XAddConnectionWatch.
- */
-void
-XRemoveConnectionWatch(
- Display* dpy,
- XConnectionWatchProc callback,
- XPointer client_data
-)
-{
- struct _XConnWatchInfo *watch;
- struct _XConnWatchInfo *previous = NULL;
- struct _XConnectionInfo *conni;
- int counter = 0;
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "XRemoveConnectionWatch: Got called.\n");
-#endif
- LockDisplay(dpy);
- for (watch=dpy->conn_watchers; watch; watch=watch->next) {
- if (watch->fn == callback && watch->client_data == client_data) {
- if (previous)
- previous->next = watch->next;
- else
- dpy->conn_watchers = watch->next;
- Xfree (watch);
- dpy->watcher_count--;
- /* remove our watch_data for each connection */
- for (conni=dpy->im_fd_info; conni; conni=conni->next) {
- /* don't bother realloc'ing; these arrays are small anyway */
- /* overlapping */
- memmove(conni->watch_data+counter,
- conni->watch_data+counter+1,
- dpy->watcher_count - counter);
- }
- break;
- }
- previous = watch;
- counter++;
- }
- UnlockDisplay(dpy);
-}
-
-/* end of internal connections support */
-
-
-#if !USE_XCB
-/* Read and discard "n" 8-bit bytes of data */
-
-void _XEatData(
- Display *dpy,
- register unsigned long n)
-{
-#define SCRATCHSIZE 2048
- char buf[SCRATCHSIZE];
-
-#if defined(NX_TRANS_SOCKET) && defined(NX_TRANS_DEBUG)
- fprintf(stderr, "_XEatData: Going to eat [%ld] bytes of data from descriptor [%d].\n",
- n, dpy->fd);
-#endif
- while (n > 0) {
- register long bytes_read = (n > SCRATCHSIZE) ? SCRATCHSIZE : n;
- (void) _XRead (dpy, buf, bytes_read);
- n -= bytes_read;
- }
-#undef SCRATCHSIZE
-}
-
-/*
- Port from libXfixes commit
- b031e3b60fa1af9e49449f23d4a84395868be3ab We need this here to
- enable linking of current libXrender against libNX_X11 instead of
- the system's libX11
-
- The original implementation of this function (libX11 commit
- 9f5d83706543696fc944c1835a403938c06f2cc5) uses xcb stuff which we
- do not have in libNX_X11. So we take a workaround from another
- lib. This workaround had been implemented temporarily in a couple
- of X libs, see e.g. https://lists.x.org/archives/xorg-devel/2013-July/036763.html.
-*/
-#include <nx-X11/Xmd.h> /* for LONG64 on 64-bit platforms */
-#include <limits.h>
-
-void _XEatDataWords(Display *dpy, unsigned long n)
-{
-#ifndef LONG64
- if (n >= (ULONG_MAX >> 2))
- _XIOError(dpy);
-#endif
- _XEatData (dpy, n << 2);
-}
-#endif /* !USE_XCB */
-
-/* Cookie jar implementation
- dpy->cookiejar is a linked list. _XEnq receives the events but leaves
- them in the normal EQ. _XStoreEvent returns the cookie event (minus
- data pointer) and adds it to the cookiejar. _XDeq just removes
- the entry like any other event but resets the data pointer for
- cookie events (to avoid double-free, the memory is re-used by Xlib).
-
- _XFetchEventCookie (called from XGetEventData) removes a cookie from the
- jar. _XFreeEventCookies removes all unclaimed cookies from the jar
- (called by XNextEvent).
-
- _XFreeDisplayStructure calls _XFreeEventCookies for each cookie in the
- normal EQ.
- */
-
-#include "utlist.h"
-struct stored_event {
- XGenericEventCookie ev;
- struct stored_event *prev;
- struct stored_event *next;
-};
-
-Bool
-_XIsEventCookie(Display *dpy, XEvent *ev)
-{
- return (ev->xcookie.type == GenericEvent &&
- dpy->generic_event_vec[ev->xcookie.extension & 0x7F] != NULL);
-}
-
-/**
- * Free all events in the event list.
- */
-void
-_XFreeEventCookies(Display *dpy)
-{
- struct stored_event **head, *e, *tmp;
-
- if (!dpy->cookiejar)
- return;
-
- head = (struct stored_event**)&dpy->cookiejar;
-
- DL_FOREACH_SAFE(*head, e, tmp) {
- if (dpy->cookiejar == e)
- dpy->cookiejar = NULL;
- XFree(e->ev.data);
- XFree(e);
- }
-}
-
-/**
- * Add an event to the display's event list. This event must be freed on the
- * next call to XNextEvent().
- */
-void
-_XStoreEventCookie(Display *dpy, XEvent *event)
-{
- XGenericEventCookie* cookie = &event->xcookie;
- struct stored_event **head, *add;
-
- if (!_XIsEventCookie(dpy, event))
- return;
-
- head = (struct stored_event**)(&dpy->cookiejar);
-
- add = Xmalloc(sizeof(struct stored_event));
- if (!add) {
- ESET(ENOMEM);
- _XIOError(dpy);
- }
- add->ev = *cookie;
- DL_APPEND(*head, add);
- cookie->data = NULL; /* don't return data yet, must be claimed */
-}
-
-/**
- * Return the event with the given cookie and remove it from the list.
- */
-Bool
-_XFetchEventCookie(Display *dpy, XGenericEventCookie* ev)
-{
- Bool ret = False;
- struct stored_event **head, *event;
- head = (struct stored_event**)&dpy->cookiejar;
-
- if (!_XIsEventCookie(dpy, (XEvent*)ev))
- return ret;
-
- DL_FOREACH(*head, event) {
- if (event->ev.cookie == ev->cookie &&
- event->ev.extension == ev->extension &&
- event->ev.evtype == ev->evtype) {
- *ev = event->ev;
- DL_DELETE(*head, event);
- Xfree(event);
- ret = True;
- break;
- }
- }
-
- return ret;
-}
-
-Bool
-_XCopyEventCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out)
-{
- Bool ret = False;
- int extension;
-
- if (!_XIsEventCookie(dpy, (XEvent*)in) || !out)
- return ret;
-
- extension = in->extension & 0x7F;
-
- if (!dpy->generic_event_copy_vec[extension])
- return ret;
-
- ret = ((*dpy->generic_event_copy_vec[extension])(dpy, in, out));
- out->cookie = ret ? ++dpy->next_cookie : 0;
- return ret;
-}
-
-
-/*
- * _XEnq - Place event packets on the display's queue.
- * note that no squishing of move events in V11, since there
- * is pointer motion hints....
- */
-void _XEnq(
- register Display *dpy,
- register xEvent *event)
-{
- register _XQEvent *qelt;
- int type, extension;
-
- if ((qelt = dpy->qfree)) {
- /* If dpy->qfree is non-NULL do this, else malloc a new one. */
- dpy->qfree = qelt->next;
- }
- else if ((qelt = Xmalloc(sizeof(_XQEvent))) == NULL) {
- /* Malloc call failed! */
- ESET(ENOMEM);
-#ifdef NX_TRANS_SOCKET
- _XIOError(dpy);
-
- return;
-#else
- _XIOError(dpy);
-#endif
- }
- qelt->next = NULL;
-
- type = event->u.u.type & 0177;
- extension = ((xGenericEvent*)event)->extension;
-
- qelt->event.type = type;
- /* If an extension has registered a generic_event_vec handler, then
- * it can handle event cookies. Otherwise, proceed with the normal
- * event handlers.
- *
- * If the generic_event_vec is called, qelt->event is a event cookie
- * with the data pointer and the "free" pointer set. Data pointer is
- * some memory allocated by the extension.
- */
- if (type == GenericEvent && dpy->generic_event_vec[extension & 0x7F]) {
- XGenericEventCookie *cookie = &qelt->event.xcookie;
- (*dpy->generic_event_vec[extension & 0x7F])(dpy, cookie, event);
- cookie->cookie = ++dpy->next_cookie;
-
- qelt->qserial_num = dpy->next_event_serial_num++;
- if (dpy->tail) dpy->tail->next = qelt;
- else dpy->head = qelt;
-
- dpy->tail = qelt;
- dpy->qlen++;
- } else if ((*dpy->event_vec[type])(dpy, &qelt->event, event)) {
- qelt->qserial_num = dpy->next_event_serial_num++;
- if (dpy->tail) dpy->tail->next = qelt;
- else dpy->head = qelt;
-
- dpy->tail = qelt;
- dpy->qlen++;
- } else {
- /* ignored, or stashed away for many-to-one compression */
- qelt->next = dpy->qfree;
- dpy->qfree = qelt;
- }
-}
-
-/*
- * _XDeq - Remove event packet from the display's queue.
- */
-void _XDeq(
- register Display *dpy,
- register _XQEvent *prev, /* element before qelt */
- register _XQEvent *qelt) /* element to be unlinked */
-{
- if (prev) {
- if ((prev->next = qelt->next) == NULL)
- dpy->tail = prev;
- } else {
- /* no prev, so removing first elt */
- if ((dpy->head = qelt->next) == NULL)
- dpy->tail = NULL;
- }
- qelt->qserial_num = 0;
- qelt->next = dpy->qfree;
- dpy->qfree = qelt;
- dpy->qlen--;
-
- if (_XIsEventCookie(dpy, &qelt->event)) {
- XGenericEventCookie* cookie = &qelt->event.xcookie;
- /* dpy->qfree is re-used, reset memory to avoid double free on
- * _XFreeDisplayStructure */
- cookie->data = NULL;
- }
-}
-
-/*
- * EventToWire in separate file in that often not needed.
- */
-
-/*ARGSUSED*/
-Bool
-_XUnknownWireEvent(
- register Display *dpy, /* pointer to display structure */
- register XEvent *re, /* pointer to where event should be reformatted */
- register xEvent *event) /* wire protocol event */
-{
-#ifdef notdef
- (void) fprintf(stderr,
- "Xlib: unhandled wire event! event number = %d, display = %x\n.",
- event->u.u.type, dpy);
-#endif
- return(False);
-}
-
-Bool
-_XUnknownWireEventCookie(
- Display *dpy, /* pointer to display structure */
- XGenericEventCookie *re, /* pointer to where event should be reformatted */
- xEvent *event) /* wire protocol event */
-{
-#ifdef notdef
- fprintf(stderr,
- "Xlib: unhandled wire cookie event! extension number = %d, display = %x\n.",
- ((xGenericEvent*)event)->extension, dpy);
-#endif
- return(False);
-}
-
-Bool
-_XUnknownCopyEventCookie(
- Display *dpy, /* pointer to display structure */
- XGenericEventCookie *in, /* source */
- XGenericEventCookie *out) /* destination */
-{
-#ifdef notdef
- fprintf(stderr,
- "Xlib: unhandled cookie event copy! extension number = %d, display = %x\n.",
- in->extension, dpy);
-#endif
- return(False);
-}
-
-/*ARGSUSED*/
-Status
-_XUnknownNativeEvent(
- register Display *dpy, /* pointer to display structure */
- register XEvent *re, /* pointer to where event should be reformatted */
- register xEvent *event) /* wire protocol event */
-{
-#ifdef notdef
- (void) fprintf(stderr,
- "Xlib: unhandled native event! event number = %d, display = %x\n.",
- re->type, dpy);
-#endif
- return(0);
-}
-/*
- * reformat a wire event into an XEvent structure of the right type.
- */
-Bool
-_XWireToEvent(
- register Display *dpy, /* pointer to display structure */
- register XEvent *re, /* pointer to where event should be reformatted */
- register xEvent *event) /* wire protocol event */
-{
-
- re->type = event->u.u.type & 0x7f;
- ((XAnyEvent *)re)->serial = _XSetLastRequestRead(dpy,
- (xGenericReply *)event);
- ((XAnyEvent *)re)->send_event = ((event->u.u.type & 0x80) != 0);
- ((XAnyEvent *)re)->display = dpy;
-
- /* Ignore the leading bit of the event type since it is set when a
- client sends an event rather than the server. */
-
- switch (event-> u.u.type & 0177) {
- case KeyPress:
- case KeyRelease:
- {
- register XKeyEvent *ev = (XKeyEvent*) re;
- ev->root = event->u.keyButtonPointer.root;
- ev->window = event->u.keyButtonPointer.event;
- ev->subwindow = event->u.keyButtonPointer.child;
- ev->time = event->u.keyButtonPointer.time;
- ev->x = cvtINT16toInt(event->u.keyButtonPointer.eventX);
- ev->y = cvtINT16toInt(event->u.keyButtonPointer.eventY);
- ev->x_root = cvtINT16toInt(event->u.keyButtonPointer.rootX);
- ev->y_root = cvtINT16toInt(event->u.keyButtonPointer.rootY);
- ev->state = event->u.keyButtonPointer.state;
- ev->same_screen = event->u.keyButtonPointer.sameScreen;
- ev->keycode = event->u.u.detail;
- }
- break;
- case ButtonPress:
- case ButtonRelease:
- {
- register XButtonEvent *ev = (XButtonEvent *) re;
- ev->root = event->u.keyButtonPointer.root;
- ev->window = event->u.keyButtonPointer.event;
- ev->subwindow = event->u.keyButtonPointer.child;
- ev->time = event->u.keyButtonPointer.time;
- ev->x = cvtINT16toInt(event->u.keyButtonPointer.eventX);
- ev->y = cvtINT16toInt(event->u.keyButtonPointer.eventY);
- ev->x_root = cvtINT16toInt(event->u.keyButtonPointer.rootX);
- ev->y_root = cvtINT16toInt(event->u.keyButtonPointer.rootY);
- ev->state = event->u.keyButtonPointer.state;
- ev->same_screen = event->u.keyButtonPointer.sameScreen;
- ev->button = event->u.u.detail;
- }
- break;
- case MotionNotify:
- {
- register XMotionEvent *ev = (XMotionEvent *)re;
- ev->root = event->u.keyButtonPointer.root;
- ev->window = event->u.keyButtonPointer.event;
- ev->subwindow = event->u.keyButtonPointer.child;
- ev->time = event->u.keyButtonPointer.time;
- ev->x = cvtINT16toInt(event->u.keyButtonPointer.eventX);
- ev->y = cvtINT16toInt(event->u.keyButtonPointer.eventY);
- ev->x_root = cvtINT16toInt(event->u.keyButtonPointer.rootX);
- ev->y_root = cvtINT16toInt(event->u.keyButtonPointer.rootY);
- ev->state = event->u.keyButtonPointer.state;
- ev->same_screen = event->u.keyButtonPointer.sameScreen;
- ev->is_hint = event->u.u.detail;
- }
- break;
- case EnterNotify:
- case LeaveNotify:
- {
- register XCrossingEvent *ev = (XCrossingEvent *) re;
- ev->root = event->u.enterLeave.root;
- ev->window = event->u.enterLeave.event;
- ev->subwindow = event->u.enterLeave.child;
- ev->time = event->u.enterLeave.time;
- ev->x = cvtINT16toInt(event->u.enterLeave.eventX);
- ev->y = cvtINT16toInt(event->u.enterLeave.eventY);
- ev->x_root = cvtINT16toInt(event->u.enterLeave.rootX);
- ev->y_root = cvtINT16toInt(event->u.enterLeave.rootY);
- ev->state = event->u.enterLeave.state;
- ev->mode = event->u.enterLeave.mode;
- ev->same_screen = (event->u.enterLeave.flags &
- ELFlagSameScreen) && True;
- ev->focus = (event->u.enterLeave.flags &
- ELFlagFocus) && True;
- ev->detail = event->u.u.detail;
- }
- break;
- case FocusIn:
- case FocusOut:
- {
- register XFocusChangeEvent *ev = (XFocusChangeEvent *) re;
- ev->window = event->u.focus.window;
- ev->mode = event->u.focus.mode;
- ev->detail = event->u.u.detail;
- }
- break;
- case KeymapNotify:
- {
- register XKeymapEvent *ev = (XKeymapEvent *) re;
- ev->window = None;
- memcpy(&ev->key_vector[1],
- (char *)((xKeymapEvent *) event)->map,
- sizeof (((xKeymapEvent *) event)->map));
- }
- break;
- case Expose:
- {
- register XExposeEvent *ev = (XExposeEvent *) re;
- ev->window = event->u.expose.window;
- ev->x = event->u.expose.x;
- ev->y = event->u.expose.y;
- ev->width = event->u.expose.width;
- ev->height = event->u.expose.height;
- ev->count = event->u.expose.count;
- }
- break;
- case GraphicsExpose:
- {
- register XGraphicsExposeEvent *ev =
- (XGraphicsExposeEvent *) re;
- ev->drawable = event->u.graphicsExposure.drawable;
- ev->x = event->u.graphicsExposure.x;
- ev->y = event->u.graphicsExposure.y;
- ev->width = event->u.graphicsExposure.width;
- ev->height = event->u.graphicsExposure.height;
- ev->count = event->u.graphicsExposure.count;
- ev->major_code = event->u.graphicsExposure.majorEvent;
- ev->minor_code = event->u.graphicsExposure.minorEvent;
- }
- break;
- case NoExpose:
- {
- register XNoExposeEvent *ev = (XNoExposeEvent *) re;
- ev->drawable = event->u.noExposure.drawable;
- ev->major_code = event->u.noExposure.majorEvent;
- ev->minor_code = event->u.noExposure.minorEvent;
- }
- break;
- case VisibilityNotify:
- {
- register XVisibilityEvent *ev = (XVisibilityEvent *) re;
- ev->window = event->u.visibility.window;
- ev->state = event->u.visibility.state;
- }
- break;
- case CreateNotify:
- {
- register XCreateWindowEvent *ev =
- (XCreateWindowEvent *) re;
- ev->window = event->u.createNotify.window;
- ev->parent = event->u.createNotify.parent;
- ev->x = cvtINT16toInt(event->u.createNotify.x);
- ev->y = cvtINT16toInt(event->u.createNotify.y);
- ev->width = event->u.createNotify.width;
- ev->height = event->u.createNotify.height;
- ev->border_width = event->u.createNotify.borderWidth;
- ev->override_redirect = event->u.createNotify.override;
- }
- break;
- case DestroyNotify:
- {
- register XDestroyWindowEvent *ev =
- (XDestroyWindowEvent *) re;
- ev->window = event->u.destroyNotify.window;
- ev->event = event->u.destroyNotify.event;
- }
- break;
- case UnmapNotify:
- {
- register XUnmapEvent *ev = (XUnmapEvent *) re;
- ev->window = event->u.unmapNotify.window;
- ev->event = event->u.unmapNotify.event;
- ev->from_configure = event->u.unmapNotify.fromConfigure;
- }
- break;
- case MapNotify:
- {
- register XMapEvent *ev = (XMapEvent *) re;
- ev->window = event->u.mapNotify.window;
- ev->event = event->u.mapNotify.event;
- ev->override_redirect = event->u.mapNotify.override;
- }
- break;
- case MapRequest:
- {
- register XMapRequestEvent *ev = (XMapRequestEvent *) re;
- ev->window = event->u.mapRequest.window;
- ev->parent = event->u.mapRequest.parent;
- }
- break;
- case ReparentNotify:
- {
- register XReparentEvent *ev = (XReparentEvent *) re;
- ev->event = event->u.reparent.event;
- ev->window = event->u.reparent.window;
- ev->parent = event->u.reparent.parent;
- ev->x = cvtINT16toInt(event->u.reparent.x);
- ev->y = cvtINT16toInt(event->u.reparent.y);
- ev->override_redirect = event->u.reparent.override;
- }
- break;
- case ConfigureNotify:
- {
- register XConfigureEvent *ev = (XConfigureEvent *) re;
- ev->event = event->u.configureNotify.event;
- ev->window = event->u.configureNotify.window;
- ev->above = event->u.configureNotify.aboveSibling;
- ev->x = cvtINT16toInt(event->u.configureNotify.x);
- ev->y = cvtINT16toInt(event->u.configureNotify.y);
- ev->width = event->u.configureNotify.width;
- ev->height = event->u.configureNotify.height;
- ev->border_width = event->u.configureNotify.borderWidth;
- ev->override_redirect = event->u.configureNotify.override;
- }
- break;
- case ConfigureRequest:
- {
- register XConfigureRequestEvent *ev =
- (XConfigureRequestEvent *) re;
- ev->window = event->u.configureRequest.window;
- ev->parent = event->u.configureRequest.parent;
- ev->above = event->u.configureRequest.sibling;
- ev->x = cvtINT16toInt(event->u.configureRequest.x);
- ev->y = cvtINT16toInt(event->u.configureRequest.y);
- ev->width = event->u.configureRequest.width;
- ev->height = event->u.configureRequest.height;
- ev->border_width = event->u.configureRequest.borderWidth;
- ev->value_mask = event->u.configureRequest.valueMask;
- ev->detail = event->u.u.detail;
- }
- break;
- case GravityNotify:
- {
- register XGravityEvent *ev = (XGravityEvent *) re;
- ev->window = event->u.gravity.window;
- ev->event = event->u.gravity.event;
- ev->x = cvtINT16toInt(event->u.gravity.x);
- ev->y = cvtINT16toInt(event->u.gravity.y);
- }
- break;
- case ResizeRequest:
- {
- register XResizeRequestEvent *ev =
- (XResizeRequestEvent *) re;
- ev->window = event->u.resizeRequest.window;
- ev->width = event->u.resizeRequest.width;
- ev->height = event->u.resizeRequest.height;
- }
- break;
- case CirculateNotify:
- {
- register XCirculateEvent *ev = (XCirculateEvent *) re;
- ev->window = event->u.circulate.window;
- ev->event = event->u.circulate.event;
- ev->place = event->u.circulate.place;
- }
- break;
- case CirculateRequest:
- {
- register XCirculateRequestEvent *ev =
- (XCirculateRequestEvent *) re;
- ev->window = event->u.circulate.window;
- ev->parent = event->u.circulate.event;
- ev->place = event->u.circulate.place;
- }
- break;
- case PropertyNotify:
- {
- register XPropertyEvent *ev = (XPropertyEvent *) re;
- ev->window = event->u.property.window;
- ev->atom = event->u.property.atom;
- ev->time = event->u.property.time;
- ev->state = event->u.property.state;
- }
- break;
- case SelectionClear:
- {
- register XSelectionClearEvent *ev =
- (XSelectionClearEvent *) re;
- ev->window = event->u.selectionClear.window;
- ev->selection = event->u.selectionClear.atom;
- ev->time = event->u.selectionClear.time;
- }
- break;
- case SelectionRequest:
- {
- register XSelectionRequestEvent *ev =
- (XSelectionRequestEvent *) re;
- ev->owner = event->u.selectionRequest.owner;
- ev->requestor = event->u.selectionRequest.requestor;
- ev->selection = event->u.selectionRequest.selection;
- ev->target = event->u.selectionRequest.target;
- ev->property = event->u.selectionRequest.property;
- ev->time = event->u.selectionRequest.time;
- }
- break;
- case SelectionNotify:
- {
- register XSelectionEvent *ev = (XSelectionEvent *) re;
- ev->requestor = event->u.selectionNotify.requestor;
- ev->selection = event->u.selectionNotify.selection;
- ev->target = event->u.selectionNotify.target;
- ev->property = event->u.selectionNotify.property;
- ev->time = event->u.selectionNotify.time;
- }
- break;
- case ColormapNotify:
- {
- register XColormapEvent *ev = (XColormapEvent *) re;
- ev->window = event->u.colormap.window;
- ev->colormap = event->u.colormap.colormap;
- ev->new = event->u.colormap.new;
- ev->state = event->u.colormap.state;
- }
- break;
- case ClientMessage:
- {
- register int i;
- register XClientMessageEvent *ev
- = (XClientMessageEvent *) re;
- ev->window = event->u.clientMessage.window;
- ev->format = event->u.u.detail;
- switch (ev->format) {
- case 8:
- ev->message_type = event->u.clientMessage.u.b.type;
- for (i = 0; i < 20; i++)
- ev->data.b[i] = event->u.clientMessage.u.b.bytes[i];
- break;
- case 16:
- ev->message_type = event->u.clientMessage.u.s.type;
- ev->data.s[0] = cvtINT16toShort(event->u.clientMessage.u.s.shorts0);
- ev->data.s[1] = cvtINT16toShort(event->u.clientMessage.u.s.shorts1);
- ev->data.s[2] = cvtINT16toShort(event->u.clientMessage.u.s.shorts2);
- ev->data.s[3] = cvtINT16toShort(event->u.clientMessage.u.s.shorts3);
- ev->data.s[4] = cvtINT16toShort(event->u.clientMessage.u.s.shorts4);
- ev->data.s[5] = cvtINT16toShort(event->u.clientMessage.u.s.shorts5);
- ev->data.s[6] = cvtINT16toShort(event->u.clientMessage.u.s.shorts6);
- ev->data.s[7] = cvtINT16toShort(event->u.clientMessage.u.s.shorts7);
- ev->data.s[8] = cvtINT16toShort(event->u.clientMessage.u.s.shorts8);
- ev->data.s[9] = cvtINT16toShort(event->u.clientMessage.u.s.shorts9);
- break;
- case 32:
- ev->message_type = event->u.clientMessage.u.l.type;
- ev->data.l[0] = cvtINT32toLong(event->u.clientMessage.u.l.longs0);
- ev->data.l[1] = cvtINT32toLong(event->u.clientMessage.u.l.longs1);
- ev->data.l[2] = cvtINT32toLong(event->u.clientMessage.u.l.longs2);
- ev->data.l[3] = cvtINT32toLong(event->u.clientMessage.u.l.longs3);
- ev->data.l[4] = cvtINT32toLong(event->u.clientMessage.u.l.longs4);
- break;
- default: /* XXX should never occur */
- break;
- }
- }
- break;
- case MappingNotify:
- {
- register XMappingEvent *ev = (XMappingEvent *)re;
- ev->window = 0;
- ev->first_keycode = event->u.mappingNotify.firstKeyCode;
- ev->request = event->u.mappingNotify.request;
- ev->count = event->u.mappingNotify.count;
- }
- break;
- default:
- return(_XUnknownWireEvent(dpy, re, event));
- }
- return(True);
-}
-
-
-/*
- * _XDefaultIOError - Default fatal system error reporting routine. Called
- * when an X internal system error is encountered.
- */
-int _XDefaultIOError(
- Display *dpy)
-{
- if (ECHECK(EPIPE)) {
- (void) fprintf (stderr,
- "X connection to %s broken (explicit kill or server shutdown).\r\n",
- DisplayString (dpy));
- } else {
- (void) fprintf (stderr,
- "XIO: fatal IO error %d (%s) on X server \"%s\"\r\n",
-#ifdef WIN32
- WSAGetLastError(), strerror(WSAGetLastError()),
-#else
- errno, strerror (errno),
-#endif
- DisplayString (dpy));
- (void) fprintf (stderr,
- " after %lu requests (%lu known processed) with %d events remaining.\r\n",
- NextRequest(dpy) - 1, LastKnownRequestProcessed(dpy),
- QLength(dpy));
-
- }
-#ifdef NX_TRANS_SOCKET
- if (_NXHandleDisplayError == 1)
- {
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XDefaultIOError: Going to return from the error handler.\n");
-#endif
- return 0;
- }
- else
- {
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XDefaultIOError: Going to exit from the program.\n");
-#endif
-#ifdef NX_TRANS_EXIT
- NXTransExit(1);
-#else
- exit(1);
-#endif
- }
-#else
- exit(1);
-#endif /* #ifdef NX_TRANS_SOCKET */
- /*NOTREACHED*/
-}
-
-
-static int _XPrintDefaultError(
- Display *dpy,
- XErrorEvent *event,
- FILE *fp)
-{
- char buffer[BUFSIZ];
- char mesg[BUFSIZ];
- char number[32];
- const char *mtype = "XlibMessage";
- register _XExtension *ext = (_XExtension *)NULL;
- _XExtension *bext = (_XExtension *)NULL;
- XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
- XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
- (void) fprintf(fp, "%s: %s\n ", mesg, buffer);
- XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
- mesg, BUFSIZ);
- (void) fprintf(fp, mesg, event->request_code);
- if (event->request_code < 128) {
- snprintf(number, sizeof(number), "%d", event->request_code);
- XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
- } else {
- for (ext = dpy->ext_procs;
- ext && (ext->codes.major_opcode != event->request_code);
- ext = ext->next)
- ;
- if (ext) {
- strncpy(buffer, ext->name, BUFSIZ);
- buffer[BUFSIZ - 1] = '\0';
- } else
- buffer[0] = '\0';
- }
- (void) fprintf(fp, " (%s)\n", buffer);
- if (event->request_code >= 128) {
- XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
- mesg, BUFSIZ);
- fputs(" ", fp);
- (void) fprintf(fp, mesg, event->minor_code);
- if (ext) {
- snprintf(mesg, sizeof(mesg), "%s.%d", ext->name, event->minor_code);
- XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
- (void) fprintf(fp, " (%s)", buffer);
- }
- fputs("\n", fp);
- }
- if (event->error_code >= 128) {
- /* kludge, try to find the extension that caused it */
- buffer[0] = '\0';
- for (ext = dpy->ext_procs; ext; ext = ext->next) {
- if (ext->error_string)
- (*ext->error_string)(dpy, event->error_code, &ext->codes,
- buffer, BUFSIZ);
- if (buffer[0]) {
- bext = ext;
- break;
- }
- if (ext->codes.first_error &&
- ext->codes.first_error < (int)event->error_code &&
- (!bext || ext->codes.first_error > bext->codes.first_error))
- bext = ext;
- }
- if (bext)
- snprintf(buffer, sizeof(buffer), "%s.%d", bext->name,
- event->error_code - bext->codes.first_error);
- else
- strcpy(buffer, "Value");
- XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ);
- if (mesg[0]) {
- fputs(" ", fp);
- (void) fprintf(fp, mesg, event->resourceid);
- fputs("\n", fp);
- }
- /* let extensions try to print the values */
- for (ext = dpy->ext_procs; ext; ext = ext->next) {
- if (ext->error_values)
- (*ext->error_values)(dpy, event, fp);
- }
- } else if ((event->error_code == BadWindow) ||
- (event->error_code == BadPixmap) ||
- (event->error_code == BadCursor) ||
- (event->error_code == BadFont) ||
- (event->error_code == BadDrawable) ||
- (event->error_code == BadColor) ||
- (event->error_code == BadGC) ||
- (event->error_code == BadIDChoice) ||
- (event->error_code == BadValue) ||
- (event->error_code == BadAtom)) {
- if (event->error_code == BadValue)
- XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x",
- mesg, BUFSIZ);
- else if (event->error_code == BadAtom)
- XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x",
- mesg, BUFSIZ);
- else
- XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
- mesg, BUFSIZ);
- fputs(" ", fp);
- (void) fprintf(fp, mesg, event->resourceid);
- fputs("\n", fp);
- }
- XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
- mesg, BUFSIZ);
- fputs(" ", fp);
- (void) fprintf(fp, mesg, event->serial);
- XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d",
- mesg, BUFSIZ);
- fputs("\n ", fp);
- (void) fprintf(fp, mesg, dpy->request);
- fputs("\n", fp);
- if (event->error_code == BadImplementation) return 0;
- return 1;
-}
-
-int _XDefaultError(
- Display *dpy,
- XErrorEvent *event)
-{
- if (_XPrintDefaultError (dpy, event, stderr) == 0) return 0;
-
- /*
- * Store in dpy flags that the client is exiting on an unhandled XError
- * (pretend it is an IOError, since the application is dying anyway it
- * does not make a difference).
- * This is useful for _XReply not to hang if the application makes Xlib
- * calls in _fini as part of process termination.
- */
- dpy->flags |= XlibDisplayIOError;
-
- exit(1);
- /*NOTREACHED*/
-}
-
-/*ARGSUSED*/
-Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we)
-{
- return True;
-}
-
-/*
- * _XError - upcall internal or user protocol error handler
- */
-int _XError (
- Display *dpy,
- register xError *rep)
-{
- /*
- * X_Error packet encountered! We need to unpack the error before
- * giving it to the user.
- */
- XEvent event; /* make it a large event */
- register _XAsyncHandler *async, *next;
-
- event.xerror.serial = _XSetLastRequestRead(dpy, (xGenericReply *)rep);
-
- for (async = dpy->async_handlers; async; async = next) {
- next = async->next;
- if ((*async->handler)(dpy, (xReply *)rep,
- (char *)rep, SIZEOF(xError), async->data))
- return 0;
- }
-
- event.xerror.display = dpy;
- event.xerror.type = X_Error;
- event.xerror.resourceid = rep->resourceID;
- event.xerror.error_code = rep->errorCode;
- event.xerror.request_code = rep->majorCode;
- event.xerror.minor_code = rep->minorCode;
- if (dpy->error_vec &&
- !(*dpy->error_vec[rep->errorCode])(dpy, &event.xerror, rep))
- return 0;
- if (_XErrorFunction != NULL) {
- int rtn_val;
-#if defined(XTHREADS) && !USE_XCB
- if (dpy->lock)
- (*dpy->lock->user_lock_display)(dpy);
- UnlockDisplay(dpy);
-#endif /* XTHREADS && !USE_XCB */
- rtn_val = (*_XErrorFunction)(dpy, (XErrorEvent *)&event); /* upcall */
-#if defined(XTHREADS) && !USE_XCB
- LockDisplay(dpy);
- if (dpy->lock)
- (*dpy->lock->user_unlock_display)(dpy);
-#endif /* XTHREADS && !USE_XCB */
- return rtn_val;
- } else {
- return _XDefaultError(dpy, (XErrorEvent *)&event);
- }
-}
-
-/*
- * _XIOError - call user connection error handler and exit
- */
-int
-_XIOError (
- Display *dpy)
-{
- dpy->flags |= XlibDisplayIOError;
-#ifdef WIN32
- errno = WSAGetLastError();
-#endif
-
- /* This assumes that the thread calling exit will call any atexit handlers.
- * If this does not hold, then an alternate solution would involve
- * registering an atexit handler to take over the lock, which would only
- * assume that the same thread calls all the atexit handlers. */
-#ifdef XTHREADS
- if (dpy->lock)
- (*dpy->lock->user_lock_display)(dpy);
-#endif
- UnlockDisplay(dpy);
-
- if (_XIOErrorFunction != NULL)
- (*_XIOErrorFunction)(dpy);
- else
- _XDefaultIOError(dpy);
-#ifdef NX_TRANS_SOCKET
- /*
- * Check if we are supposed to return in the case
- * of a display failure. The client which originated
- * the X operation will have to check the value of
- * the XlibDisplayIOError flag and handle appropria-
- * tely the display disconnection.
- */
-
- if (_NXHandleDisplayError == 0)
- {
-#ifdef NX_TRANS_EXIT
- NXTransExit(1);
-#else
- exit(1);
-#endif
- }
-
- /*
- * We are going to return. Reset the display
- * buffers. Further writes will be discarded.
- */
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XIOError: Resetting the display buffer.\n");
-#endif
-
- dpy->bufptr = dpy->buffer;
- dpy->last_req = (char *) &_dummy_request;
-
-#ifdef NX_TRANS_TEST
- fprintf(stderr, "_XIOError: Resetting the display flags.\n");
-#endif
-
- dpy->flags &= ~XlibDisplayProcConni;
- dpy->flags &= ~XlibDisplayPrivSync;
- dpy->flags &= ~XlibDisplayReadEvents;
- dpy->flags &= ~XlibDisplayWriting;
- dpy->flags &= ~XlibDisplayReply;
- /* shut up the compiler by returning something */
- return 0;
-#else
- exit (1);
-#endif
- /*NOTREACHED*/
-}
-
-
-/*
- * This routine can be used to (cheaply) get some memory within a single
- * Xlib routine for scratch space. A single buffer is reused each time
- * if possible. To be MT safe, you can only call this between a call to
- * GetReq* and a call to Data* or _XSend*, or in a context when the thread
- * is guaranteed to not unlock the display.
- */
-char *_XAllocScratch(
- register Display *dpy,
- unsigned long nbytes)
-{
- if (nbytes > dpy->scratch_length) {
- Xfree (dpy->scratch_buffer);
- dpy->scratch_buffer = Xmalloc(nbytes);
- if (dpy->scratch_buffer)
- dpy->scratch_length = nbytes;
- else dpy->scratch_length = 0;
- }
- return (dpy->scratch_buffer);
-}
-
-/*
- * Scratch space allocator you can call any time, multiple times, and be
- * MT safe, but you must hand the buffer back with _XFreeTemp.
- */
-char *_XAllocTemp(
- register Display *dpy,
- unsigned long nbytes)
-{
- char *buf;
-
- buf = _XAllocScratch(dpy, nbytes);
- dpy->scratch_buffer = NULL;
- dpy->scratch_length = 0;
- return buf;
-}
-
-void _XFreeTemp(
- register Display *dpy,
- char *buf,
- unsigned long nbytes)
-{
-
- Xfree(dpy->scratch_buffer);
- dpy->scratch_buffer = buf;
- dpy->scratch_length = nbytes;
-}
-
-/*
- * Given a visual id, find the visual structure for this id on this display.
- */
-Visual *_XVIDtoVisual(
- Display *dpy,
- VisualID id)
-{
- register int i, j, k;
- register Screen *sp;
- register Depth *dp;
- register Visual *vp;
- for (i = 0; i < dpy->nscreens; i++) {
- sp = &dpy->screens[i];
- for (j = 0; j < sp->ndepths; j++) {
- dp = &sp->depths[j];
- /* if nvisuals == 0 then visuals will be NULL */
- for (k = 0; k < dp->nvisuals; k++) {
- vp = &dp->visuals[k];
- if (vp->visualid == id) return (vp);
- }
- }
- }
- return (NULL);
-}
-
-int
-XFree (void *data)
-{
- Xfree (data);
- return 1;
-}
-
-#ifdef _XNEEDBCOPYFUNC
-void _Xbcopy(b1, b2, length)
- register char *b1, *b2;
- register length;
-{
- if (b1 < b2) {
- b2 += length;
- b1 += length;
- while (length--)
- *--b2 = *--b1;
- } else {
- while (length--)
- *b2++ = *b1++;
- }
-}
-#endif
-
-#ifdef DataRoutineIsProcedure
-void Data(
- Display *dpy,
- _Xconst char *data,
- long len)
-{
- if (dpy->bufptr + (len) <= dpy->bufmax) {
- memcpy(dpy->bufptr, data, (int)len);
- dpy->bufptr += ((len) + 3) & ~3;
- } else {
- _XSend(dpy, data, len);
- }
-}
-#endif /* DataRoutineIsProcedure */
-
-
-#ifdef LONG64
-int
-_XData32(
- Display *dpy,
- register _Xconst long *data,
- unsigned len)
-{
- register int *buf;
- register long i;
-
- while (len) {
- buf = (int *)dpy->bufptr;
- i = dpy->bufmax - (char *)buf;
- if (!i) {
- _XFlush(dpy);
- continue;
- }
- if (len < i)
- i = len;
- dpy->bufptr = (char *)buf + i;
- len -= i;
- i >>= 2;
- while (--i >= 0)
- *buf++ = *data++;
- }
- return 0;
-}
-#endif /* LONG64 */
-
-
-
-/* Make sure this produces the same string as DefineLocal/DefineSelf in xdm.
- * Otherwise, Xau will not be able to find your cookies in the Xauthority file.
- *
- * Note: POSIX says that the ``nodename'' member of utsname does _not_ have
- * to have sufficient information for interfacing to the network,
- * and so, you may be better off using gethostname (if it exists).
- */
-
-#if defined(_POSIX_SOURCE) || defined(SVR4)
-#define NEED_UTSNAME
-#include <sys/utsname.h>
-#else
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#endif
-
-/*
- * _XGetHostname - similar to gethostname but allows special processing.
- */
-int _XGetHostname (
- char *buf,
- int maxlen)
-{
- int len;
-
-#ifdef NEED_UTSNAME
- struct utsname name;
-
- if (maxlen <= 0 || buf == NULL)
- return 0;
-
- uname (&name);
- len = strlen (name.nodename);
- if (len >= maxlen) len = maxlen - 1;
- strncpy (buf, name.nodename, len);
- buf[len] = '\0';
-#else
- if (maxlen <= 0 || buf == NULL)
- return 0;
-
- buf[0] = '\0';
- (void) gethostname (buf, maxlen);
- buf [maxlen - 1] = '\0';
- len = strlen(buf);
-#endif /* NEED_UTSNAME */
- return len;
-}
-
-
-/*
- * _XScreenOfWindow - get the Screen of a given window
- */
-
-Screen *_XScreenOfWindow(Display *dpy, Window w)
-{
- register int i;
- Window root;
- int x, y; /* dummy variables */
- unsigned int width, height, bw, depth; /* dummy variables */
-
- if (XGetGeometry (dpy, w, &root, &x, &y, &width, &height,
- &bw, &depth) == False) {
- return NULL;
- }
- for (i = 0; i < ScreenCount (dpy); i++) { /* find root from list */
- if (root == RootWindow (dpy, i)) {
- return ScreenOfDisplay (dpy, i);
- }
- }
- return NULL;
-}
-
-/*
- * WARNING: This implementation's pre-conditions and post-conditions
- * must remain compatible with the old macro-based implementations of
- * GetReq, GetReqExtra, GetResReq, and GetEmptyReq. The portions of the
- * Display structure affected by those macros are part of libX11's
- * ABI.
- */
-void *_XGetRequest(Display *dpy, CARD8 type, size_t len)
-{
- xReq *req;
-
- if (dpy->bufptr + len > dpy->bufmax)
- _XFlush(dpy);
- /* Request still too large, so do not allow it to overflow. */
- if (dpy->bufptr + len > dpy->bufmax) {
- fprintf(stderr,
- "Xlib: request %d length %zd would exceed buffer size.\n",
- type, len);
- /* Changes failure condition from overflow to NULL dereference. */
- return NULL;
- }
-
- if (len % 4)
- fprintf(stderr,
- "Xlib: request %d length %zd not a multiple of 4.\n",
- type, len);
-
- dpy->last_req = dpy->bufptr;
-
- req = (xReq*)dpy->bufptr;
- req->reqType = type;
- req->length = len / 4;
- dpy->bufptr += len;
- dpy->request++;
- return req;
-}
-
-#if defined(WIN32)
-
-/*
- * These functions are intended to be used internally to Xlib only.
- * These functions will always prefix the path with a DOS drive in the
- * form "<drive-letter>:". As such, these functions are only suitable
- * for use by Xlib function that supply a root-based path to some
- * particular file, e.g. <ProjectRoot>/lib/X11/locale/locale.dir will
- * be converted to "C:/usr/X11R6.3/lib/X11/locale/locale.dir".
- */
-
-static int access_file (path, pathbuf, len_pathbuf, pathret)
- char* path;
- char* pathbuf;
- int len_pathbuf;
- char** pathret;
-{
- if (access (path, F_OK) == 0) {
- if (strlen (path) < len_pathbuf)
- *pathret = pathbuf;
- else
- *pathret = Xmalloc (strlen (path) + 1);
- if (*pathret) {
- strcpy (*pathret, path);
- return 1;
- }
- }
- return 0;
-}
-
-static int AccessFile (path, pathbuf, len_pathbuf, pathret)
- char* path;
- char* pathbuf;
- int len_pathbuf;
- char** pathret;
-{
- unsigned long drives;
- int i, len;
- char* drive;
- char buf[MAX_PATH];
- char* bufp;
-
- /* just try the "raw" name first and see if it works */
- if (access_file (path, pathbuf, len_pathbuf, pathret))
- return 1;
-
- /* try the places set in the environment */
- drive = getenv ("_XBASEDRIVE");
- if (!drive)
- drive = "C:";
- len = strlen (drive) + strlen (path);
- if (len < MAX_PATH) bufp = buf;
- else bufp = Xmalloc (len + 1);
- strcpy (bufp, drive);
- strcat (bufp, path);
- if (access_file (bufp, pathbuf, len_pathbuf, pathret)) {
- if (bufp != buf) Xfree (bufp);
- return 1;
- }
-
- /* one last place to look */
- drive = getenv ("HOMEDRIVE");
- if (drive) {
- len = strlen (drive) + strlen (path);
- if (len < MAX_PATH) bufp = buf;
- else bufp = Xmalloc (len + 1);
- strcpy (bufp, drive);
- strcat (bufp, path);
- if (access_file (bufp, pathbuf, len_pathbuf, pathret)) {
- if (bufp != buf) Xfree (bufp);
- return 1;
- }
- }
-
- /* tried everywhere else, go fishing */
-#define C_DRIVE ('C' - 'A')
-#define Z_DRIVE ('Z' - 'A')
- /* does OS/2 (with or with gcc-emx) have getdrives? */
- drives = _getdrives ();
- for (i = C_DRIVE; i <= Z_DRIVE; i++) { /* don't check on A: or B: */
- if ((1 << i) & drives) {
- len = 2 + strlen (path);
- if (len < MAX_PATH) bufp = buf;
- else bufp = Xmalloc (len + 1);
- *bufp = 'A' + i;
- *(bufp + 1) = ':';
- *(bufp + 2) = '\0';
- strcat (bufp, path);
- if (access_file (bufp, pathbuf, len_pathbuf, pathret)) {
- if (bufp != buf) Xfree (bufp);
- return 1;
- }
- }
- }
- return 0;
-}
-
-int _XOpenFile(path, flags)
- _Xconst char* path;
- int flags;
-{
- char buf[MAX_PATH];
- char* bufp = NULL;
- int ret = -1;
- UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS);
-
- if (AccessFile (path, buf, MAX_PATH, &bufp))
- ret = open (bufp, flags);
-
- (void) SetErrorMode (olderror);
-
- if (bufp != buf) Xfree (bufp);
-
- return ret;
-}
-
-int _XOpenFileMode(path, flags, mode)
- _Xconst char* path;
- int flags;
- mode_t mode;
-{
- char buf[MAX_PATH];
- char* bufp = NULL;
- int ret = -1;
- UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS);
-
- if (AccessFile (path, buf, MAX_PATH, &bufp))
- ret = open (bufp, flags, mode);
-
- (void) SetErrorMode (olderror);
-
- if (bufp != buf) Xfree (bufp);
-
- return ret;
-}
-
-void* _XFopenFile(path, mode)
- _Xconst char* path;
- _Xconst char* mode;
-{
- char buf[MAX_PATH];
- char* bufp = NULL;
- void* ret = NULL;
- UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS);
-
- if (AccessFile (path, buf, MAX_PATH, &bufp))
- ret = fopen (bufp, mode);
-
- (void) SetErrorMode (olderror);
-
- if (bufp != buf) Xfree (bufp);
-
- return ret;
-}
-
-int _XAccessFile(path)
- _Xconst char* path;
-{
- char buf[MAX_PATH];
- char* bufp;
- int ret = -1;
- UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS);
-
- ret = AccessFile (path, buf, MAX_PATH, &bufp);
-
- (void) SetErrorMode (olderror);
-
- if (bufp != buf) Xfree (bufp);
-
- return ret;
-}
-
-#endif
-
-#ifdef WIN32
-#undef _Xdebug
-int _Xdebug = 0;
-int *_Xdebug_p = &_Xdebug;
-void (**_XCreateMutex_fn_p)(LockInfoPtr) = &_XCreateMutex_fn;
-void (**_XFreeMutex_fn_p)(LockInfoPtr) = &_XFreeMutex_fn;
-void (**_XLockMutex_fn_p)(LockInfoPtr
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char * /* file */
- , int /* line */
-#endif
- ) = &_XLockMutex_fn;
-void (**_XUnlockMutex_fn_p)(LockInfoPtr
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char * /* file */
- , int /* line */
-#endif
- ) = &_XUnlockMutex_fn;
-LockInfoPtr *_Xglobal_lock_p = &_Xglobal_lock;
-#endif
diff --git a/nx-X11/lib/X11/Xlibint.h b/nx-X11/lib/X11/Xlibint.h
deleted file mode 100644
index b325182e3..000000000
--- a/nx-X11/lib/X11/Xlibint.h
+++ /dev/null
@@ -1,1361 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* nx-X11, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
-/*
-
-Copyright 1984, 1985, 1987, 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#if !defined(_X11_XLIBINT_H_) && !defined(_XLIBINT_H_)
-#define _X11_XLIBINT_H_
-#define _XLIBINT_H_
-
-/*
- * Xlibint.h - Header definition and support file for the internal
- * support routines used by the C subroutine interface
- * library (Xlib) to the X Window System.
- *
- * Warning, there be dragons here....
- */
-
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xproto.h> /* to declare xEvent */
-#include <nx-X11/XlibConf.h> /* for configured options like XTHREADS */
-
-/* The Xlib structs are full of implicit padding to properly align members.
- We can't clean that up without breaking ABI, so tell clang not to bother
- complaining about it. */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-#ifdef NX_TRANS_SOCKET
-
-#include <nx/NXvars.h>
-
-#define _XGetIOError(dpy) \
- (dpy -> flags & XlibDisplayIOError)
-
-#endif
-
-#ifdef WIN32
-#define _XFlush _XFlushIt
-#endif
-
-struct _XGC
-{
- XExtData *ext_data; /* hook for extension to hang data */
- GContext gid; /* protocol ID for graphics context */
- Bool rects; /* boolean: TRUE if clipmask is list of rectangles */
- Bool dashes; /* boolean: TRUE if dash-list is really a list */
- unsigned long dirty;/* cache dirty bits */
- XGCValues values; /* shadow structure of values */
-};
-
-struct _XDisplay
-{
- XExtData *ext_data; /* hook for extension to hang data */
- struct _XFreeFuncs *free_funcs; /* internal free functions */
- int fd; /* Network socket. */
- int conn_checker; /* ugly thing used by _XEventsQueued */
- int proto_major_version;/* maj. version of server's X protocol */
- int proto_minor_version;/* minor version of server's X protocol */
- char *vendor; /* vendor of the server hardware */
- XID resource_base; /* resource ID base */
- XID resource_mask; /* resource ID mask bits */
- XID resource_id; /* allocator current ID */
- int resource_shift; /* allocator shift to correct bits */
- XID (*resource_alloc)( /* allocator function */
- struct _XDisplay*
- );
- int byte_order; /* screen byte order, LSBFirst, MSBFirst */
- int bitmap_unit; /* padding and data requirements */
- int bitmap_pad; /* padding requirements on bitmaps */
- int bitmap_bit_order; /* LeastSignificant or MostSignificant */
- int nformats; /* number of pixmap formats in list */
- ScreenFormat *pixmap_format; /* pixmap format list */
- int vnumber; /* Xlib's X protocol version number. */
- int release; /* release of the server */
- struct _XSQEvent *head, *tail; /* Input event queue. */
- int qlen; /* Length of input event queue */
- unsigned long last_request_read; /* seq number of last event read */
- unsigned long request; /* sequence number of last request. */
- char *last_req; /* beginning of last request, or dummy */
- char *buffer; /* Output buffer starting address. */
- char *bufptr; /* Output buffer index pointer. */
- char *bufmax; /* Output buffer maximum+1 address. */
- unsigned max_request_size; /* maximum number 32 bit words in request*/
- struct _XrmHashBucketRec *db;
- int (*synchandler)( /* Synchronization handler */
- struct _XDisplay*
- );
- char *display_name; /* "host:display" string used on this connect*/
- int default_screen; /* default screen for operations */
- int nscreens; /* number of screens on this server*/
- Screen *screens; /* pointer to list of screens */
- unsigned long motion_buffer; /* size of motion buffer */
- volatile unsigned long flags; /* internal connection flags */
- int min_keycode; /* minimum defined keycode */
- int max_keycode; /* maximum defined keycode */
- KeySym *keysyms; /* This server's keysyms */
- XModifierKeymap *modifiermap; /* This server's modifier keymap */
- int keysyms_per_keycode;/* number of rows */
- char *xdefaults; /* contents of defaults from server */
- char *scratch_buffer; /* place to hang scratch buffer */
- unsigned long scratch_length; /* length of scratch buffer */
- int ext_number; /* extension number on this display */
- struct _XExten *ext_procs; /* extensions initialized on this display */
- /*
- * the following can be fixed size, as the protocol defines how
- * much address space is available.
- * While this could be done using the extension vector, there
- * may be MANY events processed, so a search through the extension
- * list to find the right procedure for each event might be
- * expensive if many extensions are being used.
- */
- Bool (*event_vec[128])( /* vector for wire to event */
- Display * /* dpy */,
- XEvent * /* re */,
- xEvent * /* event */
- );
- Status (*wire_vec[128])( /* vector for event to wire */
- Display * /* dpy */,
- XEvent * /* re */,
- xEvent * /* event */
- );
- KeySym lock_meaning; /* for XLookupString */
- struct _XLockInfo *lock; /* multi-thread state, display lock */
- struct _XInternalAsync *async_handlers; /* for internal async */
- unsigned long bigreq_size; /* max size of big requests */
- struct _XLockPtrs *lock_fns; /* pointers to threads functions */
- void (*idlist_alloc)( /* XID list allocator function */
- Display * /* dpy */,
- XID * /* ids */,
- int /* count */
- );
- /* things above this line should not move, for binary compatibility */
- struct _XKeytrans *key_bindings; /* for XLookupString */
- Font cursor_font; /* for XCreateFontCursor */
- struct _XDisplayAtoms *atoms; /* for XInternAtom */
- unsigned int mode_switch; /* keyboard group modifiers */
- unsigned int num_lock; /* keyboard numlock modifiers */
- struct _XContextDB *context_db; /* context database */
- Bool (**error_vec)( /* vector for wire to error */
- Display * /* display */,
- XErrorEvent * /* he */,
- xError * /* we */
- );
- /*
- * Xcms information
- */
- struct {
- XPointer defaultCCCs; /* pointer to an array of default XcmsCCC */
- XPointer clientCmaps; /* pointer to linked list of XcmsCmapRec */
- XPointer perVisualIntensityMaps;
- /* linked list of XcmsIntensityMap */
- } cms;
- struct _XIMFilter *im_filters;
- struct _XSQEvent *qfree; /* unallocated event queue elements */
- unsigned long next_event_serial_num; /* inserted into next queue elt */
- struct _XExten *flushes; /* Flush hooks */
- struct _XConnectionInfo *im_fd_info; /* _XRegisterInternalConnection */
- int im_fd_length; /* number of im_fd_info */
- struct _XConnWatchInfo *conn_watchers; /* XAddConnectionWatch */
- int watcher_count; /* number of conn_watchers */
- XPointer filedes; /* struct pollfd cache for _XWaitForReadable */
- int (*savedsynchandler)( /* user synchandler when Xlib usurps */
- Display * /* dpy */
- );
- XID resource_max; /* allocator max ID */
- int xcmisc_opcode; /* major opcode for XC-MISC */
- struct _XkbInfoRec *xkb_info; /* XKB info */
- struct _XtransConnInfo *trans_conn; /* transport connection object */
- struct _X11XCBPrivate *xcb; /* XCB glue private data */
-
- /* Generic event cookie handling */
- unsigned int next_cookie; /* next event cookie */
- /* vector for wire to generic event, index is (extension - 128) */
- Bool (*generic_event_vec[128])(
- Display * /* dpy */,
- XGenericEventCookie * /* Xlib event */,
- xEvent * /* wire event */);
- /* vector for event copy, index is (extension - 128) */
- Bool (*generic_event_copy_vec[128])(
- Display * /* dpy */,
- XGenericEventCookie * /* in */,
- XGenericEventCookie * /* out*/);
- void *cookiejar; /* cookie events returned but not claimed */
-};
-
-#define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
-
-#ifndef _XEVENT_
-/*
- * _QEvent datatype for use in input queueing.
- */
-typedef struct _XSQEvent
-{
- struct _XSQEvent *next;
- XEvent event;
- unsigned long qserial_num; /* so multi-threaded code can find new ones */
-} _XQEvent;
-#endif
-
-#include <nx-X11/Xproto.h>
-#include <errno.h>
-#define _XBCOPYFUNC _Xbcopy
-#include <nx-X11/Xfuncs.h>
-#include <nx-X11/Xosdefs.h>
-
-/* Utek leaves kernel macros around in include files (bleah) */
-#ifdef dirty
-#undef dirty
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <nx-X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-/*
- * The following definitions can be used for locking requests in multi-threaded
- * address spaces.
- */
-#ifdef XTHREADS
-/* Author: Stephen Gildea, MIT X Consortium
- *
- * declarations for C Threads locking
- */
-
-typedef struct _LockInfoRec *LockInfoPtr;
-
-/* interfaces for locking.c */
-struct _XLockPtrs {
- /* used by all, including extensions; do not move */
- void (*lock_display)(
- Display *dpy
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char *file
- , int line
-#endif
- );
- void (*unlock_display)(
- Display *dpy
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char *file
- , int line
-#endif
- );
-};
-
-#if defined(WIN32) && !defined(_XLIBINT_)
-#define _XCreateMutex_fn (*_XCreateMutex_fn_p)
-#define _XFreeMutex_fn (*_XFreeMutex_fn_p)
-#define _XLockMutex_fn (*_XLockMutex_fn_p)
-#define _XUnlockMutex_fn (*_XUnlockMutex_fn_p)
-#define _Xglobal_lock (*_Xglobal_lock_p)
-#endif
-
-/* in XlibInt.c */
-extern void (*_XCreateMutex_fn)(
- LockInfoPtr /* lock */
-);
-extern void (*_XFreeMutex_fn)(
- LockInfoPtr /* lock */
-);
-extern void (*_XLockMutex_fn)(
- LockInfoPtr /* lock */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char * /* file */
- , int /* line */
-#endif
-);
-extern void (*_XUnlockMutex_fn)(
- LockInfoPtr /* lock */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char * /* file */
- , int /* line */
-#endif
-);
-
-extern LockInfoPtr _Xglobal_lock;
-
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
-#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)((d),__FILE__,__LINE__)
-#define UnlockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->unlock_display)((d),__FILE__,__LINE__)
-#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock,__FILE__,__LINE__)
-#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock,__FILE__,__LINE__)
-#else
-/* used everywhere, so must be fast if not using threads */
-#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)(d)
-#define UnlockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->unlock_display)(d)
-#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock)
-#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock)
-#endif
-#define _XCreateMutex(lock) if (_XCreateMutex_fn) (*_XCreateMutex_fn)(lock);
-#define _XFreeMutex(lock) if (_XFreeMutex_fn) (*_XFreeMutex_fn)(lock);
-
-#else /* XTHREADS */
-#define LockDisplay(dis)
-#define _XLockMutex(lock)
-#define _XUnlockMutex(lock)
-#define UnlockDisplay(dis)
-#define _XCreateMutex(lock)
-#define _XFreeMutex(lock)
-#endif
-
-#define Xfree(ptr) free((ptr))
-
-/*
- * Note that some machines do not return a valid pointer for malloc(0), in
- * which case we provide an alternate under the control of the
- * define MALLOC_0_RETURNS_NULL. This is necessary because some
- * Xlib code expects malloc(0) to return a valid pointer to storage.
- */
-#if defined(MALLOC_0_RETURNS_NULL) || defined(__clang_analyzer__)
-
-# define Xmalloc(size) malloc(((size) == 0 ? 1 : (size)))
-# define Xrealloc(ptr, size) realloc((ptr), ((size) == 0 ? 1 : (size)))
-# define Xcalloc(nelem, elsize) calloc(((nelem) == 0 ? 1 : (nelem)), (elsize))
-
-#else
-
-# define Xmalloc(size) malloc((size))
-# define Xrealloc(ptr, size) realloc((ptr), (size))
-# define Xcalloc(nelem, elsize) calloc((nelem), (elsize))
-
-#endif
-
-#include <stddef.h>
-
-#define LOCKED 1
-#define UNLOCKED 0
-
-#ifdef NX_TRANS_SOCKET
-#ifndef BUFSIZE /* Output buffer size is configurable */
-#define BUFSIZE 8192 /* but this is still used for reading. */
-#endif
-#else
-#ifndef BUFSIZE
-#define BUFSIZE 2048 /* X output buffer size. */
-#endif
-#endif
-#ifndef PTSPERBATCH
-#define PTSPERBATCH 1024 /* point batching */
-#endif
-#ifndef WLNSPERBATCH
-#define WLNSPERBATCH 50 /* wide line batching */
-#endif
-#ifndef ZLNSPERBATCH
-#define ZLNSPERBATCH 1024 /* thin line batching */
-#endif
-#ifndef WRCTSPERBATCH
-#define WRCTSPERBATCH 10 /* wide line rectangle batching */
-#endif
-#ifndef ZRCTSPERBATCH
-#define ZRCTSPERBATCH 256 /* thin line rectangle batching */
-#endif
-#ifndef FRCTSPERBATCH
-#define FRCTSPERBATCH 256 /* filled rectangle batching */
-#endif
-#ifndef FARCSPERBATCH
-#define FARCSPERBATCH 256 /* filled arc batching */
-#endif
-#ifndef CURSORFONT
-#define CURSORFONT "cursor" /* standard cursor fonts */
-#endif
-
-/*
- * Display flags
- */
-#define XlibDisplayIOError (1L << 0)
-#define XlibDisplayClosing (1L << 1)
-#define XlibDisplayNoXkb (1L << 2)
-#define XlibDisplayPrivSync (1L << 3)
-#define XlibDisplayProcConni (1L << 4) /* in _XProcessInternalConnection */
-#define XlibDisplayReadEvents (1L << 5) /* in _XReadEvents */
-#define XlibDisplayReply (1L << 5) /* in _XReply */
-#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
-#define XlibDisplayDfltRMDB (1L << 7) /* mark if RM db from XGetDefault */
-
-/*
- * X Protocol packetizing macros.
- */
-
-/* Leftover from CRAY support - was defined empty on all non-Cray systems */
-#define WORD64ALIGN
-
-/**
- * Return a len-sized request buffer for the request type. This function may
- * flush the output queue.
- *
- * @param dpy The display connection
- * @param type The request type
- * @param len Length of the request in bytes
- *
- * @returns A pointer to the request buffer with a few default values
- * initialized.
- */
-extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len);
-
-/* GetReqSized is the same as GetReq but allows the caller to specify the
- * size in bytes. 'sz' must be a multiple of 4! */
-
-#define GetReqSized(name, sz, req) \
- req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz)
-
-/*
- * GetReq - Get the next available X request packet in the buffer and
- * return it.
- *
- * "name" is the name of the request, e.g. CreatePixmap, OpenFont, etc.
- * "req" is the name of the request pointer.
- *
- */
-
-#define GetReq(name, req) \
- GetReqSized(name, SIZEOF(x##name##Req), req)
-
-/* GetReqExtra is the same as GetReq, but allocates "n" additional
- bytes after the request. "n" must be a multiple of 4! */
-
-#define GetReqExtra(name, n, req) \
- GetReqSized(name, SIZEOF(x##name##Req) + n, req)
-
-/*
- * GetResReq is for those requests that have a resource ID
- * (Window, Pixmap, GContext, etc.) as their single argument.
- * "rid" is the name of the resource.
- */
-
-#define GetResReq(name, rid, req) \
- req = (xResourceReq *) _XGetRequest(dpy, X_##name, SIZEOF(xResourceReq)); \
- req->id = (rid)
-
-/*
- * GetEmptyReq is for those requests that have no arguments
- * at all.
- */
-#define GetEmptyReq(name, req) \
- req = (xReq *) _XGetRequest(dpy, X_##name, SIZEOF(xReq))
-
-/*
- * MakeBigReq sets the CARD16 "req->length" to 0 and inserts a new CARD32
- * length, after req->length, before the data in the request. The new length
- * includes the "n" extra 32-bit words.
- *
- * Do not use MakeBigReq if there is no data already in the request.
- * req->length must already be >= 2.
- */
-#ifdef LONG64
-#define MakeBigReq(req,n) \
- { \
- CARD64 _BRdat; \
- CARD32 _BRlen = req->length - 1; \
- req->length = 0; \
- _BRdat = ((CARD32 *)req)[_BRlen]; \
- memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \
- ((CARD32 *)req)[1] = _BRlen + n + 2; \
- Data32(dpy, &_BRdat, 4); \
- }
-#else
-#define MakeBigReq(req,n) \
- { \
- CARD32 _BRdat; \
- CARD32 _BRlen = req->length - 1; \
- req->length = 0; \
- _BRdat = ((CARD32 *)req)[_BRlen]; \
- memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \
- ((CARD32 *)req)[1] = _BRlen + n + 2; \
- Data32(dpy, &_BRdat, 4); \
- }
-#endif
-
-/*
- * SetReqLen increases the count of 32-bit words in the request by "n",
- * or by "badlen" if "n" is too large.
- *
- * Do not use SetReqLen if "req" does not already have data after the
- * xReq header. req->length must already be >= 2.
- */
-#ifndef __clang_analyzer__
-#define SetReqLen(req,n,badlen) \
- if ((req->length + n) > (unsigned)65535) { \
- if (dpy->bigreq_size) { \
- MakeBigReq(req,n) \
- } else { \
- n = badlen; \
- req->length += n; \
- } \
- } else \
- req->length += n
-#else
-#define SetReqLen(req,n,badlen) \
- req->length += n
-#endif
-
-#define SyncHandle() \
- if (dpy->synchandler) (*dpy->synchandler)(dpy)
-
-extern void _XFlushGCCache(Display *dpy, GC gc);
-#define FlushGC(dpy, gc) \
- if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
-/*
- * Data - Place data in the buffer and pad the end to provide
- * 32 bit word alignment. Transmit if the buffer fills.
- *
- * "dpy" is a pointer to a Display.
- * "data" is a pointer to a data buffer.
- * "len" is the length of the data buffer.
- */
-#ifndef DataRoutineIsProcedure
-#define Data(dpy, data, len) {\
- if (dpy->bufptr + (len) <= dpy->bufmax) {\
- memcpy(dpy->bufptr, data, (int)len);\
- dpy->bufptr += ((len) + 3) & ~3;\
- } else\
- _XSend(dpy, data, len);\
- }
-#endif /* DataRoutineIsProcedure */
-
-
-/* Allocate bytes from the buffer. No padding is done, so if
- * the length is not a multiple of 4, the caller must be
- * careful to leave the buffer aligned after sending the
- * current request.
- *
- * "type" is the type of the pointer being assigned to.
- * "ptr" is the pointer being assigned to.
- * "n" is the number of bytes to allocate.
- *
- * Example:
- * xTextElt *elt;
- * BufAlloc (xTextElt *, elt, nbytes)
- */
-
-#define BufAlloc(type, ptr, n) \
- if (dpy->bufptr + (n) > dpy->bufmax) \
- _XFlush (dpy); \
- ptr = (type) dpy->bufptr; \
- memset(ptr, '\0', n); \
- dpy->bufptr += (n);
-
-#define Data16(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
-#define _XRead16Pad(dpy, data, len) _XReadPad((dpy), (char *)(data), (len))
-#define _XRead16(dpy, data, len) _XRead((dpy), (char *)(data), (len))
-#ifdef LONG64
-#define Data32(dpy, data, len) _XData32(dpy, (_Xconst long *)data, len)
-extern int _XData32(
- Display *dpy,
- register _Xconst long *data,
- unsigned len
-);
-extern void _XRead32(
- Display *dpy,
- register long *data,
- long len
-);
-#else
-#define Data32(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
-#define _XRead32(dpy, data, len) _XRead((dpy), (char *)(data), (len))
-#endif
-
-#define PackData16(dpy,data,len) Data16 (dpy, data, len)
-#define PackData32(dpy,data,len) Data32 (dpy, data, len)
-
-/* Xlib manual is bogus */
-#define PackData(dpy,data,len) PackData16 (dpy, data, len)
-
-#define min(a,b) (((a) < (b)) ? (a) : (b))
-#define max(a,b) (((a) > (b)) ? (a) : (b))
-
-#define CI_NONEXISTCHAR(cs) (((cs)->width == 0) && \
- (((cs)->rbearing|(cs)->lbearing| \
- (cs)->ascent|(cs)->descent) == 0))
-
-/*
- * CI_GET_CHAR_INFO_1D - return the charinfo struct for the indicated 8bit
- * character. If the character is in the column and exists, then return the
- * appropriate metrics (note that fonts with common per-character metrics will
- * return min_bounds). If none of these hold true, try again with the default
- * char.
- */
-#define CI_GET_CHAR_INFO_1D(fs,col,def,cs) \
-{ \
- cs = def; \
- if (col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
- if (fs->per_char == NULL) { \
- cs = &fs->min_bounds; \
- } else { \
- cs = &fs->per_char[(col - fs->min_char_or_byte2)]; \
- if (CI_NONEXISTCHAR(cs)) cs = def; \
- } \
- } \
-}
-
-#define CI_GET_DEFAULT_INFO_1D(fs,cs) \
- CI_GET_CHAR_INFO_1D (fs, fs->default_char, NULL, cs)
-
-
-
-/*
- * CI_GET_CHAR_INFO_2D - return the charinfo struct for the indicated row and
- * column. This is used for fonts that have more than row zero.
- */
-#define CI_GET_CHAR_INFO_2D(fs,row,col,def,cs) \
-{ \
- cs = def; \
- if (row >= fs->min_byte1 && row <= fs->max_byte1 && \
- col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
- if (fs->per_char == NULL) { \
- cs = &fs->min_bounds; \
- } else { \
- cs = &fs->per_char[((row - fs->min_byte1) * \
- (fs->max_char_or_byte2 - \
- fs->min_char_or_byte2 + 1)) + \
- (col - fs->min_char_or_byte2)]; \
- if (CI_NONEXISTCHAR(cs)) cs = def; \
- } \
- } \
-}
-
-#define CI_GET_DEFAULT_INFO_2D(fs,cs) \
-{ \
- unsigned int r = (fs->default_char >> 8); \
- unsigned int c = (fs->default_char & 0xff); \
- CI_GET_CHAR_INFO_2D (fs, r, c, NULL, cs); \
-}
-
-
-/* srcvar must be a variable for large architecture version */
-#define OneDataCard32(dpy,dstaddr,srcvar) \
- { *(CARD32 *)(dstaddr) = (srcvar); }
-
-
-typedef struct _XInternalAsync {
- struct _XInternalAsync *next;
- /*
- * handler arguments:
- * rep is the generic reply that caused this handler
- * to be invoked. It must also be passed to _XGetAsyncReply.
- * buf and len are opaque values that must be passed to
- * _XGetAsyncReply or _XGetAsyncData.
- * data is the closure stored in this struct.
- * The handler returns True iff it handled this reply.
- */
- Bool (*handler)(
- Display* /* dpy */,
- xReply* /* rep */,
- char* /* buf */,
- int /* len */,
- XPointer /* data */
- );
- XPointer data;
-} _XAsyncHandler;
-
-typedef struct _XAsyncEState {
- unsigned long min_sequence_number;
- unsigned long max_sequence_number;
- unsigned char error_code;
- unsigned char major_opcode;
- unsigned short minor_opcode;
- unsigned char last_error_received;
- int error_count;
-} _XAsyncErrorState;
-
-extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
-#define DeqAsyncHandler(dpy,handler) { \
- if (dpy->async_handlers == (handler)) \
- dpy->async_handlers = (handler)->next; \
- else \
- _XDeqAsyncHandler(dpy, handler); \
- }
-
-typedef void (*FreeFuncType) (
- Display* /* display */
-);
-
-typedef int (*FreeModmapType) (
- XModifierKeymap* /* modmap */
-);
-
-/*
- * This structure is private to the library.
- */
-typedef struct _XFreeFuncs {
- FreeFuncType atoms; /* _XFreeAtomTable */
- FreeModmapType modifiermap; /* XFreeModifiermap */
- FreeFuncType key_bindings; /* _XFreeKeyBindings */
- FreeFuncType context_db; /* _XFreeContextDB */
- FreeFuncType defaultCCCs; /* _XcmsFreeDefaultCCCs */
- FreeFuncType clientCmaps; /* _XcmsFreeClientCmaps */
- FreeFuncType intensityMaps; /* _XcmsFreeIntensityMaps */
- FreeFuncType im_filters; /* _XFreeIMFilters */
- FreeFuncType xkb; /* _XkbFreeInfo */
-} _XFreeFuncRec;
-
-/* types for InitExt.c */
-typedef int (*CreateGCType) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-);
-
-typedef int (*CopyGCType)(
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-);
-
-typedef int (*FlushGCType) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-);
-
-typedef int (*FreeGCType) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-);
-
-typedef int (*CreateFontType) (
- Display* /* display */,
- XFontStruct* /* fs */,
- XExtCodes* /* codes */
-);
-
-typedef int (*FreeFontType) (
- Display* /* display */,
- XFontStruct* /* fs */,
- XExtCodes* /* codes */
-);
-
-typedef int (*CloseDisplayType) (
- Display* /* display */,
- XExtCodes* /* codes */
-);
-
-typedef int (*ErrorType) (
- Display* /* display */,
- xError* /* err */,
- XExtCodes* /* codes */,
- int* /* ret_code */
-);
-
-typedef char* (*ErrorStringType) (
- Display* /* display */,
- int /* code */,
- XExtCodes* /* codes */,
- char* /* buffer */,
- int /* nbytes */
-);
-
-typedef void (*PrintErrorType)(
- Display* /* display */,
- XErrorEvent* /* ev */,
- void* /* fp */
-);
-
-typedef void (*BeforeFlushType)(
- Display* /* display */,
- XExtCodes* /* codes */,
- _Xconst char* /* data */,
- long /* len */
-);
-
-/*
- * This structure is private to the library.
- */
-typedef struct _XExten { /* private to extension mechanism */
- struct _XExten *next; /* next in list */
- XExtCodes codes; /* public information, all extension told */
- CreateGCType create_GC; /* routine to call when GC created */
- CopyGCType copy_GC; /* routine to call when GC copied */
- FlushGCType flush_GC; /* routine to call when GC flushed */
- FreeGCType free_GC; /* routine to call when GC freed */
- CreateFontType create_Font; /* routine to call when Font created */
- FreeFontType free_Font; /* routine to call when Font freed */
- CloseDisplayType close_display; /* routine to call when connection closed */
- ErrorType error; /* who to call when an error occurs */
- ErrorStringType error_string; /* routine to supply error string */
- char *name; /* name of this extension */
- PrintErrorType error_values; /* routine to supply error values */
- BeforeFlushType before_flush; /* routine to call when sending data */
- struct _XExten *next_flush; /* next in list of those with flushes */
-} _XExtension;
-
-/* Temporary definition until we can depend on an xproto release with it */
-#ifdef _X_COLD
-# define _XLIB_COLD _X_COLD
-#elif defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403) /* 4.3+ */
-# define _XLIB_COLD __attribute__((__cold__))
-#else
-# define _XLIB_COLD /* nothing */
-#endif
-
-/* extension hooks */
-
-#ifdef DataRoutineIsProcedure
-extern void Data(Display *dpy, char *data, long len);
-#endif
-extern int _XError(
- Display* /* dpy */,
- xError* /* rep */
-);
-extern int _XIOError(
- Display* /* dpy */
-#ifdef NX_TRANS_SOCKET
-);
-#else
-) _X_NORETURN;
-#endif /* NX_TRANS_SOCKET */
-
-extern int (*_XIOErrorFunction)(
- Display* /* dpy */
-);
-extern int (*_XErrorFunction)(
- Display* /* dpy */,
- XErrorEvent* /* error_event */
-);
-extern void _XEatData(
- Display* /* dpy */,
- unsigned long /* n */
-) _XLIB_COLD;
-extern void _XEatDataWords(
- Display* /* dpy */,
- unsigned long /* n */
-) _XLIB_COLD;
-#if defined(__SUNPRO_C) /* Studio compiler alternative to "cold" attribute */
-# pragma rarely_called(_XEatData, _XEatDataWords)
-#endif
-extern char *_XAllocScratch(
- Display* /* dpy */,
- unsigned long /* nbytes */
-);
-extern char *_XAllocTemp(
- Display* /* dpy */,
- unsigned long /* nbytes */
-);
-extern void _XFreeTemp(
- Display* /* dpy */,
- char* /* buf */,
- unsigned long /* nbytes */
-);
-extern Visual *_XVIDtoVisual(
- Display* /* dpy */,
- VisualID /* id */
-);
-extern unsigned long _XSetLastRequestRead(
- Display* /* dpy */,
- xGenericReply* /* rep */
-);
-extern int _XGetHostname(
- char* /* buf */,
- int /* maxlen */
-);
-extern Screen *_XScreenOfWindow(
- Display* /* dpy */,
- Window /* w */
-);
-extern Bool _XAsyncErrorHandler(
- Display* /* dpy */,
- xReply* /* rep */,
- char* /* buf */,
- int /* len */,
- XPointer /* data */
-);
-extern char *_XGetAsyncReply(
- Display* /* dpy */,
- char* /* replbuf */,
- xReply* /* rep */,
- char* /* buf */,
- int /* len */,
- int /* extra */,
- Bool /* discard */
-);
-extern void _XGetAsyncData(
- Display* /* dpy */,
- char * /* data */,
- char * /* buf */,
- int /* len */,
- int /* skip */,
- int /* datalen */,
- int /* discardtotal */
-);
-extern void _XFlush(
- Display* /* dpy */
-);
-extern int _XEventsQueued(
- Display* /* dpy */,
- int /* mode */
-);
-extern void _XReadEvents(
- Display* /* dpy */
-);
-extern int _XRead(
- Display* /* dpy */,
- char* /* data */,
- long /* size */
-);
-extern void _XReadPad(
- Display* /* dpy */,
- char* /* data */,
- long /* size */
-);
-extern void _XSend(
- Display* /* dpy */,
- _Xconst char* /* data */,
- long /* size */
-);
-extern Status _XReply(
- Display* /* dpy */,
- xReply* /* rep */,
- int /* extra */,
- Bool /* discard */
-);
-extern void _XEnq(
- Display* /* dpy */,
- xEvent* /* event */
-);
-extern void _XDeq(
- Display* /* dpy */,
- _XQEvent* /* prev */,
- _XQEvent* /* qelt */
-);
-
-extern Bool _XUnknownWireEvent(
- Display* /* dpy */,
- XEvent* /* re */,
- xEvent* /* event */
-);
-
-extern Bool _XUnknownWireEventCookie(
- Display* /* dpy */,
- XGenericEventCookie* /* re */,
- xEvent* /* event */
-);
-
-extern Bool _XUnknownCopyEventCookie(
- Display* /* dpy */,
- XGenericEventCookie* /* in */,
- XGenericEventCookie* /* out */
-);
-
-extern Status _XUnknownNativeEvent(
- Display* /* dpy */,
- XEvent* /* re */,
- xEvent* /* event */
-);
-
-extern Bool _XWireToEvent(Display *dpy, XEvent *re, xEvent *event);
-extern Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we);
-extern Bool _XPollfdCacheInit(Display *dpy);
-extern void _XPollfdCacheAdd(Display *dpy, int fd);
-extern void _XPollfdCacheDel(Display *dpy, int fd);
-extern XID _XAllocID(Display *dpy);
-extern void _XAllocIDs(Display *dpy, XID *ids, int count);
-
-extern int _XFreeExtData(
- XExtData* /* extension */
-);
-
-extern int (*XESetCreateGC(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, GC, XExtCodes*
-);
-
-extern int (*XESetCopyGC(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, GC, XExtCodes*
-);
-
-extern int (*XESetFlushGC(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, GC, XExtCodes*
-);
-
-extern int (*XESetFreeGC(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, GC, XExtCodes*
-);
-
-extern int (*XESetCreateFont(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- XFontStruct* /* fs */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, XFontStruct*, XExtCodes*
-);
-
-extern int (*XESetFreeFont(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- XFontStruct* /* fs */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, XFontStruct*, XExtCodes*
-);
-
-extern int (*XESetCloseDisplay(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- XExtCodes* /* codes */
- ) /* proc */
-))(
- Display*, XExtCodes*
-);
-
-extern int (*XESetError(
- Display* /* display */,
- int /* extension */,
- int (*) (
- Display* /* display */,
- xError* /* err */,
- XExtCodes* /* codes */,
- int* /* ret_code */
- ) /* proc */
-))(
- Display*, xError*, XExtCodes*, int*
-);
-
-extern char* (*XESetErrorString(
- Display* /* display */,
- int /* extension */,
- char* (*) (
- Display* /* display */,
- int /* code */,
- XExtCodes* /* codes */,
- char* /* buffer */,
- int /* nbytes */
- ) /* proc */
-))(
- Display*, int, XExtCodes*, char*, int
-);
-
-extern void (*XESetPrintErrorValues (
- Display* /* display */,
- int /* extension */,
- void (*)(
- Display* /* display */,
- XErrorEvent* /* ev */,
- void* /* fp */
- ) /* proc */
-))(
- Display*, XErrorEvent*, void*
-);
-
-extern Bool (*XESetWireToEvent(
- Display* /* display */,
- int /* event_number */,
- Bool (*) (
- Display* /* display */,
- XEvent* /* re */,
- xEvent* /* event */
- ) /* proc */
-))(
- Display*, XEvent*, xEvent*
-);
-
-extern Bool (*XESetWireToEventCookie(
- Display* /* display */,
- int /* extension */,
- Bool (*) (
- Display* /* display */,
- XGenericEventCookie* /* re */,
- xEvent* /* event */
- ) /* proc */
-))(
- Display*, XGenericEventCookie*, xEvent*
-);
-
-extern Bool (*XESetCopyEventCookie(
- Display* /* display */,
- int /* extension */,
- Bool (*) (
- Display* /* display */,
- XGenericEventCookie* /* in */,
- XGenericEventCookie* /* out */
- ) /* proc */
-))(
- Display*, XGenericEventCookie*, XGenericEventCookie*
-);
-
-
-extern Status (*XESetEventToWire(
- Display* /* display */,
- int /* event_number */,
- Status (*) (
- Display* /* display */,
- XEvent* /* re */,
- xEvent* /* event */
- ) /* proc */
-))(
- Display*, XEvent*, xEvent*
-);
-
-extern Bool (*XESetWireToError(
- Display* /* display */,
- int /* error_number */,
- Bool (*) (
- Display* /* display */,
- XErrorEvent* /* he */,
- xError* /* we */
- ) /* proc */
-))(
- Display*, XErrorEvent*, xError*
-);
-
-extern void (*XESetBeforeFlush(
- Display* /* display */,
- int /* error_number */,
- void (*) (
- Display* /* display */,
- XExtCodes* /* codes */,
- _Xconst char* /* data */,
- long /* len */
- ) /* proc */
-))(
- Display*, XExtCodes*, _Xconst char*, long
-);
-
-/* internal connections for IMs */
-
-typedef void (*_XInternalConnectionProc)(
- Display* /* dpy */,
- int /* fd */,
- XPointer /* call_data */
-);
-
-
-extern Status _XRegisterInternalConnection(
- Display* /* dpy */,
- int /* fd */,
- _XInternalConnectionProc /* callback */,
- XPointer /* call_data */
-);
-
-extern void _XUnregisterInternalConnection(
- Display* /* dpy */,
- int /* fd */
-);
-
-extern void _XProcessInternalConnection(
- Display* /* dpy */,
- struct _XConnectionInfo* /* conn_info */
-);
-
-/* Display structure has pointers to these */
-
-struct _XConnectionInfo { /* info from _XRegisterInternalConnection */
- int fd;
- _XInternalConnectionProc read_callback;
- XPointer call_data;
- XPointer *watch_data; /* set/used by XConnectionWatchProc */
- struct _XConnectionInfo *next;
-};
-
-struct _XConnWatchInfo { /* info from XAddConnectionWatch */
- XConnectionWatchProc fn;
- XPointer client_data;
- struct _XConnWatchInfo *next;
-};
-
-extern int _XTextHeight(
- XFontStruct* /* font_struct */,
- _Xconst char* /* string */,
- int /* count */
-);
-
-extern int _XTextHeight16(
- XFontStruct* /* font_struct */,
- _Xconst XChar2b* /* string */,
- int /* count */
-);
-
-#if defined(WIN32)
-
-extern int _XOpenFile(
- _Xconst char* /* path */,
- int /* flags */
-);
-
-extern int _XOpenFileMode(
- _Xconst char* /* path */,
- int /* flags */,
- mode_t /* mode */
-);
-
-extern void* _XFopenFile(
- _Xconst char* /* path */,
- _Xconst char* /* mode */
-);
-
-extern int _XAccessFile(
- _Xconst char* /* path */
-);
-#else
-#define _XOpenFile(path,flags) open(path,flags)
-#define _XOpenFileMode(path,flags,mode) open(path,flags,mode)
-#define _XFopenFile(path,mode) fopen(path,mode)
-#endif
-
-/* EvToWire.c */
-extern Status _XEventToWire(Display *dpy, XEvent *re, xEvent *event);
-
-extern int _XF86LoadQueryLocaleFont(
- Display* /* dpy */,
- _Xconst char* /* name*/,
- XFontStruct** /* xfp*/,
- Font* /* fidp */
-);
-
-extern void _XProcessWindowAttributes (
- register Display *dpy,
- xChangeWindowAttributesReq *req,
- register unsigned long valuemask,
- register XSetWindowAttributes *attributes);
-
-extern int _XDefaultError(
- Display *dpy,
- XErrorEvent *event);
-
-extern int _XDefaultIOError(
- Display *dpy);
-
-extern void _XSetClipRectangles (
- register Display *dpy,
- GC gc,
- int clip_x_origin, int clip_y_origin,
- XRectangle *rectangles,
- int n,
- int ordering);
-
-Status _XGetWindowAttributes(
- register Display *dpy,
- Window w,
- XWindowAttributes *attr);
-
-int _XPutBackEvent (
- register Display *dpy,
- register XEvent *event);
-
-extern Bool _XIsEventCookie(
- Display *dpy,
- XEvent *ev);
-
-extern void _XFreeEventCookies(
- Display *dpy);
-
-extern void _XStoreEventCookie(
- Display *dpy,
- XEvent *ev);
-
-extern Bool _XFetchEventCookie(
- Display *dpy,
- XGenericEventCookie *ev);
-
-extern Bool _XCopyEventCookie(
- Display *dpy,
- XGenericEventCookie *in,
- XGenericEventCookie *out);
-
-/* lcFile.c */
-
-extern void xlocaledir(
- char *buf,
- int buf_len
-);
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-_XFUNCPROTOEND
-
-#endif /* !defined(_X11_XLIBINT_H_) && !defined(_XLIBINT_H_) */
diff --git a/nx-X11/lib/X11/Xlocale.h b/nx-X11/lib/X11/Xlocale.h
deleted file mode 100644
index 4ac9bac30..000000000
--- a/nx-X11/lib/X11/Xlocale.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#if !defined(_X11_XLOCALE_H_) && !defined(_XLOCALE_H_)
-#define _X11_XLOCALE_H_
-#define _XLOCALE_H_
-
-#include <nx-X11/Xfuncproto.h>
-#include <nx-X11/Xosdefs.h>
-
-#include <locale.h>
-
-#endif /* !defined(_X11_XLOCALE_H_) && !defined(_XLOCALE_H_) */
diff --git a/nx-X11/lib/X11/XomGeneric.h b/nx-X11/lib/X11/XomGeneric.h
deleted file mode 100644
index d6f182d19..000000000
--- a/nx-X11/lib/X11/XomGeneric.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Takanori Tateno FUJITSU LIMITED
- *
- */
-
-#ifndef _XOMGENERIC_H_
-#define _XOMGENERIC_H_
-
-#include "XlcPublic.h"
-
-#define XOM_GENERIC(om) (&((XOMGeneric) om)->gen)
-#define XOC_GENERIC(font_set) (&((XOCGeneric) font_set)->gen)
-
-/* For VW/UDC */
-typedef struct _CodeRangeRec {
- unsigned long start;
- unsigned long end;
- unsigned long dmy1;
- unsigned long dmy2;
-} CodeRangeRec, *CodeRange;
-
-typedef struct _VRotateRec {
- char *charset_name; /* Charset name */
- XlcSide side; /* Encoding side */
- int num_cr;
- CodeRange code_range;
- char *xlfd_name;
- XFontStruct *font;
-} VRotateRec, *VRotate;
-
-typedef enum {
- XOMMultiByte,
- XOMWideChar,
- XOMUtf8String
-} XOMTextType;
-
-typedef struct _FontDataRec {
- char *name;
- XlcSide side;
- /* For VW/UDC */
- int scopes_num;
- FontScope scopes;
- char *xlfd_name;
- XFontStruct *font;
-} FontDataRec, *FontData;
-
-#define VROTATE_NONE 0
-#define VROTATE_PART 1
-#define VROTATE_ALL 2
-
-typedef struct _OMDataRec {
- int charset_count;
- XlcCharSet *charset_list;
- int font_data_count;
- FontData font_data;
- /* For VW/UDC */
- int substitute_num;
- FontData substitute;
- /* Vertical Writing */
- int vmap_num;
- FontData vmap;
- int vrotate_type;
- int vrotate_num;
- CodeRange vrotate;
-} OMDataRec, *OMData;
-
-typedef struct _XOMGenericPart {
- int data_num;
- OMData data;
- Bool on_demand_loading;
- char *object_name;
-} XOMGenericPart;
-
-typedef struct _XOMGenericRec {
- XOMMethods methods;
- XOMCoreRec core;
- XOMGenericPart gen;
-} XOMGenericRec, *XOMGeneric;
-
-/*
- * XOC dependent data
- */
-
-typedef struct _FontSetRec {
- int id;
- int charset_count;
- XlcCharSet *charset_list;
- int font_data_count;
- FontData font_data;
- char *font_name;
- XFontStruct *info;
- XFontStruct *font;
- XlcSide side;
- Bool is_xchar2b;
- /* For VW/UDC */
- int substitute_num;
- FontData substitute;
- /* Vertical Writing */
- int vpart_initialize;
- int vmap_num;
- FontData vmap;
- int vrotate_num;
- VRotate vrotate;
-} FontSetRec, *FontSet;
-
-typedef struct _XOCGenericPart {
- XlcConv mbs_to_cs;
- XlcConv wcs_to_cs;
- XlcConv utf8_to_cs;
- int font_set_num;
- FontSet font_set;
-} XOCGenericPart;
-
-typedef struct _XOCGenericRec {
- XOCMethods methods;
- XOCCoreRec core;
- XOCGenericPart gen;
-} XOCGenericRec, *XOCGeneric;
-
-_XFUNCPROTOBEGIN
-
-extern XOM _XomGenericOpenOM(
- XLCd /* lcd */,
- Display* /* dpy */,
- XrmDatabase /* rdb */,
- _Xconst char* /* res_name */,
- _Xconst char* /* res_class */
-);
-
-extern XlcConv _XomInitConverter(
- XOC /* oc */,
- XOMTextType /* type */
-);
-
-extern int _XomConvert(
- XOC /* oc */,
- XlcConv /* conv */,
- XPointer* /* from */,
- int* /* from_left */,
- XPointer* /* to */,
- int* /* to_left */,
- XPointer* /* args */,
- int /* num_args */
-);
-
-extern int
-_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length);
-extern int
-_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length);
-extern int
-_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length);
-extern int
-_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical);
-extern int
-_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical);
-extern int
-_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical);
-extern Status
-_XmbDefaultTextPerCharExtents(
- XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-extern Status
-_XwcDefaultTextPerCharExtents(
- XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-extern Status
-_Xutf8DefaultTextPerCharExtents(
- XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-extern int
-_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length);
-extern int
-_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst wchar_t *text, int length);
-extern int
-_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length);
-extern void
-_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length);
-extern void
-_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst wchar_t *text, int length);
-extern void
-_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length);
-
-extern int
-_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length);
-extern int
-_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical);
-extern int
-_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length);
-extern void
-_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length);
-extern Status
-_Xutf8GenericTextPerCharExtents(
- XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-extern int
-_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical);
-extern int
-_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length);
-extern void
-_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst wchar_t *text, int length);
-extern int
-_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst wchar_t *text, int length);
-extern Status
-_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-extern int
-_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical);
-extern int
-_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length);
-extern void
-_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length);
-extern int
-_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length);
-extern Status
-_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-
-extern FontData
-read_EncodingInfo(
- int count,
- char **value);
-
-extern int
-_XomGenericDrawString(
- Display *dpy,
- Drawable d,
- XOC oc,
- GC gc,
- int x, int y,
- XOMTextType type,
- XPointer text,
- int length);
-extern int
-_XomGenericTextExtents(
- XOC oc,
- XOMTextType type,
- XPointer text,
- int length,
- XRectangle *overall_ink,
- XRectangle *overall_logical);
-extern FontData
-_XomGetFontDataFromFontSet(
- FontSet fs,
- unsigned char *str,
- int len,
- int *len_ret,
- int is2b,
- int type);
-
-_XFUNCPROTOEND
-
-#endif /* _XOMGENERIC_H_ */
diff --git a/nx-X11/lib/X11/Xprivate.h b/nx-X11/lib/X11/Xprivate.h
deleted file mode 100644
index 2dd62ce7d..000000000
--- a/nx-X11/lib/X11/Xprivate.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2008 Jamey Sharp, Josh Triplett
- * This file is licensed under the MIT license. See the file COPYING.
- *
- * As Xlibint.h has long become effectively public API, this header exists
- * for new private functions that nothing outside of libX11 should call.
- */
-
-#ifndef XPRIVATE_H
-#define XPRIVATE_H
-
-#include <nx-X11/Xlib.h>
-
-extern _X_HIDDEN void _XIDHandler(Display *dpy);
-extern _X_HIDDEN void _XSeqSyncFunction(Display *dpy);
-extern _X_HIDDEN void _XSetPrivSyncFunction(Display *dpy);
-extern _X_HIDDEN void _XSetSeqSyncFunction(Display *dpy);
-
-#ifdef XTHREADS
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
-#define InternalLockDisplay(d,wskip) if ((d)->lock) \
- (*(d)->lock->internal_lock_display)(d,wskip,__FILE__,__LINE__)
-#else
-#define InternalLockDisplay(d,wskip) if ((d)->lock) \
- (*(d)->lock->internal_lock_display)(d,wskip)
-#endif
-#else /* XTHREADS else */
-#define InternalLockDisplay(d,wskip)
-#endif /* XTHREADS else */
-
-#endif /* XPRIVATE_H */
diff --git a/nx-X11/lib/X11/Xregion.h b/nx-X11/lib/X11/Xregion.h
deleted file mode 100644
index 4f55af82f..000000000
--- a/nx-X11/lib/X11/Xregion.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/************************************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-************************************************************************/
-
-#if !defined(_X11_XREGION_H_) && !defined(_XREGION_H)
-#define _X11_XREGION_H_
-#define _XREGION_H
-
-typedef struct {
- short x1, x2, y1, y2;
-} Box, BOX, BoxRec, *BoxPtr;
-
-typedef struct {
- short x, y, width, height;
-}RECTANGLE, RectangleRec, *RectanglePtr;
-
-#define TRUE 1
-#define FALSE 0
-#define MAXSHORT 32767
-#define MINSHORT -MAXSHORT
-#ifndef MAX
-#define MAX(a,b) (((a) > (b)) ? (a) : (b))
-#endif
-#ifndef MIN
-#define MIN(a,b) (((a) < (b)) ? (a) : (b))
-#endif
-
-
-/*
- * clip region
- */
-
-typedef struct _XRegion {
- long size;
- long numRects;
- BOX *rects;
- BOX extents;
-} REGION;
-
-/* Xutil.h contains the declaration:
- * typedef struct _XRegion *Region;
- */
-
-/* 1 if two BOXs overlap.
- * 0 if two BOXs do not overlap.
- * Remember, x2 and y2 are not in the region
- */
-#define EXTENTCHECK(r1, r2) \
- ((r1)->x2 > (r2)->x1 && \
- (r1)->x1 < (r2)->x2 && \
- (r1)->y2 > (r2)->y1 && \
- (r1)->y1 < (r2)->y2)
-
-/*
- * update region extents
- */
-#define EXTENTS(r,idRect){\
- if((r)->x1 < (idRect)->extents.x1)\
- (idRect)->extents.x1 = (r)->x1;\
- if((r)->y1 < (idRect)->extents.y1)\
- (idRect)->extents.y1 = (r)->y1;\
- if((r)->x2 > (idRect)->extents.x2)\
- (idRect)->extents.x2 = (r)->x2;\
- if((r)->y2 > (idRect)->extents.y2)\
- (idRect)->extents.y2 = (r)->y2;\
- }
-
-/*
- * Check to see if there is enough memory in the present region.
- */
-#define MEMCHECK(reg, rect, firstrect){\
- if ((reg)->numRects >= ((reg)->size - 1)){\
- BoxPtr tmpRect = Xrealloc ((firstrect), \
- (2 * (sizeof(BOX)) * ((reg)->size))); \
- if (tmpRect == NULL) \
- return(0);\
- (firstrect) = tmpRect; \
- (reg)->size *= 2;\
- (rect) = &(firstrect)[(reg)->numRects];\
- }\
- }
-
-/* this routine checks to see if the previous rectangle is the same
- * or subsumes the new rectangle to add.
- */
-
-#define CHECK_PREVIOUS(Reg, R, Rx1, Ry1, Rx2, Ry2)\
- (!(((Reg)->numRects > 0)&&\
- ((R-1)->y1 == (Ry1)) &&\
- ((R-1)->y2 == (Ry2)) &&\
- ((R-1)->x1 <= (Rx1)) &&\
- ((R-1)->x2 >= (Rx2))))
-
-/* add a rectangle to the given Region */
-#define ADDRECT(reg, r, rx1, ry1, rx2, ry2){\
- if (((rx1) < (rx2)) && ((ry1) < (ry2)) &&\
- CHECK_PREVIOUS((reg), (r), (rx1), (ry1), (rx2), (ry2))){\
- (r)->x1 = (rx1);\
- (r)->y1 = (ry1);\
- (r)->x2 = (rx2);\
- (r)->y2 = (ry2);\
- EXTENTS((r), (reg));\
- (reg)->numRects++;\
- (r)++;\
- }\
- }
-
-
-
-/* add a rectangle to the given Region */
-#define ADDRECTNOX(reg, r, rx1, ry1, rx2, ry2){\
- if ((rx1 < rx2) && (ry1 < ry2) &&\
- CHECK_PREVIOUS((reg), (r), (rx1), (ry1), (rx2), (ry2))){\
- (r)->x1 = (rx1);\
- (r)->y1 = (ry1);\
- (r)->x2 = (rx2);\
- (r)->y2 = (ry2);\
- (reg)->numRects++;\
- (r)++;\
- }\
- }
-
-#define EMPTY_REGION(pReg) pReg->numRects = 0
-
-#define REGION_NOT_EMPTY(pReg) pReg->numRects
-
-#define INBOX(r, x, y) \
- ( ( ((r).x2 > x)) && \
- ( ((r).x1 <= x)) && \
- ( ((r).y2 > y)) && \
- ( ((r).y1 <= y)) )
-
-/*
- * number of points to buffer before sending them off
- * to scanlines() : Must be an even number
- */
-#define NUMPTSTOBUFFER 200
-
-/*
- * used to allocate buffers for points and link
- * the buffers together
- */
-typedef struct _POINTBLOCK {
- XPoint pts[NUMPTSTOBUFFER];
- struct _POINTBLOCK *next;
-} POINTBLOCK;
-
-#endif /* !defined(_X11_XREGION_H_) && !defined(_XREGION_H) */
diff --git a/nx-X11/lib/X11/Xresinternal.h b/nx-X11/lib/X11/Xresinternal.h
deleted file mode 100644
index c740102b6..000000000
--- a/nx-X11/lib/X11/Xresinternal.h
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#ifndef _XRESINTERNAL_H_
-#define _XRESINTERNAL_H_
-
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xresource.h>
-#include <inttypes.h>
-
-/* type defines */
-typedef uint32_t Signature;
-
-/* prototypes */
-extern XrmQuark _XrmInternalStringToQuark(
- register _Xconst char *name, register int len, register Signature sig,
- Bool permstring);
-
-#endif /* _XRESOURCEINTERNAL_H_ */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/nx-X11/lib/X11/Xresource.h b/nx-X11/lib/X11/Xresource.h
deleted file mode 100644
index f3977a209..000000000
--- a/nx-X11/lib/X11/Xresource.h
+++ /dev/null
@@ -1,359 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#if !defined(_X11_XRESOURCE_H_) && !defined(_XRESOURCE_H_)
-#define _X11_XRESOURCE_H_
-#define _XRESOURCE_H_
-
-#ifndef _XP_PRINT_SERVER_
-#include <nx-X11/Xlib.h>
-#endif
-
-/****************************************************************
- ****************************************************************
- *** ***
- *** ***
- *** X Resource Manager Intrinsics ***
- *** ***
- *** ***
- ****************************************************************
- ****************************************************************/
-
-_XFUNCPROTOBEGIN
-
-/****************************************************************
- *
- * Memory Management
- *
- ****************************************************************/
-
-extern char *Xpermalloc(
- unsigned int /* size */
-);
-
-/****************************************************************
- *
- * Quark Management
- *
- ****************************************************************/
-
-typedef int XrmQuark, *XrmQuarkList;
-#define NULLQUARK ((XrmQuark) 0)
-
-typedef char *XrmString;
-#define NULLSTRING ((XrmString) 0)
-
-/* find quark for string, create new quark if none already exists */
-extern XrmQuark XrmStringToQuark(
- _Xconst char* /* string */
-);
-
-extern XrmQuark XrmPermStringToQuark(
- _Xconst char* /* string */
-);
-
-/* find string for quark */
-extern XrmString XrmQuarkToString(
- XrmQuark /* quark */
-);
-
-extern XrmQuark XrmUniqueQuark(
- void
-);
-
-#define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
-
-
-/****************************************************************
- *
- * Conversion of Strings to Lists
- *
- ****************************************************************/
-
-typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
-
-extern void XrmStringToQuarkList(
- _Xconst char* /* string */,
- XrmQuarkList /* quarks_return */
-);
-
-extern void XrmStringToBindingQuarkList(
- _Xconst char* /* string */,
- XrmBindingList /* bindings_return */,
- XrmQuarkList /* quarks_return */
-);
-
-/****************************************************************
- *
- * Name and Class lists.
- *
- ****************************************************************/
-
-typedef XrmQuark XrmName;
-typedef XrmQuarkList XrmNameList;
-#define XrmNameToString(name) XrmQuarkToString(name)
-#define XrmStringToName(string) XrmStringToQuark(string)
-#define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name)
-
-typedef XrmQuark XrmClass;
-typedef XrmQuarkList XrmClassList;
-#define XrmClassToString(c_class) XrmQuarkToString(c_class)
-#define XrmStringToClass(c_class) XrmStringToQuark(c_class)
-#define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
-
-
-
-/****************************************************************
- *
- * Resource Representation Types and Values
- *
- ****************************************************************/
-
-typedef XrmQuark XrmRepresentation;
-#define XrmStringToRepresentation(string) XrmStringToQuark(string)
-#define XrmRepresentationToString(type) XrmQuarkToString(type)
-
-typedef struct {
- unsigned int size;
- XPointer addr;
-} XrmValue, *XrmValuePtr;
-
-
-/****************************************************************
- *
- * Resource Manager Functions
- *
- ****************************************************************/
-
-typedef struct _XrmHashBucketRec *XrmHashBucket;
-typedef XrmHashBucket *XrmHashTable;
-typedef XrmHashTable XrmSearchList[];
-typedef struct _XrmHashBucketRec *XrmDatabase;
-
-
-extern void XrmDestroyDatabase(
- XrmDatabase /* database */
-);
-
-extern void XrmQPutResource(
- XrmDatabase* /* database */,
- XrmBindingList /* bindings */,
- XrmQuarkList /* quarks */,
- XrmRepresentation /* type */,
- XrmValue* /* value */
-);
-
-extern void XrmPutResource(
- XrmDatabase* /* database */,
- _Xconst char* /* specifier */,
- _Xconst char* /* type */,
- XrmValue* /* value */
-);
-
-extern void XrmQPutStringResource(
- XrmDatabase* /* database */,
- XrmBindingList /* bindings */,
- XrmQuarkList /* quarks */,
- _Xconst char* /* value */
-);
-
-extern void XrmPutStringResource(
- XrmDatabase* /* database */,
- _Xconst char* /* specifier */,
- _Xconst char* /* value */
-);
-
-extern void XrmPutLineResource(
- XrmDatabase* /* database */,
- _Xconst char* /* line */
-);
-
-extern Bool XrmQGetResource(
- XrmDatabase /* database */,
- XrmNameList /* quark_name */,
- XrmClassList /* quark_class */,
- XrmRepresentation* /* quark_type_return */,
- XrmValue* /* value_return */
-);
-
-extern Bool XrmGetResource(
- XrmDatabase /* database */,
- _Xconst char* /* str_name */,
- _Xconst char* /* str_class */,
- char** /* str_type_return */,
- XrmValue* /* value_return */
-);
-
-extern Bool XrmQGetSearchList(
- XrmDatabase /* database */,
- XrmNameList /* names */,
- XrmClassList /* classes */,
- XrmSearchList /* list_return */,
- int /* list_length */
-);
-
-extern Bool XrmQGetSearchResource(
- XrmSearchList /* list */,
- XrmName /* name */,
- XrmClass /* class */,
- XrmRepresentation* /* type_return */,
- XrmValue* /* value_return */
-);
-
-/****************************************************************
- *
- * Resource Database Management
- *
- ****************************************************************/
-
-#ifndef _XP_PRINT_SERVER_
-
-extern void XrmSetDatabase(
- Display* /* display */,
- XrmDatabase /* database */
-);
-
-extern XrmDatabase XrmGetDatabase(
- Display* /* display */
-);
-
-#endif /* !_XP_PRINT_SERVER_ */
-
-extern XrmDatabase XrmGetFileDatabase(
- _Xconst char* /* filename */
-);
-
-extern Status XrmCombineFileDatabase(
- _Xconst char* /* filename */,
- XrmDatabase* /* target */,
- Bool /* override */
-);
-
-extern XrmDatabase XrmGetStringDatabase(
- _Xconst char* /* data */ /* null terminated string */
-);
-
-extern void XrmPutFileDatabase(
- XrmDatabase /* database */,
- _Xconst char* /* filename */
-);
-
-extern void XrmMergeDatabases(
- XrmDatabase /* source_db */,
- XrmDatabase* /* target_db */
-);
-
-extern void XrmCombineDatabase(
- XrmDatabase /* source_db */,
- XrmDatabase* /* target_db */,
- Bool /* override */
-);
-
-#define XrmEnumAllLevels 0
-#define XrmEnumOneLevel 1
-
-extern Bool XrmEnumerateDatabase(
- XrmDatabase /* db */,
- XrmNameList /* name_prefix */,
- XrmClassList /* class_prefix */,
- int /* mode */,
- Bool (*)(
- XrmDatabase* /* db */,
- XrmBindingList /* bindings */,
- XrmQuarkList /* quarks */,
- XrmRepresentation* /* type */,
- XrmValue* /* value */,
- XPointer /* closure */
- ) /* proc */,
- XPointer /* closure */
-);
-
-extern const char *XrmLocaleOfDatabase(
- XrmDatabase /* database */
-);
-
-
-/****************************************************************
- *
- * Command line option mapping to resource entries
- *
- ****************************************************************/
-
-typedef enum {
- XrmoptionNoArg, /* Value is specified in OptionDescRec.value */
- XrmoptionIsArg, /* Value is the option string itself */
- XrmoptionStickyArg, /* Value is characters immediately following option */
- XrmoptionSepArg, /* Value is next argument in argv */
- XrmoptionResArg, /* Resource and value in next argument in argv */
- XrmoptionSkipArg, /* Ignore this option and the next argument in argv */
- XrmoptionSkipLine, /* Ignore this option and the rest of argv */
- XrmoptionSkipNArgs /* Ignore this option and the next
- OptionDescRes.value arguments in argv */
-} XrmOptionKind;
-
-typedef struct {
- char *option; /* Option abbreviation in argv */
- char *specifier; /* Resource specifier */
- XrmOptionKind argKind; /* Which style of option it is */
- XPointer value; /* Value to provide if XrmoptionNoArg */
-} XrmOptionDescRec, *XrmOptionDescList;
-
-
-extern void XrmParseCommand(
- XrmDatabase* /* database */,
- XrmOptionDescList /* table */,
- int /* table_count */,
- _Xconst char* /* name */,
- int* /* argc_in_out */,
- char** /* argv_in_out */
-);
-
-_XFUNCPROTOEND
-
-#endif /* !defined(_X11_XRESOURCE_H_) && !defined(_XRESOURCE_H_) */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/nx-X11/lib/X11/Xrm.c b/nx-X11/lib/X11/Xrm.c
deleted file mode 100644
index e3587d021..000000000
--- a/nx-X11/lib/X11/Xrm.c
+++ /dev/null
@@ -1,2651 +0,0 @@
-
-/***********************************************************
-Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/*
-
-Copyright 1987, 1988, 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <ctype.h>
-#include "Xlibint.h"
-#include <nx-X11/Xresource.h>
-#include "Xlcint.h"
-#ifdef XTHREADS
-#include "locking.h"
-#endif
-#include <nx-X11/Xos.h>
-#include <sys/stat.h>
-#include <limits.h>
-#include "Xresinternal.h"
-#include "Xresource.h"
-
-/*
-
-These Xrm routines allow very fast lookup of resources in the resource
-database. Several usage patterns are exploited:
-
-(1) Widgets get a lot of resources at one time. Rather than look up each from
-scratch, we can precompute the prioritized list of database levels once, then
-search for each resource starting at the beginning of the list.
-
-(2) Many database levels don't contain any leaf resource nodes. There is no
-point in looking for resources on a level that doesn't contain any. This
-information is kept on a per-level basis.
-
-(3) Sometimes the widget instance tree is structured such that you get the same
-class name repeated on the fully qualified widget name. This can result in the
-same database level occuring multiple times on the search list. The code below
-only checks to see if you get two identical search lists in a row, rather than
-look back through all database levels, but in practice this removes all
-duplicates I've ever observed.
-
-Joel McCormack
-
-*/
-
-/*
-
-The Xrm representation has been completely redesigned to substantially reduce
-memory and hopefully improve performance.
-
-The database is structured into two kinds of tables: LTables that contain
-only values, and NTables that contain only other tables.
-
-Some invariants:
-
-The next pointer of the top-level node table points to the top-level leaf
-table, if any.
-
-Within an LTable, for a given name, the tight value always precedes the
-loose value, and if both are present the loose value is always right after
-the tight value.
-
-Within an NTable, all of the entries for a given name are contiguous,
-in the order tight NTable, loose NTable, tight LTable, loose LTable.
-
-Bob Scheifler
-
-*/
-
-static XrmQuark XrmQString, XrmQANY;
-
-typedef Bool (*DBEnumProc)(
- XrmDatabase* /* db */,
- XrmBindingList /* bindings */,
- XrmQuarkList /* quarks */,
- XrmRepresentation* /* type */,
- XrmValue* /* value */,
- XPointer /* closure */
-);
-
-typedef struct _VEntry {
- struct _VEntry *next; /* next in chain */
- XrmQuark name; /* name of this entry */
- unsigned int tight:1; /* 1 if it is a tight binding */
- unsigned int string:1; /* 1 if type is String */
- unsigned int size:30; /* size of value */
-} VEntryRec, *VEntry;
-
-
-typedef struct _DEntry {
- VEntryRec entry; /* entry */
- XrmRepresentation type; /* representation type */
-} DEntryRec, *DEntry;
-
-/* the value is right after the structure */
-#define StringValue(ve) (XPointer)((ve) + 1)
-#define RepType(ve) ((DEntry)(ve))->type
-/* the value is right after the structure */
-#define DataValue(ve) (XPointer)(((DEntry)(ve)) + 1)
-#define RawValue(ve) (char *)((ve)->string ? StringValue(ve) : DataValue(ve))
-
-typedef struct _NTable {
- struct _NTable *next; /* next in chain */
- XrmQuark name; /* name of this entry */
- unsigned int tight:1; /* 1 if it is a tight binding */
- unsigned int leaf:1; /* 1 if children are values */
- unsigned int hasloose:1; /* 1 if has loose children */
- unsigned int hasany:1; /* 1 if has ANY entry */
- unsigned int pad:4; /* unused */
- unsigned int mask:8; /* hash size - 1 */
- unsigned int entries:16; /* number of children */
-} NTableRec, *NTable;
-
-/* the buckets are right after the structure */
-#define NodeBuckets(ne) ((NTable *)((ne) + 1))
-#define NodeHash(ne,q) NodeBuckets(ne)[(q) & (ne)->mask]
-
-/* leaf tables have an extra level of indirection for the buckets,
- * so that resizing can be done without invalidating a search list.
- * This is completely ugly, and wastes some memory, but the Xlib
- * spec doesn't really specify whether invalidation is OK, and the
- * old implementation did not invalidate.
- */
-typedef struct _LTable {
- NTableRec table;
- VEntry *buckets;
-} LTableRec, *LTable;
-
-#define LeafHash(le,q) (le)->buckets[(q) & (le)->table.mask]
-
-/* An XrmDatabase just holds a pointer to the first top-level table.
- * The type name is no longer descriptive, but better to not change
- * the Xresource.h header file. This type also gets used to define
- * XrmSearchList, which is a complete crock, but we'll just leave it
- * and caste types as required.
- */
-typedef struct _XrmHashBucketRec {
- NTable table;
- XPointer mbstate;
- XrmMethods methods;
-#ifdef XTHREADS
- LockInfoRec linfo;
-#endif
-} XrmHashBucketRec;
-
-/* closure used in get/put resource */
-typedef struct _VClosure {
- XrmRepresentation *type; /* type of value */
- XrmValuePtr value; /* value itself */
-} VClosureRec, *VClosure;
-
-/* closure used in get search list */
-typedef struct _SClosure {
- LTable *list; /* search list */
- int idx; /* index of last filled element */
- int limit; /* maximum index */
-} SClosureRec, *SClosure;
-
-/* placed in XrmSearchList to indicate next table is loose only */
-#define LOOSESEARCH ((LTable)1)
-
-/* closure used in enumerate database */
-typedef struct _EClosure {
- XrmDatabase db; /* the database */
- DBEnumProc proc; /* the user proc */
- XPointer closure; /* the user closure */
- XrmBindingList bindings; /* binding list */
- XrmQuarkList quarks; /* quark list */
- int mode; /* XrmEnum<kind> */
-} EClosureRec, *EClosure;
-
-/* types for typecasting ETable based functions to NTable based functions */
-typedef Bool (*getNTableSProcp)(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- SClosure closure);
-typedef Bool (*getNTableVProcp)(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- VClosure closure);
-typedef Bool (*getNTableEProcp)(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- register int level,
- EClosure closure);
-
-/* predicate to determine when to resize a hash table */
-#define GrowthPred(n,m) ((unsigned)(n) > (((m) + 1) << 2))
-
-#define GROW(prev) \
- if (GrowthPred((*prev)->entries, (*prev)->mask)) \
- GrowTable(prev)
-
-/* pick a reasonable value for maximum depth of resource database */
-#define MAXDBDEPTH 100
-
-/* macro used in get/search functions */
-
-/* find an entry named ename, with leafness given by leaf */
-#define NFIND(ename) \
- q = ename; \
- entry = NodeHash(table, q); \
- while (entry && entry->name != q) \
- entry = entry->next; \
- if (leaf && entry && !entry->leaf) { \
- entry = entry->next; \
- if (entry && !entry->leaf) \
- entry = entry->next; \
- if (entry && entry->name != q) \
- entry = (NTable)NULL; \
- }
-
-/* resourceQuarks keeps track of what quarks have been associated with values
- * in all LTables. If a quark has never been used in an LTable, we don't need
- * to bother looking for it.
- */
-
-static unsigned char *resourceQuarks = (unsigned char *)NULL;
-static XrmQuark maxResourceQuark = -1;
-
-/* determines if a quark has been used for a value in any database */
-#define IsResourceQuark(q) ((q) > 0 && (q) <= maxResourceQuark && \
- resourceQuarks[(q) >> 3] & (1 << ((q) & 7)))
-
-typedef unsigned char XrmBits;
-
-#define BSLASH ((XrmBits) (1 << 5))
-#define NORMAL ((XrmBits) (1 << 4))
-#define EOQ ((XrmBits) (1 << 3))
-#define SEP ((XrmBits) (1 << 2))
-#define ENDOF ((XrmBits) (1 << 1))
-#define SPACE (NORMAL|EOQ|SEP|(XrmBits)0)
-#define RSEP (NORMAL|EOQ|SEP|(XrmBits)1)
-#define EOS (EOQ|SEP|ENDOF|(XrmBits)0)
-#define EOL (EOQ|SEP|ENDOF|(XrmBits)1)
-#define BINDING (NORMAL|EOQ)
-#define ODIGIT (NORMAL|(XrmBits)1)
-
-#define next_char(ch,str) xrmtypes[(unsigned char)((ch) = *(++(str)))]
-#define next_mbchar(ch,len,str) xrmtypes[(unsigned char)(ch = (*db->methods->mbchar)(db->mbstate, str, &len), str += len, ch)]
-
-#define is_space(bits) ((bits) == SPACE)
-#define is_EOQ(bits) ((bits) & EOQ)
-#define is_EOF(bits) ((bits) == EOS)
-#define is_EOL(bits) ((bits) & ENDOF)
-#define is_binding(bits) ((bits) == BINDING)
-#define is_odigit(bits) ((bits) == ODIGIT)
-#define is_separator(bits) ((bits) & SEP)
-#define is_nonpcs(bits) (!(bits))
-#define is_normal(bits) ((bits) & NORMAL)
-#define is_simple(bits) ((bits) & (NORMAL|BSLASH))
-#define is_special(bits) ((bits) & (ENDOF|BSLASH))
-
-/* parsing types */
-static XrmBits const xrmtypes[256] = {
- EOS,0,0,0,0,0,0,0,
- 0,SPACE,EOL,0,0,
-#if defined(WIN32)
- EOL, /* treat CR the same as LF, just in case */
-#else
- 0,
-#endif
- 0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- SPACE,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,BINDING,NORMAL,NORMAL,NORMAL,BINDING,NORMAL,
- ODIGIT,ODIGIT,ODIGIT,ODIGIT,ODIGIT,ODIGIT,ODIGIT,ODIGIT,
- NORMAL,NORMAL,RSEP,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,BSLASH,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,
- NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,0
- /* The rest will be automatically initialized to zero. */
-};
-
-void XrmInitialize(void)
-{
- XrmQString = XrmPermStringToQuark("String");
- XrmQANY = XrmPermStringToQuark("?");
-}
-
-XrmDatabase XrmGetDatabase(
- Display *display)
-{
- XrmDatabase retval;
- LockDisplay(display);
- retval = display->db;
- UnlockDisplay(display);
- return retval;
-}
-
-void XrmSetDatabase(
- Display *display,
- XrmDatabase database)
-{
- LockDisplay(display);
- /* destroy database if set up implicitly by XGetDefault() */
- if (display->db && (display->flags & XlibDisplayDfltRMDB)) {
- XrmDestroyDatabase(display->db);
- display->flags &= ~XlibDisplayDfltRMDB;
- }
- display->db = database;
- UnlockDisplay(display);
-}
-
-void
-XrmStringToQuarkList(
- register _Xconst char *name,
- register XrmQuarkList quarks) /* RETURN */
-{
- register XrmBits bits;
- register Signature sig = 0;
- register char ch, *tname;
- register int i = 0;
-
- if ((tname = (char *)name)) {
- tname--;
- while (!is_EOF(bits = next_char(ch, tname))) {
- if (is_binding (bits)) {
- if (i) {
- /* Found a complete name */
- *quarks++ = _XrmInternalStringToQuark(name,tname - name,
- sig, False);
- i = 0;
- sig = 0;
- }
- name = tname+1;
- }
- else {
- sig = (sig << 1) + ch; /* Compute the signature. */
- i++;
- }
- }
- *quarks++ = _XrmInternalStringToQuark(name, tname - name, sig, False);
- }
- *quarks = NULLQUARK;
-}
-
-void
-XrmStringToBindingQuarkList(
- register _Xconst char *name,
- register XrmBindingList bindings, /* RETURN */
- register XrmQuarkList quarks) /* RETURN */
-{
- register XrmBits bits;
- register Signature sig = 0;
- register char ch, *tname;
- register XrmBinding binding;
- register int i = 0;
-
- if ((tname = (char *)name)) {
- tname--;
- binding = XrmBindTightly;
- while (!is_EOF(bits = next_char(ch, tname))) {
- if (is_binding (bits)) {
- if (i) {
- /* Found a complete name */
- *bindings++ = binding;
- *quarks++ = _XrmInternalStringToQuark(name, tname - name,
- sig, False);
-
- i = 0;
- sig = 0;
- binding = XrmBindTightly;
- }
- name = tname+1;
-
- if (ch == '*')
- binding = XrmBindLoosely;
- }
- else {
- sig = (sig << 1) + ch; /* Compute the signature. */
- i++;
- }
- }
- *bindings = binding;
- *quarks++ = _XrmInternalStringToQuark(name, tname - name, sig, False);
- }
- *quarks = NULLQUARK;
-}
-
-#ifdef DEBUG
-
-static void PrintQuarkList(
- XrmQuarkList quarks,
- FILE *stream)
-{
- Bool firstNameSeen;
-
- for (firstNameSeen = False; *quarks; quarks++) {
- if (firstNameSeen) {
- (void) fprintf(stream, ".");
- }
- firstNameSeen = True;
- (void) fputs(XrmQuarkToString(*quarks), stream);
- }
-} /* PrintQuarkList */
-
-#endif /* DEBUG */
-
-
-/*
- * Fallback methods for Xrm parsing.
- * Simulate a C locale. No state needed here.
- */
-
-static void
-c_mbnoop(
- XPointer state)
-{
-}
-
-static char
-c_mbchar(
- XPointer state,
- const char *str,
- int *lenp)
-{
- *lenp = 1;
- return *str;
-}
-
-static const char *
-c_lcname(
- XPointer state)
-{
- return "C";
-}
-
-static const XrmMethodsRec mb_methods = {
- c_mbnoop, /* mbinit */
- c_mbchar, /* mbchar */
- c_mbnoop, /* mbfinish */
- c_lcname, /* lcname */
- c_mbnoop /* destroy */
-};
-
-
-static XrmDatabase NewDatabase(void)
-{
- register XrmDatabase db;
-
- db = Xmalloc(sizeof(XrmHashBucketRec));
- if (db) {
- _XCreateMutex(&db->linfo);
- db->table = (NTable)NULL;
- db->mbstate = (XPointer)NULL;
- db->methods = _XrmInitParseInfo(&db->mbstate);
- if (!db->methods)
- db->methods = &mb_methods;
- }
- return db;
-}
-
-/* move all values from ftable to ttable, and free ftable's buckets.
- * ttable is guaranteed empty to start with.
- */
-static void MoveValues(
- LTable ftable,
- register LTable ttable)
-{
- register VEntry fentry, nfentry;
- register VEntry *prev;
- register VEntry *bucket;
- register VEntry tentry;
- register int i;
-
- for (i = ftable->table.mask, bucket = ftable->buckets; i >= 0; i--) {
- for (fentry = *bucket++; fentry; fentry = nfentry) {
- prev = &LeafHash(ttable, fentry->name);
- tentry = *prev;
- *prev = fentry;
- /* chain on all with same name, to preserve invariant order */
- while ((nfentry = fentry->next) && nfentry->name == fentry->name)
- fentry = nfentry;
- fentry->next = tentry;
- }
- }
- Xfree(ftable->buckets);
-}
-
-/* move all tables from ftable to ttable, and free ftable.
- * ttable is quaranteed empty to start with.
- */
-static void MoveTables(
- NTable ftable,
- register NTable ttable)
-{
- register NTable fentry, nfentry;
- register NTable *prev;
- register NTable *bucket;
- register NTable tentry;
- register int i;
-
- for (i = ftable->mask, bucket = NodeBuckets(ftable); i >= 0; i--) {
- for (fentry = *bucket++; fentry; fentry = nfentry) {
- prev = &NodeHash(ttable, fentry->name);
- tentry = *prev;
- *prev = fentry;
- /* chain on all with same name, to preserve invariant order */
- while ((nfentry = fentry->next) && nfentry->name == fentry->name)
- fentry = nfentry;
- fentry->next = tentry;
- }
- }
- Xfree(ftable);
-}
-
-/* grow the table, based on current number of entries */
-static void GrowTable(
- NTable *prev)
-{
- register NTable table;
- register int i;
-
- table = *prev;
- i = table->mask;
- if (i == 255) /* biggest it gets */
- return;
- while (i < 255 && GrowthPred(table->entries, i))
- i = (i << 1) + 1;
- i++; /* i is now the new size */
- if (table->leaf) {
- register LTable ltable;
- LTableRec otable;
-
- ltable = (LTable)table;
- /* cons up a copy to make MoveValues look symmetric */
- otable = *ltable;
- ltable->buckets = Xcalloc(i, sizeof(VEntry));
- if (!ltable->buckets) {
- ltable->buckets = otable.buckets;
- return;
- }
- ltable->table.mask = i - 1;
- MoveValues(&otable, ltable);
- } else {
- register NTable ntable;
-
- ntable = Xcalloc(1, sizeof(NTableRec) + (i * sizeof(NTable)));
- if (!ntable)
- return;
- *ntable = *table;
- ntable->mask = i - 1;
- *prev = ntable;
- MoveTables(table, ntable);
- }
-}
-
-/* merge values from ftable into *pprev, destroy ftable in the process */
-static void MergeValues(
- LTable ftable,
- NTable *pprev,
- Bool override)
-{
- register VEntry fentry, tentry;
- register VEntry *prev;
- register LTable ttable;
- VEntry *bucket;
- int i;
- register XrmQuark q;
-
- ttable = (LTable)*pprev;
- if (ftable->table.hasloose)
- ttable->table.hasloose = 1;
- for (i = ftable->table.mask, bucket = ftable->buckets;
- i >= 0;
- i--, bucket++) {
- for (fentry = *bucket; fentry; ) {
- q = fentry->name;
- prev = &LeafHash(ttable, q);
- tentry = *prev;
- while (tentry && tentry->name != q)
- tentry = *(prev = &tentry->next);
- /* note: test intentionally uses fentry->name instead of q */
- /* permits serendipitous inserts */
- while (tentry && tentry->name == fentry->name) {
- /* if tentry is earlier, skip it */
- if (!fentry->tight && tentry->tight) {
- tentry = *(prev = &tentry->next);
- continue;
- }
- if (fentry->tight != tentry->tight) {
- /* no match, chain in fentry */
- *prev = fentry;
- prev = &fentry->next;
- fentry = *prev;
- *prev = tentry;
- ttable->table.entries++;
- } else if (override) {
- /* match, chain in fentry, splice out and free tentry */
- *prev = fentry;
- prev = &fentry->next;
- fentry = *prev;
- *prev = tentry->next;
- /* free the overridden entry */
- Xfree(tentry);
- /* get next tentry */
- tentry = *prev;
- } else {
- /* match, discard fentry */
- prev = &tentry->next;
- tentry = fentry; /* use as a temp var */
- fentry = fentry->next;
- /* free the overpowered entry */
- Xfree(tentry);
- /* get next tentry */
- tentry = *prev;
- }
- if (!fentry)
- break;
- }
- /* at this point, tentry cannot match any fentry named q */
- /* chain in all bindings together, preserve invariant order */
- while (fentry && fentry->name == q) {
- *prev = fentry;
- prev = &fentry->next;
- fentry = *prev;
- *prev = tentry;
- ttable->table.entries++;
- }
- }
- }
- Xfree(ftable->buckets);
- Xfree(ftable);
- /* resize if necessary, now that we're all done */
- GROW(pprev);
-}
-
-/* merge tables from ftable into *pprev, destroy ftable in the process */
-static void MergeTables(
- NTable ftable,
- NTable *pprev,
- Bool override)
-{
- register NTable fentry, tentry;
- NTable nfentry;
- register NTable *prev;
- register NTable ttable;
- NTable *bucket;
- int i;
- register XrmQuark q;
-
- ttable = *pprev;
- if (ftable->hasloose)
- ttable->hasloose = 1;
- if (ftable->hasany)
- ttable->hasany = 1;
- for (i = ftable->mask, bucket = NodeBuckets(ftable);
- i >= 0;
- i--, bucket++) {
- for (fentry = *bucket; fentry; ) {
- q = fentry->name;
- prev = &NodeHash(ttable, q);
- tentry = *prev;
- while (tentry && tentry->name != q)
- tentry = *(prev = &tentry->next);
- /* note: test intentionally uses fentry->name instead of q */
- /* permits serendipitous inserts */
- while (tentry && tentry->name == fentry->name) {
- /* if tentry is earlier, skip it */
- if ((fentry->leaf && !tentry->leaf) ||
- (!fentry->tight && tentry->tight &&
- (fentry->leaf || !tentry->leaf))) {
- tentry = *(prev = &tentry->next);
- continue;
- }
- nfentry = fentry->next;
- if (fentry->leaf != tentry->leaf ||
- fentry->tight != tentry->tight) {
- /* no match, just chain in */
- *prev = fentry;
- *(prev = &fentry->next) = tentry;
- ttable->entries++;
- } else {
- if (fentry->leaf)
- MergeValues((LTable)fentry, prev, override);
- else
- MergeTables(fentry, prev, override);
- /* bump to next tentry */
- tentry = *(prev = &(*prev)->next);
- }
- /* bump to next fentry */
- fentry = nfentry;
- if (!fentry)
- break;
- }
- /* at this point, tentry cannot match any fentry named q */
- /* chain in all bindings together, preserve invariant order */
- while (fentry && fentry->name == q) {
- *prev = fentry;
- prev = &fentry->next;
- fentry = *prev;
- *prev = tentry;
- ttable->entries++;
- }
- }
- }
- Xfree(ftable);
- /* resize if necessary, now that we're all done */
- GROW(pprev);
-}
-
-void XrmCombineDatabase(
- XrmDatabase from, XrmDatabase *into,
- Bool override)
-{
- register NTable *prev;
- register NTable ftable, ttable, nftable;
-
- if (!*into) {
- *into = from;
- } else if (from) {
- _XLockMutex(&from->linfo);
- _XLockMutex(&(*into)->linfo);
- if ((ftable = from->table)) {
- prev = &(*into)->table;
- ttable = *prev;
- if (!ftable->leaf) {
- nftable = ftable->next;
- if (ttable && !ttable->leaf) {
- /* both have node tables, merge them */
- MergeTables(ftable, prev, override);
- /* bump to into's leaf table, if any */
- ttable = *(prev = &(*prev)->next);
- } else {
- /* into has no node table, link from's in */
- *prev = ftable;
- *(prev = &ftable->next) = ttable;
- }
- /* bump to from's leaf table, if any */
- ftable = nftable;
- } else {
- /* bump to into's leaf table, if any */
- if (ttable && !ttable->leaf)
- ttable = *(prev = &ttable->next);
- }
- if (ftable) {
- /* if into has a leaf, merge, else insert */
- if (ttable)
- MergeValues((LTable)ftable, prev, override);
- else
- *prev = ftable;
- }
- }
- (from->methods->destroy)(from->mbstate);
- _XUnlockMutex(&from->linfo);
- _XFreeMutex(&from->linfo);
- Xfree(from);
- _XUnlockMutex(&(*into)->linfo);
- }
-}
-
-void XrmMergeDatabases(
- XrmDatabase from, XrmDatabase *into)
-{
- XrmCombineDatabase(from, into, True);
-}
-
-/* store a value in the database, overriding any existing entry */
-static void PutEntry(
- XrmDatabase db,
- XrmBindingList bindings,
- XrmQuarkList quarks,
- XrmRepresentation type,
- XrmValuePtr value)
-{
- register NTable *pprev, *prev;
- register NTable table;
- register XrmQuark q;
- register VEntry *vprev;
- register VEntry entry;
- NTable *nprev, *firstpprev;
-
-#define NEWTABLE(q,i) \
- table = Xmalloc(sizeof(LTableRec)); \
- if (!table) \
- return; \
- table->name = q; \
- table->hasloose = 0; \
- table->hasany = 0; \
- table->mask = 0; \
- table->entries = 0; \
- if (quarks[i]) { \
- table->leaf = 0; \
- nprev = NodeBuckets(table); \
- } else { \
- table->leaf = 1; \
- if (!(nprev = Xmalloc(sizeof(VEntry *)))) {\
- Xfree(table); \
- return; \
- } \
- ((LTable)table)->buckets = (VEntry *)nprev; \
- } \
- *nprev = (NTable)NULL; \
- table->next = *prev; \
- *prev = table
-
- if (!db || !*quarks)
- return;
- table = *(prev = &db->table);
- /* if already at leaf, bump to the leaf table */
- if (!quarks[1] && table && !table->leaf)
- table = *(prev = &table->next);
- pprev = prev;
- if (!table || (quarks[1] && table->leaf)) {
- /* no top-level node table, create one and chain it in */
- NEWTABLE(NULLQUARK,1);
- table->tight = 1; /* arbitrary */
- prev = nprev;
- } else {
- /* search along until we need a value */
- while (quarks[1]) {
- q = *quarks;
- table = *(prev = &NodeHash(table, q));
- while (table && table->name != q)
- table = *(prev = &table->next);
- if (!table)
- break; /* not found */
- if (quarks[2]) {
- if (table->leaf)
- break; /* not found */
- } else {
- if (!table->leaf) {
- /* bump to leaf table, if any */
- table = *(prev = &table->next);
- if (!table || table->name != q)
- break; /* not found */
- if (!table->leaf) {
- /* bump to leaf table, if any */
- table = *(prev = &table->next);
- if (!table || table->name != q)
- break; /* not found */
- }
- }
- }
- if (*bindings == XrmBindTightly) {
- if (!table->tight)
- break; /* not found */
- } else {
- if (table->tight) {
- /* bump to loose table, if any */
- table = *(prev = &table->next);
- if (!table || table->name != q ||
- !quarks[2] != table->leaf)
- break; /* not found */
- }
- }
- /* found that one, bump to next quark */
- pprev = prev;
- quarks++;
- bindings++;
- }
- if (!quarks[1]) {
- /* found all the way to a leaf */
- q = *quarks;
- entry = *(vprev = &LeafHash((LTable)table, q));
- while (entry && entry->name != q)
- entry = *(vprev = &entry->next);
- /* if want loose and have tight, bump to next entry */
- if (entry && *bindings == XrmBindLoosely && entry->tight)
- entry = *(vprev = &entry->next);
- if (entry && entry->name == q &&
- (*bindings == XrmBindTightly) == entry->tight) {
- /* match, need to override */
- if ((type == XrmQString) == entry->string &&
- entry->size == value->size) {
- /* update type if not String, can be different */
- if (!entry->string)
- RepType(entry) = type;
- /* identical size, just overwrite value */
- memcpy(RawValue(entry), (char *)value->addr, value->size);
- return;
- }
- /* splice out and free old entry */
- *vprev = entry->next;
- Xfree(entry);
- (*pprev)->entries--;
- }
- /* this is where to insert */
- prev = (NTable *)vprev;
- }
- }
- /* keep the top table, because we may have to grow it */
- firstpprev = pprev;
- /* iterate until we get to the leaf */
- while (quarks[1]) {
- /* build a new table and chain it in */
- NEWTABLE(*quarks,2);
- if (*quarks++ == XrmQANY)
- (*pprev)->hasany = 1;
- if (*bindings++ == XrmBindTightly) {
- table->tight = 1;
- } else {
- table->tight = 0;
- (*pprev)->hasloose = 1;
- }
- (*pprev)->entries++;
- pprev = prev;
- prev = nprev;
- }
- /* now allocate the value entry */
- entry = Xmalloc(((type == XrmQString) ?
- sizeof(VEntryRec) : sizeof(DEntryRec)) + value->size);
- if (!entry)
- return;
- entry->name = q = *quarks;
- if (*bindings == XrmBindTightly) {
- entry->tight = 1;
- } else {
- entry->tight = 0;
- (*pprev)->hasloose = 1;
- }
- /* chain it in, with a bit of type cast ugliness */
- entry->next = *((VEntry *)prev);
- *((VEntry *)prev) = entry;
- entry->size = value->size;
- if (type == XrmQString) {
- entry->string = 1;
- } else {
- entry->string = 0;
- RepType(entry) = type;
- }
- /* save a copy of the value */
- memcpy(RawValue(entry), (char *)value->addr, value->size);
- (*pprev)->entries++;
- /* this is a new leaf, need to remember it for search lists */
- if (q > maxResourceQuark) {
- unsigned oldsize = (maxResourceQuark + 1) >> 3;
- unsigned size = ((q | 0x7f) + 1) >> 3; /* reallocate in chunks */
- if (resourceQuarks) {
- unsigned char *prevQuarks = resourceQuarks;
-
- resourceQuarks = Xrealloc(resourceQuarks, size);
- if (!resourceQuarks) {
- Xfree(prevQuarks);
- }
- } else
- resourceQuarks = Xmalloc(size);
- if (resourceQuarks) {
- bzero((char *)&resourceQuarks[oldsize], size - oldsize);
- maxResourceQuark = (size << 3) - 1;
- } else {
- maxResourceQuark = -1;
- }
- }
- if (q > 0 && resourceQuarks)
- resourceQuarks[q >> 3] |= 1 << (q & 0x7);
- GROW(firstpprev);
-
-#undef NEWTABLE
-}
-
-void XrmQPutResource(
- XrmDatabase *pdb,
- XrmBindingList bindings,
- XrmQuarkList quarks,
- XrmRepresentation type,
- XrmValuePtr value)
-{
- if (!*pdb) *pdb = NewDatabase();
- _XLockMutex(&(*pdb)->linfo);
- PutEntry(*pdb, bindings, quarks, type, value);
- _XUnlockMutex(&(*pdb)->linfo);
-}
-
-void
-XrmPutResource(
- XrmDatabase *pdb,
- _Xconst char *specifier,
- _Xconst char *type,
- XrmValuePtr value)
-{
- XrmBinding bindings[MAXDBDEPTH+1];
- XrmQuark quarks[MAXDBDEPTH+1];
-
- if (!*pdb) *pdb = NewDatabase();
- _XLockMutex(&(*pdb)->linfo);
- XrmStringToBindingQuarkList(specifier, bindings, quarks);
- PutEntry(*pdb, bindings, quarks, XrmStringToQuark(type), value);
- _XUnlockMutex(&(*pdb)->linfo);
-}
-
-void
-XrmQPutStringResource(
- XrmDatabase *pdb,
- XrmBindingList bindings,
- XrmQuarkList quarks,
- _Xconst char *str)
-{
- XrmValue value;
-
- if (!*pdb) *pdb = NewDatabase();
- value.addr = (XPointer) str;
- value.size = strlen(str)+1;
- _XLockMutex(&(*pdb)->linfo);
- PutEntry(*pdb, bindings, quarks, XrmQString, &value);
- _XUnlockMutex(&(*pdb)->linfo);
-}
-
-/* Function Name: GetDatabase
- * Description: Parses a string and stores it as a database.
- * Arguments: db - the database.
- * str - a pointer to the string containing the database.
- * filename - source filename, if any.
- * doall - whether to do all lines or just one
- */
-
-/*
- * This function is highly optimized to inline as much as possible.
- * Be very careful with modifications, or simplifications, as they
- * may adversely affect the performance.
- *
- * Chris Peterson, MIT X Consortium 5/17/90.
- */
-
-/*
- * Xlib spec says max 100 quarks in a lookup, will stop and return if
- * return if any single production's lhs has more than 100 components.
- */
-#define QLIST_SIZE 100
-
-/*
- * This should be big enough to handle things like the XKeysymDB or biggish
- * ~/.Xdefaults or app-defaults files. Anything bigger will be allocated on
- * the heap.
- */
-#define DEF_BUFF_SIZE 8192
-
-static void GetIncludeFile(
- XrmDatabase db,
- _Xconst char *base,
- _Xconst char *fname,
- int fnamelen,
- int depth);
-
-static void GetDatabase(
- XrmDatabase db,
- _Xconst char *str,
- _Xconst char *filename,
- Bool doall,
- int depth)
-{
- char *rhs;
- char *lhs, lhs_s[DEF_BUFF_SIZE];
- XrmQuark quarks[QLIST_SIZE + 1]; /* allow for a terminal NullQuark */
- XrmBinding bindings[QLIST_SIZE + 1];
-
- register char *ptr;
- register XrmBits bits = 0;
- register char c;
- register Signature sig;
- register char *ptr_max;
- register int num_quarks;
- register XrmBindingList t_bindings;
-
- int len, alloc_chars;
- unsigned long str_len;
- XrmValue value;
- Bool only_pcs;
- Bool dolines;
-
- if (!db)
- return;
-
- /*
- * if strlen (str) < DEF_BUFF_SIZE allocate buffers on the stack for
- * speed otherwise malloc the buffer. From a buffer overflow standpoint
- * we can be sure that neither: a) a component on the lhs, or b) a
- * value on the rhs, will be longer than the overall length of str,
- * i.e. strlen(str).
- *
- * This should give good performance when parsing "*foo: bar" type
- * databases as might be passed with -xrm command line options; but
- * with larger databases, e.g. .Xdefaults, app-defaults, or KeysymDB
- * files, the size of the buffers will be overly large. One way
- * around this would be to double-parse each production with a resulting
- * performance hit. In any event we can be assured that a lhs component
- * name or a rhs value won't be longer than str itself.
- */
-
- str_len = strlen (str);
- if (DEF_BUFF_SIZE > str_len) lhs = lhs_s;
- else if ((lhs = Xmalloc (str_len)) == NULL)
- return;
-
- alloc_chars = DEF_BUFF_SIZE < str_len ? str_len : DEF_BUFF_SIZE;
- if ((rhs = Xmalloc (alloc_chars)) == NULL) {
- if (lhs != lhs_s) Xfree (lhs);
- return;
- }
-
- (*db->methods->mbinit)(db->mbstate);
- str--;
- dolines = True;
- while (!is_EOF(bits) && dolines) {
- dolines = doall;
-
- /*
- * First: Remove extra whitespace.
- */
-
- do {
- bits = next_char(c, str);
- } while is_space(bits);
-
- /*
- * Ignore empty lines.
- */
-
- if (is_EOL(bits))
- continue; /* start a new line. */
-
- /*
- * Second: check the first character in a line to see if it is
- * "!" signifying a comment, or "#" signifying a directive.
- */
-
- if (c == '!') { /* Comment, spin to next newline */
- while (is_simple(bits = next_char(c, str))) {}
- if (is_EOL(bits))
- continue;
- while (!is_EOL(bits = next_mbchar(c, len, str))) {}
- str--;
- continue; /* start a new line. */
- }
-
- if (c == '#') { /* Directive */
- /* remove extra whitespace */
- only_pcs = True;
- while (is_space(bits = next_char(c, str))) {};
- /* only "include" directive is currently defined */
- if (!strncmp(str, "include", 7)) {
- str += (7-1);
- /* remove extra whitespace */
- while (is_space(bits = next_char(c, str))) {};
- /* must have a starting " */
- if (c == '"') {
- _Xconst char *fname = str+1;
- len = 0;
- do {
- if (only_pcs) {
- bits = next_char(c, str);
- if (is_nonpcs(bits))
- only_pcs = False;
- }
- if (!only_pcs)
- bits = next_mbchar(c, len, str);
- } while (c != '"' && !is_EOL(bits));
- /* must have an ending " */
- if (c == '"')
- GetIncludeFile(db, filename, fname, str - len - fname,
- depth);
- }
- }
- /* spin to next newline */
- if (only_pcs) {
- while (is_simple(bits))
- bits = next_char(c, str);
- if (is_EOL(bits))
- continue;
- }
- while (!is_EOL(bits))
- bits = next_mbchar(c, len, str);
- str--;
- continue; /* start a new line. */
- }
-
- /*
- * Third: loop through the LHS of the resource specification
- * storing characters and converting this to a Quark.
- */
-
- num_quarks = 0;
- t_bindings = bindings;
-
- sig = 0;
- ptr = lhs;
- *t_bindings = XrmBindTightly;
- for(;;) {
- if (!is_binding(bits)) {
- while (!is_EOQ(bits)) {
- *ptr++ = c;
- sig = (sig << 1) + c; /* Compute the signature. */
- bits = next_char(c, str);
- }
-
- quarks[num_quarks++] =
- _XrmInternalStringToQuark(lhs, ptr - lhs, sig, False);
-
- if (num_quarks > QLIST_SIZE) {
- Xfree(rhs);
- if (lhs != lhs_s) Xfree (lhs);
- (*db->methods->mbfinish)(db->mbstate);
- return;
- }
-
- if (is_separator(bits)) {
- if (!is_space(bits))
- break;
-
- /* Remove white space */
- do {
- *ptr++ = c;
- sig = (sig << 1) + c; /* Compute the signature. */
- } while (is_space(bits = next_char(c, str)));
-
- /*
- * The spec doesn't permit it, but support spaces
- * internal to resource name/class
- */
-
- if (is_separator(bits))
- break;
- num_quarks--;
- continue;
- }
-
- if (c == '.')
- *(++t_bindings) = XrmBindTightly;
- else
- *(++t_bindings) = XrmBindLoosely;
-
- sig = 0;
- ptr = lhs;
- }
- else {
- /*
- * Magic unspecified feature #254.
- *
- * If two separators appear with no Text between them then
- * ignore them.
- *
- * If anyone of those separators is a '*' then the binding
- * will be loose, otherwise it will be tight.
- */
-
- if (c == '*')
- *t_bindings = XrmBindLoosely;
- }
-
- bits = next_char(c, str);
- }
-
- quarks[num_quarks] = NULLQUARK;
-
- /*
- * Make sure that there is a ':' in this line.
- */
-
- if (c != ':') {
- char oldc;
-
- /*
- * A parsing error has occured, toss everything on the line
- * a new_line can still be escaped with a '\'.
- */
-
- while (is_normal(bits))
- bits = next_char(c, str);
- if (is_EOL(bits))
- continue;
- bits = next_mbchar(c, len, str);
- do {
- oldc = c;
- bits = next_mbchar(c, len, str);
- } while (c && (c != '\n' || oldc == '\\'));
- str--;
- continue;
- }
-
- /*
- * I now have a quark and binding list for the entire left hand
- * side. "c" currently points to the ":" separating the left hand
- * side for the right hand side. It is time to begin processing
- * the right hand side.
- */
-
- /*
- * Fourth: Remove more whitespace
- */
-
- for(;;) {
- if (is_space(bits = next_char(c, str)))
- continue;
- if (c != '\\')
- break;
- bits = next_char(c, str);
- if (c == '\n')
- continue;
- str--;
- bits = BSLASH;
- c = '\\';
- break;
- }
-
- /*
- * Fifth: Process the right hand side.
- */
-
- ptr = rhs;
- ptr_max = ptr + alloc_chars - 4;
- only_pcs = True;
- len = 1;
-
- for(;;) {
-
- /*
- * Tight loop for the normal case: Non backslash, non-end of value
- * character that will fit into the allocated buffer.
- */
-
- if (only_pcs) {
- while (is_normal(bits) && ptr < ptr_max) {
- *ptr++ = c;
- bits = next_char(c, str);
- }
- if (is_EOL(bits))
- break;
- if (is_nonpcs(bits)) {
- only_pcs = False;
- bits = next_mbchar(c, len, str);
- }
- }
- while (!is_special(bits) && ptr + len <= ptr_max) {
- len = -len;
- while (len)
- *ptr++ = str[len++];
- if (*str == '\0') {
- bits = EOS;
- break;
- }
- bits = next_mbchar(c, len, str);
- }
-
- if (is_EOL(bits)) {
- str--;
- break;
- }
-
- if (c == '\\') {
- /*
- * We need to do some magic after a backslash.
- */
- Bool read_next = True;
-
- if (only_pcs) {
- bits = next_char(c, str);
- if (is_nonpcs(bits))
- only_pcs = False;
- }
- if (!only_pcs)
- bits = next_mbchar(c, len, str);
-
- if (is_EOL(bits)) {
- if (is_EOF(bits))
- continue;
- } else if (c == 'n') {
- /*
- * "\n" means insert a newline.
- */
- *ptr++ = '\n';
- } else if (c == '\\') {
- /*
- * "\\" completes to just one backslash.
- */
- *ptr++ = '\\';
- } else {
- /*
- * pick up to three octal digits after the '\'.
- */
- char temp[3];
- int count = 0;
- while (is_odigit(bits) && count < 3) {
- temp[count++] = c;
- if (only_pcs) {
- bits = next_char(c, str);
- if (is_nonpcs(bits))
- only_pcs = False;
- }
- if (!only_pcs)
- bits = next_mbchar(c, len, str);
- }
-
- /*
- * If we found three digits then insert that octal code
- * into the value string as a character.
- */
-
- if (count == 3) {
- *ptr++ = (unsigned char) ((temp[0] - '0') * 0100 +
- (temp[1] - '0') * 010 +
- (temp[2] - '0'));
- }
- else {
- int tcount;
-
- /*
- * Otherwise just insert those characters into the
- * string, since no special processing is needed on
- * numerics we can skip the special processing.
- */
-
- for (tcount = 0; tcount < count; tcount++) {
- *ptr++ = temp[tcount]; /* print them in
- the correct order */
- }
- }
- read_next = False;
- }
- if (read_next) {
- if (only_pcs) {
- bits = next_char(c, str);
- if (is_nonpcs(bits))
- only_pcs = False;
- }
- if (!only_pcs)
- bits = next_mbchar(c, len, str);
- }
- }
-
- /*
- * It is important to make sure that there is room for at least
- * four more characters in the buffer, since I can add that
- * many characters into the buffer after a backslash has occured.
- */
-
- if (ptr + len > ptr_max) {
- char * temp_str;
-
- alloc_chars += BUFSIZ/10;
- temp_str = Xrealloc(rhs, sizeof(char) * alloc_chars);
-
- if (!temp_str) {
- Xfree(rhs);
- if (lhs != lhs_s) Xfree (lhs);
- (*db->methods->mbfinish)(db->mbstate);
- return;
- }
-
- ptr = temp_str + (ptr - rhs); /* reset pointer. */
- rhs = temp_str;
- ptr_max = rhs + alloc_chars - 4;
- }
- }
-
- /*
- * Lastly: Terminate the value string, and store this entry
- * into the database.
- */
-
- *ptr++ = '\0';
-
- /* Store it in database */
- value.size = ptr - rhs;
- value.addr = (XPointer) rhs;
-
- PutEntry(db, bindings, quarks, XrmQString, &value);
- }
-
- if (lhs != lhs_s) Xfree (lhs);
- Xfree (rhs);
-
- (*db->methods->mbfinish)(db->mbstate);
-}
-
-void
-XrmPutStringResource(
- XrmDatabase *pdb,
- _Xconst char*specifier,
- _Xconst char*str)
-{
- XrmValue value;
- XrmBinding bindings[MAXDBDEPTH+1];
- XrmQuark quarks[MAXDBDEPTH+1];
-
- if (!*pdb) *pdb = NewDatabase();
- XrmStringToBindingQuarkList(specifier, bindings, quarks);
- value.addr = (XPointer) str;
- value.size = strlen(str)+1;
- _XLockMutex(&(*pdb)->linfo);
- PutEntry(*pdb, bindings, quarks, XrmQString, &value);
- _XUnlockMutex(&(*pdb)->linfo);
-}
-
-
-void
-XrmPutLineResource(
- XrmDatabase *pdb,
- _Xconst char*line)
-{
- if (!*pdb) *pdb = NewDatabase();
- _XLockMutex(&(*pdb)->linfo);
- GetDatabase(*pdb, line, (char *)NULL, False, 0);
- _XUnlockMutex(&(*pdb)->linfo);
-}
-
-XrmDatabase
-XrmGetStringDatabase(
- _Xconst char *data)
-{
- XrmDatabase db;
-
- db = NewDatabase();
- _XLockMutex(&db->linfo);
- GetDatabase(db, data, (char *)NULL, True, 0);
- _XUnlockMutex(&db->linfo);
- return db;
-}
-
-/* Function Name: ReadInFile
- * Description: Reads the file into a buffer.
- * Arguments: filename - the name of the file.
- * Returns: An allocated string containing the contents of the file.
- */
-
-static char *
-ReadInFile(_Xconst char *filename)
-{
- register int fd, size;
- char * filebuf;
-
- /*
- * MS-Windows and OS/2 note: Default open mode includes O_TEXT
- */
- if ( (fd = _XOpenFile (filename, O_RDONLY)) == -1 )
- return (char *)NULL;
-
- /*
- * MS-Windows and OS/2 note: depending on how the sources are
- * untarred, the newlines in resource files may or may not have
- * been expanded to CRLF. Either way the size returned by fstat
- * is sufficient to read the file into because in text-mode any
- * CRLFs in a file will be converted to newlines (LF) with the
- * result that the number of bytes actually read with be <=
- * to the size returned by fstat.
- */
- {
- struct stat status_buffer;
- if ( ((fstat(fd, &status_buffer)) == -1 ) ||
- (status_buffer.st_size >= INT_MAX) ) {
- close (fd);
- return (char *)NULL;
- } else
- size = (int) status_buffer.st_size;
- }
-
- if (!(filebuf = Xmalloc(size + 1))) { /* leave room for '\0' */
- close(fd);
- return (char *)NULL;
- }
- size = read (fd, filebuf, size);
-
- if (size < 0) {
- close (fd);
- Xfree(filebuf);
- return (char *)NULL;
- }
- close (fd);
-
- filebuf[size] = '\0'; /* NULL terminate it. */
- return filebuf;
-}
-
-static void
-GetIncludeFile(
- XrmDatabase db,
- _Xconst char *base,
- _Xconst char *fname,
- int fnamelen,
- int depth)
-{
- int len;
- char *str;
- char realfname[BUFSIZ];
-
- if (fnamelen <= 0 || fnamelen >= BUFSIZ)
- return;
- if (depth >= MAXDBDEPTH)
- return;
- if (*fname != '/' && base && (str = strrchr(base, '/'))) {
- len = str - base + 1;
- if (len + fnamelen >= BUFSIZ)
- return;
- strncpy(realfname, base, len);
- strncpy(realfname + len, fname, fnamelen);
- realfname[len + fnamelen] = '\0';
- } else {
- strncpy(realfname, fname, fnamelen);
- realfname[fnamelen] = '\0';
- }
- if (!(str = ReadInFile(realfname)))
- return;
- GetDatabase(db, str, realfname, True, depth + 1);
- Xfree(str);
-}
-
-XrmDatabase
-XrmGetFileDatabase(
- _Xconst char *filename)
-{
- XrmDatabase db;
- char *str;
-
- if (!(str = ReadInFile(filename)))
- return (XrmDatabase)NULL;
-
- db = NewDatabase();
- _XLockMutex(&db->linfo);
- GetDatabase(db, str, filename, True, 0);
- _XUnlockMutex(&db->linfo);
- Xfree(str);
- return db;
-}
-
-Status
-XrmCombineFileDatabase(
- _Xconst char *filename,
- XrmDatabase *target,
- Bool override)
-{
- XrmDatabase db;
- char *str;
-
- if (!(str = ReadInFile(filename)))
- return 0;
- if (override) {
- db = *target;
- if (!db)
- *target = db = NewDatabase();
- } else
- db = NewDatabase();
- _XLockMutex(&db->linfo);
- GetDatabase(db, str, filename, True, 0);
- _XUnlockMutex(&db->linfo);
- Xfree(str);
- if (!override)
- XrmCombineDatabase(db, target, False);
- return 1;
-}
-
-/* call the user proc for every value in the table, arbitrary order.
- * stop if user proc returns True. level is current depth in database.
- */
-/*ARGSUSED*/
-static Bool EnumLTable(
- LTable table,
- XrmNameList names,
- XrmClassList classes,
- register int level,
- register EClosure closure)
-{
- register VEntry *bucket;
- register int i;
- register VEntry entry;
- XrmValue value;
- XrmRepresentation type;
- Bool tightOk;
-
- closure->bindings[level] = (table->table.tight ?
- XrmBindTightly : XrmBindLoosely);
- closure->quarks[level] = table->table.name;
- level++;
- tightOk = !*names;
- closure->quarks[level + 1] = NULLQUARK;
- for (i = table->table.mask, bucket = table->buckets;
- i >= 0;
- i--, bucket++) {
- for (entry = *bucket; entry; entry = entry->next) {
- if (entry->tight && !tightOk)
- continue;
- closure->bindings[level] = (entry->tight ?
- XrmBindTightly : XrmBindLoosely);
- closure->quarks[level] = entry->name;
- value.size = entry->size;
- if (entry->string) {
- type = XrmQString;
- value.addr = StringValue(entry);
- } else {
- type = RepType(entry);
- value.addr = DataValue(entry);
- }
- if ((*closure->proc)(&closure->db, closure->bindings+1,
- closure->quarks+1, &type, &value,
- closure->closure))
- return True;
- }
- }
- return False;
-}
-
-static Bool EnumAllNTable(
- NTable table,
- register int level,
- register EClosure closure)
-{
- register NTable *bucket;
- register int i;
- register NTable entry;
- XrmQuark empty = NULLQUARK;
-
- if (level >= MAXDBDEPTH)
- return False;
- for (i = table->mask, bucket = NodeBuckets(table);
- i >= 0;
- i--, bucket++) {
- for (entry = *bucket; entry; entry = entry->next) {
- if (entry->leaf) {
- if (EnumLTable((LTable)entry, &empty, &empty, level, closure))
- return True;
- } else {
- closure->bindings[level] = (entry->tight ?
- XrmBindTightly : XrmBindLoosely);
- closure->quarks[level] = entry->name;
- if (EnumAllNTable(entry, level+1, closure))
- return True;
- }
- }
- }
- return False;
-}
-
-/* recurse on every table in the table, arbitrary order.
- * stop if user proc returns True. level is current depth in database.
- */
-static Bool EnumNTable(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- register int level,
- register EClosure closure)
-{
- register NTable entry;
- register XrmQuark q;
- register unsigned int leaf;
- Bool (*get)(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- register int level,
- EClosure closure);
- Bool bilevel;
-
-/* find entries named ename, leafness leaf, tight or loose, and call get */
-#define ITIGHTLOOSE(ename) \
- NFIND(ename); \
- if (entry) { \
- if (leaf == entry->leaf) { \
- if (!leaf && !entry->tight && entry->next && \
- entry->next->name == q && entry->next->tight && \
- (bilevel || entry->next->hasloose) && \
- EnumLTable((LTable)entry->next, names+1, classes+1, \
- level, closure)) \
- return True; \
- if ((*get)(entry, names+1, classes+1, level, closure)) \
- return True; \
- if (entry->tight && (entry = entry->next) && \
- entry->name == q && leaf == entry->leaf && \
- (*get)(entry, names+1, classes+1, level, closure)) \
- return True; \
- } else if (entry->leaf) { \
- if ((bilevel || entry->hasloose) && \
- EnumLTable((LTable)entry, names+1, classes+1, level, closure))\
- return True; \
- if (entry->tight && (entry = entry->next) && \
- entry->name == q && (bilevel || entry->hasloose) && \
- EnumLTable((LTable)entry, names+1, classes+1, level, closure))\
- return True; \
- } \
- }
-
-/* find entries named ename, leafness leaf, loose only, and call get */
-#define ILOOSE(ename) \
- NFIND(ename); \
- if (entry && entry->tight && (entry = entry->next) && entry->name != q) \
- entry = (NTable)NULL; \
- if (entry) { \
- if (leaf == entry->leaf) { \
- if ((*get)(entry, names+1, classes+1, level, closure)) \
- return True; \
- } else if (entry->leaf && (bilevel || entry->hasloose)) { \
- if (EnumLTable((LTable)entry, names+1, classes+1, level, closure))\
- return True; \
- } \
- }
-
- if (level >= MAXDBDEPTH)
- return False;
- closure->bindings[level] = (table->tight ?
- XrmBindTightly : XrmBindLoosely);
- closure->quarks[level] = table->name;
- level++;
- if (!*names) {
- if (EnumAllNTable(table, level, closure))
- return True;
- } else {
- if (names[1] || closure->mode == XrmEnumAllLevels) {
- get = EnumNTable; /* recurse */
- leaf = 0;
- bilevel = !names[1];
- } else {
- get = (getNTableEProcp)EnumLTable; /* bottom of recursion */
- leaf = 1;
- bilevel = False;
- }
- if (table->hasloose && closure->mode == XrmEnumAllLevels) {
- NTable *bucket;
- int i;
- XrmQuark empty = NULLQUARK;
-
- for (i = table->mask, bucket = NodeBuckets(table);
- i >= 0;
- i--, bucket++) {
- q = NULLQUARK;
- for (entry = *bucket; entry; entry = entry->next) {
- if (!entry->tight && entry->name != q &&
- entry->name != *names && entry->name != *classes) {
- q = entry->name;
- if (entry->leaf) {
- if (EnumLTable((LTable)entry, &empty, &empty,
- level, closure))
- return True;
- } else {
- if (EnumNTable(entry, &empty, &empty,
- level, closure))
- return True;
- }
- }
- }
- }
- }
-
- ITIGHTLOOSE(*names); /* do name, tight and loose */
- ITIGHTLOOSE(*classes); /* do class, tight and loose */
- if (table->hasany) {
- ITIGHTLOOSE(XrmQANY); /* do ANY, tight and loose */
- }
- if (table->hasloose) {
- while (1) {
- names++;
- classes++;
- if (!*names)
- break;
- if (!names[1] && closure->mode != XrmEnumAllLevels) {
- get = (getNTableEProcp)EnumLTable; /* bottom of recursion */
- leaf = 1;
- }
- ILOOSE(*names); /* loose names */
- ILOOSE(*classes); /* loose classes */
- if (table->hasany) {
- ILOOSE(XrmQANY); /* loose ANY */
- }
- }
- names--;
- classes--;
- }
- }
- /* now look for matching leaf nodes */
- entry = table->next;
- if (!entry)
- return False;
- if (entry->leaf) {
- if (entry->tight && !table->tight)
- entry = entry->next;
- } else {
- entry = entry->next;
- if (!entry || !entry->tight)
- return False;
- }
- if (!entry || entry->name != table->name)
- return False;
- /* found one */
- level--;
- if ((!*names || entry->hasloose) &&
- EnumLTable((LTable)entry, names, classes, level, closure))
- return True;
- if (entry->tight && entry == table->next && (entry = entry->next) &&
- entry->name == table->name && (!*names || entry->hasloose))
- return EnumLTable((LTable)entry, names, classes, level, closure);
- return False;
-
-#undef ITIGHTLOOSE
-#undef ILOOSE
-}
-
-/* call the proc for every value in the database, arbitrary order.
- * stop if the proc returns True.
- */
-Bool XrmEnumerateDatabase(
- XrmDatabase db,
- XrmNameList names,
- XrmClassList classes,
- int mode,
- DBEnumProc proc,
- XPointer closure)
-{
- XrmBinding bindings[MAXDBDEPTH+2];
- XrmQuark quarks[MAXDBDEPTH+2];
- register NTable table;
- EClosureRec eclosure;
- Bool retval = False;
-
- if (!db)
- return False;
- _XLockMutex(&db->linfo);
- eclosure.db = db;
- eclosure.proc = proc;
- eclosure.closure = closure;
- eclosure.bindings = bindings;
- eclosure.quarks = quarks;
- eclosure.mode = mode;
- table = db->table;
- if (table && !table->leaf && !*names && mode == XrmEnumOneLevel)
- table = table->next;
- if (table) {
- if (!table->leaf)
- retval = EnumNTable(table, names, classes, 0, &eclosure);
- else
- retval = EnumLTable((LTable)table, names, classes, 0, &eclosure);
- }
- _XUnlockMutex(&db->linfo);
- return retval;
-}
-
-static void PrintBindingQuarkList(
- XrmBindingList bindings,
- XrmQuarkList quarks,
- FILE *stream)
-{
- Bool firstNameSeen;
-
- for (firstNameSeen = False; *quarks; bindings++, quarks++) {
- if (*bindings == XrmBindLoosely) {
- (void) fprintf(stream, "*");
- } else if (firstNameSeen) {
- (void) fprintf(stream, ".");
- }
- firstNameSeen = True;
- (void) fputs(XrmQuarkToString(*quarks), stream);
- }
-}
-
-/* output out the entry in correct file syntax */
-/*ARGSUSED*/
-static Bool DumpEntry(
- XrmDatabase *db,
- XrmBindingList bindings,
- XrmQuarkList quarks,
- XrmRepresentation *type,
- XrmValuePtr value,
- XPointer data)
-{
- FILE *stream = (FILE *)data;
- register unsigned int i;
- register char *s;
- register char c;
-
- if (*type != XrmQString)
- (void) putc('!', stream);
- PrintBindingQuarkList(bindings, quarks, stream);
- s = value->addr;
- i = value->size;
- if (*type == XrmQString) {
- (void) fputs(":\t", stream);
- if (i)
- i--;
- }
- else
- (void) fprintf(stream, "=%s:\t", XrmRepresentationToString(*type));
- if (i && (*s == ' ' || *s == '\t'))
- (void) putc('\\', stream); /* preserve leading whitespace */
- while (i--) {
- c = *s++;
- if (c == '\n') {
- if (i)
- (void) fputs("\\n\\\n", stream);
- else
- (void) fputs("\\n", stream);
- } else if (c == '\\')
- (void) fputs("\\\\", stream);
- else if ((c < ' ' && c != '\t') ||
- ((unsigned char)c >= 0x7f && (unsigned char)c < 0xa0))
- (void) fprintf(stream, "\\%03o", (unsigned char)c);
- else
- (void) putc(c, stream);
- }
- (void) putc('\n', stream);
- return ferror(stream) != 0;
-}
-
-#ifdef DEBUG
-
-void PrintTable(
- NTable table,
- FILE *file)
-{
- XrmBinding bindings[MAXDBDEPTH+1];
- XrmQuark quarks[MAXDBDEPTH+1];
- EClosureRec closure;
- XrmQuark empty = NULLQUARK;
-
- closure.db = (XrmDatabase)NULL;
- closure.proc = DumpEntry;
- closure.closure = (XPointer)file;
- closure.bindings = bindings;
- closure.quarks = quarks;
- closure.mode = XrmEnumAllLevels;
- if (table->leaf)
- EnumLTable((LTable)table, &empty, &empty, 0, &closure);
- else
- EnumNTable(table, &empty, &empty, 0, &closure);
-}
-
-#endif /* DEBUG */
-
-void
-XrmPutFileDatabase(
- XrmDatabase db,
- _Xconst char *fileName)
-{
- FILE *file;
- XrmQuark empty = NULLQUARK;
-
- if (!db) return;
- if (!(file = fopen(fileName, "w"))) return;
- if (XrmEnumerateDatabase(db, &empty, &empty, XrmEnumAllLevels,
- DumpEntry, (XPointer) file))
- unlink((char *)fileName);
- fclose(file);
-}
-
-/* macros used in get/search functions */
-
-/* find entries named ename, leafness leaf, tight or loose, and call get */
-#define GTIGHTLOOSE(ename,looseleaf) \
- NFIND(ename); \
- if (entry) { \
- if (leaf == entry->leaf) { \
- if (!leaf && !entry->tight && entry->next && \
- entry->next->name == q && entry->next->tight && \
- entry->next->hasloose && \
- looseleaf((LTable)entry->next, names+1, classes+1, closure)) \
- return True; \
- if ((*get)(entry, names+1, classes+1, closure)) \
- return True; \
- if (entry->tight && (entry = entry->next) && \
- entry->name == q && leaf == entry->leaf && \
- (*get)(entry, names+1, classes+1, closure)) \
- return True; \
- } else if (entry->leaf) { \
- if (entry->hasloose && \
- looseleaf((LTable)entry, names+1, classes+1, closure)) \
- return True; \
- if (entry->tight && (entry = entry->next) && \
- entry->name == q && entry->hasloose && \
- looseleaf((LTable)entry, names+1, classes+1, closure)) \
- return True; \
- } \
- }
-
-/* find entries named ename, leafness leaf, loose only, and call get */
-#define GLOOSE(ename,looseleaf) \
- NFIND(ename); \
- if (entry && entry->tight && (entry = entry->next) && entry->name != q) \
- entry = (NTable)NULL; \
- if (entry) { \
- if (leaf == entry->leaf) { \
- if ((*get)(entry, names+1, classes+1, closure)) \
- return True; \
- } else if (entry->leaf && entry->hasloose) { \
- if (looseleaf((LTable)entry, names+1, classes+1, closure)) \
- return True; \
- } \
- }
-
-/* add tight/loose entry to the search list, return True if list is full */
-/*ARGSUSED*/
-static Bool AppendLEntry(
- LTable table,
- XrmNameList names,
- XrmClassList classes,
- register SClosure closure)
-{
- /* check for duplicate */
- if (closure->idx >= 0 && closure->list[closure->idx] == table)
- return False;
- if (closure->idx == closure->limit)
- return True;
- /* append it */
- closure->idx++;
- closure->list[closure->idx] = table;
- return False;
-}
-
-/* add loose entry to the search list, return True if list is full */
-/*ARGSUSED*/
-static Bool AppendLooseLEntry(
- LTable table,
- XrmNameList names,
- XrmClassList classes,
- register SClosure closure)
-{
- /* check for duplicate */
- if (closure->idx >= 0 && closure->list[closure->idx] == table)
- return False;
- if (closure->idx >= closure->limit - 1)
- return True;
- /* append it */
- closure->idx++;
- closure->list[closure->idx] = LOOSESEARCH;
- closure->idx++;
- closure->list[closure->idx] = table;
- return False;
-}
-
-/* search for a leaf table */
-static Bool SearchNEntry(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- SClosure closure)
-{
- register NTable entry;
- register XrmQuark q;
- register unsigned int leaf;
- Bool (*get)(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- SClosure closure);
-
- if (names[1]) {
- get = SearchNEntry; /* recurse */
- leaf = 0;
- } else {
- get = (getNTableSProcp)AppendLEntry; /* bottom of recursion */
- leaf = 1;
- }
- GTIGHTLOOSE(*names, AppendLooseLEntry); /* do name, tight and loose */
- GTIGHTLOOSE(*classes, AppendLooseLEntry); /* do class, tight and loose */
- if (table->hasany) {
- GTIGHTLOOSE(XrmQANY, AppendLooseLEntry); /* do ANY, tight and loose */
- }
- if (table->hasloose) {
- while (1) {
- names++;
- classes++;
- if (!*names)
- break;
- if (!names[1]) {
- get = (getNTableSProcp)AppendLEntry; /* bottom of recursion */
- leaf = 1;
- }
- GLOOSE(*names, AppendLooseLEntry); /* loose names */
- GLOOSE(*classes, AppendLooseLEntry); /* loose classes */
- if (table->hasany) {
- GLOOSE(XrmQANY, AppendLooseLEntry); /* loose ANY */
- }
- }
- }
- /* now look for matching leaf nodes */
- entry = table->next;
- if (!entry)
- return False;
- if (entry->leaf) {
- if (entry->tight && !table->tight)
- entry = entry->next;
- } else {
- entry = entry->next;
- if (!entry || !entry->tight)
- return False;
- }
- if (!entry || entry->name != table->name)
- return False;
- /* found one */
- if (entry->hasloose &&
- AppendLooseLEntry((LTable)entry, names, classes, closure))
- return True;
- if (entry->tight && entry == table->next && (entry = entry->next) &&
- entry->name == table->name && entry->hasloose)
- return AppendLooseLEntry((LTable)entry, names, classes, closure);
- return False;
-}
-
-Bool XrmQGetSearchList(
- XrmDatabase db,
- XrmNameList names,
- XrmClassList classes,
- XrmSearchList searchList, /* RETURN */
- int listLength)
-{
- register NTable table;
- SClosureRec closure;
-
- if (listLength <= 0)
- return False;
- closure.list = (LTable *)searchList;
- closure.idx = -1;
- closure.limit = listLength - 2;
- if (db) {
- _XLockMutex(&db->linfo);
- table = db->table;
- if (*names) {
- if (table && !table->leaf) {
- if (SearchNEntry(table, names, classes, &closure)) {
- _XUnlockMutex(&db->linfo);
- return False;
- }
- } else if (table && table->hasloose &&
- AppendLooseLEntry((LTable)table, names, classes,
- &closure)) {
- _XUnlockMutex(&db->linfo);
- return False;
- }
- } else {
- if (table && !table->leaf)
- table = table->next;
- if (table &&
- AppendLEntry((LTable)table, names, classes, &closure)) {
- _XUnlockMutex(&db->linfo);
- return False;
- }
- }
- _XUnlockMutex(&db->linfo);
- }
- closure.list[closure.idx + 1] = (LTable)NULL;
- return True;
-}
-
-Bool XrmQGetSearchResource(
- XrmSearchList searchList,
- register XrmName name,
- register XrmClass class,
- XrmRepresentation *pType, /* RETURN */
- XrmValue *pValue) /* RETURN */
-{
- register LTable *list;
- register LTable table;
- register VEntry entry = NULL;
- int flags;
-
-/* find tight or loose entry */
-#define VTIGHTLOOSE(q) \
- entry = LeafHash(table, q); \
- while (entry && entry->name != q) \
- entry = entry->next; \
- if (entry) \
- break
-
-/* find loose entry */
-#define VLOOSE(q) \
- entry = LeafHash(table, q); \
- while (entry && entry->name != q) \
- entry = entry->next; \
- if (entry) { \
- if (!entry->tight) \
- break; \
- if ((entry = entry->next) && entry->name == q) \
- break; \
- }
-
- list = (LTable *)searchList;
- /* figure out which combination of name and class we need to search for */
- flags = 0;
- if (IsResourceQuark(name))
- flags = 2;
- if (IsResourceQuark(class))
- flags |= 1;
- if (!flags) {
- /* neither name nor class has ever been used to name a resource */
- table = (LTable)NULL;
- } else if (flags == 3) {
- /* both name and class */
- while ((table = *list++)) {
- if (table != LOOSESEARCH) {
- VTIGHTLOOSE(name); /* do name, tight and loose */
- VTIGHTLOOSE(class); /* do class, tight and loose */
- } else {
- table = *list++;
- VLOOSE(name); /* do name, loose only */
- VLOOSE(class); /* do class, loose only */
- }
- }
- } else {
- /* just one of name or class */
- if (flags == 1)
- name = class;
- while ((table = *list++)) {
- if (table != LOOSESEARCH) {
- VTIGHTLOOSE(name); /* tight and loose */
- } else {
- table = *list++;
- VLOOSE(name); /* loose only */
- }
- }
- }
- if (table) {
- /* found a match */
- if (entry->string) {
- *pType = XrmQString;
- pValue->addr = StringValue(entry);
- } else {
- *pType = RepType(entry);
- pValue->addr = DataValue(entry);
- }
- pValue->size = entry->size;
- return True;
- }
- *pType = NULLQUARK;
- pValue->addr = (XPointer)NULL;
- pValue->size = 0;
- return False;
-
-#undef VTIGHTLOOSE
-#undef VLOOSE
-}
-
-/* look for a tight/loose value */
-static Bool GetVEntry(
- LTable table,
- XrmNameList names,
- XrmClassList classes,
- VClosure closure)
-{
- register VEntry entry;
- register XrmQuark q;
-
- /* try name first */
- q = *names;
- entry = LeafHash(table, q);
- while (entry && entry->name != q)
- entry = entry->next;
- if (!entry) {
- /* not found, try class */
- q = *classes;
- entry = LeafHash(table, q);
- while (entry && entry->name != q)
- entry = entry->next;
- if (!entry)
- return False;
- }
- if (entry->string) {
- *closure->type = XrmQString;
- closure->value->addr = StringValue(entry);
- } else {
- *closure->type = RepType(entry);
- closure->value->addr = DataValue(entry);
- }
- closure->value->size = entry->size;
- return True;
-}
-
-/* look for a loose value */
-static Bool GetLooseVEntry(
- LTable table,
- XrmNameList names,
- XrmClassList classes,
- VClosure closure)
-{
- register VEntry entry;
- register XrmQuark q;
-
-#define VLOOSE(ename) \
- q = ename; \
- entry = LeafHash(table, q); \
- while (entry && entry->name != q) \
- entry = entry->next; \
- if (entry && entry->tight && (entry = entry->next) && entry->name != q) \
- entry = (VEntry)NULL;
-
- /* bump to last component */
- while (names[1]) {
- names++;
- classes++;
- }
- VLOOSE(*names); /* do name, loose only */
- if (!entry) {
- VLOOSE(*classes); /* do class, loose only */
- if (!entry)
- return False;
- }
- if (entry->string) {
- *closure->type = XrmQString;
- closure->value->addr = StringValue(entry);
- } else {
- *closure->type = RepType(entry);
- closure->value->addr = DataValue(entry);
- }
- closure->value->size = entry->size;
- return True;
-
-#undef VLOOSE
-}
-
-/* recursive search for a value */
-static Bool GetNEntry(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- VClosure closure)
-{
- register NTable entry;
- register XrmQuark q;
- register unsigned int leaf;
- Bool (*get)(
- NTable table,
- XrmNameList names,
- XrmClassList classes,
- VClosure closure);
- NTable otable;
-
- if (names[2]) {
- get = GetNEntry; /* recurse */
- leaf = 0;
- } else {
- get = (getNTableVProcp)GetVEntry; /* bottom of recursion */
- leaf = 1;
- }
- GTIGHTLOOSE(*names, GetLooseVEntry); /* do name, tight and loose */
- GTIGHTLOOSE(*classes, GetLooseVEntry); /* do class, tight and loose */
- if (table->hasany) {
- GTIGHTLOOSE(XrmQANY, GetLooseVEntry); /* do ANY, tight and loose */
- }
- if (table->hasloose) {
- while (1) {
- names++;
- classes++;
- if (!names[1])
- break;
- if (!names[2]) {
- get = (getNTableVProcp)GetVEntry; /* bottom of recursion */
- leaf = 1;
- }
- GLOOSE(*names, GetLooseVEntry); /* do name, loose only */
- GLOOSE(*classes, GetLooseVEntry); /* do class, loose only */
- if (table->hasany) {
- GLOOSE(XrmQANY, GetLooseVEntry); /* do ANY, loose only */
- }
- }
- }
- /* look for matching leaf tables */
- otable = table;
- table = table->next;
- if (!table)
- return False;
- if (table->leaf) {
- if (table->tight && !otable->tight)
- table = table->next;
- } else {
- table = table->next;
- if (!table || !table->tight)
- return False;
- }
- if (!table || table->name != otable->name)
- return False;
- /* found one */
- if (table->hasloose &&
- GetLooseVEntry((LTable)table, names, classes, closure))
- return True;
- if (table->tight && table == otable->next) {
- table = table->next;
- if (table && table->name == otable->name && table->hasloose)
- return GetLooseVEntry((LTable)table, names, classes, closure);
- }
- return False;
-}
-
-Bool XrmQGetResource(
- XrmDatabase db,
- XrmNameList names,
- XrmClassList classes,
- XrmRepresentation *pType, /* RETURN */
- XrmValuePtr pValue) /* RETURN */
-{
- register NTable table;
- VClosureRec closure;
-
- if (db && *names) {
- _XLockMutex(&db->linfo);
- closure.type = pType;
- closure.value = pValue;
- table = db->table;
- if (names[1]) {
- if (table && !table->leaf) {
- if (GetNEntry(table, names, classes, &closure)) {
- _XUnlockMutex(&db->linfo);
- return True;
- }
- } else if (table && table->hasloose &&
- GetLooseVEntry((LTable)table, names, classes, &closure)) {
- _XUnlockMutex (&db->linfo);
- return True;
- }
- } else {
- if (table && !table->leaf)
- table = table->next;
- if (table && GetVEntry((LTable)table, names, classes, &closure)) {
- _XUnlockMutex(&db->linfo);
- return True;
- }
- }
- _XUnlockMutex(&db->linfo);
- }
- *pType = NULLQUARK;
- pValue->addr = (XPointer)NULL;
- pValue->size = 0;
- return False;
-}
-
-Bool
-XrmGetResource(XrmDatabase db, _Xconst char *name_str, _Xconst char *class_str,
- XrmString *pType_str, XrmValuePtr pValue)
-{
- XrmName names[MAXDBDEPTH+1];
- XrmClass classes[MAXDBDEPTH+1];
- XrmRepresentation fromType;
- Bool result;
-
- XrmStringToNameList(name_str, names);
- XrmStringToClassList(class_str, classes);
- result = XrmQGetResource(db, names, classes, &fromType, pValue);
- (*pType_str) = XrmQuarkToString(fromType);
- return result;
-}
-
-/* destroy all values, plus table itself */
-static void DestroyLTable(
- LTable table)
-{
- register int i;
- register VEntry *buckets;
- register VEntry entry, next;
-
- buckets = table->buckets;
- for (i = table->table.mask; i >= 0; i--, buckets++) {
- for (next = *buckets; (entry = next); ) {
- next = entry->next;
- Xfree(entry);
- }
- }
- Xfree(table->buckets);
- Xfree(table);
-}
-
-/* destroy all contained tables, plus table itself */
-static void DestroyNTable(
- NTable table)
-{
- register int i;
- register NTable *buckets;
- register NTable entry, next;
-
- buckets = NodeBuckets(table);
- for (i = table->mask; i >= 0; i--, buckets++) {
- for (next = *buckets; (entry = next); ) {
- next = entry->next;
- if (entry->leaf)
- DestroyLTable((LTable)entry);
- else
- DestroyNTable(entry);
- }
- }
- Xfree(table);
-}
-
-const char *
-XrmLocaleOfDatabase(
- XrmDatabase db)
-{
- const char* retval;
- _XLockMutex(&db->linfo);
- retval = (*db->methods->lcname)(db->mbstate);
- _XUnlockMutex(&db->linfo);
- return retval;
-}
-
-void XrmDestroyDatabase(
- XrmDatabase db)
-{
- register NTable table, next;
-
- if (db) {
- _XLockMutex(&db->linfo);
- for (next = db->table; (table = next); ) {
- next = table->next;
- if (table->leaf)
- DestroyLTable((LTable)table);
- else
- DestroyNTable(table);
- }
- _XUnlockMutex(&db->linfo);
- _XFreeMutex(&db->linfo);
- (*db->methods->destroy)(db->mbstate);
- Xfree(db);
- }
-}
diff --git a/nx-X11/lib/X11/Xutil.h b/nx-X11/lib/X11/Xutil.h
deleted file mode 100644
index 48fa23cf5..000000000
--- a/nx-X11/lib/X11/Xutil.h
+++ /dev/null
@@ -1,839 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#if !defined(_X11_XUTIL_H_) && !defined(_XUTIL_H_)
-#define _X11_XUTIL_H_
-#define _XUTIL_H_
-
-/* You must include <X11/Xlib.h> before including this file */
-#include <nx-X11/Xlib.h>
-#include <nx-X11/keysym.h>
-
-/* The Xlib structs are full of implicit padding to properly align members.
- We can't clean that up without breaking ABI, so tell clang not to bother
- complaining about it. */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-/*
- * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
- * value (x, y, width, height) was found in the parsed string.
- */
-#define NoValue 0x0000
-#define XValue 0x0001
-#define YValue 0x0002
-#define WidthValue 0x0004
-#define HeightValue 0x0008
-#define AllValues 0x000F
-#define XNegative 0x0010
-#define YNegative 0x0020
-
-/*
- * new version containing base_width, base_height, and win_gravity fields;
- * used with WM_NORMAL_HINTS.
- */
-typedef struct {
- long flags; /* marks which fields in this structure are defined */
- int x, y; /* obsolete for new window mgrs, but clients */
- int width, height; /* should set so old wm's don't mess up */
- int min_width, min_height;
- int max_width, max_height;
- int width_inc, height_inc;
- struct {
- int x; /* numerator */
- int y; /* denominator */
- } min_aspect, max_aspect;
- int base_width, base_height; /* added by ICCCM version 1 */
- int win_gravity; /* added by ICCCM version 1 */
-} XSizeHints;
-
-/*
- * The next block of definitions are for window manager properties that
- * clients and applications use for communication.
- */
-
-/* flags argument in size hints */
-#define USPosition (1L << 0) /* user specified x, y */
-#define USSize (1L << 1) /* user specified width, height */
-
-#define PPosition (1L << 2) /* program specified position */
-#define PSize (1L << 3) /* program specified size */
-#define PMinSize (1L << 4) /* program specified minimum size */
-#define PMaxSize (1L << 5) /* program specified maximum size */
-#define PResizeInc (1L << 6) /* program specified resize increments */
-#define PAspect (1L << 7) /* program specified min and max aspect ratios */
-#define PBaseSize (1L << 8) /* program specified base for incrementing */
-#define PWinGravity (1L << 9) /* program specified window gravity */
-
-/* obsolete */
-#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
-
-
-
-typedef struct {
- long flags; /* marks which fields in this structure are defined */
- Bool input; /* does this application rely on the window manager to
- get keyboard input? */
- int initial_state; /* see below */
- Pixmap icon_pixmap; /* pixmap to be used as icon */
- Window icon_window; /* window to be used as icon */
- int icon_x, icon_y; /* initial position of icon */
- Pixmap icon_mask; /* icon mask bitmap */
- XID window_group; /* id of related window group */
- /* this structure may be extended in the future */
-} XWMHints;
-
-/* definition for flags of XWMHints */
-
-#define InputHint (1L << 0)
-#define StateHint (1L << 1)
-#define IconPixmapHint (1L << 2)
-#define IconWindowHint (1L << 3)
-#define IconPositionHint (1L << 4)
-#define IconMaskHint (1L << 5)
-#define WindowGroupHint (1L << 6)
-#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
-IconPositionHint|IconMaskHint|WindowGroupHint)
-#define XUrgencyHint (1L << 8)
-
-/* definitions for initial window state */
-#define WithdrawnState 0 /* for windows that are not mapped */
-#define NormalState 1 /* most applications want to start this way */
-#define IconicState 3 /* application wants to start as an icon */
-
-/*
- * Obsolete states no longer defined by ICCCM
- */
-#define DontCareState 0 /* don't know or care */
-#define ZoomState 2 /* application wants to start zoomed */
-#define InactiveState 4 /* application believes it is seldom used; */
- /* some wm's may put it on inactive menu */
-
-
-/*
- * new structure for manipulating TEXT properties; used with WM_NAME,
- * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
- */
-typedef struct {
- unsigned char *value; /* same as Property routines */
- Atom encoding; /* prop type */
- int format; /* prop data format: 8, 16, or 32 */
- unsigned long nitems; /* number of data items in value */
-} XTextProperty;
-
-#define XNoMemory -1
-#define XLocaleNotSupported -2
-#define XConverterNotFound -3
-
-typedef enum {
- XStringStyle, /* STRING */
- XCompoundTextStyle, /* COMPOUND_TEXT */
- XTextStyle, /* text in owner's encoding (current locale)*/
- XStdICCTextStyle, /* STRING, else COMPOUND_TEXT */
- /* The following is an XFree86 extension, introduced in November 2000 */
- XUTF8StringStyle /* UTF8_STRING */
-} XICCEncodingStyle;
-
-typedef struct {
- int min_width, min_height;
- int max_width, max_height;
- int width_inc, height_inc;
-} XIconSize;
-
-typedef struct {
- char *res_name;
- char *res_class;
-} XClassHint;
-
-#ifdef XUTIL_DEFINE_FUNCTIONS
-extern int XDestroyImage(
- XImage *ximage);
-extern unsigned long XGetPixel(
- XImage *ximage,
- int x, int y);
-extern int XPutPixel(
- XImage *ximage,
- int x, int y,
- unsigned long pixel);
-extern XImage *XSubImage(
- XImage *ximage,
- int x, int y,
- unsigned int width, unsigned int height);
-extern int XAddPixel(
- XImage *ximage,
- long value);
-#else
-/*
- * These macros are used to give some sugar to the image routines so that
- * naive people are more comfortable with them.
- */
-#define XDestroyImage(ximage) \
- ((*((ximage)->f.destroy_image))((ximage)))
-#define XGetPixel(ximage, x, y) \
- ((*((ximage)->f.get_pixel))((ximage), (x), (y)))
-#define XPutPixel(ximage, x, y, pixel) \
- ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
-#define XSubImage(ximage, x, y, width, height) \
- ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
-#define XAddPixel(ximage, value) \
- ((*((ximage)->f.add_pixel))((ximage), (value)))
-#endif
-
-/*
- * Compose sequence status structure, used in calling XLookupString.
- */
-typedef struct _XComposeStatus {
- XPointer compose_ptr; /* state table pointer */
- int chars_matched; /* match state */
-} XComposeStatus;
-
-/*
- * Keysym macros, used on Keysyms to test for classes of symbols
- */
-#define IsKeypadKey(keysym) \
- (((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
-
-#define IsPrivateKeypadKey(keysym) \
- (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
-
-#define IsCursorKey(keysym) \
- (((KeySym)(keysym) >= XK_Home) && ((KeySym)(keysym) < XK_Select))
-
-#define IsPFKey(keysym) \
- (((KeySym)(keysym) >= XK_KP_F1) && ((KeySym)(keysym) <= XK_KP_F4))
-
-#define IsFunctionKey(keysym) \
- (((KeySym)(keysym) >= XK_F1) && ((KeySym)(keysym) <= XK_F35))
-
-#define IsMiscFunctionKey(keysym) \
- (((KeySym)(keysym) >= XK_Select) && ((KeySym)(keysym) <= XK_Break))
-
-#ifdef XK_XKB_KEYS
-#define IsModifierKey(keysym) \
- ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
- || (((KeySym)(keysym) >= XK_ISO_Lock) && \
- ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \
- || ((KeySym)(keysym) == XK_Mode_switch) \
- || ((KeySym)(keysym) == XK_Num_Lock))
-#else
-#define IsModifierKey(keysym) \
- ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
- || ((KeySym)(keysym) == XK_Mode_switch) \
- || ((KeySym)(keysym) == XK_Num_Lock))
-#endif
-/*
- * opaque reference to Region data type
- */
-typedef struct _XRegion *Region;
-
-/* Return values from XRectInRegion() */
-
-#define RectangleOut 0
-#define RectangleIn 1
-#define RectanglePart 2
-
-
-/*
- * Information used by the visual utility routines to find desired visual
- * type from the many visuals a display may support.
- */
-
-typedef struct {
- Visual *visual;
- VisualID visualid;
- int screen;
- int depth;
-#if defined(__cplusplus) || defined(c_plusplus)
- int c_class; /* C++ */
-#else
- int class;
-#endif
- unsigned long red_mask;
- unsigned long green_mask;
- unsigned long blue_mask;
- int colormap_size;
- int bits_per_rgb;
-} XVisualInfo;
-
-#define VisualNoMask 0x0
-#define VisualIDMask 0x1
-#define VisualScreenMask 0x2
-#define VisualDepthMask 0x4
-#define VisualClassMask 0x8
-#define VisualRedMaskMask 0x10
-#define VisualGreenMaskMask 0x20
-#define VisualBlueMaskMask 0x40
-#define VisualColormapSizeMask 0x80
-#define VisualBitsPerRGBMask 0x100
-#define VisualAllMask 0x1FF
-
-/*
- * This defines a window manager property that clients may use to
- * share standard color maps of type RGB_COLOR_MAP:
- */
-typedef struct {
- Colormap colormap;
- unsigned long red_max;
- unsigned long red_mult;
- unsigned long green_max;
- unsigned long green_mult;
- unsigned long blue_max;
- unsigned long blue_mult;
- unsigned long base_pixel;
- VisualID visualid; /* added by ICCCM version 1 */
- XID killid; /* added by ICCCM version 1 */
-} XStandardColormap;
-
-#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */
-
-
-/*
- * return codes for XReadBitmapFile and XWriteBitmapFile
- */
-#define BitmapSuccess 0
-#define BitmapOpenFailed 1
-#define BitmapFileInvalid 2
-#define BitmapNoMemory 3
-
-/****************************************************************
- *
- * Context Management
- *
- ****************************************************************/
-
-
-/* Associative lookup table return codes */
-
-#define XCSUCCESS 0 /* No error. */
-#define XCNOMEM 1 /* Out of memory */
-#define XCNOENT 2 /* No entry in table */
-
-typedef int XContext;
-
-#define XUniqueContext() ((XContext) XrmUniqueQuark())
-#define XStringToContext(string) ((XContext) XrmStringToQuark(string))
-
-_XFUNCPROTOBEGIN
-
-/* The following declarations are alphabetized. */
-
-extern XClassHint *XAllocClassHint (
- void
-);
-
-extern XIconSize *XAllocIconSize (
- void
-);
-
-extern XSizeHints *XAllocSizeHints (
- void
-);
-
-extern XStandardColormap *XAllocStandardColormap (
- void
-);
-
-extern XWMHints *XAllocWMHints (
- void
-);
-
-extern int XClipBox(
- Region /* r */,
- XRectangle* /* rect_return */
-);
-
-extern Region XCreateRegion(
- void
-);
-
-extern const char *XDefaultString (void);
-
-extern int XDeleteContext(
- Display* /* display */,
- XID /* rid */,
- XContext /* context */
-);
-
-extern int XDestroyRegion(
- Region /* r */
-);
-
-extern int XEmptyRegion(
- Region /* r */
-);
-
-extern int XEqualRegion(
- Region /* r1 */,
- Region /* r2 */
-);
-
-extern int XFindContext(
- Display* /* display */,
- XID /* rid */,
- XContext /* context */,
- XPointer* /* data_return */
-);
-
-extern Status XGetClassHint(
- Display* /* display */,
- Window /* w */,
- XClassHint* /* class_hints_return */
-);
-
-extern Status XGetIconSizes(
- Display* /* display */,
- Window /* w */,
- XIconSize** /* size_list_return */,
- int* /* count_return */
-);
-
-extern Status XGetNormalHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */
-);
-
-extern Status XGetRGBColormaps(
- Display* /* display */,
- Window /* w */,
- XStandardColormap** /* stdcmap_return */,
- int* /* count_return */,
- Atom /* property */
-);
-
-extern Status XGetSizeHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */,
- Atom /* property */
-);
-
-extern Status XGetStandardColormap(
- Display* /* display */,
- Window /* w */,
- XStandardColormap* /* colormap_return */,
- Atom /* property */
-);
-
-extern Status XGetTextProperty(
- Display* /* display */,
- Window /* window */,
- XTextProperty* /* text_prop_return */,
- Atom /* property */
-);
-
-extern XVisualInfo *XGetVisualInfo(
- Display* /* display */,
- long /* vinfo_mask */,
- XVisualInfo* /* vinfo_template */,
- int* /* nitems_return */
-);
-
-extern Status XGetWMClientMachine(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop_return */
-);
-
-extern XWMHints *XGetWMHints(
- Display* /* display */,
- Window /* w */
-);
-
-extern Status XGetWMIconName(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop_return */
-);
-
-extern Status XGetWMName(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop_return */
-);
-
-extern Status XGetWMNormalHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */,
- long* /* supplied_return */
-);
-
-extern Status XGetWMSizeHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints_return */,
- long* /* supplied_return */,
- Atom /* property */
-);
-
-extern Status XGetZoomHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* zhints_return */
-);
-
-extern int XIntersectRegion(
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-);
-
-extern void XConvertCase(
- KeySym /* sym */,
- KeySym* /* lower */,
- KeySym* /* upper */
-);
-
-extern int XLookupString(
- XKeyEvent* /* event_struct */,
- char* /* buffer_return */,
- int /* bytes_buffer */,
- KeySym* /* keysym_return */,
- XComposeStatus* /* status_in_out */
-);
-
-extern Status XMatchVisualInfo(
- Display* /* display */,
- int /* screen */,
- int /* depth */,
- int /* class */,
- XVisualInfo* /* vinfo_return */
-);
-
-extern int XOffsetRegion(
- Region /* r */,
- int /* dx */,
- int /* dy */
-);
-
-extern Bool XPointInRegion(
- Region /* r */,
- int /* x */,
- int /* y */
-);
-
-extern Region XPolygonRegion(
- XPoint* /* points */,
- int /* n */,
- int /* fill_rule */
-);
-
-extern int XRectInRegion(
- Region /* r */,
- int /* x */,
- int /* y */,
- unsigned int /* width */,
- unsigned int /* height */
-);
-
-extern int XSaveContext(
- Display* /* display */,
- XID /* rid */,
- XContext /* context */,
- _Xconst char* /* data */
-);
-
-extern int XSetClassHint(
- Display* /* display */,
- Window /* w */,
- XClassHint* /* class_hints */
-);
-
-extern int XSetIconSizes(
- Display* /* display */,
- Window /* w */,
- XIconSize* /* size_list */,
- int /* count */
-);
-
-extern int XSetNormalHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */
-);
-
-extern void XSetRGBColormaps(
- Display* /* display */,
- Window /* w */,
- XStandardColormap* /* stdcmaps */,
- int /* count */,
- Atom /* property */
-);
-
-extern int XSetSizeHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */,
- Atom /* property */
-);
-
-extern int XSetStandardProperties(
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* window_name */,
- _Xconst char* /* icon_name */,
- Pixmap /* icon_pixmap */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* hints */
-);
-
-extern void XSetTextProperty(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */,
- Atom /* property */
-);
-
-extern void XSetWMClientMachine(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */
-);
-
-extern int XSetWMHints(
- Display* /* display */,
- Window /* w */,
- XWMHints* /* wm_hints */
-);
-
-extern void XSetWMIconName(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */
-);
-
-extern void XSetWMName(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* text_prop */
-);
-
-extern void XSetWMNormalHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */
-);
-
-extern void XSetWMProperties(
- Display* /* display */,
- Window /* w */,
- XTextProperty* /* window_name */,
- XTextProperty* /* icon_name */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* normal_hints */,
- XWMHints* /* wm_hints */,
- XClassHint* /* class_hints */
-);
-
-extern void XmbSetWMProperties(
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* window_name */,
- _Xconst char* /* icon_name */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* normal_hints */,
- XWMHints* /* wm_hints */,
- XClassHint* /* class_hints */
-);
-
-extern void Xutf8SetWMProperties(
- Display* /* display */,
- Window /* w */,
- _Xconst char* /* window_name */,
- _Xconst char* /* icon_name */,
- char** /* argv */,
- int /* argc */,
- XSizeHints* /* normal_hints */,
- XWMHints* /* wm_hints */,
- XClassHint* /* class_hints */
-);
-
-extern void XSetWMSizeHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* hints */,
- Atom /* property */
-);
-
-extern int XSetRegion(
- Display* /* display */,
- GC /* gc */,
- Region /* r */
-);
-
-extern void XSetStandardColormap(
- Display* /* display */,
- Window /* w */,
- XStandardColormap* /* colormap */,
- Atom /* property */
-);
-
-extern int XSetZoomHints(
- Display* /* display */,
- Window /* w */,
- XSizeHints* /* zhints */
-);
-
-extern int XShrinkRegion(
- Region /* r */,
- int /* dx */,
- int /* dy */
-);
-
-extern Status XStringListToTextProperty(
- char** /* list */,
- int /* count */,
- XTextProperty* /* text_prop_return */
-);
-
-extern int XSubtractRegion(
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-);
-
-extern int XmbTextListToTextProperty(
- Display* display,
- char** list,
- int count,
- XICCEncodingStyle style,
- XTextProperty* text_prop_return
-);
-
-extern int XwcTextListToTextProperty(
- Display* display,
- wchar_t** list,
- int count,
- XICCEncodingStyle style,
- XTextProperty* text_prop_return
-);
-
-extern int Xutf8TextListToTextProperty(
- Display* display,
- char** list,
- int count,
- XICCEncodingStyle style,
- XTextProperty* text_prop_return
-);
-
-extern void XwcFreeStringList(
- wchar_t** list
-);
-
-extern Status XTextPropertyToStringList(
- XTextProperty* /* text_prop */,
- char*** /* list_return */,
- int* /* count_return */
-);
-
-extern int XmbTextPropertyToTextList(
- Display* display,
- const XTextProperty* text_prop,
- char*** list_return,
- int* count_return
-);
-
-extern int XwcTextPropertyToTextList(
- Display* display,
- const XTextProperty* text_prop,
- wchar_t*** list_return,
- int* count_return
-);
-
-extern int Xutf8TextPropertyToTextList(
- Display* display,
- const XTextProperty* text_prop,
- char*** list_return,
- int* count_return
-);
-
-extern int XUnionRectWithRegion(
- XRectangle* /* rectangle */,
- Region /* src_region */,
- Region /* dest_region_return */
-);
-
-extern int XUnionRegion(
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-);
-
-extern int XWMGeometry(
- Display* /* display */,
- int /* screen_number */,
- _Xconst char* /* user_geometry */,
- _Xconst char* /* default_geometry */,
- unsigned int /* border_width */,
- XSizeHints* /* hints */,
- int* /* x_return */,
- int* /* y_return */,
- int* /* width_return */,
- int* /* height_return */,
- int* /* gravity_return */
-);
-
-extern int XXorRegion(
- Region /* sra */,
- Region /* srb */,
- Region /* dr_return */
-);
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-_XFUNCPROTOEND
-
-#endif /* !defined(_X11_XUTIL_H_) && !defined(_XUTIL_H_) */
diff --git a/nx-X11/lib/X11/cmsAllCol.c b/nx-X11/lib/X11/cmsAllCol.c
deleted file mode 100644
index aeea46461..000000000
--- a/nx-X11/lib/X11/cmsAllCol.c
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsAllCol.c
- *
- * DESCRIPTION
- * Source for XcmsAllocColor
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/*
- * NAME
- * XcmsAllocColor - Allocate Color
- *
- * SYNOPSIS
- */
-Status
-XcmsAllocColor(
- Display *dpy,
- Colormap colormap,
- XcmsColor *pXcmsColor_in_out,
- XcmsColorFormat result_format)
-/*
- * DESCRIPTION
- * Given a device-dependent or device-independent color
- * specification, XcmsAllocColor will convert it to X RGB
- * values then use it in a call to XAllocColor.
- *
- * RETURNS
- * XcmsFailure if failed;
- * XcmsSuccess if it succeeded without gamut compression;
- * XcmsSuccessWithCompression if it succeeded with gamut
- * compression;
- *
- * Also returns the pixel value of the color cell and a color
- * specification of the color actually stored.
- *
- */
-{
- return(_XcmsSetGetColor(XAllocColor, dpy, colormap, pXcmsColor_in_out,
- result_format, (Bool *)NULL));
-}
diff --git a/nx-X11/lib/X11/cmsAllNCol.c b/nx-X11/lib/X11/cmsAllNCol.c
deleted file mode 100644
index d39de6cbd..000000000
--- a/nx-X11/lib/X11/cmsAllNCol.c
+++ /dev/null
@@ -1,198 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsAlNCol.c
- *
- * DESCRIPTION
- * Source for XcmsAllocNamedColor
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/*
- * NAME
- * XcmsAllocNamedColor -
- *
- * SYNOPSIS
- */
-Status
-XcmsAllocNamedColor (
- Display *dpy,
- Colormap cmap,
- _Xconst char *colorname,
- XcmsColor *pColor_scrn_return,
- XcmsColor *pColor_exact_return,
- XcmsColorFormat result_format)
-/*
- * DESCRIPTION
- * Finds the color specification associated with the color
- * name in the Device-Independent Color Name Database, then
- * converts that color specification to an RGB format. This
- * RGB value is then used in a call to XAllocColor to allocate
- * a read-only color cell.
- *
- * RETURNS
- * 0 if failed to parse string or find any entry in the database.
- * 1 if succeeded in converting color name to XcmsColor.
- * 2 if succeeded in converting color name to another color name.
- *
- */
-{
- long nbytes;
- xAllocNamedColorReply rep;
- xAllocNamedColorReq *req;
- XColor hard_def;
- XColor exact_def;
- Status retval1 = 1;
- Status retval2 = XcmsSuccess;
- XcmsColor tmpColor;
- XColor XColor_in_out;
- XcmsCCC ccc;
-
- /*
- * 0. Check for invalid arguments.
- */
- if (dpy == NULL || colorname[0] == '\0' || pColor_scrn_return == 0
- || pColor_exact_return == NULL) {
- return(XcmsFailure);
- }
-
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
- return(XcmsFailure);
- }
-
- /*
- * 1. Convert string to a XcmsColor using Xcms and i18n mechanism
- */
- if ((retval1 = _XcmsResolveColorString(ccc, &colorname,
- &tmpColor, result_format)) == XcmsFailure) {
- return(XcmsFailure);
- }
- if (retval1 == _XCMS_NEWNAME) {
- goto PassToServer;
- }
- memcpy((char *)pColor_exact_return, (char *)&tmpColor, sizeof(XcmsColor));
-
- /*
- * 2. Convert tmpColor to RGB
- * Assume pColor_exact_return is now adjusted to Client White Point
- */
- if ((retval2 = XcmsConvertColors(ccc, &tmpColor,
- 1, XcmsRGBFormat, (Bool *) NULL)) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * 3. Convert to XColor and call XAllocColor
- */
- _XcmsRGB_to_XColor(&tmpColor, &XColor_in_out, 1);
- if (XAllocColor(ccc->dpy, cmap, &XColor_in_out) == 0) {
- return(XcmsFailure);
- }
-
- /*
- * 4. pColor_scrn_return
- *
- * Now convert to the target format.
- * We can ignore the return value because we're already in a
- * device-dependent format.
- */
- _XColor_to_XcmsRGB(ccc, &XColor_in_out, pColor_scrn_return, 1);
- if (result_format != XcmsRGBFormat) {
- if (result_format == XcmsUndefinedFormat) {
- result_format = pColor_exact_return->format;
- }
- if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- return(retval1 > retval2 ? retval1 : retval2);
-
-PassToServer:
- /*
- * All previous methods failed, so lets pass it to the server
- * for parsing.
- */
- dpy = ccc->dpy;
- LockDisplay(dpy);
- GetReq(AllocNamedColor, req);
-
- req->cmap = cmap;
- nbytes = req->nbytes = strlen(colorname);
- req->length += (nbytes + 3) >> 2; /* round up to mult of 4 */
-
- _XSend(dpy, colorname, nbytes);
- /* _XSend is more efficient that Data, since _XReply follows */
-
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (0);
- }
-
- exact_def.red = rep.exactRed;
- exact_def.green = rep.exactGreen;
- exact_def.blue = rep.exactBlue;
-
- hard_def.red = rep.screenRed;
- hard_def.green = rep.screenGreen;
- hard_def.blue = rep.screenBlue;
-
- exact_def.pixel = hard_def.pixel = rep.pixel;
-
- UnlockDisplay(dpy);
- SyncHandle();
-
- /*
- * Now convert to the target format.
- */
- _XColor_to_XcmsRGB(ccc, &exact_def, pColor_exact_return, 1);
- _XColor_to_XcmsRGB(ccc, &hard_def, pColor_scrn_return, 1);
- if (result_format != XcmsRGBFormat
- && result_format != XcmsUndefinedFormat) {
- if (XcmsConvertColors(ccc, pColor_exact_return, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/cmsCmap.c b/nx-X11/lib/X11/cmsCmap.c
deleted file mode 100644
index c7087ecb1..000000000
--- a/nx-X11/lib/X11/cmsCmap.c
+++ /dev/null
@@ -1,492 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsCmap.c - Client Colormap Management Routines
- *
- * DESCRIPTION
- * Routines that store additional information about
- * colormaps being used by the X Client.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Xutil.h"
-#include "Cmap.h"
-#include "Cv.h"
-
-/*
- * FORWARD DECLARATIONS
- */
-static void _XcmsFreeClientCmaps(Display *dpy);
-
-
-/************************************************************************
- * *
- * PRIVATE INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CmapRecForColormap
- *
- * SYNOPSIS
- */
-static XcmsCmapRec *
-CmapRecForColormap(
- Display *dpy,
- Colormap cmap)
-/*
- * DESCRIPTION
- * Find the corresponding XcmsCmapRec for cmap. In not found
- * this routines attempts to create one.
- *
- * RETURNS
- * Returns NULL if failed; otherwise the address to
- * the corresponding XcmsCmapRec.
- *
- */
-{
- XcmsCmapRec *pRec;
- int nScrn;
- int i, j;
- XVisualInfo visualTemplate; /* Template of the visual we want */
- XVisualInfo *visualList; /* List for visuals that match */
- int nVisualsMatched; /* Number of visuals that match */
- Window tmpWindow;
- Visual *vp;
- unsigned long border = 0;
- _XAsyncHandler async;
- _XAsyncErrorState async_state;
-
- for (pRec = (XcmsCmapRec *)dpy->cms.clientCmaps; pRec != NULL;
- pRec = pRec->pNext) {
- if (pRec->cmapID == cmap) {
- return(pRec);
- }
- }
-
- /*
- * Can't find an XcmsCmapRec associated with cmap in our records.
- * Let's try to see if its a default colormap
- */
- nScrn = ScreenCount(dpy);
- for (i = 0; i < nScrn; i++) {
- if (cmap == DefaultColormap(dpy, i)) {
- /* It is ... lets go ahead and store that info */
- if ((pRec = _XcmsAddCmapRec(dpy, cmap, RootWindow(dpy, i),
- DefaultVisual(dpy, i))) == NULL) {
- return((XcmsCmapRec *)NULL);
- }
- pRec->ccc = XcmsCreateCCC(
- dpy,
- i, /* screenNumber */
- DefaultVisual(dpy, i),
- (XcmsColor *)NULL, /* clientWhitePt */
- (XcmsCompressionProc)NULL, /* gamutCompProc */
- (XPointer)NULL, /* gamutCompClientData */
- (XcmsWhiteAdjustProc)NULL, /* whitePtAdjProc */
- (XPointer)NULL /* whitePtAdjClientData */
- );
- return(pRec);
- }
- }
-
- /*
- * Nope, its not a default colormap, so it's probably a foreign color map
- * of which we have no specific details. Let's go through the
- * rigorous process of finding this colormap:
- * for each screen
- * for each screen's visual types
- * create a window with cmap specified as the colormap
- * if successful
- * Add a CmapRec
- * Create an XcmsCCC
- * return the CmapRec
- * else
- * continue
- */
-
- async_state.error_code = 0; /* don't care */
- async_state.major_opcode = X_CreateWindow;
- async_state.minor_opcode = 0;
- for (i = 0; i < nScrn; i++) {
- visualTemplate.screen = i;
- visualList = XGetVisualInfo(dpy, VisualScreenMask, &visualTemplate,
- &nVisualsMatched);
- if (visualList == NULL) {
- continue;
- }
-
- /*
- * Attempt to create a window with cmap
- */
- j = 0;
- do {
- vp = (visualList+j)->visual;
- LockDisplay(dpy);
- {
- register xCreateWindowReq *req;
-
- GetReq(CreateWindow, req);
- async_state.min_sequence_number = dpy->request;
- async_state.max_sequence_number = dpy->request;
- async_state.error_count = 0;
- async.next = dpy->async_handlers;
- async.handler = _XAsyncErrorHandler;
- async.data = (XPointer)&async_state;
- dpy->async_handlers = &async;
- req->parent = RootWindow(dpy, i);
- req->x = 0;
- req->y = 0;
- req->width = 1;
- req->height = 1;
- req->borderWidth = 0;
- req->depth = (visualList+j)->depth;
- req->class = CopyFromParent;
- req->visual = vp->visualid;
- tmpWindow = req->wid = XAllocID(dpy);
- req->mask = CWBorderPixel | CWColormap;
- req->length += 2;
- Data32 (dpy, (long *) &border, 4);
- Data32 (dpy, (long *) &cmap, 4);
- }
- {
- xGetInputFocusReply rep;
- _X_UNUSED register xReq *req;
-
- GetEmptyReq(GetInputFocus, req);
- (void) _XReply (dpy, (xReply *)&rep, 0, xTrue);
- }
- DeqAsyncHandler(dpy, &async);
- UnlockDisplay(dpy);
- SyncHandle();
- } while (async_state.error_count > 0 && ++j < nVisualsMatched);
-
- Xfree(visualList);
-
- /*
- * if successful
- */
- if (j < nVisualsMatched) {
- if ((pRec = _XcmsAddCmapRec(dpy, cmap, tmpWindow, vp)) == NULL)
- return((XcmsCmapRec *)NULL);
- pRec->ccc = XcmsCreateCCC(
- dpy,
- i, /* screenNumber */
- vp,
- (XcmsColor *)NULL, /* clientWhitePt */
- (XcmsCompressionProc)NULL, /* gamutCompProc */
- (XPointer)NULL, /* gamutCompClientData */
- (XcmsWhiteAdjustProc)NULL, /* whitePtAdjProc */
- (XPointer)NULL /* whitePtAdjClientData */
- );
- XDestroyWindow(dpy, tmpWindow);
- return(pRec);
- }
- }
-
- return(NULL);
-}
-
-
-
-/************************************************************************
- * *
- * API PRIVATE INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsAddCmapRec
- *
- * SYNOPSIS
- */
-XcmsCmapRec *
-_XcmsAddCmapRec(
- Display *dpy,
- Colormap cmap,
- Window windowID,
- Visual *visual)
-/*
- * DESCRIPTION
- * Create an XcmsCmapRec for the specified cmap, windowID,
- * and visual, then adds it to its list of CmapRec's.
- *
- * RETURNS
- * Returns NULL if failed; otherwise the address to
- * the added XcmsCmapRec.
- *
- */
-{
- XcmsCmapRec *pNew;
-
- if ((pNew = Xcalloc(1, sizeof(XcmsCmapRec))) == NULL) {
- return((XcmsCmapRec *)NULL);
- }
-
- pNew->cmapID = cmap;
- pNew->dpy = dpy;
- pNew->windowID = windowID;
- pNew->visual = visual;
- pNew->pNext = (XcmsCmapRec *)dpy->cms.clientCmaps;
- dpy->cms.clientCmaps = (XPointer)pNew;
- dpy->free_funcs->clientCmaps = _XcmsFreeClientCmaps;
-
- /*
- * Note, we don't create the XcmsCCC for pNew->ccc here because
- * it may require the use of XGetWindowAttributes (a round trip request)
- * to determine the screen.
- */
- return(pNew);
-}
-
-
-/*
- * NAME
- * _XcmsCopyCmapRecAndFree
- *
- * SYNOPSIS
- */
-XcmsCmapRec *
-_XcmsCopyCmapRecAndFree(
- Display *dpy,
- Colormap src_cmap,
- Colormap copy_cmap)
-/*
- * DESCRIPTION
- * Augments Xlib's XCopyColormapAndFree() to copy
- * XcmsCmapRecs.
- *
- * RETURNS
- * Returns NULL if failed; otherwise the address to
- * the copy XcmsCmapRec.
- *
- */
-{
- XcmsCmapRec *pRec_src;
- XcmsCmapRec *pRec_copy;
-
- if ((pRec_src = CmapRecForColormap(dpy, src_cmap)) != NULL) {
- pRec_copy =_XcmsAddCmapRec(dpy, copy_cmap, pRec_src->windowID,
- pRec_src->visual);
- if (pRec_copy != NULL && pRec_src->ccc) {
- pRec_copy->ccc = Xcalloc(1, sizeof(XcmsCCCRec));
- memcpy((char *)pRec_copy->ccc, (char *)pRec_src->ccc,
- sizeof(XcmsCCCRec));
- }
- return(pRec_copy);
- }
- return((XcmsCmapRec *)NULL);
-}
-
-
-/*
- * NAME
- * _XcmsDeleteCmapRec
- *
- * SYNOPSIS
- */
-void
-_XcmsDeleteCmapRec(
- Display *dpy,
- Colormap cmap)
-/*
- * DESCRIPTION
- * Removes and frees the specified XcmsCmapRec structure
- * from the linked list of structures.
- *
- * RETURNS
- * void
- *
- */
-{
- XcmsCmapRec **pPrevPtr;
- XcmsCmapRec *pRec;
- int scr;
-
- /* If it is the default cmap for a screen, do not delete it,
- * because the server will not actually free it */
- for (scr = ScreenCount(dpy); --scr >= 0; ) {
- if (cmap == DefaultColormap(dpy, scr))
- return;
- }
-
- /* search for it in the list */
- pPrevPtr = (XcmsCmapRec **)&dpy->cms.clientCmaps;
- while ((pRec = *pPrevPtr) && (pRec->cmapID != cmap)) {
- pPrevPtr = &pRec->pNext;
- }
-
- if (pRec) {
- if (pRec->ccc) {
- XcmsFreeCCC(pRec->ccc);
- }
- *pPrevPtr = pRec->pNext;
- Xfree(pRec);
- }
-}
-
-
-/*
- * NAME
- * _XcmsFreeClientCmaps
- *
- * SYNOPSIS
- */
-static void
-_XcmsFreeClientCmaps(
- Display *dpy)
-/*
- * DESCRIPTION
- * Frees all XcmsCmapRec structures in the linked list
- * and sets dpy->cms.clientCmaps to NULL.
- *
- * RETURNS
- * void
- *
- */
-{
- XcmsCmapRec *pRecNext, *pRecFree;
-
- pRecNext = (XcmsCmapRec *)dpy->cms.clientCmaps;
- while (pRecNext != NULL) {
- pRecFree = pRecNext;
- pRecNext = pRecNext->pNext;
- if (pRecFree->ccc) {
- /* Free the XcmsCCC structure */
- XcmsFreeCCC(pRecFree->ccc);
- }
- /* Now free the XcmsCmapRec structure */
- Xfree(pRecFree);
- }
- dpy->cms.clientCmaps = (XPointer)NULL;
-}
-
-
-
-/************************************************************************
- * *
- * PUBLIC INTERFACES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCCCOfColormap
- *
- * SYNOPSIS
- */
-XcmsCCC
-XcmsCCCOfColormap(
- Display *dpy,
- Colormap cmap)
-/*
- * DESCRIPTION
- * Finds the XcmsCCC associated with the specified colormap.
- *
- * RETURNS
- * Returns NULL if failed; otherwise the address to
- * the associated XcmsCCC structure.
- *
- */
-{
- XWindowAttributes windowAttr;
- XcmsCmapRec *pRec;
- int nScrn = ScreenCount(dpy);
- int i;
-
- if ((pRec = CmapRecForColormap(dpy, cmap)) != NULL) {
- if (pRec->ccc) {
- /* XcmsCmapRec already has a XcmsCCC */
- return(pRec->ccc);
- }
-
- /*
- * The XcmsCmapRec does not have a XcmsCCC yet, so let's create
- * one. But first, we need to know the screen associated with
- * cmap, so use XGetWindowAttributes() to extract that
- * information. Unless, of course there is only one screen!!
- */
- if (nScrn == 1) {
- /* Assume screenNumber == 0 */
- return(pRec->ccc = XcmsCreateCCC(
- dpy,
- 0, /* screenNumber */
- pRec->visual,
- (XcmsColor *)NULL, /* clientWhitePt */
- (XcmsCompressionProc)NULL, /* gamutCompProc */
- (XPointer)NULL, /* gamutCompClientData */
- (XcmsWhiteAdjustProc)NULL, /* whitePtAdjProc */
- (XPointer)NULL /* whitePtAdjClientData */
- ));
- } else {
- if (XGetWindowAttributes(dpy, pRec->windowID, &windowAttr)) {
- for (i = 0; i < nScrn; i++) {
- if (ScreenOfDisplay(dpy, i) == windowAttr.screen) {
- return(pRec->ccc = XcmsCreateCCC(
- dpy,
- i, /* screenNumber */
- pRec->visual,
- (XcmsColor *)NULL, /* clientWhitePt */
- (XcmsCompressionProc)NULL, /* gamutCompProc */
- (XPointer)NULL, /* gamutCompClientData */
- (XcmsWhiteAdjustProc)NULL, /* whitePtAdjProc */
- (XPointer)NULL /* whitePtAdjClientData */
- ));
- }
- }
- }
- }
- }
-
- /*
- * No such cmap
- */
- return(NULL);
-}
-
-XcmsCCC XcmsSetCCCOfColormap(
- Display *dpy,
- Colormap cmap,
- XcmsCCC ccc)
-{
- XcmsCCC prev_ccc = NULL;
- XcmsCmapRec *pRec;
-
- pRec = CmapRecForColormap(dpy, cmap);
- if (pRec) {
- prev_ccc = pRec->ccc;
- pRec->ccc = ccc;
- }
- return prev_ccc;
-}
diff --git a/nx-X11/lib/X11/cmsColNm.c b/nx-X11/lib/X11/cmsColNm.c
deleted file mode 100644
index c6f1e0f31..000000000
--- a/nx-X11/lib/X11/cmsColNm.c
+++ /dev/null
@@ -1,1050 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * XcmsColNm.c
- *
- * DESCRIPTION
- * Source for _XcmsLookupColorName().
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include <nx-X11/Xos.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <limits.h>
-#define XK_LATIN1
-#include <nx-X11/keysymdef.h>
-#include "Cv.h"
-
-/* forwards/locals */
-static Status LoadColornameDB(void);
-
-
-/*
- * LOCAL DEFINES
- * #define declarations local to this package.
- */
-#ifndef XCMSDB
-#define XCMSDB XCMSDIR "/Xcms.txt"
-#endif
-
-#ifndef isgraph
-# define isgraph(c) (isprint((c)) && !isspace((c)))
-#endif
-
-#ifndef XCMSDB_MAXLINELEN
-# define XCMSDB_MAXLINELEN 256
-#endif
-
-#define FORMAT_VERSION "0.1"
-#define START_TOKEN "XCMS_COLORDB_START"
-#define END_TOKEN "XCMS_COLORDB_END"
-#define DELIM_CHAR '\t'
-
-#define NOT_VISITED 0x0
-#define VISITED 0x1
-#define CYCLE 0xFFFF
-#define XcmsDbInitNone -1
-#define XcmsDbInitFailure 0
-#define XcmsDbInitSuccess 1
-
-/*
- * LOCAL TYPEDEFS
- */
-typedef struct _XcmsPair {
- const char *first;
- const char *second;
- int flag;
-} XcmsPair;
-
-/*
- * LOCAL VARIABLES
- */
-static int XcmsColorDbState = XcmsDbInitNone;
-static int nEntries;
-static char *strings;
-static XcmsPair *pairs;
-static const char whitePtStr[] = "WhitePoint";
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsColorSpaceOfString
- *
- * SYNOPSIS
- */
-static XcmsColorSpace *
-_XcmsColorSpaceOfString(
- XcmsCCC ccc,
- const char *color_string)
-/*
- * DESCRIPTION
- * Returns a pointer to the color space structure
- * (XcmsColorSpace) associated with the specified color string.
- *
- * RETURNS
- * Pointer to matching XcmsColorSpace structure if found;
- * otherwise NULL.
- *
- * CAVEATS
- *
- */
-{
- XcmsColorSpace **papColorSpaces;
- size_t n;
- char *pchar;
-
- if ((pchar = strchr(color_string, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (size_t)(pchar - color_string);
-
- if (ccc == NULL) {
- return(NULL);
- }
-
- /*
- * First try Device-Independent color spaces
- */
- papColorSpaces = _XcmsDIColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if (strncmp((*papColorSpaces)->prefix, color_string, n) == 0 &&
- !((*papColorSpaces)->prefix)[n]) {
- return(*papColorSpaces);
- }
- papColorSpaces++;
- }
- }
-
- /*
- * Next try Device-Dependent color spaces
- */
- papColorSpaces = ((XcmsFunctionSet *)ccc->pPerScrnInfo->functionSet)->DDColorSpaces;
- if (papColorSpaces != NULL) {
- while (*papColorSpaces != NULL) {
- if (strncmp((*papColorSpaces)->prefix, color_string, n) == 0 &&
- !((*papColorSpaces)->prefix)[n]) {
- return(*papColorSpaces);
- }
- papColorSpaces++;
- }
- }
-
- return(NULL);
-}
-
-
-/*
- * NAME
- * _XcmsParseColorString
- *
- * SYNOPSIS
- */
-static int
-_XcmsParseColorString(
- XcmsCCC ccc,
- const char *color_string,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Assuming color_string contains a numerical string color
- * specification, attempts to parse a string into an
- * XcmsColor structure.
- *
- * RETURNS
- * 0 if failed; otherwise non-zero.
- *
- * CAVEATS
- * A color string containing a numerical color specification
- * must be in ISO Latin-1 encoding!
- */
-{
- XcmsColorSpace *pColorSpace;
- char string_buf[64];
- char *string_lowered;
- size_t len;
- int res;
-
- if (ccc == NULL) {
- return(0);
- }
-
- /*
- * While copying color_string to string_lowered, convert to lowercase
- */
- if ((len = strlen(color_string)) >= sizeof(string_buf)) {
- string_lowered = Xmalloc(len+1);
- } else {
- string_lowered = string_buf;
- }
-
- _XcmsCopyISOLatin1Lowered(string_lowered, color_string);
-
- if (*string_lowered == '#') {
- if ((pColorSpace = _XcmsColorSpaceOfString(ccc, "rgb:")) != NULL) {
- res = (*pColorSpace->parseString)(string_lowered, pColor);
- if (len >= sizeof(string_buf)) Xfree(string_lowered);
- return res;
- }
- }
-
- if ((pColorSpace = _XcmsColorSpaceOfString(ccc, string_lowered)) != NULL) {
- res = (*pColorSpace->parseString)(string_lowered, pColor);
- if (len >= sizeof(string_buf)) Xfree(string_lowered);
- return res;
- }
-
- if (len >= sizeof(string_buf)) Xfree(string_lowered);
- return(0);
-}
-
-
-/*
- * NAME
- * FirstCmp - Compare color names of pair recs
- *
- * SYNOPSIS
- */
-static int
-FirstCmp(const void *p1, const void *p2)
-/*
- * DESCRIPTION
- * Compares the color names of XcmsColorTuples.
- * This routine is public to allow access from qsort???.
- *
- * RETURNS
- * 0 if equal;
- * < 0 if first precedes second,
- * > 0 if first succeeds second.
- *
- */
-{
- return(strcmp(((const XcmsPair *)p1)->first, ((const XcmsPair *)p2)->first));
-}
-
-
-
-/*
- * NAME
- * stringSectionSize - determine memory needed for strings
- *
- * SYNOPSIS
- */
-static void
-SetNoVisit(void)
-/*
- * DESCRIPTION
- *
- * RETURNS
- * void
- *
- */
-{
- int i;
- XcmsPair *pair = pairs;
-
- for (i = 0; i < nEntries; i++, pair++) {
- if (pair->flag != CYCLE) {
- pair->flag = NOT_VISITED;
- }
- }
-}
-
-
-
-
-/*
- * NAME
- * field2 - extract two fields
- *
- * SYNOPSIS
- */
-static int
-field2(
- char *pBuf,
- char delim, /* in: field delimiter */
- char **p1, /* in/out: pointer to pointer to field 1 */
- char **p2) /* in/out: pointer to pointer to field 2 */
-/*
- * DESCRIPTION
- * Extracts two fields from a "record".
- *
- * RETURNS
- * XcmsSuccess if succeeded, otherwise XcmsFailure.
- *
- */
-{
- *p1 = *p2 = NULL;
-
- /* Find Field 1 */
- while (!isgraph(*pBuf)) {
- if ((*pBuf != '\n') || (*pBuf != '\0')) {
- return(XcmsFailure);
- }
- if (isspace(*pBuf) || (*pBuf == delim)) {
- pBuf++;
- }
- }
- *p1 = pBuf;
-
- /* Find end of Field 2 */
- while (isprint(*pBuf) && (*pBuf != delim)) {
- pBuf++;
- }
- if ((*pBuf == '\n') || (*pBuf == '\0')) {
- return(XcmsFailure);
- }
- if ((*pBuf == ' ') || (*pBuf == delim)) {
- *pBuf++ = '\0'; /* stuff end of string character */
- } else {
- return(XcmsFailure);
- }
-
- /* Find Field 2 */
- while (!isgraph(*pBuf)) {
- if ((*pBuf == '\n') || (*pBuf == '\0')) {
- return(XcmsFailure);
- }
- if (isspace(*pBuf) || (*pBuf == delim)) {
- pBuf++;
- }
- }
- *p2 = pBuf;
-
- /* Find end of Field 2 */
- while (isprint(*pBuf) && (*pBuf != delim)) {
- pBuf++;
- }
- if (*pBuf != '\0') {
- *pBuf = '\0'; /* stuff end of string character */
- }
-
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * _XcmsLookupColorName - Lookup DB entry for a color name
- *
- * SYNOPSIS
- */
-static Status
-_XcmsLookupColorName(
- XcmsCCC ccc,
- const char **name,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Searches for an entry in the Device-Independent Color Name
- * Database for the specified string.
- *
- * RETURNS
- * XcmsFailure if failed to find a matching entry in
- * the database.
- * XcmsSuccess if succeeded in converting color name to
- * XcmsColor.
- * _XCMS_NEWNAME if succeeded in converting color string (which
- * is a color name to yet another color name. Note
- * that the new name is passed back via 'name'.
- */
- {
- Status retval = 0;
- char name_lowered_64[64];
- char *name_lowered;
- register int i, j, left, right;
- int len;
- const char *tmpName;
- XcmsPair *pair = NULL;
-
- /*
- * Check state of Database:
- * XcmsDbInitNone
- * XcmsDbInitSuccess
- * XcmsDbInitFailure
- */
- if (XcmsColorDbState == XcmsDbInitFailure) {
- return(XcmsFailure);
- }
- if (XcmsColorDbState == XcmsDbInitNone) {
- if (!LoadColornameDB()) {
- return(XcmsFailure);
- }
- }
-
- SetNoVisit();
-
- /*
- * While copying name to name_lowered, convert to lowercase
- */
-
- tmpName = *name;
-
-Retry:
- if ((len = strlen(tmpName)) > 63) {
- name_lowered = Xmalloc(len+1);
- } else {
- name_lowered = name_lowered_64;
- }
-
- _XcmsCopyISOLatin1Lowered(name_lowered, tmpName);
-
- /*
- * Now, remove spaces.
- */
- for (i = 0, j = 0; j < len; j++) {
- if (!isspace(name_lowered[j])) {
- name_lowered[i++] = name_lowered[j];
- }
- }
- name_lowered[i] = '\0';
-
- left = 0;
- right = nEntries - 1;
- while (left <= right) {
- i = (left + right) >> 1;
- pair = &pairs[i];
- j = strcmp(name_lowered, pair->first);
- if (j < 0)
- right = i - 1;
- else if (j > 0)
- left = i + 1;
- else {
- break;
- }
- }
- if (len > 63) Xfree(name_lowered);
-
- if (left > right) {
- if (retval == 2) {
- if (*name != tmpName) {
- *name = tmpName;
- }
- return(_XCMS_NEWNAME);
- }
- return(XcmsFailure);
- }
-
- if (pair->flag == CYCLE) {
- return(XcmsFailure);
- }
- if (pair->flag == VISITED) {
- pair->flag = CYCLE;
- return(XcmsFailure);
- }
-
- if (_XcmsParseColorString(ccc, pair->second, pColor) == XcmsSuccess) {
- /* f2 contains a numerical string specification */
- return(XcmsSuccess);
- } else {
- /* f2 does not contain a numerical string specification */
- tmpName = pair->second;
- pair->flag = VISITED;
- retval = 2;
- goto Retry;
- }
-}
-
-
-/*
- * NAME
- * RemoveSpaces
- *
- * SYNOPSIS
- */
-static int
-RemoveSpaces(
- char *pString)
-/*
- * DESCRIPTION
- * Removes spaces from string.
- *
- * RETURNS
- * Void
- *
- */
-{
- int i, count = 0;
- char *cptr;
-
- /* REMOVE SPACES */
- cptr = pString;
- for (i = strlen(pString); i; i--, cptr++) {
- if (!isspace(*cptr)) {
- *pString++ = *cptr;
- count++;
- }
- }
- *pString = '\0';
- return(count);
-}
-
-
-/*
- * NAME
- * stringSectionSize - determine memory needed for strings
- *
- * SYNOPSIS
- */
-static int
-stringSectionSize(
- FILE *stream,
- int *pNumEntries,
- int *pSectionSize)
-/*
- * DESCRIPTION
- * Determines the amount of memory required to store the
- * color name strings and also the number of strings.
- *
- * RETURNS
- * XcmsSuccess if succeeded, otherwise XcmsFailure.
- *
- */
-{
- char buf[XCMSDB_MAXLINELEN];
- char token[XCMSDB_MAXLINELEN];
- char token2[XCMSDB_MAXLINELEN];
- char *pBuf;
- char *f1;
- char *f2;
- size_t i;
-
- unsigned int numEntries = 0;
- unsigned int sectionSize = 0;
-
- *pNumEntries = 0;
- *pSectionSize = 0;
-
- /*
- * Advance to START_TOKEN
- * Anything before is just considered as comments.
- */
-
- while((pBuf = fgets(buf, XCMSDB_MAXLINELEN, stream)) != NULL) {
- if ((sscanf(buf, "%s %s", token, token2))
- && (strcmp(token, START_TOKEN) == 0)) {
- if (strcmp(token2, FORMAT_VERSION) != 0) {
- /* text file not in the right format */
- return(XcmsFailure);
- }
- break;
- } /* else it was just a blank line or comment */
- }
-
- if (pBuf == NULL) {
- return(XcmsFailure);
- }
-
- while((fgets(buf, XCMSDB_MAXLINELEN, stream)) != NULL) {
- if ((sscanf(buf, "%s", token)) && (strcmp(token, END_TOKEN) == 0)) {
- break;
- }
-
- if (field2(buf, DELIM_CHAR, &f1, &f2) != XcmsSuccess) {
- return(XcmsFailure);
- }
-
- numEntries++;
- if (numEntries >= INT_MAX)
- return(XcmsFailure);
-
- i = strlen(f1);
- if (i >= INT_MAX - sectionSize)
- return(XcmsFailure);
- sectionSize += i + 1;
- for (; i; i--, f1++) {
- /* REMOVE SPACES FROM COUNT */
- if (isspace(*f1)) {
- sectionSize--;
- }
- }
-
- i = strlen(f2);
- if (i >= INT_MAX - sectionSize)
- return(XcmsFailure);
- sectionSize += i + 1;
- for (; i; i--, f2++) {
- /* REMOVE SPACES FROM COUNT */
- if (isspace(*f2)) {
- sectionSize--;
- }
- }
-
- }
-
- *pNumEntries = (int) numEntries;
- *pSectionSize = (int) sectionSize;
-
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * ReadColornameDB - Read the Color Name Database
- *
- * SYNOPSIS
- */
-static Status
-ReadColornameDB(
- FILE *stream,
- XcmsPair *pRec,
- char *pString)
-/*
- * DESCRIPTION
- * Loads the Color Name Database from a text file.
- *
- * RETURNS
- * XcmsSuccess if succeeded, otherwise XcmsFailure.
- *
- */
-{
- char buf[XCMSDB_MAXLINELEN];
- char token[XCMSDB_MAXLINELEN];
- char token2[XCMSDB_MAXLINELEN];
- char *f1;
- char *f2;
- char *pBuf;
-
- /*
- * Advance to START_TOKEN
- * Anything before is just considered as comments.
- */
-
- while((pBuf = fgets(buf, XCMSDB_MAXLINELEN, stream)) != NULL) {
- if ((sscanf(buf, "%s %s", token, token2))
- && (strcmp(token, START_TOKEN) == 0)) {
- if (strcmp(token2, FORMAT_VERSION) != 0) {
- /* text file not in the right format */
- return(XcmsFailure);
- }
- break;
- } /* else it was just a blank line or comment */
- }
-
- if (pBuf == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Process lines between START_TOKEN to END_TOKEN
- */
-
- while ((fgets(buf, XCMSDB_MAXLINELEN, stream)) != NULL) {
- if ((sscanf(buf, "%s", token)) && (strcmp(token, END_TOKEN) == 0)) {
- /*
- * Found END_TOKEN so break out of for loop
- */
- break;
- }
-
- /*
- * Get pairs
- */
- if (field2(buf, DELIM_CHAR, &f1, &f2) != XcmsSuccess) {
- /* Invalid line */
- continue;
- }
-
- /*
- * Add strings
- */
-
- /* Left String */
- pRec->first = pString;
- _XcmsCopyISOLatin1Lowered(pString, f1);
- pString += (1 + RemoveSpaces(pString));
- pRec->second = pString;
- /* Right String */
- _XcmsCopyISOLatin1Lowered(pString, f2);
- pString += RemoveSpaces(pString) + 1;
- pRec++;
-
- }
-
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * LoadColornameDB - Load the Color Name Database
- *
- * SYNOPSIS
- */
-static Status
-LoadColornameDB(void)
-/*
- * DESCRIPTION
- * Loads the Color Name Database from a text file.
- *
- * RETURNS
- * XcmsSuccess if succeeded, otherwise XcmsFailure.
- *
- */
-{
- int size;
- FILE *stream;
- const char *pathname;
- struct stat txt;
- int length;
-
- /* use and name of this env var is not part of the standard */
- /* implementation-dependent feature */
- if ((pathname = getenv("XCMSDB")) == NULL) {
- pathname = XCMSDB;
- }
-
- length = strlen(pathname);
- if ((length == 0) || (length >= (BUFSIZ - 5))){
- XcmsColorDbState = XcmsDbInitFailure;
- return(XcmsFailure);
- }
-
- if (stat(pathname, &txt)) {
- /* can't stat file */
- XcmsColorDbState = XcmsDbInitFailure;
- return(XcmsFailure);
- }
-
- if ((stream = _XFopenFile (pathname, "r")) == NULL) {
- /* can't open file */
- XcmsColorDbState = XcmsDbInitFailure;
- return(XcmsFailure);
- }
-
- if (stringSectionSize(stream, &nEntries, &size) != XcmsSuccess ||
- nEntries == 0) {
- (void) fclose(stream);
- XcmsColorDbState = XcmsDbInitFailure;
- return(XcmsFailure);
- }
- rewind(stream);
-
- strings = Xmalloc(size);
- pairs = Xcalloc(nEntries, sizeof(XcmsPair));
-
- ReadColornameDB(stream, pairs, strings);
- (void) fclose(stream);
-
- /*
- * sort the pair recs
- */
- qsort((char *)pairs, nEntries, sizeof(XcmsPair), FirstCmp);
-
- XcmsColorDbState = XcmsDbInitSuccess;
- return(XcmsSuccess);
-}
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsCopyISOLatin1Lowered
- *
- * SYNOPSIS
- */
-void
-_XcmsCopyISOLatin1Lowered(
- char *dst,
- const char *src)
-/*
- * DESCRIPTION
- * ISO Latin-1 case conversion routine
- * Identical to XmuCopyISOLatin1Lowered() but provided here
- * to eliminate need to link with libXmu.a.
- *
- * IMPLEMENTORS NOTE:
- * This routine is also used in XcmsFormatOfPrefix.
- *
- * RETURNS
- * Void
- *
- */
-{
- register unsigned char *dest;
- register const unsigned char *source;
-
- for (dest = (unsigned char *)dst, source = (const unsigned char *)src;
- *source;
- source++, dest++)
- {
- if ((*source >= XK_A) && (*source <= XK_Z))
- *dest = *source + (XK_a - XK_A);
- else if ((*source >= XK_Agrave) && (*source <= XK_Odiaeresis))
- *dest = *source + (XK_agrave - XK_Agrave);
- else if ((*source >= XK_Ooblique) && (*source <= XK_Thorn))
- *dest = *source + (XK_oslash - XK_Ooblique);
- else
- *dest = *source;
- }
- *dest = '\0';
-}
-
-
-/*
- * NAME
- * _XcmsResolveColorString -
- *
- * SYNOPSIS
- */
-Status
-_XcmsResolveColorString (
- XcmsCCC ccc,
- const char **color_string,
- XcmsColor *pColor_exact_return,
- XcmsColorFormat result_format)
-/*
- * DESCRIPTION
- * The XcmsLookupColor function finds the color specification
- * associated with a color name in the Device-Independent Color
- * Name Database.
- * RETURNS
- * XcmsFailure if failed to convert valid color string.
- * XcmsSuccess if succeeded in converting color string to
- * XcmsColor.
- * _XCMS_NEWNAME if failed to parse the string or find it in
- * the database, or if succeeded in looking it up and
- * found another name which is not in the database.
- * Note that the new name is returned in color_string.
- *
- * This function returns both the color specification found in the
- * database (db specification) and the color specification for the
- * color displayable by the specified screen (screen
- * specification). The calling routine sets the format for these
- * returned specifications in the XcmsColor format component.
- * If XcmsUndefinedFormat, the specification is returned in the
- * format used to store the color in the database.
- */
-{
- XcmsColor dbWhitePt; /* whitePt associated with pColor_exact_return*/
- /* the screen's white point */
- XcmsColor *pClientWhitePt;
- int retval;
- const char *strptr = whitePtStr;
-
-/*
- * 0. Check for invalid arguments.
- */
- if (ccc == NULL || (*color_string)[0] == '\0' || pColor_exact_return == NULL) {
- return(XcmsFailure);
- }
-
-/*
- * 1. First attempt to parse the string
- * If successful, then convert the specification to the target format
- * and return.
- */
- if (_XcmsParseColorString(ccc, *color_string, pColor_exact_return)
- == 1) {
- if (result_format != XcmsUndefinedFormat
- && pColor_exact_return->format != result_format) {
- /* need to be converted to the target format */
- return(XcmsConvertColors(ccc, pColor_exact_return, 1,
- result_format, (Bool *)NULL));
- } else {
- return(XcmsSuccess);
- }
- }
-
-/*
- * 2. Attempt to find it in the DI Color Name Database
- */
-
- /*
- * a. Convert String into a XcmsColor structure
- * Attempt to extract the specification for color_string from the
- * DI Database (pColor_exact_return). If the DI Database does not
- * have this entry, then return failure.
- */
- retval = _XcmsLookupColorName(ccc, color_string, pColor_exact_return);
-
- if (retval != XcmsSuccess) {
- /* color_string replaced with a color name, or not found */
- return(_XCMS_NEWNAME);
- }
-
- if (pColor_exact_return->format == XcmsUndefinedFormat) {
- return(XcmsFailure);
- }
-
- /*
- * b. If result_format not defined, then assume target format
- * is the exact format.
- */
- if (result_format == XcmsUndefinedFormat) {
- result_format = pColor_exact_return->format;
- }
-
- if ((ClientWhitePointOfCCC(ccc))->format == XcmsUndefinedFormat) {
- pClientWhitePt = ScreenWhitePointOfCCC(ccc);
- } else {
- pClientWhitePt = ClientWhitePointOfCCC(ccc);
- }
-
- /*
- * c. Convert to the target format, making adjustments for white
- * point differences as necessary.
- */
- if (XCMS_DD_ID(pColor_exact_return->format)) {
- /*
- * The spec format is Device-Dependent, therefore assume the
- * its white point is the Screen White Point.
- */
- if (XCMS_DD_ID(result_format)) {
- /*
- * Target format is Device-Dependent
- * Therefore, DD --> DD conversion
- */
- return(_XcmsDDConvertColors(ccc, pColor_exact_return,
- 1, result_format, (Bool *) NULL));
- } else {
- /*
- * Target format is Device-Independent
- * Therefore, DD --> DI conversion
- */
- if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
- pClientWhitePt, ScreenWhitePointOfCCC(ccc))) {
- return((*ccc->whitePtAdjProc)(ccc, ScreenWhitePointOfCCC(ccc),
- pClientWhitePt, result_format,
- pColor_exact_return, 1, (Bool *) NULL));
- } else {
- if (_XcmsDDConvertColors(ccc, pColor_exact_return, 1,
- XcmsCIEXYZFormat, (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- return(_XcmsDIConvertColors(ccc, pColor_exact_return,
- pClientWhitePt, 1, result_format));
- }
- }
- } else {
- /*
- * The spec format is Device-Independent, therefore attempt
- * to find a database white point.
- *
- * If the Database does not have a white point, then assume the
- * database white point is the same as the Screen White Point.
- */
-
- if (_XcmsLookupColorName(ccc, &strptr, &dbWhitePt) != 1) {
- memcpy((char *)&dbWhitePt,
- (char *)&ccc->pPerScrnInfo->screenWhitePt,
- sizeof(XcmsColor));
- }
- if (XCMS_DD_ID(result_format)) {
- /*
- * Target format is Device-Dependent
- * Therefore, DI --> DD conversion
- */
- if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
- &dbWhitePt, ScreenWhitePointOfCCC(ccc))) {
- return((*ccc->whitePtAdjProc)(ccc, &dbWhitePt,
- ScreenWhitePointOfCCC(ccc), result_format,
- pColor_exact_return, 1, (Bool *)NULL));
- } else {
- if (pColor_exact_return->format != XcmsCIEXYZFormat) {
- if (_XcmsDIConvertColors(ccc, pColor_exact_return,
- &dbWhitePt, 1, XcmsCIEXYZFormat) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- return (_XcmsDDConvertColors(ccc, pColor_exact_return, 1,
- result_format, (Bool *)NULL));
- }
- } else {
- /*
- * Target format is Device-Independent
- * Therefore, DI --> DI conversion
- */
- if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
- &dbWhitePt, pClientWhitePt)) {
- /*
- * The calling routine wants to resolve this color
- * in terms if it's white point (i.e. Client White Point).
- * Therefore, apply white adjustment for the displacement
- * between dbWhitePt to clientWhitePt.
- */
- return((*ccc->whitePtAdjProc)(ccc, &dbWhitePt,
- pClientWhitePt, result_format,
- pColor_exact_return, 1, (Bool *)NULL));
- } else if (_XcmsEqualWhitePts(ccc,
- &dbWhitePt, pClientWhitePt)) {
- /*
- * Can use either dbWhitePt or pClientWhitePt to
- * convert to the result_format.
- */
- if (pColor_exact_return->format == result_format) {
- return(XcmsSuccess);
- } else {
- return (_XcmsDIConvertColors(ccc, pColor_exact_return,
- &dbWhitePt, 1, result_format));
- }
- } else {
- /*
- * Need to convert to a white point independent color
- * space (let's choose CIEXYZ) then convert to the
- * target color space. Why? Lets assume that
- * pColor_exact_return->format and result format
- * are white point dependent format (e.g., CIELUV, CIELAB,
- * TekHVC ... same or any combination). If so, we'll
- * need to convert the color with dbWhitePt to an absolute
- * spec (i.e. non-white point dependent) then convert that
- * absolute value with clientWhitePt to the result_format.
- */
- if (pColor_exact_return->format != XcmsCIEXYZFormat) {
- if (_XcmsDIConvertColors(ccc, pColor_exact_return,
- &dbWhitePt, 1, XcmsCIEXYZFormat) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
- if (result_format == XcmsCIEXYZFormat) {
- return(XcmsSuccess);
- } else {
- return(_XcmsDIConvertColors(ccc, pColor_exact_return,
- pClientWhitePt, 1, result_format));
- }
- }
- }
- }
-}
diff --git a/nx-X11/lib/X11/cmsGlobls.c b/nx-X11/lib/X11/cmsGlobls.c
deleted file mode 100644
index c9e82f242..000000000
--- a/nx-X11/lib/X11/cmsGlobls.c
+++ /dev/null
@@ -1,126 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsGlobls.c
- *
- * DESCRIPTION
- * Source file containing Xcms globals
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * GLOBALS
- * Variables declared in this package that are allowed
- * to be used globally.
- */
-
- /*
- * Initial array of Device Independent Color Spaces
- */
-XcmsColorSpace *_XcmsDIColorSpacesInit[] = {
- &XcmsCIEXYZColorSpace,
- &XcmsCIEuvYColorSpace,
- &XcmsCIExyYColorSpace,
- &XcmsCIELabColorSpace,
- &XcmsCIELuvColorSpace,
- &XcmsTekHVCColorSpace,
- &XcmsUNDEFINEDColorSpace,
- NULL
-};
- /*
- * Pointer to the array of pointers to XcmsColorSpace structures for
- * Device-Independent Color Spaces that are currently accessible by
- * the color management system. End of list is indicated by a NULL pointer.
- */
-XcmsColorSpace **_XcmsDIColorSpaces = _XcmsDIColorSpacesInit;
-
- /*
- * Initial array of Device Dependent Color Spaces
- */
-XcmsColorSpace *_XcmsDDColorSpacesInit[] = {
- &XcmsRGBColorSpace,
- &XcmsRGBiColorSpace,
- NULL
-};
- /*
- * Pointer to the array of pointers to XcmsColorSpace structures for
- * Device-Dependent Color Spaces that are currently accessible by
- * the color management system. End of list is indicated by a NULL pointer.
- */
-XcmsColorSpace **_XcmsDDColorSpaces = &_XcmsDDColorSpacesInit[0];
-
- /*
- * Initial array of Screen Color Characterization Function Sets
- */
-XcmsFunctionSet *_XcmsSCCFuncSetsInit[] = {
- &XcmsLinearRGBFunctionSet,
-#ifdef GRAY
- &XcmsGrayFunctionSet,
-#endif /* GRAY */
- NULL};
- /*
- * Pointer to the array of pointers to XcmsSCCFuncSet structures
- * (Screen Color Characterization Function Sets) that are currently
- * accessible by the color management system. End of list is
- * indicated by a NULL pointer.
- */
-XcmsFunctionSet **_XcmsSCCFuncSets = _XcmsSCCFuncSetsInit;
-
- /*
- * X Consortium Registered Device-Independent Color Spaces
- * Note that prefix must be in lowercase.
- */
-const char _XcmsCIEXYZ_prefix[] = "ciexyz";
-const char _XcmsCIEuvY_prefix[] = "cieuvy";
-const char _XcmsCIExyY_prefix[] = "ciexyy";
-const char _XcmsCIELab_prefix[] = "cielab";
-const char _XcmsCIELuv_prefix[] = "cieluv";
-const char _XcmsTekHVC_prefix[] = "tekhvc";
- /*
- * Registered Device-Dependent Color Spaces
- */
-const char _XcmsRGBi_prefix[] = "rgbi";
-const char _XcmsRGB_prefix[] = "rgb";
-
-XcmsRegColorSpaceEntry _XcmsRegColorSpaces[] = {
- { _XcmsCIEXYZ_prefix, XcmsCIEXYZFormat },
- { _XcmsCIEuvY_prefix, XcmsCIEuvYFormat },
- { _XcmsCIExyY_prefix, XcmsCIExyYFormat },
- { _XcmsCIELab_prefix, XcmsCIELabFormat },
- { _XcmsCIELuv_prefix, XcmsCIELuvFormat },
- { _XcmsTekHVC_prefix, XcmsTekHVCFormat },
- { _XcmsRGB_prefix, XcmsRGBFormat },
- { _XcmsRGBi_prefix, XcmsRGBiFormat },
- { NULL, 0 }
-};
diff --git a/nx-X11/lib/X11/cmsInt.c b/nx-X11/lib/X11/cmsInt.c
deleted file mode 100644
index f4aef04ff..000000000
--- a/nx-X11/lib/X11/cmsInt.c
+++ /dev/null
@@ -1,411 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsInt.c - Xcms API utility routines
- *
- * DESCRIPTION
- * Xcms Application Program Interface (API) utility
- * routines for hanging information directly onto
- * the Display structure.
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-#ifndef XCMSCOMPPROC
-# define XCMSCOMPPROC XcmsTekHVCClipC
-#endif
-
-/* forward/static */
-static void _XcmsFreeDefaultCCCs(Display *dpy);
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * _XcmsCopyPointerArray
- *
- * SYNOPSIS
- */
-XPointer *
-_XcmsCopyPointerArray(
- XPointer *pap)
-/*
- * DESCRIPTION
- * Copies an array of NULL terminated pointers.
- *
- * RETURNS
- * Returns NULL if failed; otherwise the address to
- * the copy.
- *
- */
-{
- XPointer *newArray;
- char **tmp;
- int n;
-
- for (tmp = pap, n = 0; *tmp != NULL; tmp++, n++);
- n++; /* add 1 to include the NULL pointer */
-
- if ((newArray = Xmalloc(n * sizeof(XPointer)))) {
- memcpy((char *)newArray, (char *)pap,
- (unsigned)(n * sizeof(XPointer)));
- }
- return((XPointer *)newArray);
-}
-
-/*
- * NAME
- * _XcmsFreePointerArray
- *
- * SYNOPSIS
- */
-void
-_XcmsFreePointerArray(
- XPointer *pap)
-/*
- * DESCRIPTION
- * Frees an array of NULL terminated pointers.
- *
- * RETURNS
- * void
- *
- */
-{
- Xfree(pap);
-}
-
-/*
- * NAME
- * _XcmsPushPointerArray
- *
- * SYNOPSIS
- */
-XPointer *
-_XcmsPushPointerArray(
- XPointer *pap,
- XPointer p,
- XPointer *papNoFree)
-/*
- * DESCRIPTION
- * Places the specified pointer at the head of an array of NULL
- * terminated pointers.
- *
- * RETURNS
- * Returns NULL if failed; otherwise the address to
- * the head of the array.
- *
- */
-{
- XPointer *newArray;
- char **tmp;
- int n;
-
- for (tmp = pap, n = 0; *tmp != NULL; tmp++, n++);
-
- /* add 2: 1 for the new pointer and another for the NULL pointer */
- n += 2;
-
- if ((newArray = Xmalloc(n * sizeof(XPointer)))) {
- memcpy((char *)(newArray+1),(char *)pap,
- (unsigned)((n-1) * sizeof(XPointer)));
- *newArray = p;
- }
- if (pap != papNoFree) {
- _XcmsFreePointerArray(pap);
- }
- return((XPointer *)newArray);
-}
-
-/*
- * NAME
- * _XcmsInitDefaultCCCs
- *
- * SYNOPSIS
- */
-int
-_XcmsInitDefaultCCCs(
- Display *dpy)
-/*
- * DESCRIPTION
- * Initializes the Xcms per Display Info structure
- * (XcmsPerDpyInfo).
- *
- * RETURNS
- * Returns 0 if failed; otherwise non-zero.
- *
- */
-{
- int nScrn = ScreenCount(dpy);
- int i;
- XcmsCCC ccc;
-
- if (nScrn <= 0) {
- return(0);
- }
-
- /*
- * Create an array of XcmsCCC structures, one for each screen.
- * They serve as the screen's default CCC.
- */
- if (!(ccc = Xcalloc((unsigned)nScrn, sizeof(XcmsCCCRec)))) {
- return(0);
- }
- dpy->cms.defaultCCCs = (XPointer)ccc;
- dpy->free_funcs->defaultCCCs = _XcmsFreeDefaultCCCs;
-
- for (i = 0; i < nScrn; i++, ccc++) {
- ccc->dpy = dpy;
- ccc->screenNumber = i;
- ccc->visual = DefaultVisual(dpy, i);
- /*
- * Used calloc to allocate memory so:
- * ccc->clientWhitePt->format == XcmsUndefinedFormat
- * ccc->gamutCompProc == NULL
- * ccc->whitePtAdjProc == NULL
- * ccc->pPerScrnInfo = NULL
- *
- * Don't need to create XcmsPerScrnInfo and its functionSet and
- * pScreenData components until the default CCC is accessed.
- * Note that the XcmsDefaultCCC routine calls _XcmsInitScrnInto
- * to do this.
- */
- ccc->gamutCompProc = XCMSCOMPPROC;
- }
-
- return(1);
-}
-
-
-/*
- * NAME
- * _XcmsFreeDefaultCCCs - Free Default CCCs and its PerScrnInfo
- *
- * SYNOPSIS
- */
-static void
-_XcmsFreeDefaultCCCs(
- Display *dpy)
-/*
- * DESCRIPTION
- * This routine frees the default XcmsCCC's associated with
- * each screen and its associated substructures as neccessary.
- *
- * RETURNS
- * void
- *
- *
- */
-{
- int nScrn = ScreenCount(dpy);
- XcmsCCC ccc;
- int i;
-
- /*
- * Free Screen data in each DefaultCCC
- * Do not use XcmsFreeCCC here because it will not free
- * DefaultCCC's.
- */
- ccc = (XcmsCCC)dpy->cms.defaultCCCs;
- for (i = nScrn; i--; ccc++) {
- /*
- * Check if XcmsPerScrnInfo exists.
- *
- * This is the only place where XcmsPerScrnInfo structures
- * are freed since there is only one allocated per Screen.
- * It just so happens that we place its reference in the
- * default CCC.
- */
- if (ccc->pPerScrnInfo) {
- /* Check if SCCData exists */
- if (ccc->pPerScrnInfo->state != XcmsInitNone
- && ccc->pPerScrnInfo->screenData) {
- (*((XcmsFunctionSet *)ccc->pPerScrnInfo->functionSet)->screenFreeProc)
- (ccc->pPerScrnInfo->screenData);
- }
- Xfree(ccc->pPerScrnInfo);
- }
- }
-
- /*
- * Free the array of XcmsCCC structures
- */
- Xfree(dpy->cms.defaultCCCs);
- dpy->cms.defaultCCCs = (XPointer)NULL;
-}
-
-
-
-/*
- * NAME
- * _XcmsInitScrnInfo
- *
- * SYNOPSIS
- */
-int
-_XcmsInitScrnInfo(
- register Display *dpy,
- int screenNumber)
-/*
- * DESCRIPTION
- * Given a display and screen number, this routine attempts
- * to initialize the Xcms per Screen Info structure
- * (XcmsPerScrnInfo).
- *
- * RETURNS
- * Returns zero if initialization failed; non-zero otherwise.
- */
-{
- XcmsFunctionSet **papSCCFuncSet = _XcmsSCCFuncSets;
- XcmsCCC defaultccc;
-
- /*
- * Check if the XcmsCCC's for each screen has been created.
- * Really dont need to be created until some routine uses the Xcms
- * API routines.
- */
- if ((XcmsCCC)dpy->cms.defaultCCCs == NULL) {
- if (!_XcmsInitDefaultCCCs(dpy)) {
- return(0);
- }
- }
-
- defaultccc = (XcmsCCC)dpy->cms.defaultCCCs + screenNumber;
-
- /*
- * For each SCCFuncSet, try its pInitScrnFunc.
- * If the function succeeds, then we got it!
- */
-
- if (!defaultccc->pPerScrnInfo) {
- /*
- * This is one of two places where XcmsPerScrnInfo structures
- * are allocated. There is one allocated per Screen that is
- * shared among visuals that do not have specific intensity
- * tables. Other XcmsPerScrnInfo structures are created
- * for the latter (see XcmsCreateCCC). The ones created
- * here are referenced by the default CCC.
- */
- if (!(defaultccc->pPerScrnInfo =
- Xcalloc(1, sizeof(XcmsPerScrnInfo)))) {
- return(0);
- }
- defaultccc->pPerScrnInfo->state = XcmsInitNone;
- }
-
- while (*papSCCFuncSet != NULL) {
- if ((*(*papSCCFuncSet)->screenInitProc)(dpy, screenNumber,
- defaultccc->pPerScrnInfo)) {
- defaultccc->pPerScrnInfo->state = XcmsInitSuccess;
- return(1);
- }
- papSCCFuncSet++;
- }
-
- /*
- * Use Default SCCData
- */
- return(_XcmsLRGB_InitScrnDefault(dpy, screenNumber, defaultccc->pPerScrnInfo));
-}
-
-
-/*
- * NAME
- * _XcmsFreeIntensityMaps
- *
- * SYNOPSIS
- */
-void
-_XcmsFreeIntensityMaps(
- Display *dpy)
-/*
- * DESCRIPTION
- * Frees all XcmsIntensityMap structures in the linked list
- * and sets dpy->cms.perVisualIntensityMaps to NULL.
- *
- * RETURNS
- * void
- *
- */
-{
- XcmsIntensityMap *pNext, *pFree;
-
- pNext = (XcmsIntensityMap *)dpy->cms.perVisualIntensityMaps;
- while (pNext != NULL) {
- pFree = pNext;
- pNext = pNext->pNext;
- (*pFree->pFreeScreenData)(pFree->screenData);
- /* Now free the XcmsIntensityMap structure */
- Xfree(pFree);
- }
- dpy->cms.perVisualIntensityMaps = (XPointer)NULL;
-}
-
-
-/*
- * NAME
- * _XcmsGetIntensityMap
- *
- * SYNOPSIS
- */
-XcmsIntensityMap *
-_XcmsGetIntensityMap(
- Display *dpy,
- Visual *visual)
-/*
- * DESCRIPTION
- * Attempts to return a per-Visual intensity map.
- *
- * RETURNS
- * Pointer to the XcmsIntensityMap structure if found;
- * otherwise NULL
- *
- */
-{
- VisualID targetID = visual->visualid;
- XcmsIntensityMap *pNext;
-
- pNext = (XcmsIntensityMap *)dpy->cms.perVisualIntensityMaps;
- while (pNext != NULL) {
- if (targetID == pNext->visualID) {
- return(pNext);
- }
- pNext = pNext->pNext;
- }
- return((XcmsIntensityMap *)NULL);
-}
diff --git a/nx-X11/lib/X11/cmsLkCol.c b/nx-X11/lib/X11/cmsLkCol.c
deleted file mode 100644
index 15e987424..000000000
--- a/nx-X11/lib/X11/cmsLkCol.c
+++ /dev/null
@@ -1,193 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * XcmsLkCol.c
- *
- * DESCRIPTION
- * Source for XcmsLookupColor
- *
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/*
- * NAME
- * XcmsLookupColor -
- *
- * SYNOPSIS
- */
-Status
-XcmsLookupColor (
- Display *dpy,
- Colormap cmap,
- _Xconst char *colorname,
- XcmsColor *pColor_exact_return,
- XcmsColor *pColor_scrn_return,
- XcmsColorFormat result_format)
-/*
- * DESCRIPTION
- * The XcmsLookupColor function finds the color specification
- * associated with a color name in the Device-Independent Color
- * Name Database.
- * RETURNS
- * This function returns both the color specification found in the
- * database (db specification) and the color specification for the
- * color displayable by the specified screen (screen
- * specification). The calling routine sets the format for these
- * returned specifications in the XcmsColor format component.
- * If XcmsUndefinedFormat, the specification is returned in the
- * format used to store the color in the database.
- */
-{
- Status retval1 = XcmsSuccess;
- Status retval2 = XcmsSuccess;
- XcmsCCC ccc;
- register int n;
- xLookupColorReply reply;
- register xLookupColorReq *req;
- XColor def, scr;
-
-/*
- * 0. Check for invalid arguments.
- */
- if (dpy == NULL || colorname[0] == '\0' || pColor_scrn_return == 0
- || pColor_exact_return == NULL) {
- return(XcmsFailure);
- }
-
- if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
- return(XcmsFailure);
- }
-
-/*
- * 1. Convert string to a XcmsColor
- */
- if ((retval1 = _XcmsResolveColorString(ccc, &colorname,
- pColor_exact_return, result_format)) == XcmsFailure) {
- return(XcmsFailure);
- }
- if (retval1 == _XCMS_NEWNAME) {
- goto PassToServer;
- }
-
-/*
- * 2. pColor_scrn_return
- * Assume the pColor_exact_return has already been adjusted to
- * the Client White Point.
- *
- */
- /*
- * Convert to RGB, adjusting for white point differences if necessary.
- */
- memcpy((char *)pColor_scrn_return, (char *)pColor_exact_return,
- sizeof(XcmsColor));
- if (pColor_scrn_return->format == XcmsRGBFormat) {
- retval2 = XcmsSuccess;
- } else if ((retval2 = XcmsConvertColors(ccc, pColor_scrn_return, 1,
- XcmsRGBFormat, (Bool *)NULL)) == XcmsFailure) {
- return(XcmsFailure);
- }
-
- /*
- * Then, convert XcmsColor structure to the target specification
- * format. Note that we must use NULL instead of passing
- * pCompressed.
- */
-
- if (result_format == XcmsUndefinedFormat) {
- result_format = pColor_exact_return->format;
- }
- if (result_format == XcmsRGBFormat) {
- _XcmsUnresolveColor(ccc, pColor_scrn_return);
- } else {
- _XcmsResolveColor(ccc, pColor_scrn_return);
- if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- return(retval1 > retval2 ? retval1 : retval2);
-
-PassToServer:
- /*
- * Xcms and i18n methods failed, so lets pass it to the server
- * for parsing.
- */
-
- LockDisplay(dpy);
- GetReq (LookupColor, req);
- req->cmap = cmap;
- req->nbytes = n = strlen(colorname);
- req->length += (n + 3) >> 2;
- Data (dpy, colorname, (long)n);
- if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) {
- UnlockDisplay(dpy);
- SyncHandle();
- return (XcmsFailure);
- }
- def.red = reply.exactRed;
- def.green = reply.exactGreen;
- def.blue = reply.exactBlue;
-
- scr.red = reply.screenRed;
- scr.green = reply.screenGreen;
- scr.blue = reply.screenBlue;
-
- UnlockDisplay(dpy);
- SyncHandle();
-
- _XColor_to_XcmsRGB(ccc, &def, pColor_exact_return, 1);
- _XColor_to_XcmsRGB(ccc, &scr, pColor_scrn_return, 1);
-
- /*
- * Then, convert XcmsColor structure to the target specification
- * format. Note that we must use NULL instead of passing
- * pCompressed.
- */
-
- if (result_format != XcmsRGBFormat
- && result_format != XcmsUndefinedFormat) {
- if (XcmsConvertColors(ccc, pColor_exact_return, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- if (XcmsConvertColors(ccc, pColor_scrn_return, 1, result_format,
- (Bool *) NULL) == XcmsFailure) {
- return(XcmsFailure);
- }
- }
-
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/cmsMath.c b/nx-X11/lib/X11/cmsMath.c
deleted file mode 100644
index 487eb3f9c..000000000
--- a/nx-X11/lib/X11/cmsMath.c
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/*
-
-Copyright 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/*
- * Stephen Gildea, MIT X Consortium, January 1991
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xcmsint.h"
-
-#ifdef DEBUG
-#include <stdio.h>
-#endif
-
-#include <float.h>
-#ifndef DBL_EPSILON
-#define DBL_EPSILON 1e-6
-#endif
-
-#ifdef _X_ROOT_STATS
-int cbrt_loopcount;
-int sqrt_loopcount;
-#endif
-
-/* Newton's Method: x_n+1 = x_n - ( f(x_n) / f'(x_n) ) */
-
-
-/* for cube roots, x^3 - a = 0, x_new = x - 1/3 (x - a/x^2) */
-
-double
-_XcmsCubeRoot(double a)
-{
- register double abs_a, cur_guess, delta;
-
-#ifdef DEBUG
- printf("_XcmsCubeRoot passed in %g\n", a);
-#endif
-#ifdef _X_ROOT_STATS
- cbrt_loopcount = 0;
-#endif
- if (a == 0.)
- return 0.;
-
- abs_a = a<0. ? -a : a; /* convert to positive to speed loop tests */
-
- /* arbitrary first guess */
- if (abs_a > 1.)
- cur_guess = abs_a/8.;
- else
- cur_guess = abs_a*8.;
-
- do {
-#ifdef _X_ROOT_STATS
- cbrt_loopcount++;
-#endif
- delta = (cur_guess - abs_a/(cur_guess*cur_guess))/3.;
- cur_guess -= delta;
- if (delta < 0.) delta = -delta;
- } while (delta >= cur_guess*DBL_EPSILON);
-
- if (a < 0.)
- cur_guess = -cur_guess;
-
-#ifdef DEBUG
- printf("_XcmsCubeRoot returning %g\n", cur_guess);
-#endif
- return cur_guess;
-}
-
-
-
-/* for square roots, x^2 - a = 0, x_new = x - 1/2 (x - a/x) */
-
-double
-_XcmsSquareRoot(double a)
-{
- register double cur_guess, delta;
-
-#ifdef DEBUG
- printf("_XcmsSquareRoot passed in %g\n", a);
-#endif
-#ifdef _X_ROOT_STATS
- sqrt_loopcount = 0;
-#endif
- if (a == 0.)
- return 0.;
-
- if (a < 0.) {
- /* errno = EDOM; */
- return 0.;
- }
-
- /* arbitrary first guess */
- if (a > 1.)
- cur_guess = a/4.;
- else
- cur_guess = a*4.;
-
- do {
-#ifdef _X_ROOT_STATS
- sqrt_loopcount++;
-#endif
- delta = (cur_guess - a/cur_guess)/2.;
- cur_guess -= delta;
- if (delta < 0.) delta = -delta;
- } while (delta >= cur_guess*DBL_EPSILON);
-
-#ifdef DEBUG
- printf("_XcmsSquareRoot returning %g\n", cur_guess);
-#endif
- return cur_guess;
-}
-
diff --git a/nx-X11/lib/X11/cmsProp.c b/nx-X11/lib/X11/cmsProp.c
deleted file mode 100644
index a7aa5b5c5..000000000
--- a/nx-X11/lib/X11/cmsProp.c
+++ /dev/null
@@ -1,153 +0,0 @@
-
-/*
- *
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * XcmsProp.c
- *
- * DESCRIPTION
- * This utility routines for manipulating properties.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-
-/************************************************************************
- * *
- * API PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-
-/*
- * NAME
- * _XcmsGetElement -- get an element value from the property passed
- *
- * SYNOPSIS
- */
-unsigned long
-_XcmsGetElement(
- int format,
- char **pValue,
- unsigned long *pCount)
-/*
- * DESCRIPTION
- * Get the next element from the property and return it.
- * Also increment the pointer the amount needed.
- *
- * Returns
- * unsigned long
- */
-{
- unsigned long value;
-
- switch (format) {
- case 32:
- value = *((unsigned long *)(*pValue)) & 0xFFFFFFFF;
- *pValue += sizeof(unsigned long);
- *pCount -= 1;
- break;
- case 16:
- value = *((unsigned short *)(*pValue));
- *pValue += sizeof(unsigned short);
- *pCount -= 1;
- break;
- case 8:
- value = *((unsigned char *) (*pValue));
- *pValue += 1;
- *pCount -= 1;
- break;
- default:
- value = 0;
- break;
- }
- return(value);
-}
-
-
-/*
- * NAME
- * _XcmsGetProperty -- Determine the existance of a property
- *
- * SYNOPSIS
- */
-int
-_XcmsGetProperty(
- Display *pDpy,
- Window w,
- Atom property,
- int *pFormat,
- unsigned long *pNItems,
- unsigned long *pNBytes,
- char **pValue)
-/*
- * DESCRIPTION
- *
- * Returns
- * 0 if property does not exist.
- * 1 if property exists.
- */
-{
- char *prop_ret;
- int format_ret;
- long len = 6516;
- #ifdef NXAGENT_SERVER
- unsigned long nitems_ret, after_ret = 0;
- #else
- unsigned long nitems_ret, after_ret;
- #endif
- Atom atom_ret;
- int xgwp_ret;
-
- while (True) {
- xgwp_ret = XGetWindowProperty (pDpy, w, property, 0, len, False,
- XA_INTEGER, &atom_ret, &format_ret,
- &nitems_ret, &after_ret,
- (unsigned char **)&prop_ret);
- if (xgwp_ret == Success && after_ret > 0) {
- len += nitems_ret * (format_ret >> 3);
- XFree (prop_ret);
- } else {
- break;
- }
- }
- if (xgwp_ret != Success || format_ret == 0 || nitems_ret == 0) {
- /* the property does not exist or is of an unexpected type or
- getting window property failed */
- return(XcmsFailure);
- }
-
- *pFormat = format_ret;
- *pNItems = nitems_ret;
- *pNBytes = nitems_ret * (format_ret >> 3);
- *pValue = prop_ret;
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/cmsTrig.c b/nx-X11/lib/X11/cmsTrig.c
deleted file mode 100644
index b23033aa8..000000000
--- a/nx-X11/lib/X11/cmsTrig.c
+++ /dev/null
@@ -1,578 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * It should be pointed out that for simplicity's sake, the
- * environment parameters are defined as floating point constants,
- * rather than octal or hexadecimal initializations of allocated
- * storage areas. This means that the range of allowed numbers
- * may not exactly match the hardware's capabilities. For example,
- * if the maximum positive double precision floating point number
- * is EXACTLY 1.11...E100 and the constant "MAXDOUBLE is
- * defined to be 1.11E100 then the numbers between 1.11E100 and
- * 1.11...E100 are considered to be undefined. For most
- * applications, this will cause no problems.
- *
- * An alternate method is to allocate a global static "double" variable,
- * say "maxdouble", and use a union declaration and initialization
- * to initialize it with the proper bits for the EXACT maximum value.
- * This was not done because the only compilers available to the
- * author did not fully support union initialization features.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xcmsint.h"
-
-/* forward/static */
-static double _XcmsModulo(double value, double base);
-static double _XcmsPolynomial(
- register int order,
- double const *coeffs,
- double x);
-static double
-_XcmsModuloF(
- double val,
- register double *dp);
-
-/*
- * DEFINES
- */
-#define XCMS_MAXERROR 0.000001
-#define XCMS_MAXITER 10000
-#define XCMS_PI 3.14159265358979323846264338327950
-#define XCMS_TWOPI 6.28318530717958620
-#define XCMS_HALFPI 1.57079632679489660
-#define XCMS_FOURTHPI 0.785398163397448280
-#define XCMS_SIXTHPI 0.523598775598298820
-#define XCMS_RADIANS(d) ((d) * XCMS_PI / 180.0)
-#define XCMS_DEGREES(r) ((r) * 180.0 / XCMS_PI)
-#define XCMS_X6_UNDERFLOWS (4.209340e-52) /* X**6 almost underflows */
-#define XCMS_X16_UNDERFLOWS (5.421010e-20) /* X**16 almost underflows*/
-#define XCMS_CHAR_BIT 8
-#define XCMS_LONG_MAX 0x7FFFFFFF
-#define XCMS_DEXPLEN 11
-#define XCMS_NBITS(type) (XCMS_CHAR_BIT * (int)sizeof(type))
-#define XCMS_FABS(x) ((x) < 0.0 ? -(x) : (x))
-
-/* XCMS_DMAXPOWTWO - largest power of two exactly representable as a double */
-#define XCMS_DMAXPOWTWO ((double)(XCMS_LONG_MAX) * \
- (1L << ((XCMS_NBITS(double)-XCMS_DEXPLEN) - XCMS_NBITS(int) + 1)))
-
-/*
- * LOCAL VARIABLES
- */
-
-static double const cos_pcoeffs[] = {
- 0.12905394659037374438e7,
- -0.37456703915723204710e6,
- 0.13432300986539084285e5,
- -0.11231450823340933092e3
-};
-
-static double const cos_qcoeffs[] = {
- 0.12905394659037373590e7,
- 0.23467773107245835052e5,
- 0.20969518196726306286e3,
- 1.0
-};
-
-static double const sin_pcoeffs[] = {
- 0.20664343336995858240e7,
- -0.18160398797407332550e6,
- 0.35999306949636188317e4,
- -0.20107483294588615719e2
-};
-
-static double const sin_qcoeffs[] = {
- 0.26310659102647698963e7,
- 0.39270242774649000308e5,
- 0.27811919481083844087e3,
- 1.0
-};
-
-/*
- *
- * FUNCTION
- *
- * _XcmsCosine double precision cosine
- *
- * KEY WORDS
- *
- * cos
- * machine independent routines
- * trigonometric functions
- * math libraries
- *
- * DESCRIPTION
- *
- * Returns double precision cosine of double precision
- * floating point argument.
- *
- * USAGE
- *
- * double _XcmsCosine (x)
- * double x;
- *
- * REFERENCES
- *
- * Computer Approximations, J.F. Hart et al, John Wiley & Sons,
- * 1968, pp. 112-120.
- *
- * RESTRICTIONS
- *
- * The sin and cos routines are interactive in the sense that
- * in the process of reducing the argument to the range -PI/4
- * to PI/4, each may call the other. Ultimately one or the
- * other uses a polynomial approximation on the reduced
- * argument. The sin approximation has a maximum relative error
- * of 10**(-17.59) and the cos approximation has a maximum
- * relative error of 10**(-16.18).
- *
- * These error bounds assume exact arithmetic
- * in the polynomial evaluation. Additional rounding and
- * truncation errors may occur as the argument is reduced
- * to the range over which the polynomial approximation
- * is valid, and as the polynomial is evaluated using
- * finite-precision arithmetic.
- *
- * PROGRAMMER
- *
- * Fred Fish
- *
- * INTERNALS
- *
- * Computes cos(x) from:
- *
- * (1) Reduce argument x to range -PI to PI.
- *
- * (2) If x > PI/2 then call cos recursively
- * using relation cos(x) = -cos(x - PI).
- *
- * (3) If x < -PI/2 then call cos recursively
- * using relation cos(x) = -cos(x + PI).
- *
- * (4) If x > PI/4 then call sin using
- * relation cos(x) = sin(PI/2 - x).
- *
- * (5) If x < -PI/4 then call cos using
- * relation cos(x) = sin(PI/2 + x).
- *
- * (6) If x would cause underflow in approx
- * evaluation arithmetic then return
- * sqrt(1.0 - x**2).
- *
- * (7) By now x has been reduced to range
- * -PI/4 to PI/4 and the approximation
- * from HART pg. 119 can be used:
- *
- * cos(x) = ( p(y) / q(y) )
- * Where:
- *
- * y = x * (4/PI)
- *
- * p(y) = SUM [ Pj * (y**(2*j)) ]
- * over j = {0,1,2,3}
- *
- * q(y) = SUM [ Qj * (y**(2*j)) ]
- * over j = {0,1,2,3}
- *
- * P0 = 0.12905394659037374438571854e+7
- * P1 = -0.3745670391572320471032359e+6
- * P2 = 0.134323009865390842853673e+5
- * P3 = -0.112314508233409330923e+3
- * Q0 = 0.12905394659037373590295914e+7
- * Q1 = 0.234677731072458350524124e+5
- * Q2 = 0.2096951819672630628621e+3
- * Q3 = 1.0000...
- * (coefficients from HART table #3843 pg 244)
- *
- *
- * **** NOTE **** The range reduction relations used in
- * this routine depend on the final approximation being valid
- * over the negative argument range in addition to the positive
- * argument range. The particular approximation chosen from
- * HART satisfies this requirement, although not explicitly
- * stated in the text. This may not be true of other
- * approximations given in the reference.
- *
- */
-
-double _XcmsCosine(double x)
-{
- auto double y;
- auto double yt2;
- double retval;
-
- if (x < -XCMS_PI || x > XCMS_PI) {
- x = _XcmsModulo (x, XCMS_TWOPI);
- if (x > XCMS_PI) {
- x = x - XCMS_TWOPI;
- } else if (x < -XCMS_PI) {
- x = x + XCMS_TWOPI;
- }
- }
- if (x > XCMS_HALFPI) {
- retval = -(_XcmsCosine (x - XCMS_PI));
- } else if (x < -XCMS_HALFPI) {
- retval = -(_XcmsCosine (x + XCMS_PI));
- } else if (x > XCMS_FOURTHPI) {
- retval = _XcmsSine (XCMS_HALFPI - x);
- } else if (x < -XCMS_FOURTHPI) {
- retval = _XcmsSine (XCMS_HALFPI + x);
- } else if (x < XCMS_X6_UNDERFLOWS && x > -XCMS_X6_UNDERFLOWS) {
- retval = _XcmsSquareRoot (1.0 - (x * x));
- } else {
- y = x / XCMS_FOURTHPI;
- yt2 = y * y;
- retval = _XcmsPolynomial (3, cos_pcoeffs, yt2) / _XcmsPolynomial (3, cos_qcoeffs, yt2);
- }
- return (retval);
-}
-
-
-/*
- * FUNCTION
- *
- * _XcmsModulo double precision modulo
- *
- * KEY WORDS
- *
- * _XcmsModulo
- * machine independent routines
- * math libraries
- *
- * DESCRIPTION
- *
- * Returns double precision modulo of two double
- * precision arguments.
- *
- * USAGE
- *
- * double _XcmsModulo (value, base)
- * double value;
- * double base;
- *
- * PROGRAMMER
- *
- * Fred Fish
- *
- */
-static double _XcmsModulo(double value, double base)
-{
- auto double intpart;
-
- value /= base;
- value = _XcmsModuloF (value, &intpart);
- value *= base;
- return(value);
-}
-
-
-/*
- * frac = (double) _XcmsModuloF(double val, double *dp)
- * return fractional part of 'val'
- * set *dp to integer part of 'val'
- *
- * Note -> only compiled for the CA or KA. For the KB/MC,
- * "math.c" instantiates a copy of the inline function
- * defined in "math.h".
- */
-static double
-_XcmsModuloF(
- double val,
- register double *dp)
-{
- register double abs;
- /*
- * Don't use a register for this. The extra precision this results
- * in on some systems causes problems.
- */
- double ip;
-
- /* should check for illegal values here - nan, inf, etc */
- abs = XCMS_FABS(val);
- if (abs >= XCMS_DMAXPOWTWO) {
- ip = val;
- } else {
- ip = abs + XCMS_DMAXPOWTWO; /* dump fraction */
- ip -= XCMS_DMAXPOWTWO; /* restore w/o frac */
- if (ip > abs) /* if it rounds up */
- ip -= 1.0; /* fix it */
- ip = XCMS_FABS(ip);
- }
- *dp = ip;
- return (val - ip); /* signed fractional part */
-}
-
-
-/*
- * FUNCTION
- *
- * _XcmsPolynomial double precision polynomial evaluation
- *
- * KEY WORDS
- *
- * poly
- * machine independent routines
- * math libraries
- *
- * DESCRIPTION
- *
- * Evaluates a polynomial and returns double precision
- * result. Is passed a the order of the polynomial,
- * a pointer to an array of double precision polynomial
- * coefficients (in ascending order), and the independent
- * variable.
- *
- * USAGE
- *
- * double _XcmsPolynomial (order, coeffs, x)
- * int order;
- * double *coeffs;
- * double x;
- *
- * PROGRAMMER
- *
- * Fred Fish
- *
- * INTERNALS
- *
- * Evalates the polynomial using recursion and the form:
- *
- * P(x) = P0 + x(P1 + x(P2 +...x(Pn)))
- *
- */
-
-static double _XcmsPolynomial(
- register int order,
- double const *coeffs,
- double x)
-{
- auto double rtn_value;
-
- coeffs += order;
- rtn_value = *coeffs--;
- while(order-- > 0)
- rtn_value = *coeffs-- + (x * rtn_value);
-
- return(rtn_value);
-}
-
-
-/*
- * FUNCTION
- *
- * _XcmsSine double precision sine
- *
- * KEY WORDS
- *
- * sin
- * machine independent routines
- * trigonometric functions
- * math libraries
- *
- * DESCRIPTION
- *
- * Returns double precision sine of double precision
- * floating point argument.
- *
- * USAGE
- *
- * double _XcmsSine (x)
- * double x;
- *
- * REFERENCES
- *
- * Computer Approximations, J.F. Hart et al, John Wiley & Sons,
- * 1968, pp. 112-120.
- *
- * RESTRICTIONS
- *
- * The sin and cos routines are interactive in the sense that
- * in the process of reducing the argument to the range -PI/4
- * to PI/4, each may call the other. Ultimately one or the
- * other uses a polynomial approximation on the reduced
- * argument. The sin approximation has a maximum relative error
- * of 10**(-17.59) and the cos approximation has a maximum
- * relative error of 10**(-16.18).
- *
- * These error bounds assume exact arithmetic
- * in the polynomial evaluation. Additional rounding and
- * truncation errors may occur as the argument is reduced
- * to the range over which the polynomial approximation
- * is valid, and as the polynomial is evaluated using
- * finite-precision arithmetic.
- *
- * PROGRAMMER
- *
- * Fred Fish
- *
- * INTERNALS
- *
- * Computes sin(x) from:
- *
- * (1) Reduce argument x to range -PI to PI.
- *
- * (2) If x > PI/2 then call sin recursively
- * using relation sin(x) = -sin(x - PI).
- *
- * (3) If x < -PI/2 then call sin recursively
- * using relation sin(x) = -sin(x + PI).
- *
- * (4) If x > PI/4 then call cos using
- * relation sin(x) = cos(PI/2 - x).
- *
- * (5) If x < -PI/4 then call cos using
- * relation sin(x) = -cos(PI/2 + x).
- *
- * (6) If x is small enough that polynomial
- * evaluation would cause underflow
- * then return x, since sin(x)
- * approaches x as x approaches zero.
- *
- * (7) By now x has been reduced to range
- * -PI/4 to PI/4 and the approximation
- * from HART pg. 118 can be used:
- *
- * sin(x) = y * ( p(y) / q(y) )
- * Where:
- *
- * y = x * (4/PI)
- *
- * p(y) = SUM [ Pj * (y**(2*j)) ]
- * over j = {0,1,2,3}
- *
- * q(y) = SUM [ Qj * (y**(2*j)) ]
- * over j = {0,1,2,3}
- *
- * P0 = 0.206643433369958582409167054e+7
- * P1 = -0.18160398797407332550219213e+6
- * P2 = 0.359993069496361883172836e+4
- * P3 = -0.2010748329458861571949e+2
- * Q0 = 0.263106591026476989637710307e+7
- * Q1 = 0.3927024277464900030883986e+5
- * Q2 = 0.27811919481083844087953e+3
- * Q3 = 1.0000...
- * (coefficients from HART table #3063 pg 234)
- *
- *
- * **** NOTE **** The range reduction relations used in
- * this routine depend on the final approximation being valid
- * over the negative argument range in addition to the positive
- * argument range. The particular approximation chosen from
- * HART satisfies this requirement, although not explicitly
- * stated in the text. This may not be true of other
- * approximations given in the reference.
- *
- */
-
-double
-_XcmsSine (double x)
-{
- double y;
- double yt2;
- double retval;
-
- if (x < -XCMS_PI || x > XCMS_PI) {
- x = _XcmsModulo (x, XCMS_TWOPI);
- if (x > XCMS_PI) {
- x = x - XCMS_TWOPI;
- } else if (x < -XCMS_PI) {
- x = x + XCMS_TWOPI;
- }
- }
- if (x > XCMS_HALFPI) {
- retval = -(_XcmsSine (x - XCMS_PI));
- } else if (x < -XCMS_HALFPI) {
- retval = -(_XcmsSine (x + XCMS_PI));
- } else if (x > XCMS_FOURTHPI) {
- retval = _XcmsCosine (XCMS_HALFPI - x);
- } else if (x < -XCMS_FOURTHPI) {
- retval = -(_XcmsCosine (XCMS_HALFPI + x));
- } else if (x < XCMS_X6_UNDERFLOWS && x > -XCMS_X6_UNDERFLOWS) {
- retval = x;
- } else {
- y = x / XCMS_FOURTHPI;
- yt2 = y * y;
- retval = y * (_XcmsPolynomial (3, sin_pcoeffs, yt2) / _XcmsPolynomial(3, sin_qcoeffs, yt2));
- }
- return(retval);
-}
-
-
-/*
- * NAME
- * _XcmsArcTangent
- *
- * SYNOPSIS
- */
-double
-_XcmsArcTangent(double x)
-/*
- * DESCRIPTION
- * Computes the arctangent.
- * This is an implementation of the Gauss algorithm as
- * described in:
- * Forman S. Acton, Numerical Methods That Work,
- * New York, NY, Harper & Row, 1970.
- *
- * RETURNS
- * Returns the arctangent
- */
-{
- double ai, a1 = 0.0, bi, b1 = 0.0, l, d;
- double maxerror;
- int i;
-
- if (x == 0.0) {
- return (0.0);
- }
- if (x < 1.0) {
- maxerror = x * XCMS_MAXERROR;
- } else {
- maxerror = XCMS_MAXERROR;
- }
- ai = _XcmsSquareRoot( 1.0 / (1.0 + (x * x)) );
- bi = 1.0;
- for (i = 0; i < XCMS_MAXITER; i++) {
- a1 = (ai + bi) / 2.0;
- b1 = _XcmsSquareRoot((a1 * bi));
- if (a1 == b1)
- break;
- d = XCMS_FABS(a1 - b1);
- if (d < maxerror)
- break;
- ai = a1;
- bi = b1;
- }
-
- l = ((a1 > b1) ? b1 : a1);
-
- a1 = _XcmsSquareRoot(1 + (x * x));
- return (x / (a1 * l));
-}
diff --git a/nx-X11/lib/X11/cursorfont.h b/nx-X11/lib/X11/cursorfont.h
deleted file mode 100644
index a0fbf3c6b..000000000
--- a/nx-X11/lib/X11/cursorfont.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#if !defined(_X11_CURSORFONT_H_) && !defined(_cursorfont_h_)
-#define _X11_CURSORFONT_H_
-#define _cursorfont_h_
-
-#define XC_num_glyphs 154
-#define XC_X_cursor 0
-#define XC_arrow 2
-#define XC_based_arrow_down 4
-#define XC_based_arrow_up 6
-#define XC_boat 8
-#define XC_bogosity 10
-#define XC_bottom_left_corner 12
-#define XC_bottom_right_corner 14
-#define XC_bottom_side 16
-#define XC_bottom_tee 18
-#define XC_box_spiral 20
-#define XC_center_ptr 22
-#define XC_circle 24
-#define XC_clock 26
-#define XC_coffee_mug 28
-#define XC_cross 30
-#define XC_cross_reverse 32
-#define XC_crosshair 34
-#define XC_diamond_cross 36
-#define XC_dot 38
-#define XC_dotbox 40
-#define XC_double_arrow 42
-#define XC_draft_large 44
-#define XC_draft_small 46
-#define XC_draped_box 48
-#define XC_exchange 50
-#define XC_fleur 52
-#define XC_gobbler 54
-#define XC_gumby 56
-#define XC_hand1 58
-#define XC_hand2 60
-#define XC_heart 62
-#define XC_icon 64
-#define XC_iron_cross 66
-#define XC_left_ptr 68
-#define XC_left_side 70
-#define XC_left_tee 72
-#define XC_leftbutton 74
-#define XC_ll_angle 76
-#define XC_lr_angle 78
-#define XC_man 80
-#define XC_middlebutton 82
-#define XC_mouse 84
-#define XC_pencil 86
-#define XC_pirate 88
-#define XC_plus 90
-#define XC_question_arrow 92
-#define XC_right_ptr 94
-#define XC_right_side 96
-#define XC_right_tee 98
-#define XC_rightbutton 100
-#define XC_rtl_logo 102
-#define XC_sailboat 104
-#define XC_sb_down_arrow 106
-#define XC_sb_h_double_arrow 108
-#define XC_sb_left_arrow 110
-#define XC_sb_right_arrow 112
-#define XC_sb_up_arrow 114
-#define XC_sb_v_double_arrow 116
-#define XC_shuttle 118
-#define XC_sizing 120
-#define XC_spider 122
-#define XC_spraycan 124
-#define XC_star 126
-#define XC_target 128
-#define XC_tcross 130
-#define XC_top_left_arrow 132
-#define XC_top_left_corner 134
-#define XC_top_right_corner 136
-#define XC_top_side 138
-#define XC_top_tee 140
-#define XC_trek 142
-#define XC_ul_angle 144
-#define XC_umbrella 146
-#define XC_ur_angle 148
-#define XC_watch 150
-#define XC_xterm 152
-
-#endif /* !defined(_X11_CURSORFONT_H_) && !defined(_cursorfont_h_) */
diff --git a/nx-X11/lib/X11/evtomask.c b/nx-X11/lib/X11/evtomask.c
deleted file mode 100644
index c5dbad262..000000000
--- a/nx-X11/lib/X11/evtomask.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/X.h>
-
-/*
- * This array can be used given an event type to determine the mask bits
- * that could have generated it.
- */
-long const _Xevent_to_mask [LASTEvent] = {
- 0, /* no event 0 */
- 0, /* no event 1 */
- KeyPressMask, /* KeyPress */
- KeyReleaseMask, /* KeyRelease */
- ButtonPressMask, /* ButtonPress */
- ButtonReleaseMask, /* ButtonRelease */
- PointerMotionMask|PointerMotionHintMask|Button1MotionMask|
- Button2MotionMask|Button3MotionMask|Button4MotionMask|
- Button5MotionMask|ButtonMotionMask, /* MotionNotify */
- EnterWindowMask, /* EnterNotify */
- LeaveWindowMask, /* LeaveNotify */
- FocusChangeMask, /* FocusIn */
- FocusChangeMask, /* FocusOut */
- KeymapStateMask, /* KeymapNotify */
- ExposureMask, /* Expose */
- ExposureMask, /* GraphicsExpose */
- ExposureMask, /* NoExpose */
- VisibilityChangeMask, /* VisibilityNotify */
- SubstructureNotifyMask, /* CreateNotify */
- StructureNotifyMask|SubstructureNotifyMask, /* DestroyNotify */
- StructureNotifyMask|SubstructureNotifyMask, /* UnmapNotify */
- StructureNotifyMask|SubstructureNotifyMask, /* MapNotify */
- SubstructureRedirectMask, /* MapRequest */
- SubstructureNotifyMask|StructureNotifyMask, /* ReparentNotify */
- StructureNotifyMask|SubstructureNotifyMask, /* ConfigureNotify */
- SubstructureRedirectMask, /* ConfigureRequest */
- SubstructureNotifyMask|StructureNotifyMask, /* GravityNotify */
- ResizeRedirectMask, /* ResizeRequest */
- SubstructureNotifyMask|StructureNotifyMask, /* CirculateNotify */
- SubstructureRedirectMask, /* CirculateRequest */
- PropertyChangeMask, /* PropertyNotify */
- 0, /* SelectionClear */
- 0, /* SelectionRequest */
- 0, /* SelectionNotify */
- ColormapChangeMask, /* ColormapNotify */
- 0, /* ClientMessage */
- 0, /* MappingNotify */
-};
diff --git a/nx-X11/lib/X11/globals.c b/nx-X11/lib/X11/globals.c
deleted file mode 100644
index efae2f8bb..000000000
--- a/nx-X11/lib/X11/globals.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-
-Copyright 1989, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- *
- * Global data
- *
- * This file should contain only those objects which must be predefined.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-
-
-/*
- * If possible, it is useful to have the global data default to a null value.
- * Some shared library implementations are *much* happier if there isn't any
- * global initialized data.
- */
-#ifdef NULL_NOT_ZERO /* then need to initialize */
-#define SetZero(t,var,z) t var = z
-#else
-#define SetZero(t,var,z) t var
-#endif
-
-#ifdef USL_SHAREDLIB /* then need extra variables */
-/*
- * If we need to define extra variables for each global
- */
-#define ZEROINIT(t,var,val) SetZero(t,var,val); \
- SetZero (long, _libX_##var##Flag, 0); \
- SetZero (void *, _libX_##var##Ptr, NULL)
-
-#else /* else not USL_SHAREDLIB */
-/*
- * no extra crud
- */
-#define ZEROINIT(t,var,val) SetZero (t, var, val)
-
-#endif /* USL_SHAREDLIB */
-
-
-/*
- * Error handlers; used to be in XlibInt.c
- */
-ZEROINIT (XErrorHandler, _XErrorFunction, NULL);
-ZEROINIT (XIOErrorHandler, _XIOErrorFunction, NULL);
-ZEROINIT (_XQEvent *, _qfree, NULL);
-
-
-/*
- * Debugging information and display list; used to be in XOpenDis.c
- */
-ZEROINIT (int, _Xdebug, 0);
-ZEROINIT (Display *, _XHeadOfDisplayList, NULL);
-
-
-#ifdef XTEST1
-/*
- * Stuff for input synthesis extension:
- */
-/*
- * Holds the two event type codes for this extension. The event type codes
- * for this extension may vary depending on how many extensions are installed
- * already, so the initial values given below will be added to the base event
- * code that is aquired when this extension is installed.
- *
- * These two variables must be available to programs that use this extension.
- */
-int XTestInputActionType = 0;
-int XTestFakeAckType = 1;
-#endif
-
-/*
- * NOTE: any additional external definition NEED
- * to be inserted BELOW this point!!!
- */
-
-/*
- * NOTE: any additional external definition NEED
- * to be inserted ABOVE this point!!!
- */
diff --git a/nx-X11/lib/X11/imCallbk.c b/nx-X11/lib/X11/imCallbk.c
deleted file mode 100644
index 4e091d8ef..000000000
--- a/nx-X11/lib/X11/imCallbk.c
+++ /dev/null
@@ -1,747 +0,0 @@
-/***********************************************************************
-Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts,
-Copyright 1994 by FUJITSU LIMITED
-Copyright 1994 by Sony Corporation
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital, FUJITSU
-LIMITED and Sony Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-DIGITAL, FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL, FUJITSU LIMITED
-AND SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hiroyuki Miyamoto Digital Equipment Corporation
- miyamoto@jrd.dec.com
- Modifier: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Makoto Wakamatsu Sony Corporation
- makoto@sm.sony.co.jp
-
-***********************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XlcPubI.h"
-
-#define sz_CARD8 1
-#define sz_INT8 1
-#define sz_CARD16 2
-#define sz_INT16 2
-#define sz_BITMASK16 sz_CARD16
-#define sz_CARD32 4
-#define sz_INT32 4
-#define sz_BITMASK32 sz_CARD32
-#define sz_XIMID sizeof(XIMID)
-#define sz_XICID sizeof(XICID)
-#define sz_XIMATTRID sizeof(XIMATTRID)
-#define sz_XICATTRID sizeof(XICATTRID)
-#define sz_ximPacketHeader (XIM_HEADER_SIZE + sz_XIMID + sz_XICID)
-#define sz_ximGeometry 0
-#define sz_ximStrConversion (sz_CARD32 + sz_CARD32 + sz_CARD32 + sz_CARD32)
-#define sz_ximPreeditStart 0
-#define sz_ximPreeditStartReply sz_INT32
-#define sz_ximPreeditCaret (sz_INT32 + sz_CARD32 + sz_CARD32)
-#define sz_ximPreeditCaretReply sz_CARD32
-#define sz_ximPreeditDone 0
-#define sz_ximStatusStart 0
-#define sz_ximStatusDone 0
-
-typedef enum {
- XimCbSuccess,
- XimCbNoCallback,
- XimCbError,
- XimCbQueued,
- XimCbBadContextID,
- XimCbBadOpcode
-} XimCbStatus;
-
-typedef XimCbStatus (*XimCb)(
- Xim, Xic, char*, int
- );
-
-#define PACKET_TO_MAJOROPCODE(p) (*(CARD8*)((CARD8*)(p)))
-#define PACKET_TO_MINOROPCODE(p) (*(CARD8*)((CARD8*)(p) + sz_CARD8))
-#define PACKET_TO_LENGTH(p) (*(CARD16*)((CARD8*)(p) + sz_CARD8 + sz_CARD8))
-#define PACKET_TO_IMID(p) (*(XIMID*)((CARD8*)(p) + XIM_HEADER_SIZE))
-#define PACKET_TO_ICID(p) (*(XICID*)((CARD8*)(p) + XIM_HEADER_SIZE + sz_XIMID))
-
-#define _XimWriteData(im,len,data) \
- (im->private.proto.write((im),(len),(XPointer)(data)))
-#define _XimReadData(im,buf,buf_len,len) \
- (im->private.proto.read((im),(XPointer)(buf),(buf_len),&(len)))
-#define _XimFlushData(im) im->private.proto.flush((im))
-
-static XimCbStatus _XimGeometryCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimStrConversionCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimPreeditStartCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimPreeditDoneCallback(Xim, Xic, char*, int);
-static void _free_memory_for_text(XIMText*);
-static XimCbStatus _XimPreeditDrawCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimPreeditCaretCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimStatusStartCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimStatusDoneCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimStatusDrawCallback(Xim, Xic, char*, int);
-static XimCbStatus _XimPreeditStateNotifyCallback(Xim, Xic, char *, int);
-
-#if defined(__STDC__) && ((defined(sun) && defined(SVR4)) || defined(WIN32))
-#define RConst /**/
-#else
-#define RConst const
-#endif
-
-/* NOTE:
- * the table below depends on the protocol number
- * defined in the IM Protocol document.
- */
-static RConst XimCb callback_table[] = {
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #000-009 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #010-019 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #020-029 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #030-039 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #040-049 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #050-059 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* #060-069 */
- _XimGeometryCallback, /* #070 */
- _XimStrConversionCallback, /* #071 */
- NULL, /* #072 */
- _XimPreeditStartCallback, /* #073 */
- NULL, /* #074 */
- _XimPreeditDrawCallback, /* #075 */
- _XimPreeditCaretCallback, /* #076 */
- NULL, /* #077 */
- _XimPreeditDoneCallback, /* #078 */
- _XimStatusStartCallback, /* #079 */
- _XimStatusDrawCallback, /* #080 */
- _XimStatusDoneCallback, /* #081 */
- _XimPreeditStateNotifyCallback /* #082 */
- };
-
-
-static Bool
-_XimIsReadyForProcess(Xic ic)
-{
- return(!ic->private.proto.waitCallback); /* check HM */
-}
-
-static void
-_XimProcessPendingCallbacks(Xic ic)
-{
- XimPendingCallback pcbq;
-
- while (((pcbq = ic->private.proto.pend_cb_que) != (XimPendingCallback)NULL)
- && _XimIsReadyForProcess(ic)) {
- (void) (*callback_table[pcbq->major_opcode])(pcbq->im,
- pcbq->ic,
- pcbq->proto,
- pcbq->proto_len);
- ic->private.proto.pend_cb_que = pcbq->next;
- Xfree(pcbq->proto); /* free memory of XimPendingCallback */
- Xfree(pcbq);
- }
-}
-
-static void
-_XimPutCbIntoQueue(Xic ic, XimPendingCallback call_data)
-{
- XimPendingCallback pcbq = ic->private.proto.pend_cb_que;
-
- /* Queuing is FIFO
- */
- while (pcbq != (XimPendingCallback)NULL) {
- if (pcbq->next == (XimPendingCallback)NULL) {
- break;
- }
- pcbq = pcbq->next;
- }
- if (pcbq == (XimPendingCallback)NULL) {
- ic->private.proto.pend_cb_que = call_data;
- }
- else {
- pcbq->next = call_data;
- }
-}
-
-Bool
-_XimCbDispatch(Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- /* `data' points to the beginning of the packet defined in IM Protocol doc.
- */
- int major_opcode = PACKET_TO_MAJOROPCODE(data);
- XIMID imid = PACKET_TO_IMID(data);
- XICID icid = PACKET_TO_ICID(data);
- Xim im = (Xim)call_data; /* check HM */
- Xic ic = _XimICOfXICID(im, icid);
- char* proto;
- int proto_len;
-
- /* check validity of im/ic
- */
- if ((imid != im->private.proto.imid) || !ic) {
- return False; /* status = XimCbBadContextID; */
- }
-
- /* process pending callbacks
- */
- _XimProcessPendingCallbacks(ic);
-
- /* check if the protocol should be processed here
- */
- if (major_opcode > 82) {
- return False; /* status = XimCbBadOpcode; */
- }
- if (!callback_table[major_opcode]) {
- return False; /* status = XimCbBadOpcode; */
- }
-
- /* move the pointer ahead by the IM Protocol packet header size
- */
- proto = (char*)data + sz_ximPacketHeader;
- proto_len = (int)len - sz_ximPacketHeader;
-
- /* check if it can be processed right away
- * and if no, queue the protocol, otherwise invoke a callback
- */
- if (!_XimIsReadyForProcess(ic)) {
-
- /* queue the protocol
- */
- XimPendingCallback pcb;
- char *proto_buf = (proto_len > 0) ? Xmalloc(proto_len) : NULL;
-
- pcb = Xmalloc(sizeof(XimPendingCallbackRec));
- if (pcb && (proto_len <= 0 || proto_buf)) {
- if (proto_len > 0)
- memcpy(proto_buf, proto, proto_len);
-
- pcb->major_opcode = major_opcode;
- pcb->im = im;
- pcb->ic = ic;
- pcb->proto = proto_buf;
- pcb->proto_len = proto_len;
- pcb->next = (XimPendingCallback)NULL; /* queue is FIFO */
- _XimPutCbIntoQueue(ic, pcb);
- /* status = XimCbQueued; */
- } else {
- /* status = XimCbError; */
- Xfree(pcb);
- Xfree(proto_buf);
- }
- }
- else {
- /* invoke each callback according to the major opcode.
- * `proto' points to the next address of IM-ID and IC-ID.
- * `proto_len' specifies the packet length.
- */
- (void) (*callback_table[major_opcode])(im, ic, proto, proto_len);
- }
- return True;
-}
-
-static XimCbStatus
-_XimGeometryCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.geometry_callback;
-
- /* invoke the callack
- */
- if (cb && cb->callback) {
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)NULL);
- }
- else {
-
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimStrConversionCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.string_conversion_callback; /* check HM */
- XIMStringConversionCallbackStruct cbrec;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- int p = XIM_HEADER_SIZE;
- cbrec.position = (XIMStringConversionPosition)
- *(CARD32*)&proto[p]; p += sz_CARD32;
- cbrec.direction = (XIMCaretDirection)
- *(CARD32*)&proto[p]; p += sz_CARD32;
- cbrec.operation = (XIMStringConversionOperation)
- *(CARD32*)&proto[p]; p += sz_CARD32;
- cbrec.factor = (unsigned short)
- *(CARD32*)&proto[p];
-
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbrec);
- }
- else {
-
- /* no callback registered
- */
- _XimError(im, ic,
- (CARD16)XIM_BadSomething,
- (INT16)len,
- (CARD16)XIM_STR_CONVERSION,
- (char*)proto); /* send XIM_ERROR */
- return XimCbNoCallback;
- }
-
- /* send a reply
- */
- {
- CARD8 *buf;
- INT16 buf_len;
- int p, length_in_bytes, i;
-
- /* Assumption:
- * `cbrec.text->length' means the string length in characters
- */
- {
- length_in_bytes = (cbrec.text->encoding_is_wchar)?
- sizeof(wchar_t) * cbrec.text->length: /* wchar */
- strlen(cbrec.text->string.mbs); /* mb */
- buf_len = XIM_HEADER_SIZE +
- sz_CARD16 +
- 2 + length_in_bytes +
- XIM_PAD(2 + length_in_bytes) +
- 2 + 2 + sz_CARD32 * cbrec.text->length;
- buf = Xmalloc(buf_len);
- }
- _XimSetHeader((XPointer)buf, XIM_STR_CONVERSION_REPLY, 0, &buf_len);
- buf_len -= XIM_HEADER_SIZE; /* added by _XimSetHeader (HACK) */
- p = XIM_HEADER_SIZE;
- *(CARD16*)&buf[p] = (CARD16)im->private.proto.imid; p += sz_CARD16;
- *(CARD16*)&buf[p] = (CARD16)ic->private.proto.icid; p += sz_CARD16;
- *(CARD16*)&buf[p] = (CARD16)cbrec.text->length; p += sz_CARD16;
- memcpy(&buf[p],&cbrec.text->string.mbs,length_in_bytes);
- p += length_in_bytes;
- *(CARD16*)&buf[p] = (CARD16)(sz_CARD32*cbrec.text->length);
- p += XIM_PAD(2);
- for (i = 0; i < (int)cbrec.text->length; i++) {
- *(CARD32*)&buf[p] = (CARD32)cbrec.text->feedback[i];
- p += sz_CARD32;
- }
-
- if (!(_XimWriteData(im, buf_len, buf))) {
- return XimCbError;
- }
- _XimFlushData(im);
-
- Xfree(buf);
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimPreeditStartCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.preedit_attr.start_callback;
- int ret;
-
- /* invoke the callback
- */
- if (cb && cb->callback){
- ret = (*(cb->callback))((XIC)ic, cb->client_data, (XPointer)NULL);
- }
- else {
-
- /* no callback registered
- */
- _XimError(im, ic,
- (CARD16)XIM_BadSomething,
- (INT16)len,
- (CARD16)XIM_PREEDIT_START,
- (char*)proto); /* send XIM_ERROR */
- return XimCbNoCallback;
- }
-
- /* send a reply
- */
- {
- CARD32 buf32[(sz_ximPacketHeader + sz_ximPreeditStartReply) / 4];
- CARD8 *buf = (CARD8 *)buf32;
- INT16 buf_len = sz_XIMID + sz_XICID + sz_ximPreeditStartReply;
- int p;
-
- _XimSetHeader((XPointer)buf, XIM_PREEDIT_START_REPLY, 0, &buf_len);
- p = XIM_HEADER_SIZE;
- *(CARD16*)&buf[p] = (CARD16)im->private.proto.imid; p += sz_CARD16;
- *(CARD16*)&buf[p] = (CARD16)ic->private.proto.icid; p += sz_CARD16;
- *(INT32*)&buf[p] = (INT32)ret;
-
- if (!(_XimWriteData(im, buf_len, buf))) {
- return XimCbError;
- }
- _XimFlushData(im);
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimPreeditDoneCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.preedit_attr.done_callback;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)NULL);
- }
- else {
-
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
-static void
-_read_text_from_packet(Xim im,
- char* buf,
- XIMText** text_ptr)
-{
- int status;
- XIMText* text;
- int tmp_len;
- char* tmp_buf;
- Status s = 0;
-
- status = (int)*(BITMASK32*)buf; buf += sz_BITMASK32;
-
- /* string part
- */
- if (status & 0x00000001) /* "no string" bit on */ {
- buf += sz_CARD16; /* skip "length of preedit string" */
- buf += 2; /* pad */
- *text_ptr = (XIMText*)NULL;
- return;
- }
-
- *text_ptr = text = Xmalloc(sizeof(XIMText));
- if (text == (XIMText*)NULL) return;
-
- tmp_len = (int)*(CARD16*)buf;
- buf += sz_CARD16;
- if ((tmp_buf = Xmalloc(tmp_len + 1))) {
- memcpy(tmp_buf, buf, tmp_len);
- tmp_buf[tmp_len] = '\0';
-
- text->encoding_is_wchar = False;
- text->length = im->methods->ctstombs((XIM)im,
- tmp_buf, tmp_len,
- NULL, 0, &s); /* CT? HM */
- if (s != XLookupNone) {
-#ifndef NO_DEC_I18N_FIX
- /* Allow for NULL-terminated */
- if ((text->string.multi_byte = Xmalloc(text->length *
- XLC_PUBLIC(im->core.lcd,mb_cur_max) + 1))) {
-#else
- if (text->string.multi_byte = Xmalloc(text->length+1)) {
-#endif
- int tmp;
-#ifndef NO_DEC_I18N_FIX
- char *char_tmp;
- int char_len;
-#endif
- tmp = im->methods->ctstombs((XIM)im,
- tmp_buf, tmp_len,
-#ifndef NO_DEC_I18N_FIX
- text->string.multi_byte,
- text->length * XLC_PUBLIC(im->core.lcd,mb_cur_max) + 1,
-#else
- text->string.multi_byte, text->length,
-#endif
- &s);
- text->string.multi_byte[tmp] = '\0';
-#ifndef NO_DEC_I18N_FIX
- text->length = 0;
- char_tmp = text->string.multi_byte;
- while (*char_tmp != '\0') {
- char_len = mblen(char_tmp, strlen(char_tmp));
- char_tmp = char_tmp + char_len;
- (text->length)++;
- }
-#endif
- }
- }
- else {
- text->length = 0;
- text->string.multi_byte = NULL;
- }
-
- Xfree(tmp_buf);
- }
- buf += tmp_len;
-
- buf += XIM_PAD(sz_CARD16 + tmp_len); /* pad */
-
- /* feedback part
- */
- if (status & 0x00000002) /* "no feedback" bit on */ {
- text->feedback = (XIMFeedback*)NULL;
- }
- else {
- int i, j;
-
- i = (int)*(CARD16*)buf; buf += sz_CARD16;
- buf += sz_CARD16; /* skip `unused' */
- text->feedback = Xmalloc(i*(sizeof(XIMFeedback)/sizeof(CARD32)));
- j = 0;
- while (i > 0) {
- text->feedback[j] = (XIMFeedback)*(CARD32*)buf;
- buf += sz_CARD32;
- i -= sz_CARD32;
- j++;
- }
- /*
- * text->length tells how long both the status string and
- * the feedback array are. If there's "no string" the
- * text->length was set to zero previously. See above.
- * But if there is feedback (i.e. not "no feedback") then
- * we need to convey the length of the feedback array.
- * It might have been better if the protocol sent two
- * different values, one for the length of the status
- * string and one for the length of the feedback array.
- */
- if (status & 0x00000001) /* "no string" bit on */ {
- text->length = j;
- }
- }
-}
-
-static void
-_free_memory_for_text(XIMText* text)
-{
- if (text) {
- Xfree(text->string.multi_byte);
- Xfree(text->feedback);
- Xfree(text);
- }
-}
-
-static XimCbStatus
-_XimPreeditDrawCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.preedit_attr.draw_callback;
- XIMPreeditDrawCallbackStruct cbs;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- cbs.caret = (int)*(INT32*)proto; proto += sz_INT32;
- cbs.chg_first = (int)*(INT32*)proto; proto += sz_INT32;
- cbs.chg_length = (int)*(INT32*)proto; proto += sz_INT32;
- _read_text_from_packet(im, proto, &cbs.text);
-
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbs);
-
- _free_memory_for_text((XIMText*)cbs.text);
- }
- else {
-
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimPreeditCaretCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.preedit_attr.caret_callback;
- XIMPreeditCaretCallbackStruct cbs;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- cbs.position = (int)*(INT32*)proto; proto += sz_INT32;
- cbs.direction = (XIMCaretDirection)*(CARD32*)proto; proto += sz_CARD32;
- cbs.style = (XIMCaretStyle)*(CARD32*)proto; proto += sz_CARD32;
-
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbs);
- }
- else {
-
- /* no callback registered
- */
- _XimError(im, ic,
- (CARD16)XIM_BadSomething,
- (INT16)len,
- (CARD16)XIM_PREEDIT_CARET,
- (char*)proto); /* send XIM_ERROR */
- return XimCbNoCallback;
- }
-
- /* Send a reply
- */
- {
- CARD8 buf[sz_ximPacketHeader + sz_ximPreeditCaretReply];
- INT16 len = sz_XIMID + sz_XICID + sz_ximPreeditCaretReply;
- int p;
-
- _XimSetHeader((XPointer)buf, XIM_PREEDIT_CARET_REPLY, 0, &len);
- p = XIM_HEADER_SIZE;
- *(CARD16*)&buf[p] = (CARD16)im->private.proto.imid; p += sz_CARD16;
- *(CARD16*)&buf[p] = (CARD16)ic->private.proto.icid; p += sz_CARD16;
- *(CARD32*)&buf[p] = (CARD32)cbs.position;
-
- if (!(_XimWriteData(im, len, buf))) {
- return XimCbError;
- }
- _XimFlushData(im);
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimStatusStartCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.status_attr.start_callback;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)NULL);
- }
- else {
-
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimStatusDoneCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.status_attr.done_callback;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)NULL);
- }
- else {
-
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimStatusDrawCallback(Xim im,
- Xic ic,
- char* proto,
- int len)
-{
- XICCallback* cb = &ic->core.status_attr.draw_callback;
- XIMStatusDrawCallbackStruct cbs;
-
- /* invoke the callback
- */
- if (cb && cb->callback) {
- cbs.type = (XIMStatusDataType)*(CARD32*)proto; proto += sz_CARD32;
- if (cbs.type == XIMTextType) {
- _read_text_from_packet(im, proto, &cbs.data.text);
- }
- else if (cbs.type == XIMBitmapType) {
- cbs.data.bitmap = (Pixmap)*(CARD32*)proto;
- }
-
- (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbs);
-
- if (cbs.type == XIMTextType)
- _free_memory_for_text((XIMText *)cbs.data.text);
- }
- else {
-
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
-static XimCbStatus
-_XimPreeditStateNotifyCallback( Xim im, Xic ic, char* proto, int len )
-{
- XICCallback *cb = &ic->core.preedit_attr.state_notify_callback;
-
- /* invoke the callack
- */
- if( cb && cb->callback ) {
- XIMPreeditStateNotifyCallbackStruct cbrec;
-
- cbrec.state = *(BITMASK32 *)proto;
- (*cb->callback)( (XIC)ic, cb->client_data, (XPointer)&cbrec );
- }
- else {
- /* no callback registered
- */
- return XimCbNoCallback;
- }
-
- return XimCbSuccess;
-}
-
diff --git a/nx-X11/lib/X11/imConv.c b/nx-X11/lib/X11/imConv.c
deleted file mode 100644
index c3c1974de..000000000
--- a/nx-X11/lib/X11/imConv.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/******************************************************************
-
- Copyright 1991, 1992 by Fuji Xerox Co.,Ltd.
- Copyright 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Fuji Xerox Co.,Ltd.
-, and that the name of FUJITSU LIMITED not be used in advertising or
-publicity pertaining to distribution of the software without specific,
- written prior permission.
-Fuji Xerox Co.,Ltd. , and FUJITSU LIMITED makes no representations about
-the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJI XEROX CO.,LTD. AND FUJITSU LIMITED DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJI XEROX CO.,LTD.
-AND FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Auther: Kazunori Nishihara, Fuji Xerox Co.,Ltd.
- kaz@ssdev.ksp.fujixerox.co.jp
- Modifier: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-/* 2000 Modifier: Ivan Pascal The XFree86 Project.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XlcPubI.h"
-
-#ifdef XKB
-/*
- * rather than just call _XLookupString (i.e. the pre-XKB XLookupString)
- * do this because with XKB the event may have some funky modifiers that
- * _XLookupString doesn't grok.
- */
-#include "XKBlib.h"
-#define XLOOKUPSTRING lookup_string
-#else
-#define XLOOKUPSTRING XLookupString
-#endif
-
-typedef unsigned int ucs4_t;
-
-typedef int (*ucstocsConvProc)(
- XPointer,
- unsigned char *,
- ucs4_t,
- int
-);
-
-struct SubstRec {
- const char encoding_name[8];
- const char charset_name[12];
-};
-
-static const struct SubstRec SubstTable[] = {
- {"STRING", "ISO8859-1"},
- {"TIS620", "TIS620-0"},
- {"UTF-8", "ISO10646-1"}
-};
-#define num_substitute (sizeof SubstTable / sizeof SubstTable[0])
-
-/*
- * Given the name of a charset, returns the pointer to convertors
- * from UCS char to specified charset char.
- * This converter is needed for _XimGetCharCode subroutine.
- */
-XPointer
-_XimGetLocaleCode (
- _Xconst char* encoding_name)
-{
- XPointer cvt = _Utf8GetConvByName(encoding_name);
- if (!cvt && encoding_name) {
- int i;
- for (i = 0; i < num_substitute; i++)
- if (!strcmp(encoding_name, SubstTable[i].encoding_name))
- return _Utf8GetConvByName(SubstTable[i].charset_name);
- }
- return cvt;
-}
-
-/*
- * Returns the locale dependent representation of a keysym.
- * The locale's encoding is passed in form of pointer to UCS convertor.
- * The resulting multi-byte sequence is placed starting at buf (a buffer
- * with nbytes bytes, nbytes should be >= 8) and is NUL terminated.
- * Returns the length of the resulting multi-byte sequence, excluding the
- * terminating NUL byte. Return 0 if the keysym is not representable in the
- * locale
- */
-/*ARGSUSED*/
-int
-_XimGetCharCode (
- XPointer ucs_conv,
- KeySym keysym,
- unsigned char* buf,
- int nbytes)
-{
- int count = 0;
- ucstocsConvProc cvt = (ucstocsConvProc) ucs_conv;
- ucs4_t ucs4;
-
- if (keysym < 0x80) {
- buf[0] = (char) keysym;
- count = 1;
- } else if (cvt) {
- ucs4 = KeySymToUcs4(keysym);
- if (ucs4)
- count = (*cvt)((XPointer)NULL, buf, ucs4, nbytes);
- }
-
- if (count < 0)
- count = 0;
- if (count>nbytes)
- return nbytes;
- if (count<nbytes)
- buf[count]= '\0';
- return count;
-}
-
-#ifdef XKB
-static int lookup_string(
- XKeyEvent* event,
- char* buffer,
- int nbytes,
- KeySym* keysym,
- XComposeStatus* status)
-{
- int ret;
- unsigned ctrls = XkbGetXlibControls (event->display);
- XkbSetXlibControls (event->display,
- XkbLC_ForceLatin1Lookup, XkbLC_ForceLatin1Lookup);
- ret = XLookupString(event, (char *)buffer, nbytes, keysym, status);
- XkbSetXlibControls (event->display,
- XkbLC_ForceLatin1Lookup, ctrls);
- return ret;
-}
-#endif
-
-#define BUF_SIZE (20)
-
-int
-_XimLookupMBText(
- Xic ic,
- XKeyEvent* event,
- char* buffer,
- int nbytes,
- KeySym* keysym,
- XComposeStatus* status)
-{
- int count;
- KeySym symbol;
- Status dummy;
- Xim im = (Xim)ic->core.im;
- XimCommonPrivateRec* private = &im->private.common;
- unsigned char look[BUF_SIZE];
- ucs4_t ucs4;
-
- /* force a latin-1 lookup for compatibility */
- count = XLOOKUPSTRING(event, (char *)buffer, nbytes, &symbol, status);
- if (keysym != NULL) *keysym = symbol;
- if ((nbytes == 0) || (symbol == NoSymbol)) return count;
-
- if (count > 1) {
- memcpy(look, (char *)buffer,count);
- look[count] = '\0';
- if ((count = im->methods->ctstombs(ic->core.im,
- (char*) look, count,
- buffer, nbytes, &dummy)) < 0) {
- count = 0;
- }
- } else if ((count == 0) ||
- (count == 1 && (symbol > 0x7f && symbol < 0xff00))) {
-
- XPointer from = (XPointer) &ucs4;
- XPointer to = (XPointer) look;
- int from_len = 1;
- int to_len = BUF_SIZE;
- XPointer args[1];
- XlcCharSet charset;
- args[0] = (XPointer) &charset;
- ucs4 = (ucs4_t) KeySymToUcs4(symbol);
- if (!ucs4)
- return 0;
-
- if (_XlcConvert(private->ucstoc_conv,
- &from, &from_len, &to, &to_len,
- args, 1 ) != 0) {
- count = 0;
- } else {
- from = (XPointer) look;
- to = (XPointer) buffer;
- from_len = BUF_SIZE - to_len;
- to_len = nbytes;
- args[0] = (XPointer) charset;
- if (_XlcConvert(private->cstomb_conv,
- &from, &from_len, &to, &to_len,
- args, 1 ) != 0) {
- count = 0;
- } else {
- count = nbytes - to_len;
- }
- }
- }
- /* FIXME:
- * we should make sure that if the character is a Latin1 character
- * and it's on the right side, and we're in a non-Latin1 locale
- * that this is a valid Latin1 character for this locale.
- */
- return count;
-}
-
-int
-_XimLookupWCText(
- Xic ic,
- XKeyEvent* event,
- wchar_t* buffer,
- int nbytes,
- KeySym* keysym,
- XComposeStatus* status)
-{
- int count;
- KeySym symbol;
- Status dummy;
- Xim im = (Xim)ic->core.im;
- XimCommonPrivateRec* private = &im->private.common;
- unsigned char look[BUF_SIZE];
- ucs4_t ucs4;
-
- /* force a latin-1 lookup for compatibility */
- count = XLOOKUPSTRING(event, (char *)look, nbytes, &symbol, status);
- if (keysym != NULL) *keysym = symbol;
- if ((nbytes == 0) || (symbol == NoSymbol)) return count;
-
- if (count > 1) {
- if ((count = im->methods->ctstowcs(ic->core.im,
- (char*) look, count,
- buffer, nbytes, &dummy)) < 0) {
- count = 0;
- }
- } else if ((count == 0) ||
- (count == 1 && (symbol > 0x7f && symbol < 0xff00))) {
-
- XPointer from = (XPointer) &ucs4;
- XPointer to = (XPointer) look;
- int from_len = 1;
- int to_len = BUF_SIZE;
- XPointer args[1];
- XlcCharSet charset;
- args[0] = (XPointer) &charset;
- ucs4 = (ucs4_t) KeySymToUcs4(symbol);
- if (!ucs4)
- return 0;
-
- if (_XlcConvert(private->ucstoc_conv,
- &from, &from_len, &to, &to_len,
- args, 1 ) != 0) {
- count = 0;
- } else {
- from = (XPointer) look;
- to = (XPointer) buffer;
- from_len = BUF_SIZE - to_len;
- to_len = nbytes;
- args[0] = (XPointer) charset;
-
- if (_XlcConvert(private->cstowc_conv,
- &from, &from_len, &to, &to_len,
- args, 1 ) != 0) {
- count = 0;
- } else {
- count = nbytes - to_len;
- }
- }
- } else
- /* FIXME:
- * we should make sure that if the character is a Latin1 character
- * and it's on the right side, and we're in a non-Latin1 locale
- * that this is a valid Latin1 character for this locale.
- */
- buffer[0] = look[0];
-
- return count;
-}
-
-int
-_XimLookupUTF8Text(
- Xic ic,
- XKeyEvent* event,
- char* buffer,
- int nbytes,
- KeySym* keysym,
- XComposeStatus* status)
-{
- int count;
- KeySym symbol;
- Status dummy;
- Xim im = (Xim)ic->core.im;
- XimCommonPrivateRec* private = &im->private.common;
- unsigned char look[BUF_SIZE];
- ucs4_t ucs4;
-
- /* force a latin-1 lookup for compatibility */
- count = XLOOKUPSTRING(event, (char *)buffer, nbytes, &symbol, status);
- if (keysym != NULL) *keysym = symbol;
- if ((nbytes == 0) || (symbol == NoSymbol)) return count;
-
- if (count > 1) {
- memcpy(look, (char *)buffer,count);
- look[count] = '\0';
- if ((count = im->methods->ctstoutf8(ic->core.im,
- (char*) look, count,
- buffer, nbytes, &dummy)) < 0) {
- count = 0;
- }
- } else if ((count == 0) ||
- (count == 1 && (symbol > 0x7f && symbol < 0xff00))) {
-
- XPointer from = (XPointer) &ucs4;
- int from_len = 1;
- XPointer to = (XPointer) buffer;
- int to_len = nbytes;
-
- ucs4 = (ucs4_t) KeySymToUcs4(symbol);
- if (!ucs4)
- return 0;
-
- if (_XlcConvert(private->ucstoutf8_conv,
- &from, &from_len, &to, &to_len,
- NULL, 0) != 0) {
- count = 0;
- } else {
- count = nbytes - to_len;
- }
- }
- /* FIXME:
- * we should make sure that if the character is a Latin1 character
- * and it's on the right side, and we're in a non-Latin1 locale
- * that this is a valid Latin1 character for this locale.
- */
- return count;
-}
diff --git a/nx-X11/lib/X11/imDefFlt.c b/nx-X11/lib/X11/imDefFlt.c
deleted file mode 100644
index b6473e176..000000000
--- a/nx-X11/lib/X11/imDefFlt.c
+++ /dev/null
@@ -1,413 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xutil.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-static long
-_XimTriggerCheck(
- Xim im,
- XKeyEvent *ev,
- INT32 len,
- CARD32 *keylist)
-{
- register long i;
- KeySym keysym;
- CARD32 buf32[BUFSIZE/4];
- char *buf = (char *)buf32;
- int modifier;
- int modifier_mask;
- CARD32 min_len = sizeof(CARD32) /* sizeof keysym */
- + sizeof(CARD32) /* sizeof modifier */
- + sizeof(CARD32); /* sizeof modifier mask */
-
- XLookupString(ev, buf, BUFSIZE, &keysym, NULL);
- if (!keysym)
- return -1;
-
- for (i = 0; len >= min_len; i += 3, len -= min_len) {
- modifier = keylist[i + 1];
- modifier_mask = keylist[i + 2];
- if (((KeySym)keylist[i] == keysym)
- && ((ev->state & modifier_mask) == modifier))
- return i;
- }
- return -1;
-}
-
-static long
-_XimTriggerOnCheck(
- Xim im,
- XKeyEvent *ev)
-{
- return _XimTriggerCheck(im, ev, (INT32)im->private.proto.im_onkeylist[0],
- &im->private.proto.im_onkeylist[1]);
-}
-
-static long
-_XimTriggerOffCheck(
- Xim im,
- XKeyEvent *ev)
-{
- return _XimTriggerCheck(im, ev, (INT32)im->private.proto.im_offkeylist[0],
- &im->private.proto.im_offkeylist[1]);
-}
-
-static Bool
-_XimOnKeysCheck(
- Xic ic,
- XKeyEvent *ev)
-{
- Xim im = (Xim)ic->core.im;
- long idx;
-
- if (IS_DYNAMIC_EVENT_FLOW(ic->core.im) &&
- im->private.proto.im_onkeylist &&
- im->private.proto.im_onkeylist[0]) {
- if ((idx = _XimTriggerOnCheck(im, ev)) >= 0) {
- (void)_XimTriggerNotify(im, ic, 0, (CARD32)idx); /* Trigger on */
- return True;
- }
- }
- return False;
-}
-
-static Bool
-_XimOffKeysCheck(
- Xic ic,
- XKeyEvent *ev)
-{
- Xim im = (Xim)ic->core.im;
- long idx;
-
- if (IS_DYNAMIC_EVENT_FLOW(ic->core.im) &&
- im->private.proto.im_offkeylist &&
- im->private.proto.im_offkeylist[0]) {
- if ((idx = _XimTriggerOffCheck(im, ev)) >= 0) {
- _XimTriggerNotify(im, ic, 1, (CARD32)idx); /* Trigger off */
- return True;
- }
- }
- return False;
-}
-
-static void
-_XimPendingFilter(
- Xic ic)
-{
- Xim im = (Xim)ic->core.im;
-
- if (IS_NEED_SYNC_REPLY(im)) {
- (void)_XimProcSyncReply(im, ic);
- UNMARK_NEED_SYNC_REPLY(im);
- }
- return;
-}
-
-static Bool
-_XimProtoKeypressFilter(
- Xic ic,
- XKeyEvent *ev)
-{
- Xim im = (Xim)ic->core.im;
-
- if (IS_FABRICATED(im)) {
- _XimPendingFilter(ic);
- UNMARK_FABRICATED(im);
- return NOTFILTERD;
- }
-
- if (IS_NEGLECT_EVENT(ic, KeyPressMask))
- return FILTERD;
-
-#ifdef XIM_CONNECTABLE
- if (!IS_IC_CONNECTED(ic)) {
- if (IS_CONNECTABLE(im)) {
- if (_XimConnectServer(im)) {
- if (!_XimReCreateIC(ic)) {
- _XimDelayModeSetAttr(im);
- return NOTFILTERD;
- }
- } else {
- return NOTFILTERD;
- }
- } else {
- return NOTFILTERD;
- }
- }
-#else
- if (!IS_IC_CONNECTED(ic))
- return NOTFILTERD;
-#endif /* XIM_CONNECTABLE */
-
- if (!IS_FORWARD_EVENT(ic, KeyPressMask)) {
- if (_XimOnKeysCheck(ic, ev))
- return FILTERD;
- return NOTFILTERD;
- }
- if (_XimOffKeysCheck(ic, ev))
- return FILTERD;
-
- if (_XimForwardEvent(ic, (XEvent *)ev,
- IS_SYNCHRONOUS_EVENT(ic, KeyPressMask)))
- return FILTERD;
-
- return NOTFILTERD;
-}
-
-static Bool
-_XimFilterKeypress(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer client_data)
-{
- return _XimProtoKeypressFilter((Xic)client_data, (XKeyEvent *)ev );
-}
-
-static Bool
-_XimProtoKeyreleaseFilter(
- Xic ic,
- XKeyEvent *ev)
-{
- Xim im = (Xim)ic->core.im;
-
- if (IS_FABRICATED(im)) {
- _XimPendingFilter(ic);
- UNMARK_FABRICATED(im);
- return NOTFILTERD;
- }
-
- if (IS_NEGLECT_EVENT(ic, KeyReleaseMask))
- return FILTERD;
-
-#ifdef XIM_CONNECTABLE
- if (!IS_IC_CONNECTED(ic)) {
- if (IS_CONNECTABLE(im)) {
- if (_XimConnectServer(im)) {
- if (!_XimReCreateIC(ic)) {
- _XimDelayModeSetAttr(im);
- return NOTFILTERD;
- }
- } else {
- return NOTFILTERD;
- }
- } else {
- return NOTFILTERD;
- }
- }
-#else
- if (!IS_IC_CONNECTED(ic))
- return NOTFILTERD;
-#endif /* XIM_CONNECTABLE */
-
- if (!IS_FORWARD_EVENT(ic, KeyReleaseMask)) {
- if (_XimOnKeysCheck(ic, ev))
- return FILTERD;
- return NOTFILTERD;
- }
- if (_XimOffKeysCheck(ic, ev))
- return FILTERD;
-
- if (_XimForwardEvent(ic, (XEvent *)ev,
- IS_SYNCHRONOUS_EVENT(ic, KeyPressMask)))
- return FILTERD;
-
- return NOTFILTERD;
-}
-
-static Bool
-_XimFilterKeyrelease(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer client_data)
-{
- return _XimProtoKeyreleaseFilter((Xic)client_data, (XKeyEvent *)ev);
-}
-
-static void
-_XimRegisterKeyPressFilter(
- Xic ic)
-{
- if (ic->core.focus_window) {
- if (!(ic->private.proto.registed_filter_event & KEYPRESS_MASK)) {
- _XRegisterFilterByType (ic->core.im->core.display,
- ic->core.focus_window,
- KeyPress, KeyPress,
- _XimFilterKeypress,
- (XPointer)ic);
- ic->private.proto.registed_filter_event |= KEYPRESS_MASK;
- }
- }
- return;
-}
-
-static void
-_XimRegisterKeyReleaseFilter(
- Xic ic)
-{
- if (ic->core.focus_window) {
- if (!(ic->private.proto.registed_filter_event & KEYRELEASE_MASK)) {
- _XRegisterFilterByType (ic->core.im->core.display,
- ic->core.focus_window,
- KeyRelease, KeyRelease,
- _XimFilterKeyrelease,
- (XPointer)ic);
- ic->private.proto.registed_filter_event |= KEYRELEASE_MASK;
- }
- }
- return;
-}
-
-static void
-_XimUnregisterKeyPressFilter(
- Xic ic)
-{
- if (ic->core.focus_window) {
- if (ic->private.proto.registed_filter_event & KEYPRESS_MASK) {
- _XUnregisterFilter (ic->core.im->core.display,
- ic->core.focus_window,
- _XimFilterKeypress,
- (XPointer)ic);
- ic->private.proto.registed_filter_event &= ~KEYPRESS_MASK;
- }
- }
- return;
-}
-
-static void
-_XimUnregisterKeyReleaseFilter(
- Xic ic)
-{
- if (ic->core.focus_window) {
- if (ic->private.proto.registed_filter_event & KEYRELEASE_MASK) {
- _XUnregisterFilter (ic->core.im->core.display,
- ic->core.focus_window,
- _XimFilterKeyrelease,
- (XPointer)ic);
- ic->private.proto.registed_filter_event &= ~KEYRELEASE_MASK;
- }
- }
- return;
-}
-
-void
-_XimRegisterFilter(
- Xic ic)
-{
- _XimRegisterKeyPressFilter(ic);
- if (IS_FORWARD_EVENT(ic, KeyReleaseMask))
- _XimRegisterKeyReleaseFilter(ic);
- return;
-}
-
-void
-_XimUnregisterFilter(
- Xic ic)
-{
- _XimUnregisterKeyPressFilter(ic);
- _XimUnregisterKeyReleaseFilter(ic);
- return;
-}
-
-void
-_XimReregisterFilter(
- Xic ic)
-{
- if (IS_FORWARD_EVENT(ic, KeyReleaseMask))
- _XimRegisterKeyReleaseFilter(ic);
- else
- _XimUnregisterKeyReleaseFilter(ic);
-
- return;
-}
-
-static Bool
-_XimFilterServerDestroy(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer client_data)
-{
- Xim im = (Xim)client_data;
-
- if (ev->type == DestroyNotify) {
- UNMARK_SERVER_CONNECTED(im);
-#ifdef XIM_CONNECTABLE
- if (!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)) {
- _XimServerReconectableDestroy();
- return True;
- }
-#endif /* XIM_CONNECTABLE */
- _XimServerDestroy(im);
- }
- return True;
-}
-
-void
-_XimRegisterServerFilter(
- Xim im)
-{
- if (im->private.proto.im_window) {
- if (!(im->private.proto.registed_filter_event & DESTROYNOTIFY_MASK)) {
- _XRegisterFilterByMask(im->core.display,
- im->private.proto.im_window,
- StructureNotifyMask,
- _XimFilterServerDestroy,
- (XPointer)im);
- XSelectInput(im->core.display, im->private.proto.im_window,
- StructureNotifyMask);
- im->private.proto.registed_filter_event |= DESTROYNOTIFY_MASK;
- }
- }
- return;
-}
-
-void
-_XimUnregisterServerFilter(
- Xim im)
-{
- if (im->private.proto.im_window) {
- if (im->private.proto.registed_filter_event & DESTROYNOTIFY_MASK) {
- _XUnregisterFilter(im->core.display,
- im->private.proto.im_window,
- _XimFilterServerDestroy,
- (XPointer)im);
- im->private.proto.registed_filter_event &= ~DESTROYNOTIFY_MASK;
- }
- }
- return;
-}
-
diff --git a/nx-X11/lib/X11/imDefIc.c b/nx-X11/lib/X11/imDefIc.c
deleted file mode 100644
index 3cf46827a..000000000
--- a/nx-X11/lib/X11/imDefIc.c
+++ /dev/null
@@ -1,1576 +0,0 @@
-/*
- * Copyright 1991, 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-static Bool
-_XimCreateICCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
-
- if ((major_opcode == XIM_CREATE_IC_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid))
- return True;
- return False;
-}
-
-#ifdef XIM_CONNECTABLE
-Bool
-_XimReCreateIC(ic)
- Xic ic;
-{
- Xim im = (Xim)ic->core.im;
- Xic save_ic;
- XIMResourceList res;
- unsigned int num;
- XIMStyle input_style = ic->core.input_style;
- XimDefICValues ic_values;
- INT16 len;
- CARD16 *buf_s;
- char *tmp;
- CARD32 tmp_buf32[BUFSIZE/4];
- char *tmp_buf = (char *)tmp_buf32;
- char *buf;
- int buf_size;
- char *data;
- int data_len;
- int ret_len;
- int total;
- int idx;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int ret_code;
-
- if (!(save_ic = Xmalloc(sizeof(XicRec))))
- return False;
- memcpy((char *)save_ic, (char *)ic, sizeof(XicRec));
-
- ic->core.filter_events = im->private.proto.forward_event_mask;
- ic->private.proto.forward_event_mask =
- im->private.proto.forward_event_mask;
- ic->private.proto.synchronous_event_mask =
- im->private.proto.synchronous_event_mask;
-
- num = im->core.ic_num_resources;
- buf_size = sizeof(XIMResource) * num;
- if (!(res = Xmalloc(buf_size)))
- goto ErrorOnReCreateIC;
- (void)memcpy((char *)res, (char *)im->core.ic_resources, buf_size);
- ic->private.proto.ic_resources = res;
- ic->private.proto.ic_num_resources = num;
-
- num = im->private.proto.ic_num_inner_resources;
- buf_size = sizeof(XIMResource) * num;
- if (!(res = Xmalloc(buf_size)))
- goto ErrorOnReCreateIC;
- (void)memcpy((char *)res,
- (char *)im->private.proto.ic_inner_resources, buf_size);
- ic->private.proto.ic_inner_resources = res;
- ic->private.proto.ic_num_inner_resources = num;
-
- _XimSetICMode(ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, input_style);
-
- _XimSetICMode(ic->private.proto.ic_inner_resources,
- ic->private.proto.ic_num_inner_resources, input_style);
-
- _XimGetCurrentICValues(ic, &ic_values);
- buf = tmp_buf;
- buf_size = XIM_HEADER_SIZE + sizeof(CARD16) + sizeof(INT16);
- data_len = BUFSIZE - buf_size;
- total = 0;
- idx = 0;
- for (;;) {
- data = &buf[buf_size];
- if (!_XimEncodeSavedICATTRIBUTE(ic, ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, &idx, data, data_len,
- &ret_len, (XPointer)&ic_values, XIM_CREATEIC)) {
- if (buf != tmp_buf)
- Xfree(buf);
- goto ErrorOnReCreateIC;
- }
-
- total += ret_len;
- if (idx == -1) {
- break;
- }
-
- buf_size += ret_len;
- if (buf == tmp_buf) {
- if (!(tmp = Xmalloc(buf_size + data_len))) {
- goto ErrorOnReCreateIC;
- }
- memcpy(tmp, buf, buf_size);
- buf = tmp;
- } else {
- if (!(tmp = Xrealloc(buf, (buf_size + data_len)))) {
- Xfree(buf);
- goto ErrorOnReCreateIC;
- }
- buf = tmp;
- }
- }
-
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- buf_s[0] = im->private.proto.imid;
- buf_s[1] = (INT16)total;
-
- len = (INT16)(sizeof(CARD16) + sizeof(INT16) + total);
- _XimSetHeader((XPointer)buf, XIM_CREATE_IC, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- if (buf != tmp_buf)
- Xfree(buf);
- goto ErrorOnReCreateIC;
- }
- _XimFlush(im);
- if (buf != tmp_buf)
- Xfree(buf);
- ic->private.proto.waitCallback = True;
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimCreateICCheck, 0);
- if (ret_code == XIM_TRUE) {
- preply = reply;
- } else if (ret_code == XIM_OVERFLOW) {
- if (len <= 0) {
- preply = reply;
- } else {
- buf_size = (int)len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimCreateICCheck, 0);
- if (ret_code != XIM_TRUE) {
- Xfree(preply);
- ic->private.proto.waitCallback = False;
- goto ErrorOnReCreateIC;
- }
- }
- } else {
- ic->private.proto.waitCallback = False;
- goto ErrorOnReCreateIC;
- }
- ic->private.proto.waitCallback = False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if (reply != preply)
- Xfree(preply);
- goto ErrorOnReCreateIC;
- }
-
- ic->private.proto.icid = buf_s[1]; /* icid */
- if (reply != preply)
- Xfree(preply);
-
- _XimRegisterFilter(ic);
- MARK_IC_CONNECTED(ic);
- if (save_ic->private.proto.ic_resources)
- Xfree(save_ic->private.proto.ic_resources);
- if (save_ic->private.proto.ic_inner_resources)
- Xfree(save_ic->private.proto.ic_inner_resources);
- Xfree(save_ic);
- return True;
-
-ErrorOnReCreateIC:
- memcpy((char *)ic, (char *)save_ic, sizeof(XicRec));
- Xfree(save_ic);
- return False;
-}
-
-static char *
-_XimDelayModeGetICValues(ic, arg)
- Xic ic;
- XIMArg *arg;
-{
- XimDefICValues ic_values;
-
- _XimGetCurrentICValues(ic, &ic_values);
- return _XimGetICValueData(ic, (XPointer)&ic_values,
- ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources,
- arg, XIM_GETICVALUES);
-}
-#endif /* XIM_CONNECTABLE */
-
-static Bool
-_XimGetICValuesCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
-
- if ((major_opcode == XIM_GET_IC_VALUES_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- return True;
- return False;
-}
-
-static char *
-_XimProtoGetICValues(
- XIC xic,
- XIMArg *arg)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- register XIMArg *p;
- register XIMArg *pp;
- register int n;
- CARD8 *buf;
- CARD16 *buf_s;
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply = NULL;
- int buf_size;
- int ret_code;
- char *makeid_name;
- char *decode_name;
- CARD16 *data = NULL;
- INT16 data_len = 0;
-
-#ifndef XIM_CONNECTABLE
- if (!IS_IC_CONNECTED(ic))
- return arg->name;
-#else
- if (!IS_IC_CONNECTED(ic)) {
- if (IS_CONNECTABLE(im)) {
- if (_XimConnectServer(im)) {
- if (!_XimReCreateIC(ic)) {
- _XimDelayModeSetAttr(im);
- return _XimDelayModeGetICValues(ic, arg);
- }
- } else {
- return _XimDelayModeGetICValues(ic, arg);
- }
- } else {
- return arg->name;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- for (n = 0, p = arg; p && p->name; p++) {
- n++;
- if ((strcmp(p->name, XNPreeditAttributes) == 0)
- || (strcmp(p->name, XNStatusAttributes) == 0)) {
- n++;
- for (pp = (XIMArg *)p->value; pp && pp->name; pp++)
- n++;
- }
- }
-
- if (!n)
- return (char *)NULL;
-
- buf_size = sizeof(CARD16) * n;
- buf_size += XIM_HEADER_SIZE
- + sizeof(CARD16)
- + sizeof(CARD16)
- + sizeof(INT16)
- + XIM_PAD(2 + buf_size);
-
- if (!(buf = Xmalloc(buf_size)))
- return arg->name;
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
-
- makeid_name = _XimMakeICAttrIDList(ic, ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, arg,
- &buf_s[3], &len, XIM_GETICVALUES);
-
- if (len > 0) {
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
- buf_s[2] = len; /* length of ic-attr-id */
- len += sizeof(INT16); /* sizeof length of attr */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_GET_IC_VALUES, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- Xfree(buf);
- return arg->name;
- }
- _XimFlush(im);
- Xfree(buf);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimGetICValuesCheck, (XPointer)ic);
- if (ret_code == XIM_TRUE) {
- preply = reply;
- } else if (ret_code == XIM_OVERFLOW) {
- if (len <= 0) {
- preply = reply;
- } else {
- buf_size = (int)len;
- preply = Xmalloc(len);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimGetICValuesCheck, (XPointer)ic);
- if (ret_code != XIM_TRUE) {
- if (preply != reply)
- Xfree(preply);
- return arg->name;
- }
- }
- } else {
- return arg->name;
- }
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if (reply != preply)
- Xfree(preply);
- return arg->name;
- }
- data = &buf_s[4];
- data_len = buf_s[2];
- }
- else if (len < 0) {
- return arg->name;
- }
-
- decode_name = _XimDecodeICATTRIBUTE(ic, ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, data, data_len,
- arg, XIM_GETICVALUES);
- if (reply != preply)
- Xfree(preply);
-
- if (decode_name)
- return decode_name;
- else
- return makeid_name;
-}
-
-#ifdef XIM_CONNECTABLE
-static Bool
-_XimCheckNestQuarkList(quark_list, num_quark, quark, separator)
- XrmQuark *quark_list;
- int num_quark;
- XrmQuark quark;
- XrmQuark separator;
-{
- register int i;
-
- for (i = 0; i < num_quark; i++) {
- if (quark_list[i] == separator) {
- break;
- }
- if (quark_list[i] == quark) {
- return True;
- }
- }
- return False;
-}
-
-static Bool
-_XimCheckNestedQuarkList(quark_list, idx, num_quark, arg, separator)
- XrmQuark **quark_list;
- int idx;
- int *num_quark;
- XIMArg *arg;
- XrmQuark separator;
-{
- XrmQuark *q_list = *quark_list;
- int n_quark = *num_quark;
- register XIMArg *p;
- XrmQuark quark;
- XrmQuark *tmp;
- register int i;
-
- for (p = arg; p && p->name; p++) {
- quark = XrmStringToQuark(p->name);
- if (_XimCheckNestQuarkList(&q_list[idx], n_quark - idx,
- quark, separator)) {
- continue;
- }
- if (!(tmp = Xmalloc((sizeof(XrmQuark) * (n_quark + 1))))) {
- *quark_list = q_list;
- *num_quark = n_quark;
- return False;
- }
- n_quark++;
- for (i = 0; i < idx; i++) {
- tmp[i] = q_list[i];
- }
- tmp[i] = quark;
- for (i = idx + 1; i < n_quark; i++) {
- tmp[i] = q_list[i - 1];
- }
- q_list = tmp;
- }
- *quark_list = q_list;
- *num_quark = n_quark;
- return True;
-}
-
-static Bool
-_XimCheckICQuarkList(quark_list, num_quark, quark, idx)
- XrmQuark *quark_list;
- int num_quark;
- XrmQuark quark;
- int *idx;
-{
- register int i;
-
- for (i = 0; i < num_quark; i++) {
- if (quark_list[i] == quark) {
- *idx = i;
- return True;
- }
- }
- return False;
-}
-
-static Bool
-_XimSaveICValues(ic, arg)
- Xic ic;
- XIMArg *arg;
-{
- register XIMArg *p;
- register int n;
- XrmQuark *quark_list;
- XrmQuark *tmp;
- XrmQuark quark;
- int num_quark;
- XrmQuark pre_quark;
- XrmQuark sts_quark;
- XrmQuark separator;
- int idx;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
- separator = XrmStringToQuark(XNSeparatorofNestedList);
-
- if (quark_list = ic->private.proto.saved_icvalues) {
- num_quark = ic->private.proto.num_saved_icvalues;
- for (p = arg; p && p->name; p++) {
- quark = XrmStringToQuark(p->name);
- if ((quark == pre_quark) || (quark == sts_quark)) {
- if (!_XimCheckICQuarkList(quark_list, num_quark, quark, &idx)) {
- register XIMArg *pp;
- int nn;
- XrmQuark *q_list;
-
- for (pp = (XIMArg *)p->value, nn = 0;
- pp && pp->name; pp++, nn++);
- if (!(tmp = Xrealloc(quark_list,
- (sizeof(XrmQuark) * (num_quark + nn + 2))))) {
- ic->private.proto.saved_icvalues = quark_list;
- ic->private.proto.num_saved_icvalues = num_quark;
- return False;
- }
- quark_list = tmp;
- q_list = &quark_list[num_quark];
- num_quark += nn + 2;
- *q_list++ = quark;
- for (pp = (XIMArg *)p->value;
- pp && pp->name; pp++, quark_list++) {
- *q_list = XrmStringToQuark(pp->name);
- }
- *q_list = separator;
- } else {
- if (!_XimCheckNestedQuarkList(&quark_list, idx + 1,
- &num_quark, (XIMArg *)p->value, separator)) {
- ic->private.proto.saved_icvalues = quark_list;
- ic->private.proto.num_saved_icvalues = num_quark;
- return False;
- }
- }
- } else {
- if (_XimCheckICQuarkList(quark_list, num_quark, quark, &idx)) {
- continue;
- }
- if (!(tmp = Xrealloc(quark_list,
- (sizeof(XrmQuark) * (num_quark + 1))))) {
- ic->private.proto.saved_icvalues = quark_list;
- ic->private.proto.num_saved_icvalues = num_quark;
- return False;
- }
- quark_list = tmp;
- quark_list[num_quark] = quark;
- num_quark++;
- }
- }
- ic->private.proto.saved_icvalues = quark_list;
- ic->private.proto.num_saved_icvalues = num_quark;
- return True;
- }
-
- for (p = arg, n = 0; p && p->name; p++, n++) {
- if ((!strcmp(p->name, XNPreeditAttributes))
- || (!strcmp(p->name, XNStatusAttributes))) {
- register XIMArg *pp;
- int nn;
-
- for (pp = (XIMArg *)p->value, nn = 0; pp && pp->name; pp++, nn++);
- n += nn + 1;
- }
- }
-
- if (!(quark_list = Xmalloc(sizeof(XrmQuark) * n))) {
- return False;
- }
-
- ic->private.proto.saved_icvalues = quark_list;
- ic->private.proto.num_saved_icvalues = n;
- for (p = arg; p && p->name; p++, quark_list++) {
- *quark_list = XrmStringToQuark(p->name);
- if ((*quark_list == pre_quark) || (*quark_list == sts_quark)) {
- register XIMArg *pp;
-
- quark_list++;
- for (pp = (XIMArg *)p->value; pp && pp->name; pp++, quark_list++) {
- *quark_list = XrmStringToQuark(pp->name);
- }
- *quark_list = separator;
- }
- }
- return True;
-}
-
-static char *
-_XimDelayModeSetICValues(ic, arg)
- Xic ic;
- XIMArg *arg;
-{
- XimDefICValues ic_values;
- char *name;
-
- _XimGetCurrentICValues(ic, &ic_values);
- name = _XimSetICValueData(ic, (XPointer)&ic_values,
- ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources,
- arg, XIM_SETICVALUES, False);
- _XimSetCurrentICValues(ic, &ic_values);
- return name;
-}
-#endif /* XIM_CONNECTABLE */
-
-static Bool
-_XimSetICValuesCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
-
- if ((major_opcode == XIM_SET_IC_VALUES_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- return True;
- return False;
-}
-
-static char *
-_XimProtoSetICValues(
- XIC xic,
- XIMArg *arg)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- XimDefICValues ic_values;
- INT16 len;
- CARD16 *buf_s;
- char *tmp;
- CARD32 tmp_buf32[BUFSIZE/4];
- char *tmp_buf = (char *)tmp_buf32;
- char *buf;
- int buf_size;
- char *data;
- int data_len;
- int ret_len;
- int total;
- XIMArg *arg_ret;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply = NULL;
- int ret_code;
- BITMASK32 flag = 0L;
- char *name;
- char *tmp_name = (arg) ? arg->name : NULL;
-
-#ifndef XIM_CONNECTABLE
- if (!IS_IC_CONNECTED(ic))
- return tmp_name;
-#else
- if (!_XimSaveICValues(ic, arg))
- return NULL;
-
- if (!IS_IC_CONNECTED(ic)) {
- if (IS_CONNECTABLE(im)) {
- if (_XimConnectServer(im)) {
- if (!_XimReCreateIC(ic)) {
- _XimDelayModeSetAttr(im);
- return _XimDelayModeSetICValues(ic, arg);
- }
- } else {
- return _XimDelayModeSetICValues(ic, arg);
- }
- } else {
- return tmp_name;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- _XimGetCurrentICValues(ic, &ic_values);
- buf = tmp_buf;
- buf_size = XIM_HEADER_SIZE
- + sizeof(CARD16) + sizeof(CARD16) + sizeof(INT16) + sizeof(CARD16);
- data_len = BUFSIZE - buf_size;
- total = 0;
- arg_ret = arg;
- for (;;) {
- data = &buf[buf_size];
- if ((name = _XimEncodeICATTRIBUTE(ic, ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, arg, &arg_ret,
- data, data_len, &ret_len, (XPointer)&ic_values,
- &flag, XIM_SETICVALUES))) {
- break;
- }
-
- total += ret_len;
- if (!(arg = arg_ret)) {
- break;
- }
-
- buf_size += ret_len;
- if (buf == tmp_buf) {
- if (!(tmp = Xmalloc(buf_size + data_len))) {
- return tmp_name;
- }
- memcpy(tmp, buf, buf_size);
- buf = tmp;
- } else {
- if (!(tmp = Xrealloc(buf, (buf_size + data_len)))) {
- Xfree(buf);
- return tmp_name;
- }
- buf = tmp;
- }
- }
- _XimSetCurrentICValues(ic, &ic_values);
-
- if (!total) {
- return tmp_name;
- }
-
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
-
-#ifdef EXT_MOVE
- if (_XimExtenMove(im, ic, flag, &buf_s[4], (INT16)total))
- return name;
-#endif
-
- buf_s[0] = im->private.proto.imid;
- buf_s[1] = ic->private.proto.icid;
- buf_s[2] = (INT16)total;
- buf_s[3] = 0;
- len = (INT16)(sizeof(CARD16) + sizeof(CARD16)
- + sizeof(INT16) + sizeof(CARD16) + total);
-
- _XimSetHeader((XPointer)buf, XIM_SET_IC_VALUES, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- if (buf != tmp_buf)
- Xfree(buf);
- return tmp_name;
- }
- _XimFlush(im);
- if (buf != tmp_buf)
- Xfree(buf);
- ic->private.proto.waitCallback = True;
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimSetICValuesCheck, (XPointer)ic);
- if (ret_code == XIM_TRUE) {
- preply = reply;
- } else if (ret_code == XIM_OVERFLOW) {
- buf_size = (int)len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimSetICValuesCheck, (XPointer)ic);
- if (ret_code != XIM_TRUE) {
- Xfree(preply);
- ic->private.proto.waitCallback = False;
- return tmp_name;
- }
- } else {
- ic->private.proto.waitCallback = False;
- return tmp_name;
- }
- ic->private.proto.waitCallback = False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if (reply != preply)
- Xfree(preply);
- return tmp_name;
- }
- if (reply != preply)
- Xfree(preply);
-
- return name;
-}
-
-static Bool
-_XimDestroyICCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Bool ret = False;
-
- if ((major_opcode == XIM_DESTROY_IC_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- ret = True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- ret = False;
- return ret;
-}
-
-static void
-_XimProtoICFree(
- Xic ic)
-{
-#ifdef XIM_CONNECTABLE
- Xim im = (Xim)ic->core.im;
-#endif
-
- if (ic->private.proto.preedit_font) {
- Xfree(ic->private.proto.preedit_font);
- ic->private.proto.preedit_font = NULL;
- }
- if (ic->private.proto.status_font) {
- Xfree(ic->private.proto.status_font);
- ic->private.proto.status_font = NULL;
- }
- if (ic->private.proto.commit_info) {
- _XimFreeCommitInfo(ic);
- ic->private.proto.commit_info = NULL;
- }
- if (ic->private.proto.ic_inner_resources) {
- Xfree(ic->private.proto.ic_inner_resources);
- ic->private.proto.ic_inner_resources = NULL;
- }
-
-#ifdef XIM_CONNECTABLE
- if (IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)) {
- return;
- }
-#endif /* XIM_CONNECTABLE */
-
- if (ic->private.proto.saved_icvalues) {
- Xfree(ic->private.proto.saved_icvalues);
- ic->private.proto.saved_icvalues = NULL;
- }
- if (ic->private.proto.ic_resources) {
- Xfree(ic->private.proto.ic_resources);
- ic->private.proto.ic_resources = NULL;
- }
- if (ic->core.hotkey) {
- Xfree(ic->core.hotkey);
- ic->core.hotkey = NULL;
- }
-
- return;
-}
-
-static void
-_XimProtoDestroyIC(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
-
- if (IS_SERVER_CONNECTED(im)) {
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_DESTROY_IC, 0, &len);
- (void)_XimWrite(im, len, (XPointer)buf);
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimDestroyICCheck, (XPointer)ic);
- if (ret_code == XIM_OVERFLOW) {
- buf_size = len;
- preply = Xmalloc(buf_size);
- (void)_XimRead(im, &len, preply, buf_size,
- _XimDestroyICCheck, (XPointer)ic);
- Xfree(preply);
- }
- }
- UNMARK_IC_CONNECTED(ic);
- _XimUnregisterFilter(ic);
- _XimProtoICFree(ic);
- return;
-}
-
-static void
-_XimProtoSetFocus(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
-
-#ifndef XIM_CONNECTABLE
- if (!IS_IC_CONNECTED(ic))
- return;
-#else
- if (!IS_IC_CONNECTED(ic)) {
- if (IS_CONNECTABLE(im)) {
- if (_XimConnectServer(im)) {
- if (!_XimReCreateIC(ic)) {
- _XimDelayModeSetAttr(im);
- return;
- }
- } else {
- return;
- }
- } else {
- return;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_SET_IC_FOCUS, 0, &len);
- (void)_XimWrite(im, len, (XPointer)buf);
- _XimFlush(im);
-
- _XimRegisterFilter(ic);
- return;
-}
-
-static void
-_XimProtoUnsetFocus(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
-
-#ifndef XIM_CONNECTABLE
- if (!IS_IC_CONNECTED(ic))
- return;
-#else
- if (!IS_IC_CONNECTED(ic)) {
- if (IS_CONNECTABLE(im)) {
- if (_XimConnectServer(im)) {
- if (!_XimReCreateIC(ic)) {
- _XimDelayModeSetAttr(im);
- return;
- }
- } else {
- return;
- }
- } else {
- return;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_UNSET_IC_FOCUS, 0, &len);
- (void)_XimWrite(im, len, (XPointer)buf);
- _XimFlush(im);
-
- _XimUnregisterFilter(ic);
- return;
-}
-
-static Bool
-_XimResetICCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
-
- if ((major_opcode == XIM_RESET_IC_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- return True;
- return False;
-}
-
-static char *
-_XimProtoReset(
- XIC xic,
- char * (*retfunc) (Xim im, Xic ic, XPointer buf) )
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- char *commit;
-
- if (!IS_IC_CONNECTED(ic))
- return (char *)NULL;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_RESET_IC, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return NULL;
- _XimFlush(im);
- ic->private.proto.waitCallback = True;
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimResetICCheck, (XPointer)ic);
- if (ret_code == XIM_TRUE) {
- preply = reply;
- } else if (ret_code == XIM_OVERFLOW) {
- if (len < 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimResetICCheck, (XPointer)ic);
- if (ret_code != XIM_TRUE) {
- Xfree(preply);
- ic->private.proto.waitCallback = False;
- return NULL;
- }
- }
- } else {
- ic->private.proto.waitCallback = False;
- return NULL;
- }
- ic->private.proto.waitCallback = False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if (reply != preply)
- free(preply);
- return NULL;
- }
-
- commit = retfunc(im, ic, (XPointer)&buf_s[2]);
-
- if (reply != preply)
- Xfree(preply);
- return commit;
-}
-
-static char *
-_XimCommitedMbString(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- CARD16 *buf_s = (CARD16 *)buf;
- XimCommitInfo info;
- int len;
- int new_len;
- char *commit;
- char *new_commit = NULL;
- char *str;
- Status status;
-
- len = 0;
- for (info = ic->private.proto.commit_info; info; info = info->next)
- len += info->string_len;
- len += buf_s[0];
- if ( len == 0 )
- return( NULL );
-
- if (!(commit = Xmalloc(len + 1)))
- goto Error_On_Reset;
-
- str = commit;
- for (info = ic->private.proto.commit_info; info; info = info->next) {
- (void)memcpy(str, info->string, info->string_len);
- str += info->string_len;
- }
- (void)memcpy(str, (char *)&buf_s[1], buf_s[0]);
- commit[len] = '\0';
-
- new_len = im->methods->ctstombs((XIM)im, commit, len, NULL, 0, &status);
- if (status != XLookupNone) {
- if (!(new_commit = Xmalloc(new_len + 1))) {
- Xfree(commit);
- goto Error_On_Reset;
- }
- (void)im->methods->ctstombs((XIM)im, commit, len,
- new_commit, new_len, NULL);
- new_commit[new_len] = '\0';
- }
- Xfree(commit);
-
-Error_On_Reset:
- _XimFreeCommitInfo( ic );
- return new_commit;
-}
-
-static char *
-_XimProtoMbReset(
- XIC xic)
-{
- return _XimProtoReset(xic, _XimCommitedMbString);
-}
-
-static wchar_t *
-_XimCommitedWcString(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- CARD16 *buf_s = (CARD16 *)buf;
- XimCommitInfo info;
- int len;
- int new_len;
- char *commit;
- wchar_t *new_commit = (wchar_t *)NULL;
- char *str;
- Status status;
-
- len = 0;
- for (info = ic->private.proto.commit_info; info; info = info->next)
- len += info->string_len;
- len += buf_s[0];
- if ( len == 0 )
- return( (wchar_t *)NULL );
-
- if (!(commit = Xmalloc(len + 1)))
- goto Error_On_Reset;
-
- str = commit;
- for (info = ic->private.proto.commit_info; info; info = info->next) {
- (void)memcpy(str, info->string, info->string_len);
- str += info->string_len;
- }
- (void)memcpy(str, (char *)&buf_s[1], buf_s[0]);
- commit[len] = '\0';
-
- new_len = im->methods->ctstowcs((XIM)im, commit, len, NULL, 0, &status);
- if (status != XLookupNone) {
- if (!(new_commit =
- (wchar_t *)Xmalloc(sizeof(wchar_t) * (new_len + 1)))) {
- Xfree(commit);
- goto Error_On_Reset;
- }
- (void)im->methods->ctstowcs((XIM)im, commit, len,
- new_commit, new_len, NULL);
- new_commit[new_len] = (wchar_t)'\0';
- }
- Xfree(commit);
-
-Error_On_Reset:
- _XimFreeCommitInfo( ic );
- return new_commit;
-}
-
-static wchar_t *
-_XimProtoWcReset(
- XIC xic)
-{
- return (wchar_t *) _XimProtoReset(xic,
- (char * (*) (Xim, Xic, XPointer)) _XimCommitedWcString);
-}
-
-static char *
-_XimCommitedUtf8String(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- CARD16 *buf_s = (CARD16 *)buf;
- XimCommitInfo info;
- int len;
- int new_len;
- char *commit;
- char *new_commit = NULL;
- char *str;
- Status status;
-
- len = 0;
- for (info = ic->private.proto.commit_info; info; info = info->next)
- len += info->string_len;
- len += buf_s[0];
- if ( len == 0 )
- return( NULL );
-
- if (!(commit = Xmalloc(len + 1)))
- goto Error_On_Reset;
-
- str = commit;
- for (info = ic->private.proto.commit_info; info; info = info->next) {
- (void)memcpy(str, info->string, info->string_len);
- str += info->string_len;
- }
- (void)memcpy(str, (char *)&buf_s[1], buf_s[0]);
- commit[len] = '\0';
-
- new_len = im->methods->ctstoutf8((XIM)im, commit, len, NULL, 0, &status);
- if (status != XLookupNone) {
- if (!(new_commit = Xmalloc(new_len + 1))) {
- Xfree(commit);
- goto Error_On_Reset;
- }
- (void)im->methods->ctstoutf8((XIM)im, commit, len,
- new_commit, new_len, NULL);
- new_commit[new_len] = '\0';
- }
- Xfree(commit);
-
-Error_On_Reset:
- _XimFreeCommitInfo( ic );
- return new_commit;
-}
-
-static char *
-_XimProtoUtf8Reset(
- XIC xic)
-{
- return _XimProtoReset(xic, _XimCommitedUtf8String);
-}
-
-static XICMethodsRec ic_methods = {
- _XimProtoDestroyIC, /* destroy */
- _XimProtoSetFocus, /* set_focus */
- _XimProtoUnsetFocus, /* unset_focus */
- _XimProtoSetICValues, /* set_values */
- _XimProtoGetICValues, /* get_values */
- _XimProtoMbReset, /* mb_reset */
- _XimProtoWcReset, /* wc_reset */
- _XimProtoUtf8Reset, /* utf8_reset */
- _XimProtoMbLookupString, /* mb_lookup_string */
- _XimProtoWcLookupString, /* wc_lookup_string */
- _XimProtoUtf8LookupString /* utf8_lookup_string */
-};
-
-static Bool
-_XimGetInputStyle(
- XIMArg *arg,
- XIMStyle *input_style)
-{
- register XIMArg *p;
-
- for (p = arg; p && p->name; p++) {
- if (!(strcmp(p->name, XNInputStyle))) {
- *input_style = (XIMStyle)p->value;
- return True;
- }
- }
- return False;
-}
-
-#ifdef XIM_CONNECTABLE
-static Bool
-_XimDelayModeCreateIC(
- Xic ic,
- XIMArg *values,
- XIMResourceList res,
- unsigned int num)
-{
- Xim im = (Xim)ic->core.im;
- XimDefICValues ic_values;
- int len;
- XIMStyle input_style;
-
- bzero((char *)&ic_values, sizeof(XimDefICValues));
- _XimGetCurrentICValues(ic, &ic_values);
- if (!(_XimGetInputStyle(values, &input_style)))
- return False;
-
- _XimSetICMode(res, num, input_style);
-
- if (_XimSetICValueData(ic, (XPointer)&ic_values, res, num,
- values, XIM_CREATEIC, False)) {
- return False;
- }
- _XimSetCurrentICValues(ic, &ic_values);
- if (!_XimSetICDefaults(ic, (XPointer)&ic_values,
- XIM_SETICDEFAULTS, res, num)) {
- return False;
- }
- ic_values.filter_events = KeyPressMask;
- _XimSetCurrentICValues(ic, &ic_values);
- _XimRegisterFilter(ic);
-
- return True;
-}
-
-Bool
-_XimReconnectModeCreateIC(ic)
- Xic ic;
-{
- Xim im = (Xim)ic->core.im;
- int len;
- XIMStyle input_style = ic->core.input_style;
- XIMResourceList res;
- unsigned int num;
-
- num = im->core.ic_num_resources;
- len = sizeof(XIMResource) * num;
- if (!(res = Xmalloc(len)))
- return False;
- (void)memcpy((char *)res, (char *)im->core.ic_resources, len);
- ic->private.proto.ic_resources = res;
- ic->private.proto.ic_num_resources = num;
-
- _XimSetICMode(res, num, input_style);
-
- ic->core.filter_events = KeyPressMask;
-
- return True;
-}
-#endif /* XIM_CONNECTABLE */
-
-XIC
-_XimProtoCreateIC(
- XIM xim,
- XIMArg *arg)
-{
- Xim im = (Xim)xim;
- Xic ic;
- XimDefICValues ic_values;
- XIMResourceList res;
- unsigned int num;
- XIMStyle input_style;
- INT16 len;
- CARD16 *buf_s;
- char *tmp;
- CARD32 tmp_buf32[BUFSIZE/4];
- char *tmp_buf = (char *)tmp_buf32;
- char *buf;
- int buf_size;
- char *data;
- int data_len;
- int ret_len;
- int total;
- XIMArg *arg_ret;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int ret_code;
-
-#ifdef XIM_CONNECTABLE
- if (!IS_SERVER_CONNECTED(im) && !IS_CONNECTABLE(im))
- return (XIC)NULL;
-#else
- if (!IS_SERVER_CONNECTED(im))
- return (XIC)NULL;
-#endif /* XIM_CONNECTABLE */
-
- if (!(_XimGetInputStyle(arg, &input_style)))
- return (XIC)NULL;
-
- if ((ic = Xcalloc(1, sizeof(XicRec))) == (Xic)NULL)
- return (XIC)NULL;
-
- ic->methods = &ic_methods;
- ic->core.im = (XIM)im;
- ic->core.input_style = input_style;
-
- num = im->core.ic_num_resources;
- len = sizeof(XIMResource) * num;
- if (!(res = Xmalloc(len)))
- goto ErrorOnCreatingIC;
- (void)memcpy((char *)res, (char *)im->core.ic_resources, len);
- ic->private.proto.ic_resources = res;
- ic->private.proto.ic_num_resources = num;
-
-#ifdef XIM_CONNECTABLE
- if (!_XimSaveICValues(ic, arg))
- return False;
-
- if (!IS_SERVER_CONNECTED(im)) {
- if (!_XimConnectServer(im)) {
- if (_XimDelayModeCreateIC(ic, arg, res, num)) {
- return (XIC)ic;
- }
- goto ErrorOnCreatingIC;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- ic->core.filter_events = im->private.proto.forward_event_mask;
- ic->private.proto.forward_event_mask =
- im->private.proto.forward_event_mask;
- ic->private.proto.synchronous_event_mask =
- im->private.proto.synchronous_event_mask;
-
- num = im->private.proto.ic_num_inner_resources;
- len = sizeof(XIMResource) * num;
- if (!(res = Xmalloc(len)))
- goto ErrorOnCreatingIC;
- (void)memcpy((char *)res,
- (char *)im->private.proto.ic_inner_resources, len);
- ic->private.proto.ic_inner_resources = res;
- ic->private.proto.ic_num_inner_resources = num;
-
- _XimSetICMode(ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, input_style);
-
- _XimSetICMode(ic->private.proto.ic_inner_resources,
- ic->private.proto.ic_num_inner_resources, input_style);
-
- _XimGetCurrentICValues(ic, &ic_values);
- buf = tmp_buf;
- buf_size = XIM_HEADER_SIZE + sizeof(CARD16) + sizeof(INT16);
- data_len = BUFSIZE - buf_size;
- total = 0;
- arg_ret = arg;
- for (;;) {
- data = &buf[buf_size];
- if (_XimEncodeICATTRIBUTE(ic, ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources, arg, &arg_ret, data,
- data_len, &ret_len, (XPointer)&ic_values, 0, XIM_CREATEIC)) {
- goto ErrorOnCreatingIC;
- }
-
- total += ret_len;
- if (!(arg = arg_ret)) {
- break;
- }
-
- buf_size += ret_len;
- if (buf == tmp_buf) {
- if (!(tmp = Xmalloc(buf_size + data_len))) {
- goto ErrorOnCreatingIC;
- }
- memcpy(tmp, buf, buf_size);
- buf = tmp;
- } else {
- if (!(tmp = Xrealloc(buf, (buf_size + data_len)))) {
- Xfree(buf);
- goto ErrorOnCreatingIC;
- }
- buf = tmp;
- }
- }
- _XimSetCurrentICValues(ic, &ic_values);
-
- if (!(_XimCheckCreateICValues(ic->private.proto.ic_resources,
- ic->private.proto.ic_num_resources)))
- goto ErrorOnCreatingIC;
-
- _XimRegisterFilter(ic);
-
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- buf_s[0] = im->private.proto.imid;
- buf_s[1] = (INT16)total;
-
- len = (INT16)(sizeof(CARD16) + sizeof(INT16) + total);
- _XimSetHeader((XPointer)buf, XIM_CREATE_IC, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- if (buf != tmp_buf)
- Xfree(buf);
- goto ErrorOnCreatingIC;
- }
- _XimFlush(im);
- if (buf != tmp_buf)
- Xfree(buf);
- ic->private.proto.waitCallback = True;
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimCreateICCheck, 0);
- if (ret_code == XIM_TRUE) {
- preply = reply;
- } else if (ret_code == XIM_OVERFLOW) {
- if (len <= 0) {
- preply = reply;
- } else {
- buf_size = (int)len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimCreateICCheck, 0);
- if (ret_code != XIM_TRUE) {
- Xfree(preply);
- ic->private.proto.waitCallback = False;
- goto ErrorOnCreatingIC;
- }
- }
- } else {
- ic->private.proto.waitCallback = False;
- goto ErrorOnCreatingIC;
- }
- ic->private.proto.waitCallback = False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if (reply != preply)
- Xfree(preply);
- goto ErrorOnCreatingIC;
- }
-
- ic->private.proto.icid = buf_s[1]; /* icid */
- if (reply != preply)
- Xfree(preply);
- MARK_IC_CONNECTED(ic);
- return (XIC)ic;
-
-ErrorOnCreatingIC:
- _XimUnregisterFilter(ic);
-
- Xfree(ic->private.proto.ic_resources);
- Xfree(ic->private.proto.ic_inner_resources);
- Xfree(ic);
- return (XIC)NULL;
-}
diff --git a/nx-X11/lib/X11/imDefIm.c b/nx-X11/lib/X11/imDefIm.c
deleted file mode 100644
index 2a1ccb4ec..000000000
--- a/nx-X11/lib/X11/imDefIm.c
+++ /dev/null
@@ -1,2042 +0,0 @@
-/*
- * Copyright 1990, 1991, 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-/******************************************************************
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Digital, FUJITSU
-LIMITED and Sony Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-
-DIGITAL, FUJITSU LIMITED AND SONY CORPORATION DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL, FUJITSU LIMITED
-AND SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Makoto Wakamatsu Sony Corporation
- makoto@sm.sony.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XlcPublic.h"
-#include "XlcPubI.h"
-#include "XimTrInt.h"
-#include "Ximint.h"
-
-
-int
-_XimCheckDataSize(
- XPointer buf,
- int len)
-{
- CARD16 *buf_s = (CARD16 *)buf;
-
- if(len < XIM_HEADER_SIZE)
- return -1;
- return buf_s[1];
-}
-
-void
-_XimSetHeader(
- XPointer buf,
- CARD8 major_opcode,
- CARD8 minor_opcode,
- INT16 *len
-)
-{
- CARD8 *buf_b = (CARD8 *)buf;
- CARD16 *buf_s = (CARD16 *)buf;
-
- buf_b[0] = major_opcode;
- buf_b[1] = minor_opcode;
- buf_s[1] = ((*len) / 4);
- *len += XIM_HEADER_SIZE;
- return;
-}
-
-char
-_XimGetMyEndian(void)
-{
- CARD16 test_card = 1;
-
- if(*((char *)&test_card))
- return LITTLEENDIAN;
- else
- return BIGENDIAN;
-}
-
-static Bool
-_XimCheckServerName(
- Xim im,
- char *str)
-{
- char *server_name = im->core.im_name;
- int len;
- int str_len;
- int category_len = strlen(XIM_SERVER_CATEGORY);
- char *pp;
- register char *p;
-
- if(server_name && *server_name)
- len = strlen(server_name);
- else
- return True;
-
- if((int)strlen(str) < category_len)
- return False;
-
- if(strncmp(str, XIM_SERVER_CATEGORY, category_len))
- return False;
-
- pp = &str[category_len];
-
- for(;;) {
- for(p = pp; (*p != ',') && (*p); p++);
- str_len = (int)(p - pp);
-
- if((len == str_len) && (!strncmp(pp, server_name, len)))
- break;
- if(!(*p))
- return False;
- pp = p + 1;
- }
- return True;
-}
-
-static char *
-_XimCheckLocaleName(
- Xim im,
- char *address,
- int address_len,
- char *locale_name[],
- int len)
-{
- int category_len;
- char *pp;
- register char *p;
- register int n;
- Bool finish = False;
-
- category_len = strlen(XIM_LOCAL_CATEGORY);
- if(address_len < category_len)
- return (char*)NULL;
-
- if(strncmp(address, XIM_LOCAL_CATEGORY, category_len))
- return (char*)NULL;
-
- pp = &address[category_len];
-
- for(;;) {
- for( p = pp; *p && *p != ','; p++);
- if (!*p)
- finish = True;
- address_len = (int)(p - pp);
- *p = '\0';
-
- for( n = 0; n < len; n++ )
- if( locale_name[n] && !_XlcCompareISOLatin1( pp, locale_name[n] ) )
- return locale_name[n];
- if (finish)
- break;
- pp = p + 1;
- }
- return (char *)NULL;
-}
-
-static Bool
-_XimCheckTransport(
- char *address,
- int address_len,
- const char *transport,
- int len,
- char **trans_addr)
-{
- int category_len = strlen(XIM_TRANSPORT_CATEGORY);
- char *pp;
- register char *p;
-
- if(address_len < category_len)
- return False;
-
- if(strncmp(address, XIM_TRANSPORT_CATEGORY, category_len))
- return False;
-
- pp = &address[category_len];
-
- for(;;) {
- *trans_addr = pp;
-
- for(p = pp; (*p != '/') && (*p != ',') && (*p); p++);
- if(*p == ',') {
- pp = p + 1;
- continue;
- }
- if(!(*p))
- return False;
-
- address_len = (int)(p - pp);
-
- if((len == address_len) && (!strncmp(pp, transport, len)))
- break;
- pp = p + 1;
- }
- pp = p + 1;
- for(p = pp; (*p != ',') && (*p); p++);
- if (*p)
- *p = '\0';
- return True;
-}
-
-static Bool
-_CheckSNEvent(
- Display *display,
- XEvent *xevent,
- XPointer arg)
-{
- XSelectionEvent *event = (XSelectionEvent *)xevent;
- Window window = *(Window*)arg;
-
- if((event->type == SelectionNotify) && (window == event->requestor))
- return True;
- return False;
-}
-
-static Bool
-_XimGetSelectionNotify(
- Display *display,
- Window window,
- Atom target,
- char **ret_address)
-{
- XEvent event;
- XSelectionEvent *ev = (XSelectionEvent *)&event;
- Atom actual_type;
- int actual_format;
- unsigned long nitems, bytes_after;
-
- for(;;) {
- XIfEvent(display, &event, _CheckSNEvent, (XPointer)&window);
- if((ev->type == SelectionNotify) && (window == ev->requestor))
- break;
- }
-
- if(ev->property == (Atom)None)
- return False;
- if( XGetWindowProperty( display, window, target, 0L, 1000000L,
- True, target, &actual_type, &actual_format,
- &nitems, &bytes_after,
- (unsigned char **)&*ret_address ) != Success )
- return False;
- return True;
-}
-
-static Bool
-_XimPreConnectionIM(
- Xim im,
- Atom selection)
-{
- Display *display = im->core.display;
- Atom locales, transport;
- char *address;
- XLCd lcd;
- char *language;
- char *territory;
- char *codeset;
- char *trans_addr;
- char *locale_name[4], *locale;
- int llen, tlen, clen;
- register int i;
- Window window;
- char *str;
-
- if(!(lcd = im->core.lcd))
- return False;
-
- for( i = 0; i < 4; i++ )
- locale_name[i] = NULL;
- /* requestor window */
- if(!(window = XCreateSimpleWindow(display, DefaultRootWindow(display),
- 0, 0, 1, 1, 1, 0, 0)))
- return False;
-
- /* server name check */
- if( !(str = XGetAtomName( display, selection )) )
- return False;
- if(!_XimCheckServerName(im, str)) {
- XFree( (XPointer)str );
- goto Error;
- }
- XFree( (XPointer)str );
-
- /* locale name check */
- _XGetLCValues(lcd, XlcNLanguage, &language, XlcNTerritory, &territory,
- XlcNCodeset, &codeset, NULL);
- llen = strlen( language );
- tlen = territory ? strlen( territory ): 0;
- clen = codeset ? strlen( codeset ): 0;
-
- if( tlen != 0 && clen != 0 ) {
- if( (locale_name[0] = Xmalloc(llen+tlen+clen+3)) != NULL )
- sprintf( locale_name[0], "%s_%s.%s", language, territory, codeset );
- }
- if( clen != 0 ) {
- if( (locale_name[1] = Xmalloc(llen+clen+2)) != NULL )
- sprintf( locale_name[1], "%s.%s", language, codeset );
- else
- goto Error;
- }
- if( tlen != 0 ) {
- if( (locale_name[2] = Xmalloc(llen+tlen+2)) != NULL )
- sprintf( locale_name[2], "%s_%s", language, territory );
- else
- goto Error;
- }
- if( (locale_name[3] = Xmalloc(llen+1)) != NULL )
- strcpy( locale_name[3], language );
- else
- goto Error;
- if((locales = XInternAtom(display, XIM_LOCALES, True)) == (Atom)None)
- goto Error;
-
- XConvertSelection(display, selection, locales, locales, window,
- CurrentTime);
- if(!(_XimGetSelectionNotify(display, window, locales, &address)))
- goto Error;
-
- if((locale = _XimCheckLocaleName(im, address, strlen(address), locale_name,
- 4)) == NULL) {
- XFree((XPointer)address);
- goto Error;
- }
- im->private.proto.locale_name = locale;
- for( i = 0; i < 4; i++ ) {
- if( locale_name[i] != NULL && locale_name[i] != locale ) {
- XFree( locale_name[i] );
- locale_name[i] = NULL;
- }
- }
- XFree((XPointer)address);
-
- /* transport check */
- if((transport = XInternAtom(display, XIM_TRANSPORT, True)) == (Atom)None)
- goto Error;
-
- XConvertSelection(display, selection, transport, transport, window,
- CurrentTime);
- if(!_XimGetSelectionNotify(display, window, transport, &address))
- goto Error;
-
- for(i = 0; _XimTransportRec[i].transportname ; i++) {
- if( _XimCheckTransport(address, strlen(address),
- _XimTransportRec[i].transportname,
- strlen(_XimTransportRec[i].transportname),
- &trans_addr)) {
- if( _XimTransportRec[i].config(im, trans_addr) ) {
- XFree((XPointer)address);
- XDestroyWindow(display, window);
- return True;
- }
- }
- }
-
- XFree((XPointer)address);
-Error:
- for( i = 0; i < 4; i++ )
- if( locale_name[i] != NULL )
- XFree( locale_name[i] );
- XDestroyWindow(display, window);
- return False;
-}
-
-static Bool
-_XimPreConnect(
- Xim im)
-{
- Display *display = im->core.display;
- Atom imserver;
- Atom actual_type;
- int actual_format;
- unsigned long nitems;
- unsigned long bytes_after;
- unsigned char *prop_return;
- Atom *atoms;
- Window im_window = 0;
- register int i;
-
- if((imserver = XInternAtom(display, XIM_SERVERS, True)) == (Atom)None)
- return False;
-
- if(XGetWindowProperty(display, RootWindow(display, 0),
- imserver, 0L, 1000000L, False, XA_ATOM, &actual_type,
- &actual_format, &nitems, &bytes_after,
- &prop_return) != Success)
- return False;
-
- if( (actual_type != XA_ATOM) || (actual_format != 32) ) {
- if( nitems )
- XFree((XPointer)prop_return);
- return False;
- }
-
- atoms = (Atom *)prop_return;
- for(i = 0; i < nitems; i++) {
- if((im_window = XGetSelectionOwner(display, atoms[i])) == (Window)None)
- continue;
-
- if(_XimPreConnectionIM(im, atoms[i]))
- break;
- }
-
- XFree((XPointer)prop_return);
- if(i >= nitems)
- return False;
-
- im->private.proto.im_window = im_window;
- return True;
-}
-
-static Bool
-_XimGetAuthProtocolNames(
- Xim im,
- CARD16 *buf,
- CARD8 *num,
- INT16 *len)
-{
- if (!IS_USE_AUTHORIZATION_FUNC(im)) {
- *num = 0;
- *len = 0;
- return True;
- }
- /*
- * Not yet
- */
- return True;
-}
-
-static Bool
-_XimSetAuthReplyData(
- Xim im,
- XPointer buf,
- INT16 *len)
-{
- /*
- * Not yet
- */
- *len = 0;
- return True;
-}
-
-static Bool
-_XimSetAuthNextData(
- Xim im,
- XPointer buf,
- INT16 *len)
-{
- /*
- * Not yet
- */
- *len = 0;
- return True;
-}
-
-static Bool
-_XimSetAuthRequiredData(
- Xim im,
- XPointer buf,
- INT16 *len)
-{
- /*
- * Not yet
- */
- *len = 0;
- return True;
-}
-
-static Bool
-_XimCheckAuthSetupData(
- Xim im,
- XPointer buf)
-{
- /*
- * Not yet
- */
- return True;
-}
-
-static Bool
-_XimCheckAuthNextData(
- Xim im,
- XPointer buf)
-{
- /*
- * Not yet
- */
- return True;
-}
-
-#define NO_MORE_AUTH 2
-#define GOOD_AUTH 1
-#define BAD_AUTH 0
-
-static int
-_XimClientAuthCheck(
- Xim im,
- XPointer buf)
-{
- /*
- * Not yet
- */
- return NO_MORE_AUTH;
-}
-
-static void
-_XimAuthNG(
- Xim im)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- INT16 len = 0;
-
- _XimSetHeader((XPointer)buf, XIM_AUTH_NG, 0, &len);
- (void)_XimWrite(im, len, (XPointer)buf);
- _XimFlush(im);
- return;
-}
-
-static Bool
-_XimAllRecv(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- return True;
-}
-
-#define CLIENT_WAIT1 1
-#define CLIENT_WAIT2 2
-
-static Bool
-_XimConnection(
- Xim im)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD8 *buf_b = &buf[XIM_HEADER_SIZE];
- CARD16 *buf_s = (CARD16 *)((XPointer)buf_b);
- INT16 len;
- CARD8 num;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- CARD8 major_opcode;
- int wait_mode;
- int ret;
-
- if(!(_XimConnect(im))) /* Transport Connect */
- return False;
-
- if(!_XimDispatchInit(im))
- return False;
-
- _XimRegProtoIntrCallback(im, XIM_ERROR, 0, _XimErrorCallback, (XPointer)im);
-
- if(!_XimGetAuthProtocolNames(im, &buf_s[4], &num, &len))
- return False;
-
- im->private.proto.protocol_major_version = PROTOCOLMAJORVERSION;
- im->private.proto.protocol_minor_version = PROTOCOLMINORVERSION;
-
- buf_b[0] = _XimGetMyEndian();
- buf_b[1] = 0;
- buf_s[1] = PROTOCOLMAJORVERSION;
- buf_s[2] = PROTOCOLMINORVERSION;
- buf_s[3] = num;
- len += sizeof(CARD8)
- + sizeof(CARD8)
- + sizeof(CARD16)
- + sizeof(CARD16)
- + sizeof(CARD16);
-
- major_opcode = XIM_CONNECT;
- wait_mode = (IS_USE_AUTHORIZATION_FUNC(im)) ? CLIENT_WAIT1 : CLIENT_WAIT2;
-
- for(;;) {
- _XimSetHeader((XPointer)buf, major_opcode, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, reply, buf_size, _XimAllRecv, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size, _XimAllRecv, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else
- return False;
-
- major_opcode = *((CARD8 *)preply);
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
-
- if (wait_mode == CLIENT_WAIT1) {
- if (major_opcode == XIM_AUTH_REQUIRED) {
- ret = _XimClientAuthCheck(im, (XPointer)buf_s);
- if(reply != preply)
- Xfree(preply);
- if (ret == NO_MORE_AUTH) {
- if (!(_XimSetAuthReplyData(im,
- (XPointer)&buf[XIM_HEADER_SIZE], &len))) {
- _XimAuthNG(im);
- return False;
- }
- major_opcode = XIM_AUTH_REPLY;
- wait_mode = CLIENT_WAIT2;
- } else if (ret == GOOD_AUTH) {
- if (!(_XimSetAuthNextData(im,
- (XPointer)&buf[XIM_HEADER_SIZE], &len))) {
- _XimAuthNG(im);
- return False;
- }
- major_opcode = XIM_AUTH_NEXT;
- } else { /* BAD_AUTH */
- _XimAuthNG(im);
- return False;
- }
- } else {
- if(reply != preply)
- Xfree(preply);
- _XimAuthNG(im);
- return False;
- }
- } else { /* CLIENT_WAIT2 */
- if (major_opcode == XIM_CONNECT_REPLY) {
- break;
- } else if (major_opcode == XIM_AUTH_SETUP) {
- if (!(_XimCheckAuthSetupData(im, (XPointer)buf_s))) {
- _XimAuthNG(im);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- if (!(_XimSetAuthRequiredData(im,
- (XPointer)&buf[XIM_HEADER_SIZE], &len))) {
- _XimAuthNG(im);
- return False;
- }
- major_opcode = XIM_AUTH_REQUIRED;
- } else if (major_opcode == XIM_AUTH_NEXT) {
- if (!(_XimCheckAuthNextData(im, (XPointer)buf_s))) {
- _XimAuthNG(im);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- if (!(_XimSetAuthRequiredData(im,
- (XPointer)&buf[XIM_HEADER_SIZE], &len))) {
- _XimAuthNG(im);
- return False;
- }
- major_opcode = XIM_AUTH_REQUIRED;
- } else if (major_opcode == XIM_AUTH_NG) {
- if(reply != preply)
- Xfree(preply);
- return False;
- } else {
- _XimAuthNG(im);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- }
- }
-
- if (!( buf_s[0] == im->private.proto.protocol_major_version
- && buf_s[1] == im->private.proto.protocol_minor_version)) {
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- MARK_SERVER_CONNECTED(im);
-
- _XimRegProtoIntrCallback(im, XIM_REGISTER_TRIGGERKEYS, 0,
- _XimRegisterTriggerKeysCallback, (XPointer)im);
- return True;
-}
-
-static Bool
-_XimDisconnectCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
-
- if ((major_opcode == XIM_DISCONNECT_REPLY)
- && (minor_opcode == 0))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0))
- return True;
- return False;
-}
-
-static Bool
-_XimDisconnect(
- Xim im)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- INT16 len = 0;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
-
- if (IS_SERVER_CONNECTED(im)) {
- _XimSetHeader((XPointer)buf, XIM_DISCONNECT, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimDisconnectCheck, 0);
- if(ret_code == XIM_OVERFLOW) {
- if(len > 0) {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimDisconnectCheck, 0);
- Xfree(preply);
- if(ret_code != XIM_TRUE)
- return False;
- }
- } else if(ret_code == XIM_FALSE)
- return False;
-
- }
- if (!(_XimShutdown(im))) /* Transport shutdown */
- return False;
- return True;
-}
-
-static Bool
-_XimOpenCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
-
- if ((major_opcode == XIM_OPEN_REPLY)
- && (minor_opcode == 0))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0))
- return True;
- return False;
-}
-
-static Bool
-_XimOpen(
- Xim im)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD8 *buf_b = &buf[XIM_HEADER_SIZE];
- CARD16 *buf_s;
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- char *locale_name;
-
- locale_name = im->private.proto.locale_name;
- len = strlen(locale_name);
- buf_b[0] = (BYTE)len; /* length of locale name */
- (void)strcpy((char *)&buf_b[1], locale_name); /* locale name */
- len += sizeof(BYTE); /* sizeof length */
- XIM_SET_PAD(buf_b, len); /* pad */
-
- _XimSetHeader((XPointer)buf, XIM_OPEN, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, reply, buf_size,
- _XimOpenCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimOpenCheck, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else
- return False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
-
- im->private.proto.imid = buf_s[0]; /* imid */
-
- if (!(_XimGetAttributeID(im, &buf_s[1]))) {
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
-
- if (!(_XimSetInnerIMResourceList(&(im->private.proto.im_inner_resources),
- &(im->private.proto.im_num_inner_resources))))
- return False;
-
- if (!(_XimSetInnerICResourceList(&(im->private.proto.ic_inner_resources),
- &(im->private.proto.ic_num_inner_resources))))
- return False;
-
- _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
- _XimSetIMMode(im->private.proto.im_inner_resources,
- im->private.proto.im_num_inner_resources);
-
- /* Transport Callbak */
- _XimRegProtoIntrCallback(im, XIM_SET_EVENT_MASK, 0,
- _XimSetEventMaskCallback, (XPointer)im);
- _XimRegProtoIntrCallback(im, XIM_FORWARD_EVENT, 0,
- _XimForwardEventCallback, (XPointer)im);
- _XimRegProtoIntrCallback(im, XIM_COMMIT, 0,
- _XimCommitCallback, (XPointer)im);
- _XimRegProtoIntrCallback(im, XIM_SYNC, 0,
- _XimSyncCallback, (XPointer)im);
-
- if(!_XimExtension(im))
- return False;
-
- /* register a hook for callback protocols */
- _XimRegisterDispatcher(im, _XimCbDispatch, (XPointer)im);
-
- return True;
-}
-
-static Bool
-_XimCloseCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
-
- if ((major_opcode == XIM_CLOSE_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid))
- return True;
- return False;
-}
-
-static Bool
-_XimClose(
- Xim im)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
-
- if (!IS_SERVER_CONNECTED(im))
- return True;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = 0; /* unused */
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof unused */
-
- _XimSetHeader((XPointer)buf, XIM_CLOSE, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimCloseCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size, _XimCloseCheck, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else
- return False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
-
- if(reply != preply)
- Xfree(preply);
- return True;
-}
-
-void
-_XimProtoIMFree(
- Xim im)
-{
- /* XIMPrivateRec */
- if (im->private.proto.im_onkeylist) {
- Xfree(im->private.proto.im_onkeylist);
- im->private.proto.im_onkeylist = NULL;
- }
- if (im->private.proto.im_offkeylist) {
- Xfree(im->private.proto.im_offkeylist);
- im->private.proto.im_offkeylist = NULL;
- }
- if (im->private.proto.intrproto) {
- _XimFreeProtoIntrCallback(im);
- im->private.proto.intrproto = NULL;
- }
- if (im->private.proto.im_inner_resources) {
- Xfree(im->private.proto.im_inner_resources);
- im->private.proto.im_inner_resources = NULL;
- }
- if (im->private.proto.ic_inner_resources) {
- Xfree(im->private.proto.ic_inner_resources);
- im->private.proto.ic_inner_resources = NULL;
- }
- if (im->private.proto.hold_data) {
- Xfree(im->private.proto.hold_data);
- im->private.proto.hold_data = NULL;
- }
- if (im->private.proto.locale_name) {
- Xfree(im->private.proto.locale_name);
- im->private.proto.locale_name = NULL;
- }
- if (im->private.proto.ctom_conv) {
- _XlcCloseConverter(im->private.proto.ctom_conv);
- im->private.proto.ctom_conv = NULL;
- }
- if (im->private.proto.ctow_conv) {
- _XlcCloseConverter(im->private.proto.ctow_conv);
- im->private.proto.ctow_conv = NULL;
- }
- if (im->private.proto.ctoutf8_conv) {
- _XlcCloseConverter(im->private.proto.ctoutf8_conv);
- im->private.proto.ctoutf8_conv = NULL;
- }
- if (im->private.proto.cstomb_conv) {
- _XlcCloseConverter(im->private.proto.cstomb_conv);
- im->private.proto.cstomb_conv = NULL;
- }
- if (im->private.proto.cstowc_conv) {
- _XlcCloseConverter(im->private.proto.cstowc_conv);
- im->private.proto.cstowc_conv = NULL;
- }
- if (im->private.proto.cstoutf8_conv) {
- _XlcCloseConverter(im->private.proto.cstoutf8_conv);
- im->private.proto.cstoutf8_conv = NULL;
- }
- if (im->private.proto.ucstoc_conv) {
- _XlcCloseConverter(im->private.proto.ucstoc_conv);
- im->private.proto.ucstoc_conv = NULL;
- }
- if (im->private.proto.ucstoutf8_conv) {
- _XlcCloseConverter(im->private.proto.ucstoutf8_conv);
- im->private.proto.ucstoutf8_conv = NULL;
- }
-
-#ifdef XIM_CONNECTABLE
- if (!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)) {
- return;
- }
-#endif /* XIM_CONNECTABLE */
-
- if (im->private.proto.saved_imvalues) {
- Xfree(im->private.proto.saved_imvalues);
- im->private.proto.saved_imvalues = NULL;
- }
- if (im->private.proto.default_styles) {
- Xfree(im->private.proto.default_styles);
- im->private.proto.default_styles = NULL;
- }
-
- /* core */
- if (im->core.res_name) {
- Xfree(im->core.res_name);
- im->core.res_name = NULL;
- }
- if (im->core.res_class) {
- Xfree(im->core.res_class);
- im->core.res_class = NULL;
- }
- if (im->core.im_values_list) {
- Xfree(im->core.im_values_list);
- im->core.im_values_list = NULL;
- }
- if (im->core.ic_values_list) {
- Xfree(im->core.ic_values_list);
- im->core.ic_values_list = NULL;
- }
- if (im->core.im_name) {
- Xfree(im->core.im_name);
- im->core.im_name = NULL;
- }
- if (im->core.styles) {
- Xfree(im->core.styles);
- im->core.styles = NULL;
- }
- if (im->core.im_resources) {
- Xfree(im->core.im_resources);
- im->core.im_resources = NULL;
- }
- if (im->core.ic_resources) {
- Xfree(im->core.ic_resources);
- im->core.ic_resources = NULL;
- }
-
- return;
-}
-
-static Status
-_XimProtoCloseIM(
- XIM xim)
-{
- Xim im = (Xim)xim;
- XIC ic;
- XIC next;
- Status status;
-
- ic = im->core.ic_chain;
- while (ic) {
- (*ic->methods->destroy) (ic);
- next = ic->core.next;
-#ifdef XIM_CONNECTABLE
- if (!(!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im))) {
- Xfree (ic);
- }
-#else
- Xfree (ic);
-#endif /* XIM_CONNECTABLE */
- ic = next;
- }
-#ifdef XIM_CONNECTABLE
- if (!(!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)))
- im->core.ic_chain = NULL;
-#else
- im->core.ic_chain = NULL;
-#endif
-
- _XimUnregisterServerFilter(im);
- _XimResetIMInstantiateCallback(im);
- status = (Status)_XimClose(im);
- status = (Status)_XimDisconnect(im) && status;
- _XimProtoIMFree(im);
-#ifdef XIM_CONNECTABLE
- if (!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)) {
- _XimReconnectModeSetAttr(im);
- for (ic = im->core.ic_chain; ic; ic = ic->core.next) {
- _XimReconnectModeCreateIC(ic);
- }
- return 0;
- }
-#endif /* XIM_CONNECTABLE */
- _XimDestroyIMStructureList(im);
- return status;
-}
-
-#ifdef XIM_CONNECTABLE
-static Bool
-_XimCheckIMQuarkList(
- XrmQuark *quark_list,
- int num_quark,
- XrmQuark quark)
-{
- register int i;
-
- for (i = 0; i < num_quark; i++) {
- if (quark_list[i] == quark) {
- return True;
- }
- }
- return False;
-}
-
-static Bool
-_XimSaveIMValues(
- Xim im,
- XIMArg *arg)
-{
- register XIMArg *p;
- register int n;
- XrmQuark *quark_list;
- XrmQuark *tmp;
- XrmQuark quark;
- int num_quark;
-
- if (quark_list = im->private.proto.saved_imvalues) {
- num_quark = im->private.proto.num_saved_imvalues;
- for (p = arg; p && p->name; p++) {
- quark = XrmStringToQuark(p->name);
- if (_XimCheckIMQuarkList(quark_list, num_quark, quark)) {
- continue;
- }
- if (!(tmp = Xrealloc(quark_list,
- (sizeof(XrmQuark) * (num_quark + 1))))) {
- im->private.proto.saved_imvalues = quark_list;
- im->private.proto.num_saved_imvalues = num_quark;
- return False;
- }
- num_quark++;
- quark_list = tmp;
- quark_list[num_quark] = quark;
- }
- im->private.proto.saved_imvalues = quark_list;
- im->private.proto.num_saved_imvalues = num_quark;
- return True;
- }
-
- for (p = arg, n = 0; p && p->name; p++, n++);
-
- if (!(quark_list = Xmalloc(sizeof(XrmQuark) * n))) {
- return False;
- }
-
- im->private.proto.saved_imvalues = quark_list;
- im->private.proto.num_saved_imvalues = n;
- for (p = arg; p && p->name; p++, quark_list++) {
- *quark_list = XrmStringToQuark(p->name);
- }
-
- return True;
-}
-
-static char *
-_XimDelayModeSetIMValues(
- Xim im,
- XIMArg *arg)
-{
- XimDefIMValues im_values;
- char *name;
- XIMArg *values;
-
- _XimGetCurrentIMValues(im, &im_values);
- name = _XimSetIMValueData(im, (XPointer)&im_values, values,
- im->core.im_resources, im->core.im_num_resources);
- _XimSetCurrentIMValues(im, &im_values);
-
- return name;
-}
-#endif /* XIM_CONNECTABLE */
-
-static Bool
-_XimSetIMValuesCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
-
- if ((major_opcode == XIM_SET_IM_VALUES_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid))
- return True;
- return False;
-}
-
-static char *
-_XimProtoSetIMValues(
- XIM xim,
- XIMArg *arg)
-{
- Xim im = (Xim)xim;
- XimDefIMValues im_values;
- INT16 len;
- CARD16 *buf_s;
- char *tmp;
- CARD32 tmp_buf32[BUFSIZE/4];
- char *tmp_buf = (char *)tmp_buf32;
- char *buf;
- int buf_size;
- char *data;
- int data_len;
- int ret_len;
- int total;
- XIMArg *arg_ret;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int ret_code;
- char *name;
-
-#ifndef XIM_CONNECTABLE
- if (!IS_SERVER_CONNECTED(im))
- return arg->name;
-#else
- if (!_XimSaveIMValues(im, arg))
- return arg->name;
-
- if (!IS_SERVER_CONNECTED(im)) {
- if (IS_CONNECTABLE(im)) {
- if (!_XimConnectServer(im)) {
- return _XimDelayModeSetIMValues(im, arg);
- }
- } else {
- return arg->name;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- _XimGetCurrentIMValues(im, &im_values);
- buf = tmp_buf;
- buf_size = XIM_HEADER_SIZE + sizeof(CARD16) + sizeof(INT16);
- data_len = BUFSIZE - buf_size;
- total = 0;
- arg_ret = arg;
- for (;;) {
- data = &buf[buf_size];
- if ((name = _XimEncodeIMATTRIBUTE(im, im->core.im_resources,
- im->core.im_num_resources, arg, &arg_ret, data, data_len,
- &ret_len, (XPointer)&im_values, XIM_SETIMVALUES))) {
- if (buf != tmp_buf)
- Xfree(buf);
- break;
- }
-
- total += ret_len;
- if (!(arg = arg_ret)) {
- break;
- }
-
- buf_size += ret_len;
- if (buf == tmp_buf) {
- if (!(tmp = Xmalloc(buf_size + data_len))) {
- return arg->name;
- }
- memcpy(tmp, buf, buf_size);
- buf = tmp;
- } else {
- if (!(tmp = Xrealloc(buf, (buf_size + data_len)))) {
- Xfree(buf);
- return arg->name;
- }
- buf = tmp;
- }
- }
- _XimSetCurrentIMValues(im, &im_values);
-
- if (!total)
- return (char *)NULL;
-
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- buf_s[0] = im->private.proto.imid;
- buf_s[1] = (INT16)total;
-
- len = (INT16)(sizeof(CARD16) + sizeof(INT16) + total);
- _XimSetHeader((XPointer)buf, XIM_SET_IM_VALUES, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- if (buf != tmp_buf)
- Xfree(buf);
- return arg->name;
- }
- _XimFlush(im);
- if (buf != tmp_buf)
- Xfree(buf);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimSetIMValuesCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = (int)len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, reply, buf_size,
- _XimSetIMValuesCheck, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return arg->name;
- }
- }
- } else
- return arg->name;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return arg->name;
- }
- if(reply != preply)
- Xfree(preply);
-
- return name;
-}
-
-#ifdef XIM_CONNECTABLE
-static char *
-_XimDelayModeGetIMValues(
- Xim im,
- XIMArg *arg)
-{
- XimDefIMValues im_values;
-
- _XimGetCurrentIMValues(im, &im_values);
- return(_XimGetIMValueData(im, (XPointer)&im_values, arg,
- im->core.im_resources, im->core.im_num_resources));
-}
-#endif /* XIM_CONNECTABLE */
-
-static Bool
-_XimGetIMValuesCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
-
- if ((major_opcode == XIM_GET_IM_VALUES_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid))
- return True;
- return False;
-}
-
-static char *
-_XimProtoGetIMValues(
- XIM xim,
- XIMArg *arg)
-{
- Xim im = (Xim)xim;
- register XIMArg *p;
- register int n;
- CARD8 *buf;
- CARD16 *buf_s;
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply = NULL;
- int buf_size;
- int ret_code;
- char *makeid_name;
- char *decode_name;
- CARD16 *data = NULL;
- INT16 data_len = 0;
-
-#ifndef XIM_CONNECTABLE
- if (!IS_SERVER_CONNECTED(im))
- return arg->name;
-#else
- if (!IS_SERVER_CONNECTED(im)) {
- if (IS_CONNECTABLE(im)) {
- if (!_XimConnectServer(im)) {
- return _XimDelayModeGetIMValues(im, arg);
- }
- } else {
- return arg->name;
- }
- }
-#endif /* XIM_CONNECTABLE */
-
- for (n = 0, p = arg; p->name; p++)
- n++;
-
- if (!n)
- return (char *)NULL;
-
- buf_size = sizeof(CARD16) * n;
- buf_size += XIM_HEADER_SIZE
- + sizeof(CARD16)
- + sizeof(INT16)
- + XIM_PAD(buf_size);
-
- if (!(buf = Xmalloc(buf_size)))
- return arg->name;
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
-
- makeid_name = _XimMakeIMAttrIDList(im, im->core.im_resources,
- im->core.im_num_resources, arg,
- &buf_s[2], &len, XIM_GETIMVALUES);
-
- if (len) {
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = len; /* length of im-attr-id */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += sizeof(CARD16) /* sizeof imid */
- + sizeof(INT16); /* sizeof length of attr */
-
- _XimSetHeader((XPointer)buf, XIM_GET_IM_VALUES, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- Xfree(buf);
- return arg->name;
- }
- _XimFlush(im);
- Xfree(buf);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimGetIMValuesCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimGetIMValuesCheck, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return arg->name;
- }
- }
- } else
- return arg->name;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return arg->name;
- }
- data = &buf_s[2];
- data_len = buf_s[1];
- }
- decode_name = _XimDecodeIMATTRIBUTE(im, im->core.im_resources,
- im->core.im_num_resources, data, data_len,
- arg, XIM_GETIMVALUES);
- if (reply != preply)
- Xfree(preply);
-
- if (decode_name)
- return decode_name;
- else
- return makeid_name;
-}
-
-static XIMMethodsRec im_methods = {
- _XimProtoCloseIM, /* close */
- _XimProtoSetIMValues, /* set_values */
- _XimProtoGetIMValues, /* get_values */
- _XimProtoCreateIC, /* create_ic */
- _Ximctstombs, /* ctstombs */
- _Ximctstowcs, /* ctstowcs */
- _Ximctstoutf8 /* ctstoutf8 */
-};
-
-static Bool
-_XimSetEncodingByName(
- Xim im,
- char **buf,
- int *len)
-{
- char *encoding = (char *)NULL;
- int encoding_len;
- int compound_len;
- BYTE *ret;
-
- _XGetLCValues(im->core.lcd, XlcNCodeset, &encoding, NULL);
- if (!encoding) {
- *buf = (char *)NULL;
- *len = 0;
- return True;
- }
- encoding_len = strlen(encoding);
- compound_len = strlen("COMPOUND_TEXT");
- *len = encoding_len + sizeof(BYTE) + compound_len + sizeof(BYTE);
- if (!(ret = Xmalloc(*len))) {
- return False;
- }
- *buf = (char *)ret;
-
- ret[0] = (BYTE)encoding_len;
- (void)strncpy((char *)&ret[1], encoding, encoding_len);
- ret += (encoding_len + sizeof(BYTE));
- ret[0] = (BYTE)compound_len;
- (void)strncpy((char *)&ret[1], "COMPOUND_TEXT", compound_len);
- return True;
-}
-
-static Bool
-_XimSetEncodingByDetail(
- Xim im,
- char **buf,
- int *len)
-{
- *len = 0;
- *buf = NULL;
- return True;
-}
-
-static Bool
-_XimGetEncoding(
- Xim im,
- CARD16 *buf,
- char *name,
- int name_len,
- char *detail,
- int detail_len)
-{
- XLCd lcd = im->core.lcd;
- CARD16 category = buf[0];
- CARD16 idx = buf[1];
- int len;
- XlcConv ctom_conv = NULL;
- XlcConv ctow_conv = NULL;
- XlcConv ctoutf8_conv = NULL;
- XlcConv conv;
- XimProtoPrivateRec *private = &im->private.proto;
-
- if (idx == (CARD16)XIM_Default_Encoding_IDX) { /* XXX */
- if (!(ctom_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNMultiByte)))
- return False;
- if (!(ctow_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNWideChar)))
- return False;
- if (!(ctoutf8_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNUtf8String)))
- return False;
- }
-
- if (category == XIM_Encoding_NameCategory) {
- while (name_len > 0) {
- len = (int)name[0];
- if (!strncmp(&name[1], "COMPOUND_TEXT", len)) {
- if (!(ctom_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNMultiByte)))
- return False;
- if (!(ctow_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNWideChar)))
- return False;
- if (!(ctoutf8_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNUtf8String)))
- return False;
- break;
- } else {
- /*
- * Not yet
- */
- }
- len += sizeof(BYTE);
- name_len -= len;
- name += len;
- }
- } else if (category == XIM_Encoding_DetailCategory) {
- /*
- * Not yet
- */
- } else {
- return False;
- }
-
- private->ctom_conv = ctom_conv;
- private->ctow_conv = ctow_conv;
- private->ctoutf8_conv = ctoutf8_conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
- return False;
- private->cstomb_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
- return False;
- private->cstowc_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
- return False;
- private->cstoutf8_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
- return False;
- private->ucstoc_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
- return False;
- private->ucstoutf8_conv = conv;
-
- return True;
-}
-
-static Bool
-_XimEncodingNegoCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
-
- if ((major_opcode == XIM_ENCODING_NEGOTIATION_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid))
- return True;
- return False;
-}
-
-static Bool
-_XimEncodingNegotiation(
- Xim im)
-{
- char *name_ptr = 0;
- int name_len = 0;
- char *detail_ptr = 0;
- int detail_len = 0;
- CARD8 *buf;
- CARD16 *buf_s;
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
-
- if (!(_XimSetEncodingByName(im, &name_ptr, &name_len)))
- return False;
-
- if (!(_XimSetEncodingByDetail(im, &detail_ptr, &detail_len)))
- goto free_name_ptr;
-
- len = sizeof(CARD16)
- + sizeof(INT16)
- + name_len
- + XIM_PAD(name_len)
- + sizeof(INT16)
- + sizeof(CARD16)
- + detail_len;
-
- if (!(buf = Xmalloc(XIM_HEADER_SIZE + len)))
- goto free_detail_ptr;
-
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
-
- buf_s[0] = im->private.proto.imid;
- buf_s[1] = (INT16)name_len;
- if (name_ptr)
- (void)memcpy((char *)&buf_s[2], name_ptr, name_len);
- XIM_SET_PAD(&buf_s[2], name_len);
- buf_s = (CARD16 *)((char *)&buf_s[2] + name_len);
- buf_s[0] = detail_len;
- buf_s[1] = 0;
- if (detail_ptr)
- (void)memcpy((char *)&buf_s[2], detail_ptr, detail_len);
-
- _XimSetHeader((XPointer)buf, XIM_ENCODING_NEGOTIATION, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- Xfree(buf);
- goto free_detail_ptr;
- }
- _XimFlush(im);
- Xfree(buf);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimEncodingNegoCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimEncodingNegoCheck, 0);
- if(ret_code != XIM_TRUE)
- goto free_preply;
- }
- } else
- goto free_detail_ptr;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- goto free_preply;
- }
-
- if (!(_XimGetEncoding(im, &buf_s[1], name_ptr, name_len,
- detail_ptr, detail_len)))
- goto free_preply;
-
- Xfree(name_ptr);
- Xfree(detail_ptr);
-
- if(reply != preply)
- Xfree(preply);
-
- return True;
-
-free_preply:
- if (reply != preply)
- Xfree(preply);
-
-free_detail_ptr:
- Xfree(detail_ptr);
-
-free_name_ptr:
- Xfree(name_ptr);
-
- return False;
-}
-
-#ifdef XIM_CONNECTABLE
-static Bool
-_XimSendSavedIMValues(
- Xim im)
-{
- XimDefIMValues im_values;
- INT16 len;
- CARD16 *buf_s;
- char *tmp;
- CARD32 tmp_buf32[BUFSIZE/4];
- char *tmp_buf = (char *)tmp_buf32;
- char *buf;
- int buf_size;
- char *data;
- int data_len;
- int ret_len;
- int total;
- int idx;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int ret_code;
-
- _XimGetCurrentIMValues(im, &im_values);
- buf = tmp_buf;
- buf_size = XIM_HEADER_SIZE + sizeof(CARD16) + sizeof(INT16);
- data_len = BUFSIZE - buf_size;
- total = 0;
- idx = 0;
- for (;;) {
- data = &buf[buf_size];
- if (!_XimEncodeSavedIMATTRIBUTE(im, im->core.im_resources,
- im->core.im_num_resources, &idx, data, data_len,
- &ret_len, (XPointer)&im_values, XIM_SETIMVALUES)) {
- if (buf != tmp_buf)
- Xfree(buf);
- return False;
- }
-
- total += ret_len;
- if (idx == -1) {
- break;
- }
-
- buf_size += ret_len;
- if (buf == tmp_buf) {
- if (!(tmp = Xmalloc(buf_size + data_len))) {
- return False;
- }
- memcpy(tmp, buf, buf_size);
- buf = tmp;
- } else {
- if (!(tmp = Xrealloc(buf, (buf_size + data_len)))) {
- Xfree(buf);
- return False;
- }
- buf = tmp;
- }
- }
-
- if (!total)
- return True;
-
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- buf_s[0] = im->private.proto.imid;
- buf_s[1] = (INT16)total;
-
- len = (INT16)(sizeof(CARD16) + sizeof(INT16) + total);
- _XimSetHeader((XPointer)buf, XIM_SET_IM_VALUES, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- if (buf != tmp_buf)
- Xfree(buf);
- return False;
- }
- _XimFlush(im);
- if (buf != tmp_buf)
- Xfree(buf);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimSetIMValuesCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = (int)len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, reply, buf_size,
- _XimSetIMValuesCheck, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else
- return False;
-
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
-
- return True;
-}
-
-static void
-_XimDelayModeIMFree(
- Xim im)
-{
- if (im->core.im_resources) {
- Xfree(im->core.im_resources);
- im->core.im_resources = NULL;
- }
- if (im->core.ic_resources) {
- Xfree(im->core.ic_resources);
- im->core.ic_resources = NULL;
- }
- if (im->core.im_values_list) {
- Xfree(im->core.im_values_list);
- im->core.im_values_list = NULL;
- }
- if (im->core.ic_values_list) {
- Xfree(im->core.ic_values_list);
- im->core.ic_values_list = NULL;
- }
- return;
-}
-
-Bool
-_XimConnectServer(
- Xim im)
-{
- Xim save_im;
-
- if (!(save_im = Xmalloc(sizeof(XimRec))))
- return False;
- memcpy((char *)save_im, (char *)im, sizeof(XimRec));
-
- if (_XimPreConnect(im) && _XimConnection(im)
- && _XimOpen(im) && _XimEncodingNegotiation(im)) {
- if (_XimSendSavedIMValues(im)) {
- _XimDelayModeIMFree(save_im);
- _XimRegisterServerFilter(im);
- Xfree(save_im);
- return True;
- }
- }
- memcpy((char *)im, (char *)save_im, sizeof(XimRec));
- Xfree(save_im);
- return False;
-}
-
-Bool
-_XimDelayModeSetAttr(
- Xim im)
-{
- XimDefIMValues im_values;
-
- if(!_XimSetIMResourceList(&im->core.im_resources,
- &im->core.im_num_resources)) {
- return False;
- }
- if(!_XimSetICResourceList(&im->core.ic_resources,
- &im->core.ic_num_resources)) {
- return False;
- }
-
- _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
-
- _XimGetCurrentIMValues(im, &im_values);
- if(!_XimSetLocalIMDefaults(im, (XPointer)&im_values,
- im->core.im_resources, im->core.im_num_resources)) {
- return False;
- }
- _XimSetCurrentIMValues(im, &im_values);
- if (im->private.proto.default_styles) {
- if (im->core.styles)
- Xfree(im->core.styles);
- im->core.styles = im->private.proto.default_styles;
- }
-
- return True;
-}
-
-static Bool
-_XimReconnectModeSetAttr(
- Xim im)
-{
- XimDefIMValues im_values;
-
- if(!_XimSetIMResourceList(&im->core.im_resources,
- &im->core.im_num_resources)) {
- return False;
- }
- if(!_XimSetICResourceList(&im->core.ic_resources,
- &im->core.ic_num_resources)) {
- return False;
- }
-
- _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
-
- if (im->private.proto.default_styles) {
- if (im->core.styles)
- Xfree(im->core.styles);
- im->core.styles = im->private.proto.default_styles;
- }
-
- return True;
-}
-#endif /* XIM_CONNECTABLE */
-
-Bool
-_XimProtoOpenIM(
- Xim im)
-{
- _XimInitialResourceInfo();
-
- im->methods = &im_methods;
-
-#ifdef XIM_CONNECTABLE
- _XimSetProtoResource(im);
-#endif /* XIM_CONNECTABLE */
-
- if (_XimPreConnect(im)) {
- if (_XimConnection(im) && _XimOpen(im) && _XimEncodingNegotiation(im)) {
- _XimRegisterServerFilter(im);
- return True;
- }
- _XimShutdown(im);
-#ifdef XIM_CONNECTABLE
- } else if (IS_DELAYBINDABLE(im)) {
- if (_XimDelayModeSetAttr(im))
- return True;
-#endif /* XIM_CONNECTABLE */
- }
- _XimProtoIMFree(im);
- return False;
-}
diff --git a/nx-X11/lib/X11/imDefLkup.c b/nx-X11/lib/X11/imDefLkup.c
deleted file mode 100644
index af39008bc..000000000
--- a/nx-X11/lib/X11/imDefLkup.c
+++ /dev/null
@@ -1,1178 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-Xic
-_XimICOfXICID(
- Xim im,
- XICID icid)
-{
- Xic pic;
-
- for (pic = (Xic)im->core.ic_chain; pic; pic = (Xic)pic->core.next) {
- if (pic->private.proto.icid == icid)
- return pic;
- }
- return (Xic)0;
-}
-
-static void
-_XimProcIMSetEventMask(
- Xim im,
- XPointer buf)
-{
- EVENTMASK *buf_l = (EVENTMASK *)buf;
-
- im->private.proto.forward_event_mask = buf_l[0];
- im->private.proto.synchronous_event_mask = buf_l[1];
- return;
-}
-
-static void
-_XimProcICSetEventMask(
- Xic ic,
- XPointer buf)
-{
- EVENTMASK *buf_l = (EVENTMASK *)buf;
-
- ic->private.proto.forward_event_mask = buf_l[0];
- ic->private.proto.synchronous_event_mask = buf_l[1];
- _XimReregisterFilter(ic);
- return;
-}
-
-Bool
-_XimSetEventMaskCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Xim im = (Xim)call_data;
- Xic ic;
-
- if (imid == im->private.proto.imid) {
- if (icid) {
- ic = _XimICOfXICID(im, icid);
- _XimProcICSetEventMask(ic, (XPointer)&buf_s[2]);
- } else {
- _XimProcIMSetEventMask(im, (XPointer)&buf_s[2]);
- }
- return True;
- }
- return False;
-}
-
-static Bool
-_XimSyncCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
-
- if ((major_opcode == XIM_SYNC_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- return True;
- return False;
-}
-
-Bool
-_XimSync(
- Xim im,
- Xic ic)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_SYNC, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimSyncCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(len);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimSyncCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else {
- return False;
- }
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- return True;
-}
-
-Bool
-_XimProcSyncReply(
- Xim im,
- Xic ic)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
-
- _XimSetHeader((XPointer)buf, XIM_SYNC_REPLY, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- return True;
-}
-
-Bool
-_XimRespSyncReply(
- Xic ic,
- BITMASK16 mode)
-{
- if (mode & XimSYNCHRONUS) /* SYNC Request */
- MARK_NEED_SYNC_REPLY(ic->core.im);
-
- return True;
-}
-
-Bool
-_XimSyncCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Xim im = (Xim)call_data;
- Xic ic;
-
- if ((imid == im->private.proto.imid)
- && (ic = _XimICOfXICID(im, icid))) {
- (void)_XimProcSyncReply(im, ic);
- return True;
- }
- return False;
-}
-
-static INT16
-_XimSetEventToWire(
- XEvent *ev,
- xEvent *event)
-{
- if (!(_XimProtoEventToWire(ev, event, False)))
- return 0;
- event->u.u.sequenceNumber =
- ((XAnyEvent *)ev)->serial & (unsigned long)0xffff;
- return sz_xEvent;
-}
-
-static Bool
-_XimForwardEventCore(
- Xic ic,
- XEvent *ev,
- Bool sync)
-{
- Xim im = (Xim)ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- INT16 len;
-
- bzero(buf32, sizeof(buf32)); /* valgrind noticed uninitialized memory use! */
-
- if (!(len = _XimSetEventToWire(ev, (xEvent *)&buf_s[4])))
- return False; /* X event */
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
- buf_s[2] = sync ? XimSYNCHRONUS : 0; /* flag */
- buf_s[3] =
- (CARD16)((((XAnyEvent *)ev)->serial & ~((unsigned long)0xffff)) >> 16);
- /* serial number */
-
- len += sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16) /* sizeof icid */
- + sizeof(BITMASK16) /* sizeof flag */
- + sizeof(CARD16); /* sizeof serila number */
-
- _XimSetHeader((XPointer)buf, XIM_FORWARD_EVENT, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
-
- if (sync) {
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimSyncCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(len);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimSyncCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else {
- return False;
- }
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- }
- return True;
-}
-
-Bool
-_XimForwardEvent(
- Xic ic,
- XEvent *ev,
- Bool sync)
-{
-#ifdef EXT_FORWARD
- if (((ev->type == KeyPress) || (ev->type == KeyRelease)))
- if (_XimExtForwardKeyEvent(ic, (XKeyEvent *)ev, sync))
- return True;
-#endif
- return _XimForwardEventCore(ic, ev, sync);
-}
-
-static void
-_XimProcEvent(
- Display *d,
- Xic ic,
- XEvent *ev,
- CARD16 *buf)
-{
- INT16 serial = buf[0];
- xEvent *xev = (xEvent *)&buf[1];
-
- _XimProtoWireToEvent(ev, xev, False);
- ev->xany.serial |= serial << 16;
- ev->xany.send_event = False;
- ev->xany.display = d;
- MARK_FABRICATED(ic->core.im);
- return;
-}
-
-static Bool
-_XimForwardEventRecv(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- CARD16 *buf_s = (CARD16 *)buf;
- Display *d = im->core.display;
- XEvent ev;
-
- _XimProcEvent(d, ic, &ev, &buf_s[1]);
-
- (void)_XimRespSyncReply(ic, buf_s[0]);
-
- XPutBackEvent(d, &ev);
-
- return True;
-}
-
-Bool
-_XimForwardEventCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Xim im = (Xim)call_data;
- Xic ic;
-
- if ((imid == im->private.proto.imid)
- && (ic = _XimICOfXICID(im, icid))) {
- (void)_XimForwardEventRecv(im, ic, (XPointer)&buf_s[2]);
- return True;
- }
- return False;
-}
-
-static Bool
-_XimRegisterTriggerkey(
- Xim im,
- XPointer buf)
-{
- CARD32 *buf_l = (CARD32 *)buf;
- CARD32 len;
- CARD32 *key;
-
- if (IS_DYNAMIC_EVENT_FLOW(im)) /* already Dynamic event flow mode */
- return True;
-
- /*
- * register onkeylist
- */
-
- len = buf_l[0]; /* length of on-keys */
- len += sizeof(INT32); /* sizeof length of on-keys */
-
- if (!(key = Xmalloc(len))) {
- _XimError(im, 0, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
- return False;
- }
- memcpy((char *)key, (char *)buf_l, len);
- im->private.proto.im_onkeylist = key;
-
- MARK_DYNAMIC_EVENT_FLOW(im);
-
- /*
- * register offkeylist
- */
-
- buf_l = (CARD32 *)((char *)buf + len);
- len = buf_l[0]; /* length of off-keys */
- len += sizeof(INT32); /* sizeof length of off-keys */
-
- if (!(key = Xmalloc(len))) {
- _XimError(im, 0, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
- return False;
- }
-
- memcpy((char *)key, (char *)buf_l, len);
- im->private.proto.im_offkeylist = key;
-
- return True;
-}
-
-Bool
-_XimRegisterTriggerKeysCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- Xim im = (Xim)call_data;
-
- (void )_XimRegisterTriggerkey(im, (XPointer)&buf_s[2]);
- return True;
-}
-
-EVENTMASK
-_XimGetWindowEventmask(
- Xic ic)
-{
- Xim im = (Xim )ic->core.im;
- XWindowAttributes atr;
-
- if (!XGetWindowAttributes(im->core.display, ic->core.focus_window, &atr))
- return 0;
- return (EVENTMASK)atr.your_event_mask;
-}
-
-
-static Bool
-_XimTriggerNotifyCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
-
- if ((major_opcode == XIM_TRIGGER_NOTIFY_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- return True;
- return False;
-}
-
-Bool
-_XimTriggerNotify(
- Xim im,
- Xic ic,
- int mode,
- CARD32 idx)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- CARD32 *buf_l = (CARD32 *)&buf[XIM_HEADER_SIZE];
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- INT16 len;
- EVENTMASK mask = _XimGetWindowEventmask(ic);
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
- buf_l[1] = mode; /* flag */
- buf_l[2] = idx; /* index of keys list */
- buf_l[3] = mask; /* select-event-mask */
-
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16) /* sizeof icid */
- + sizeof(CARD32) /* sizeof flag */
- + sizeof(CARD32) /* sizeof index of key list */
- + sizeof(EVENTMASK); /* sizeof select-event-mask */
-
- _XimSetHeader((XPointer)buf, XIM_TRIGGER_NOTIFY, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimTriggerNotifyCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(len);
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimTriggerNotifyCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else {
- return False;
- }
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- return True;
-}
-
-static Bool
-_XimRegCommitInfo(
- Xic ic,
- char *string,
- int string_len,
- KeySym *keysym,
- int keysym_len)
-{
- XimCommitInfo info;
-
- if (!(info = Xmalloc(sizeof(XimCommitInfoRec))))
- return False;
- info->string = string;
- info->string_len = string_len;
- info->keysym = keysym;
- info->keysym_len = keysym_len;
- info->next = ic->private.proto.commit_info;
- ic->private.proto.commit_info = info;
- return True;
-}
-
-static void
-_XimUnregCommitInfo(
- Xic ic)
-{
- XimCommitInfo info;
-
- if (!(info = ic->private.proto.commit_info))
- return;
-
-
- Xfree(info->string);
- Xfree(info->keysym);
- ic->private.proto.commit_info = info->next;
- Xfree(info);
- return;
-}
-
-void
-_XimFreeCommitInfo(
- Xic ic)
-{
- while (ic->private.proto.commit_info)
- _XimUnregCommitInfo(ic);
- return;
-}
-
-static Bool
-_XimProcKeySym(
- Xic ic,
- CARD32 sym,
- KeySym **xim_keysym,
- int *xim_keysym_len)
-{
- Xim im = (Xim)ic->core.im;
-
- if (!(*xim_keysym = Xmalloc(sizeof(KeySym)))) {
- _XimError(im, ic, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
- return False;
- }
-
- **xim_keysym = (KeySym)sym;
- *xim_keysym_len = 1;
-
- return True;
-}
-
-static Bool
-_XimProcCommit(
- Xic ic,
- BYTE *buf,
- int len,
- char **xim_string,
- int *xim_string_len)
-{
- Xim im = (Xim)ic->core.im;
- char *string;
-
- if (!(string = Xmalloc(len + 1))) {
- _XimError(im, ic, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
- return False;
- }
-
- (void)memcpy(string, (char *)buf, len);
- string[len] = '\0';
-
- *xim_string = string;
- *xim_string_len = len;
- return True;
-}
-
-static Bool
-_XimCommitRecv(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- CARD16 *buf_s = (CARD16 *)buf;
- BITMASK16 flag = buf_s[0];
- XKeyEvent ev;
- char *string = NULL;
- int string_len = 0;
- KeySym *keysym = NULL;
- int keysym_len = 0;
-
- if ((flag & XimLookupBoth) == XimLookupChars) {
- if (!(_XimProcCommit(ic, (BYTE *)&buf_s[2],
- (int)buf_s[1], &string, &string_len)))
- return False;
-
- } else if ((flag & XimLookupBoth) == XimLookupKeySym) {
- if (!(_XimProcKeySym(ic, *(CARD32 *)&buf_s[2], &keysym, &keysym_len)))
- return False;
-
- } else if ((flag & XimLookupBoth) == XimLookupBoth) {
- if (!(_XimProcKeySym(ic, *(CARD32 *)&buf_s[2], &keysym, &keysym_len)))
- return False;
-
- if (!(_XimProcCommit(ic, (BYTE *)&buf_s[5],
- (int)buf_s[4], &string, &string_len))) {
- Xfree(keysym);
- return False;
- }
- }
-
- if (!(_XimRegCommitInfo(ic, string, string_len, keysym, keysym_len))) {
- Xfree(string);
- Xfree(keysym);
- _XimError(im, ic, XIM_BadAlloc, (INT16)0, (CARD16)0, (char *)NULL);
- return False;
- }
-
- (void)_XimRespSyncReply(ic, flag);
-
- if (ic->private.proto.registed_filter_event
- & (KEYPRESS_MASK | KEYRELEASE_MASK))
- MARK_FABRICATED(im);
-
- bzero(&ev, sizeof(ev)); /* uninitialized : found when running kterm under valgrind */
-
- ev.type = KeyPress;
- ev.send_event = False;
- ev.display = im->core.display;
- ev.window = ic->core.focus_window;
- ev.keycode = 0;
- ev.state = 0;
-
- ev.time = 0L;
- ev.serial = LastKnownRequestProcessed(im->core.display);
- /* FIXME :
- I wish there were COMMENTs (!) about the data passed around.
- */
-#if 0
- fprintf(stderr,"%s,%d: putback k press FIXED ev.time=0 ev.serial=%lu\n", __FILE__, __LINE__, ev.serial);
-#endif
-
- XPutBackEvent(im->core.display, (XEvent *)&ev);
-
- return True;
-}
-
-Bool
-_XimCommitCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Xim im = (Xim)call_data;
- Xic ic;
-
- if ((imid == im->private.proto.imid)
- && (ic = _XimICOfXICID(im, icid))) {
- (void)_XimCommitRecv(im, ic, (XPointer)&buf_s[2]);
- return True;
- }
- return False;
-}
-
-void
-_XimProcError(
- Xim im,
- Xic ic,
- XPointer data)
-{
- return;
-}
-
-Bool
-_XimErrorCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- BITMASK16 flag = buf_s[2];
- XIMID imid;
- XICID icid;
- Xim im = (Xim)call_data;
- Xic ic = NULL;
-
- if (flag & XIM_IMID_VALID) {
- imid = buf_s[0];
- if (imid != im->private.proto.imid)
- return False;
- }
- if (flag & XIM_ICID_VALID) {
- icid = buf_s[1];
- if (!(ic = _XimICOfXICID(im, icid)))
- return False;
- }
- _XimProcError(im, ic, (XPointer)&buf_s[3]);
-
- return True;
-}
-
-Bool
-_XimError(
- Xim im,
- Xic ic,
- CARD16 error_code,
- INT16 detail_length,
- CARD16 type,
- char *detail)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len = 0;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[2] = XIM_IMID_VALID; /* flag */
- if (ic) {
- buf_s[1] = ic->private.proto.icid; /* icid */
- buf_s[2] |= XIM_ICID_VALID; /* flag */
- }
- buf_s[3] = error_code; /* Error Code */
- buf_s[4] = detail_length; /* length of error detail */
- buf_s[5] = type; /* type of error detail */
-
- if (detail_length && detail) {
- len = detail_length;
- memcpy((char *)&buf_s[6], detail, len);
- XIM_SET_PAD(&buf_s[6], len);
- }
-
- len += sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16) /* sizeof icid */
- + sizeof(BITMASK16) /* sizeof flag */
- + sizeof(CARD16) /* sizeof error_code */
- + sizeof(INT16) /* sizeof length of detail */
- + sizeof(CARD16); /* sizeof type */
-
- _XimSetHeader((XPointer)buf, XIM_ERROR, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- return True;
-}
-
-static int
-_Ximctsconvert(
- XlcConv conv,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state)
-{
- int from_left;
- int to_left;
- int from_savelen;
- int to_savelen;
- int from_cnvlen;
- int to_cnvlen;
- char *from_buf;
- char *to_buf;
- char scratchbuf[BUFSIZ];
- Status tmp_state;
-
- if (!state)
- state = &tmp_state;
-
- if (!conv || !from || !from_len) {
- *state = XLookupNone;
- return 0;
- }
-
- /* Reset the converter. The CompoundText at 'from' starts in
- initial state. */
- _XlcResetConverter(conv);
-
- from_left = from_len;
- to_left = BUFSIZ;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_buf = &from[from_cnvlen];
- from_savelen = from_left;
- to_buf = &scratchbuf[to_cnvlen];
- to_savelen = to_left;
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (!to_cnvlen) {
- *state = XLookupNone;
- return 0;
- }
- break;
- }
- }
-
- if (!to || !to_len || (to_len < to_cnvlen)) {
- *state = XBufferOverflow;
- } else {
- memcpy(to, scratchbuf, to_cnvlen);
- *state = XLookupChars;
- }
- return to_cnvlen;
-}
-
-int
-_Ximctstombs(XIM xim, char *from, int from_len,
- char *to, int to_len, Status *state)
-{
- return _Ximctsconvert(((Xim)xim)->private.proto.ctom_conv,
- from, from_len, to, to_len, state);
-}
-
-int
-_Ximctstowcs(
- XIM xim,
- char *from,
- int from_len,
- wchar_t *to,
- int to_len,
- Status *state)
-{
- Xim im = (Xim)xim;
- XlcConv conv = im->private.proto.ctow_conv;
- int from_left;
- int to_left;
- int from_savelen;
- int to_savelen;
- int from_cnvlen;
- int to_cnvlen;
- char *from_buf;
- wchar_t *to_buf;
- wchar_t scratchbuf[BUFSIZ];
- Status tmp_state;
-
- if (!state)
- state = &tmp_state;
-
- if (!conv || !from || !from_len) {
- *state = XLookupNone;
- return 0;
- }
-
- /* Reset the converter. The CompoundText at 'from' starts in
- initial state. */
- _XlcResetConverter(conv);
-
- from_left = from_len;
- to_left = BUFSIZ;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_buf = &from[from_cnvlen];
- from_savelen = from_left;
- to_buf = &scratchbuf[to_cnvlen];
- to_savelen = to_left;
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (!to_cnvlen){
- *state = XLookupNone;
- return 0;
- }
- break;
- }
- }
-
- if (!to || !to_len || (to_len < to_cnvlen)) {
- *state = XBufferOverflow;
- } else {
- memcpy(to, scratchbuf, to_cnvlen * sizeof(wchar_t));
- *state = XLookupChars;
- }
- return to_cnvlen;
-}
-
-int
-_Ximctstoutf8(
- XIM xim,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state)
-{
- return _Ximctsconvert(((Xim)xim)->private.proto.ctoutf8_conv,
- from, from_len, to, to_len, state);
-}
-
-int
-_XimProtoMbLookupString(
- XIC xic,
- XKeyEvent *ev,
- char *buffer,
- int bytes,
- KeySym *keysym,
- Status *state)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- int ret;
- Status tmp_state;
- XimCommitInfo info;
-
- if (!IS_SERVER_CONNECTED(im))
- return 0;
-
- if (!state)
- state = &tmp_state;
-
- if ((ev->type == KeyPress) && (ev->keycode == 0)) { /* Filter function */
- if (!(info = ic->private.proto.commit_info)) {
- *state = XLookupNone;
- return 0;
- }
-
- ret = im->methods->ctstombs((XIM)im, info->string,
- info->string_len, buffer, bytes, state);
- if (*state == XBufferOverflow)
- return ret;
- if (keysym && (info->keysym && *(info->keysym))) {
- *keysym = *(info->keysym);
- if (*state == XLookupChars)
- *state = XLookupBoth;
- else
- *state = XLookupKeySym;
- }
- _XimUnregCommitInfo(ic);
-
- } else if (ev->type == KeyPress) {
- ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
- if (ret > 0) {
- if (ret > bytes)
- *state = XBufferOverflow;
- else if (keysym && *keysym != NoSymbol)
- *state = XLookupBoth;
- else
- *state = XLookupChars;
- } else {
- if (keysym && *keysym != NoSymbol)
- *state = XLookupKeySym;
- else
- *state = XLookupNone;
- }
- } else {
- *state = XLookupNone;
- ret = 0;
- }
-
- return ret;
-}
-
-int
-_XimProtoWcLookupString(
- XIC xic,
- XKeyEvent *ev,
- wchar_t *buffer,
- int bytes,
- KeySym *keysym,
- Status *state)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- int ret;
- Status tmp_state;
- XimCommitInfo info;
-
- if (!IS_SERVER_CONNECTED(im))
- return 0;
-
- if (!state)
- state = &tmp_state;
-
- if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */
- if (!(info = ic->private.proto.commit_info)) {
- *state = XLookupNone;
- return 0;
- }
-
- ret = im->methods->ctstowcs((XIM)im, info->string,
- info->string_len, buffer, bytes, state);
- if (*state == XBufferOverflow)
- return ret;
- if (keysym && (info->keysym && *(info->keysym))) {
- *keysym = *(info->keysym);
- if (*state == XLookupChars)
- *state = XLookupBoth;
- else
- *state = XLookupKeySym;
- }
- _XimUnregCommitInfo(ic);
-
- } else if (ev->type == KeyPress) {
- ret = _XimLookupWCText(ic, ev, buffer, bytes, keysym, NULL);
- if (ret > 0) {
- if (ret > bytes)
- *state = XBufferOverflow;
- else if (keysym && *keysym != NoSymbol)
- *state = XLookupBoth;
- else
- *state = XLookupChars;
- } else {
- if (keysym && *keysym != NoSymbol)
- *state = XLookupKeySym;
- else
- *state = XLookupNone;
- }
- } else {
- *state = XLookupNone;
- ret = 0;
- }
-
- return ret;
-}
-
-int
-_XimProtoUtf8LookupString(
- XIC xic,
- XKeyEvent *ev,
- char *buffer,
- int bytes,
- KeySym *keysym,
- Status *state)
-{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- int ret;
- Status tmp_state;
- XimCommitInfo info;
-
- if (!IS_SERVER_CONNECTED(im))
- return 0;
-
- if (!state)
- state = &tmp_state;
-
- if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */
- if (!(info = ic->private.proto.commit_info)) {
- *state = XLookupNone;
- return 0;
- }
-
- ret = im->methods->ctstoutf8((XIM)im, info->string,
- info->string_len, buffer, bytes, state);
- if (*state == XBufferOverflow)
- return ret;
- if (keysym && (info->keysym && *(info->keysym))) {
- *keysym = *(info->keysym);
- if (*state == XLookupChars)
- *state = XLookupBoth;
- else
- *state = XLookupKeySym;
- }
- _XimUnregCommitInfo(ic);
-
- } else if (ev->type == KeyPress) {
- ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
- if (ret > 0) {
- if (ret > bytes)
- *state = XBufferOverflow;
- else if (keysym && *keysym != NoSymbol)
- *state = XLookupBoth;
- else
- *state = XLookupChars;
- } else {
- if (keysym && *keysym != NoSymbol)
- *state = XLookupKeySym;
- else
- *state = XLookupNone;
- }
- } else {
- *state = XLookupNone;
- ret = 0;
- }
-
- return ret;
-}
diff --git a/nx-X11/lib/X11/imDispch.c b/nx-X11/lib/X11/imDispch.c
deleted file mode 100644
index 862a9b651..000000000
--- a/nx-X11/lib/X11/imDispch.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/******************************************************************
-
- Copyright 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlib.h>
-#include "Xlibint.h"
-#include "Xutil.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-
-Bool
-_XimRegProtoIntrCallback(
- Xim im,
- CARD16 major_code,
- CARD16 minor_code,
- Bool (*proc)(
- Xim, INT16, XPointer, XPointer
- ),
-
- XPointer call_data)
-{
- XimProtoIntrRec *rec;
-
- if (!(rec = Xmalloc(sizeof(XimProtoIntrRec))))
- return False;
- rec->func = proc;
- rec->major_code = major_code;
- rec->minor_code = minor_code;
- rec->call_data = call_data;
- rec->next = im->private.proto.intrproto;
- im->private.proto.intrproto = rec;
- return True;
-}
-
-void
-_XimFreeProtoIntrCallback(Xim im)
-{
- register XimProtoIntrRec *rec, *next;
-
- for (rec = im->private.proto.intrproto; rec;) {
- next = rec->next;
- Xfree(rec);
- rec = next;
- }
- im->private.proto.intrproto = NULL;
- return;
-}
-
-static Bool
-_XimTransportIntr(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- Xim call_im = (Xim)call_data;
- XimProtoIntrRec *rec = call_im->private.proto.intrproto;
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
-
- for (; rec; rec = rec->next) {
- if ((major_opcode == (CARD8)rec->major_code)
- && (minor_opcode == (CARD8)rec->minor_code))
- if ((*rec->func)(call_im, len, data, rec->call_data))
- return True;
- }
- return False;
-}
-
-Bool
-_XimDispatchInit(Xim im)
-{
- if (_XimRegisterDispatcher(im, _XimTransportIntr, (XPointer)im))
- return True;
- return False;
-}
diff --git a/nx-X11/lib/X11/imEvToWire.c b/nx-X11/lib/X11/imEvToWire.c
deleted file mode 100644
index 45677c461..000000000
--- a/nx-X11/lib/X11/imEvToWire.c
+++ /dev/null
@@ -1,788 +0,0 @@
-/***********************************************************
-Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xlib.h>
-#include "Ximint.h"
-
-
-#define sw16(n, s) ((s) ? \
- (((n) << 8 & 0xff00) | \
- ((n) >> 8 & 0xff) \
- ) : n)
-
-#define sw32(n, s) ((s) ? \
- (((n) << 24 & 0xff000000) | \
- ((n) << 8 & 0xff0000) | \
- ((n) >> 8 & 0xff00) | \
- ((n) >> 24 & 0xff) \
- ) : n)
-
-Status
-_XimProtoEventToWire(
- register XEvent *re, /* pointer to where event should be reformatted */
- register xEvent *event, /* wire protocol event */
- Bool sw) /* swap byte? */
-{
- switch (event->u.u.type = re->type) {
- case KeyPress:
- case KeyRelease:
- {
- register XKeyEvent *ev = (XKeyEvent*) re;
- event->u.keyButtonPointer.root = sw32(ev->root, sw);
- event->u.keyButtonPointer.event =
- sw32(ev->window, sw);
- event->u.keyButtonPointer.child =
- sw32(ev->subwindow, sw);
- event->u.keyButtonPointer.time = sw32(ev->time, sw);
- event->u.keyButtonPointer.eventX = sw16(ev->x, sw) ;
- event->u.keyButtonPointer.eventY = sw16(ev->y, sw) ;
- event->u.keyButtonPointer.rootX =
- sw16(ev->x_root, sw);
- event->u.keyButtonPointer.rootY =
- sw16(ev->y_root, sw);
- event->u.keyButtonPointer.state = sw16(ev->state, sw);
- event->u.keyButtonPointer.sameScreen = ev->same_screen;
- event->u.u.detail = ev->keycode;
- }
- break;
- case ButtonPress:
- case ButtonRelease:
- {
- register XButtonEvent *ev = (XButtonEvent *) re;
- event->u.keyButtonPointer.root = sw32(ev->root, sw);
- event->u.keyButtonPointer.event = sw32(ev->window, sw);
- event->u.keyButtonPointer.child = sw32(ev->subwindow, sw);
- event->u.keyButtonPointer.time = sw32(ev->time, sw);
- event->u.keyButtonPointer.eventX = sw16(ev->x, sw);
- event->u.keyButtonPointer.eventY = sw16(ev->y, sw);
- event->u.keyButtonPointer.rootX = sw16(ev->x_root, sw);
- event->u.keyButtonPointer.rootY = sw16(ev->y_root, sw);
- event->u.keyButtonPointer.state = sw16(ev->state, sw);
- event->u.keyButtonPointer.sameScreen = ev->same_screen;
- event->u.u.detail = ev->button;
- }
- break;
- case MotionNotify:
- {
- register XMotionEvent *ev = (XMotionEvent *)re;
- event->u.keyButtonPointer.root = sw32(ev->root, sw);
- event->u.keyButtonPointer.event = sw32(ev->window, sw);
- event->u.keyButtonPointer.child = sw32(ev->subwindow, sw);
- event->u.keyButtonPointer.time = sw32(ev->time, sw);
- event->u.keyButtonPointer.eventX= sw16(ev->x, sw);
- event->u.keyButtonPointer.eventY= sw16(ev->y, sw);
- event->u.keyButtonPointer.rootX = sw16(ev->x_root, sw);
- event->u.keyButtonPointer.rootY = sw16(ev->y_root, sw);
- event->u.keyButtonPointer.state = sw16(ev->state, sw);
- event->u.keyButtonPointer.sameScreen= ev->same_screen;
- event->u.u.detail = ev->is_hint;
- }
- break;
- case EnterNotify:
- case LeaveNotify:
- {
- register XCrossingEvent *ev = (XCrossingEvent *) re;
- event->u.enterLeave.root = sw32(ev->root, sw);
- event->u.enterLeave.event = sw32(ev->window, sw);
- event->u.enterLeave.child = sw32(ev->subwindow, sw);
- event->u.enterLeave.time = sw32(ev->time, sw);
- event->u.enterLeave.eventX = sw16(ev->x, sw);
- event->u.enterLeave.eventY = sw16(ev->y, sw);
- event->u.enterLeave.rootX = sw16(ev->x_root, sw);
- event->u.enterLeave.rootY = sw16(ev->y_root, sw);
- event->u.enterLeave.state = sw16(ev->state, sw);
- event->u.enterLeave.mode = ev->mode;
- event->u.enterLeave.flags = 0;
- if (ev->same_screen) {
- event->u.enterLeave.flags |= ELFlagSameScreen;
- }
- if (ev->focus) {
- event->u.enterLeave.flags |= ELFlagFocus;
- }
- event->u.u.detail = ev->detail;
- }
- break;
- case FocusIn:
- case FocusOut:
- {
- register XFocusChangeEvent *ev = (XFocusChangeEvent *) re;
- event->u.focus.window = sw32(ev->window, sw);
- event->u.focus.mode = ev->mode;
- event->u.u.detail = ev->detail;
- }
- break;
- case KeymapNotify:
- {
- register XKeymapEvent *ev = (XKeymapEvent *) re;
- memcpy((char *)(((xKeymapEvent *) event)->map),
- &ev->key_vector[1],
- sizeof (((xKeymapEvent *) event)->map));
- }
- break;
- case Expose:
- {
- register XExposeEvent *ev = (XExposeEvent *) re;
- event->u.expose.window = sw32(ev->window, sw);
- event->u.expose.x = sw16(ev->x, sw);
- event->u.expose.y = sw16(ev->y, sw);
- event->u.expose.width = sw16(ev->width, sw);
- event->u.expose.height = sw16(ev->height, sw);
- event->u.expose.count = sw16(ev->count, sw);
- }
- break;
- case GraphicsExpose:
- {
- register XGraphicsExposeEvent *ev =
- (XGraphicsExposeEvent *) re;
- event->u.graphicsExposure.drawable = sw32(ev->drawable, sw);
- event->u.graphicsExposure.x = sw16(ev->x, sw);
- event->u.graphicsExposure.y = sw16(ev->y, sw);
- event->u.graphicsExposure.width = sw16(ev->width, sw);
- event->u.graphicsExposure.height = sw16(ev->height, sw);
- event->u.graphicsExposure.count = sw16(ev->count, sw);
- event->u.graphicsExposure.majorEvent= ev->major_code;
- event->u.graphicsExposure.minorEvent= sw16(ev->minor_code, sw);
- }
- break;
- case NoExpose:
- {
- register XNoExposeEvent *ev = (XNoExposeEvent *) re;
- event->u.noExposure.drawable = sw32(ev->drawable, sw);
- event->u.noExposure.majorEvent = ev->major_code;
- event->u.noExposure.minorEvent = sw16(ev->minor_code, sw);
- }
- break;
- case VisibilityNotify:
- {
- register XVisibilityEvent *ev = (XVisibilityEvent *) re;
- event->u.visibility.window = sw32(ev->window, sw);
- event->u.visibility.state = ev->state;
- }
- break;
- case CreateNotify:
- {
- register XCreateWindowEvent *ev =
- (XCreateWindowEvent *) re;
- event->u.createNotify.window = sw32(ev->window, sw);
- event->u.createNotify.parent = sw32(ev->parent, sw);
- event->u.createNotify.x = sw16(ev->x, sw);
- event->u.createNotify.y = sw16(ev->y, sw);
- event->u.createNotify.width = sw16(ev->width, sw);
- event->u.createNotify.height = sw16(ev->height, sw);
- event->u.createNotify.borderWidth = sw16(ev->border_width, sw);
- event->u.createNotify.override = ev->override_redirect;
- }
- break;
- case DestroyNotify:
- {
- register XDestroyWindowEvent *ev =
- (XDestroyWindowEvent *) re;
- event->u.destroyNotify.window = sw32(ev->window, sw);
- event->u.destroyNotify.event = sw32(ev->event, sw);
- }
- break;
- case UnmapNotify:
- {
- register XUnmapEvent *ev = (XUnmapEvent *) re;
- event->u.unmapNotify.window = sw32(ev->window, sw);
- event->u.unmapNotify.event = sw32(ev->event, sw);
- event->u.unmapNotify.fromConfigure = ev->from_configure;
- }
- break;
- case MapNotify:
- {
- register XMapEvent *ev = (XMapEvent *) re;
- event->u.mapNotify.window = sw32(ev->window, sw);
- event->u.mapNotify.event = sw32(ev->event, sw);
- event->u.mapNotify.override = ev->override_redirect;
- }
- break;
- case MapRequest:
- {
- register XMapRequestEvent *ev = (XMapRequestEvent *) re;
- event->u.mapRequest.window = sw32(ev->window, sw);
- event->u.mapRequest.parent = sw32(ev->parent, sw);
- }
- break;
- case ReparentNotify:
- {
- register XReparentEvent *ev = (XReparentEvent *) re;
- event->u.reparent.window = sw32(ev->window, sw);
- event->u.reparent.event = sw32(ev->event, sw);
- event->u.reparent.parent = sw32(ev->parent, sw);
- event->u.reparent.x = sw16(ev->x, sw);
- event->u.reparent.y = sw16(ev->y, sw);
- event->u.reparent.override = ev->override_redirect;
- }
- break;
- case ConfigureNotify:
- {
- register XConfigureEvent *ev = (XConfigureEvent *) re;
- event->u.configureNotify.window = sw32(ev->window, sw);
- event->u.configureNotify.event = sw32(ev->event, sw);
- event->u.configureNotify.aboveSibling = sw32(ev->above, sw);
- event->u.configureNotify.x = sw16(ev->x, sw);
- event->u.configureNotify.y = sw16(ev->y, sw);
- event->u.configureNotify.width = sw16(ev->width, sw);
- event->u.configureNotify.height = sw16(ev->height, sw);
- event->u.configureNotify.borderWidth= sw16(ev->border_width, sw);
- event->u.configureNotify.override = ev->override_redirect;
- }
- break;
- case ConfigureRequest:
- {
- register XConfigureRequestEvent *ev =
- (XConfigureRequestEvent *) re;
- event->u.configureRequest.window = sw32(ev->window, sw);
- event->u.configureRequest.parent = sw32(ev->parent, sw);
- event->u.configureRequest.sibling = sw32(ev->above, sw);
- event->u.configureRequest.x = sw16(ev->x, sw);
- event->u.configureRequest.y = sw16(ev->y, sw);
- event->u.configureRequest.width = sw16(ev->width, sw);
- event->u.configureRequest.height = sw16(ev->height, sw);
- event->u.configureRequest.borderWidth= sw16(ev->border_width, sw);
- event->u.configureRequest.valueMask= sw16(ev->value_mask, sw);
- event->u.u.detail = ev->detail;
- }
- break;
- case GravityNotify:
- {
- register XGravityEvent *ev = (XGravityEvent *) re;
- event->u.gravity.window = sw32(ev->window, sw);
- event->u.gravity.event = sw32(ev->event, sw);
- event->u.gravity.x = sw16(ev->x, sw);
- event->u.gravity.y = sw16(ev->y, sw);
- }
- break;
- case ResizeRequest:
- {
- register XResizeRequestEvent *ev =
- (XResizeRequestEvent *) re;
- event->u.resizeRequest.window = sw32(ev->window, sw);
- event->u.resizeRequest.width = sw16(ev->width, sw);
- event->u.resizeRequest.height = sw16(ev->height, sw);
- }
- break;
- case CirculateNotify:
- {
- register XCirculateEvent *ev = (XCirculateEvent *) re;
- event->u.circulate.window = sw32(ev->window, sw);
- event->u.circulate.event = sw32(ev->event, sw);
- event->u.circulate.place = ev->place;
- }
- break;
- case CirculateRequest:
- {
- register XCirculateRequestEvent *ev =
- (XCirculateRequestEvent *) re;
- event->u.circulate.window = sw32(ev->window, sw);
- event->u.circulate.event = sw32(ev->parent, sw);
- event->u.circulate.place = ev->place;
- }
- break;
- case PropertyNotify:
- {
- register XPropertyEvent *ev = (XPropertyEvent *) re;
- event->u.property.window = sw32(ev->window, sw);
- event->u.property.atom = sw32(ev->atom, sw);
- event->u.property.time = sw32(ev->time, sw);
- event->u.property.state = ev->state;
- }
- break;
- case SelectionClear:
- {
- register XSelectionClearEvent *ev =
- (XSelectionClearEvent *) re;
- event->u.selectionClear.window = sw32(ev->window, sw);
- event->u.selectionClear.atom = sw32(ev->selection, sw);
- event->u.selectionClear.time = sw32(ev->time, sw);
- }
- break;
- case SelectionRequest:
- {
- register XSelectionRequestEvent *ev =
- (XSelectionRequestEvent *) re;
- event->u.selectionRequest.owner = sw32(ev->owner, sw);
- event->u.selectionRequest.requestor = sw32(ev->requestor, sw);
- event->u.selectionRequest.selection = sw32(ev->selection, sw);
- event->u.selectionRequest.target = sw32(ev->target, sw);
- event->u.selectionRequest.property = sw32(ev->property, sw);
- event->u.selectionRequest.time = sw32(ev->time, sw);
- }
- break;
- case SelectionNotify:
- {
- register XSelectionEvent *ev = (XSelectionEvent *) re;
- event->u.selectionNotify.requestor = sw32(ev->requestor, sw);
- event->u.selectionNotify.selection = sw32(ev->selection, sw);
- event->u.selectionNotify.target = sw32(ev->target, sw);
- event->u.selectionNotify.property = sw32(ev->property, sw);
- event->u.selectionNotify.time = sw32(ev->time, sw);
- }
- break;
- case ColormapNotify:
- {
- register XColormapEvent *ev = (XColormapEvent *) re;
- event->u.colormap.window = sw32(ev->window, sw);
- event->u.colormap.colormap = sw32(ev->colormap, sw);
- event->u.colormap.new = ev->new;
- event->u.colormap.state = ev->state;
- }
- break;
- case ClientMessage:
- {
- register int i;
- register XClientMessageEvent *ev
- = (XClientMessageEvent *) re;
- event->u.clientMessage.window = sw32(ev->window, sw);
- event->u.u.detail = ev->format;
- switch (ev->format) {
- case 8:
- event->u.clientMessage.u.b.type = sw32(ev->message_type, sw);
- for (i = 0; i < 20; i++)
- event->u.clientMessage.u.b.bytes[i] = ev->data.b[i];
- break;
- case 16:
- event->u.clientMessage.u.s.type = sw32(ev->message_type, sw);
- event->u.clientMessage.u.s.shorts0 = sw16(ev->data.s[0], sw);
- event->u.clientMessage.u.s.shorts1 = sw16(ev->data.s[1], sw);
- event->u.clientMessage.u.s.shorts2 = sw16(ev->data.s[2], sw);
- event->u.clientMessage.u.s.shorts3 = sw16(ev->data.s[3], sw);
- event->u.clientMessage.u.s.shorts4 = sw16(ev->data.s[4], sw);
- event->u.clientMessage.u.s.shorts5 = sw16(ev->data.s[5], sw);
- event->u.clientMessage.u.s.shorts6 = sw16(ev->data.s[6], sw);
- event->u.clientMessage.u.s.shorts7 = sw16(ev->data.s[7], sw);
- event->u.clientMessage.u.s.shorts8 = sw16(ev->data.s[8], sw);
- event->u.clientMessage.u.s.shorts9 = sw16(ev->data.s[9], sw);
- break;
- case 32:
- event->u.clientMessage.u.l.type = sw32(ev->message_type, sw);
- event->u.clientMessage.u.l.longs0 = sw32(ev->data.l[0], sw);
- event->u.clientMessage.u.l.longs1 = sw32(ev->data.l[1], sw);
- event->u.clientMessage.u.l.longs2 = sw32(ev->data.l[2], sw);
- event->u.clientMessage.u.l.longs3 = sw32(ev->data.l[3], sw);
- event->u.clientMessage.u.l.longs4 = sw32(ev->data.l[4], sw);
- break;
- default:
- /* client passing bogus data, let server complain */
- break;
- }
- }
- break;
- case MappingNotify:
- {
- register XMappingEvent *ev = (XMappingEvent *) re;
- event->u.mappingNotify.firstKeyCode = ev->first_keycode;
- event->u.mappingNotify.request = ev->request;
- event->u.mappingNotify.count = ev->count;
- }
- break;
-
- default:
- return(0);
- }
- /* Common process */
- if (((XAnyEvent *)re)->send_event)
- event->u.u.type |= 0x80;
- event->u.u.sequenceNumber =
- ((XAnyEvent *)re)->serial & ~((unsigned long)0xffff);
- event->u.u.sequenceNumber = sw16(event->u.u.sequenceNumber, sw);
- return(1);
-}
-
-
-/*
- * reformat a wire event into an XEvent structure of the right type.
- */
-Bool
-_XimProtoWireToEvent(
- register XEvent *re, /* pointer to where event should be reformatted */
- register xEvent *event, /* wire protocol event */
- Bool sw) /* swap byte? */
-{
-
- re->type = event->u.u.type & 0x7f;
- ((XAnyEvent *)re)->serial = sw16(event->u.u.sequenceNumber, sw);
- ((XAnyEvent *)re)->send_event = ((event->u.u.type & 0x80) != 0);
- ((XAnyEvent *)re)->display = NULL;
-
- /* Ignore the leading bit of the event type since it is set when a
- client sends an event rather than the server. */
-
- switch (event-> u.u.type & 0177) {
- case KeyPress:
- case KeyRelease:
- {
- register XKeyEvent *ev = (XKeyEvent*) re;
- ev->root = sw32(event->u.keyButtonPointer.root, sw);
- ev->window = sw32(event->u.keyButtonPointer.event, sw);
- ev->subwindow = sw32(event->u.keyButtonPointer.child, sw);
- ev->time = sw32(event->u.keyButtonPointer.time, sw);
- ev->x = cvtINT16toInt(sw16(event->u.keyButtonPointer.eventX, sw));
- ev->y = cvtINT16toInt(sw16(event->u.keyButtonPointer.eventY, sw));
- ev->x_root = cvtINT16toInt(sw16(event->u.keyButtonPointer.rootX, sw));
- ev->y_root = cvtINT16toInt(sw16(event->u.keyButtonPointer.rootY, sw));
- ev->state = sw16(event->u.keyButtonPointer.state, sw);
- ev->same_screen = event->u.keyButtonPointer.sameScreen;
- ev->keycode = event->u.u.detail;
- }
- break;
- case ButtonPress:
- case ButtonRelease:
- {
- register XButtonEvent *ev = (XButtonEvent *) re;
- ev->root = sw32(event->u.keyButtonPointer.root, sw);
- ev->window = sw32(event->u.keyButtonPointer.event, sw);
- ev->subwindow = sw32(event->u.keyButtonPointer.child, sw);
- ev->time = sw32(event->u.keyButtonPointer.time, sw);
- ev->x = cvtINT16toInt(sw16(event->u.keyButtonPointer.eventX, sw));
- ev->y = cvtINT16toInt(sw16(event->u.keyButtonPointer.eventY, sw));
- ev->x_root = cvtINT16toInt(sw16(event->u.keyButtonPointer.rootX, sw));
- ev->y_root = cvtINT16toInt(sw16(event->u.keyButtonPointer.rootY, sw));
- ev->state = sw16(event->u.keyButtonPointer.state, sw);
- ev->same_screen = event->u.keyButtonPointer.sameScreen;
- ev->button = event->u.u.detail;
- }
- break;
- case MotionNotify:
- {
- register XMotionEvent *ev = (XMotionEvent *)re;
- ev->root = sw32(event->u.keyButtonPointer.root, sw);
- ev->window = sw32(event->u.keyButtonPointer.event, sw);
- ev->subwindow = sw32(event->u.keyButtonPointer.child, sw);
- ev->time = sw32(event->u.keyButtonPointer.time, sw);
- ev->x = cvtINT16toInt(sw16(event->u.keyButtonPointer.eventX, sw));
- ev->y = cvtINT16toInt(sw16(event->u.keyButtonPointer.eventY, sw));
- ev->x_root = cvtINT16toInt(sw16(event->u.keyButtonPointer.rootX, sw));
- ev->y_root = cvtINT16toInt(sw16(event->u.keyButtonPointer.rootY, sw));
- ev->state = sw16(event->u.keyButtonPointer.state, sw);
- ev->same_screen = event->u.keyButtonPointer.sameScreen;
- ev->is_hint = event->u.u.detail;
- }
- break;
- case EnterNotify:
- case LeaveNotify:
- {
- register XCrossingEvent *ev = (XCrossingEvent *) re;
- ev->root = sw32(event->u.enterLeave.root, sw);
- ev->window = sw32(event->u.enterLeave.event, sw);
- ev->subwindow = sw32(event->u.enterLeave.child, sw);
- ev->time = sw32(event->u.enterLeave.time, sw);
- ev->x = cvtINT16toInt(sw16(event->u.enterLeave.eventX, sw));
- ev->y = cvtINT16toInt(sw16(event->u.enterLeave.eventY, sw));
- ev->x_root = cvtINT16toInt(sw16(event->u.enterLeave.rootX, sw));
- ev->y_root = cvtINT16toInt(sw16(event->u.enterLeave.rootY, sw));
- ev->state = sw16(event->u.enterLeave.state, sw);
- ev->mode = event->u.enterLeave.mode;
- ev->same_screen = (event->u.enterLeave.flags &
- ELFlagSameScreen) && True;
- ev->focus = (event->u.enterLeave.flags &
- ELFlagFocus) && True;
- ev->detail = event->u.u.detail;
- }
- break;
- case FocusIn:
- case FocusOut:
- {
- register XFocusChangeEvent *ev = (XFocusChangeEvent *) re;
- ev->window = sw32(event->u.focus.window, sw);
- ev->mode = event->u.focus.mode;
- ev->detail = event->u.u.detail;
- }
- break;
- case KeymapNotify:
- {
- register XKeymapEvent *ev = (XKeymapEvent *) re;
- ev->window = None;
- memcpy(&ev->key_vector[1],
- (char *)((xKeymapEvent *) event)->map,
- sizeof (((xKeymapEvent *) event)->map));
- }
- break;
- case Expose:
- {
- register XExposeEvent *ev = (XExposeEvent *) re;
- ev->window = sw32(event->u.expose.window, sw);
- ev->x = sw16(event->u.expose.x, sw);
- ev->y = sw16(event->u.expose.y, sw);
- ev->width = sw16(event->u.expose.width, sw);
- ev->height = sw16(event->u.expose.height, sw);
- ev->count = sw16(event->u.expose.count, sw);
- }
- break;
- case GraphicsExpose:
- {
- register XGraphicsExposeEvent *ev =
- (XGraphicsExposeEvent *) re;
- ev->drawable = sw32(event->u.graphicsExposure.drawable, sw);
- ev->x = sw16(event->u.graphicsExposure.x, sw);
- ev->y = sw16(event->u.graphicsExposure.y, sw);
- ev->width = sw16(event->u.graphicsExposure.width, sw);
- ev->height = sw16(event->u.graphicsExposure.height, sw);
- ev->count = sw16(event->u.graphicsExposure.count, sw);
- ev->major_code = event->u.graphicsExposure.majorEvent;
- ev->minor_code = sw16(event->u.graphicsExposure.minorEvent, sw);
- }
- break;
- case NoExpose:
- {
- register XNoExposeEvent *ev = (XNoExposeEvent *) re;
- ev->drawable = sw32(event->u.noExposure.drawable, sw);
- ev->major_code = event->u.noExposure.majorEvent;
- ev->minor_code = sw16(event->u.noExposure.minorEvent, sw);
- }
- break;
- case VisibilityNotify:
- {
- register XVisibilityEvent *ev = (XVisibilityEvent *) re;
- ev->window = sw32(event->u.visibility.window, sw);
- ev->state = event->u.visibility.state;
- }
- break;
- case CreateNotify:
- {
- register XCreateWindowEvent *ev =
- (XCreateWindowEvent *) re;
- ev->window = sw32(event->u.createNotify.window, sw);
- ev->parent = sw32(event->u.createNotify.parent, sw);
- ev->x = cvtINT16toInt(sw16(event->u.createNotify.x, sw));
- ev->y = cvtINT16toInt(sw16(event->u.createNotify.y, sw));
- ev->width = sw16(event->u.createNotify.width, sw);
- ev->height = sw16(event->u.createNotify.height, sw);
- ev->border_width = sw16(event->u.createNotify.borderWidth, sw);
- ev->override_redirect = event->u.createNotify.override;
- }
- break;
- case DestroyNotify:
- {
- register XDestroyWindowEvent *ev =
- (XDestroyWindowEvent *) re;
- ev->window = sw32(event->u.destroyNotify.window, sw);
- ev->event = sw32(event->u.destroyNotify.event, sw);
- }
- break;
- case UnmapNotify:
- {
- register XUnmapEvent *ev = (XUnmapEvent *) re;
- ev->window = sw32(event->u.unmapNotify.window, sw);
- ev->event = sw32(event->u.unmapNotify.event, sw);
- ev->from_configure = event->u.unmapNotify.fromConfigure;
- }
- break;
- case MapNotify:
- {
- register XMapEvent *ev = (XMapEvent *) re;
- ev->window = sw32(event->u.mapNotify.window, sw);
- ev->event = sw32(event->u.mapNotify.event, sw);
- ev->override_redirect = event->u.mapNotify.override;
- }
- break;
- case MapRequest:
- {
- register XMapRequestEvent *ev = (XMapRequestEvent *) re;
- ev->window = sw32(event->u.mapRequest.window, sw);
- ev->parent = sw32(event->u.mapRequest.parent, sw);
- }
- break;
- case ReparentNotify:
- {
- register XReparentEvent *ev = (XReparentEvent *) re;
- ev->event = sw32(event->u.reparent.event, sw);
- ev->window = sw32(event->u.reparent.window, sw);
- ev->parent = sw32(event->u.reparent.parent, sw);
- ev->x = cvtINT16toInt(sw16(event->u.reparent.x, sw));
- ev->y = cvtINT16toInt(sw16(event->u.reparent.y, sw));
- ev->override_redirect = event->u.reparent.override;
- }
- break;
- case ConfigureNotify:
- {
- register XConfigureEvent *ev = (XConfigureEvent *) re;
- ev->event = sw32(event->u.configureNotify.event, sw);
- ev->window = sw32(event->u.configureNotify.window, sw);
- ev->above = sw32(event->u.configureNotify.aboveSibling, sw);
- ev->x = cvtINT16toInt(sw16(event->u.configureNotify.x, sw));
- ev->y = cvtINT16toInt(sw16(event->u.configureNotify.y, sw));
- ev->width = sw16(event->u.configureNotify.width, sw);
- ev->height = sw16(event->u.configureNotify.height, sw);
- ev->border_width = sw16(event->u.configureNotify.borderWidth, sw);
- ev->override_redirect = event->u.configureNotify.override;
- }
- break;
- case ConfigureRequest:
- {
- register XConfigureRequestEvent *ev =
- (XConfigureRequestEvent *) re;
- ev->window = sw32(event->u.configureRequest.window, sw);
- ev->parent = sw32(event->u.configureRequest.parent, sw);
- ev->above = sw32(event->u.configureRequest.sibling, sw);
- ev->x = cvtINT16toInt(sw16(event->u.configureRequest.x, sw));
- ev->y = cvtINT16toInt(sw16(event->u.configureRequest.y, sw));
- ev->width = sw16(event->u.configureRequest.width, sw);
- ev->height = sw16(event->u.configureRequest.height, sw);
- ev->border_width = sw16(event->u.configureRequest.borderWidth, sw);
- ev->value_mask = sw16(event->u.configureRequest.valueMask, sw);
- ev->detail = event->u.u.detail;
- }
- break;
- case GravityNotify:
- {
- register XGravityEvent *ev = (XGravityEvent *) re;
- ev->window = sw32(event->u.gravity.window, sw);
- ev->event = sw32(event->u.gravity.event, sw);
- ev->x = cvtINT16toInt(sw16(event->u.gravity.x, sw));
- ev->y = cvtINT16toInt(sw16(event->u.gravity.y, sw));
- }
- break;
- case ResizeRequest:
- {
- register XResizeRequestEvent *ev =
- (XResizeRequestEvent *) re;
- ev->window = sw32(event->u.resizeRequest.window, sw);
- ev->width = sw16(event->u.resizeRequest.width, sw);
- ev->height = sw16(event->u.resizeRequest.height, sw);
- }
- break;
- case CirculateNotify:
- {
- register XCirculateEvent *ev = (XCirculateEvent *) re;
- ev->window = sw32(event->u.circulate.window, sw);
- ev->event = sw32(event->u.circulate.event, sw);
- ev->place = event->u.circulate.place;
- }
- break;
- case CirculateRequest:
- {
- register XCirculateRequestEvent *ev =
- (XCirculateRequestEvent *) re;
- ev->window = sw32(event->u.circulate.window, sw);
- ev->parent = sw32(event->u.circulate.event, sw);
- ev->place = event->u.circulate.place;
- }
- break;
- case PropertyNotify:
- {
- register XPropertyEvent *ev = (XPropertyEvent *) re;
- ev->window = sw32(event->u.property.window, sw);
- ev->atom = sw32(event->u.property.atom, sw);
- ev->time = sw32(event->u.property.time, sw);
- ev->state = event->u.property.state;
- }
- break;
- case SelectionClear:
- {
- register XSelectionClearEvent *ev =
- (XSelectionClearEvent *) re;
- ev->window = sw32(event->u.selectionClear.window, sw);
- ev->selection = sw32(event->u.selectionClear.atom, sw);
- ev->time = sw32(event->u.selectionClear.time, sw);
- }
- break;
- case SelectionRequest:
- {
- register XSelectionRequestEvent *ev =
- (XSelectionRequestEvent *) re;
- ev->owner = sw32(event->u.selectionRequest.owner, sw);
- ev->requestor = sw32(event->u.selectionRequest.requestor, sw);
- ev->selection = sw32(event->u.selectionRequest.selection, sw);
- ev->target = sw32(event->u.selectionRequest.target, sw);
- ev->property = sw32(event->u.selectionRequest.property, sw);
- ev->time = sw32(event->u.selectionRequest.time, sw);
- }
- break;
- case SelectionNotify:
- {
- register XSelectionEvent *ev = (XSelectionEvent *) re;
- ev->requestor = sw32(event->u.selectionNotify.requestor, sw);
- ev->selection = sw32(event->u.selectionNotify.selection, sw);
- ev->target = sw32(event->u.selectionNotify.target, sw);
- ev->property = sw32(event->u.selectionNotify.property, sw);
- ev->time = sw32(event->u.selectionNotify.time, sw);
- }
- break;
- case ColormapNotify:
- {
- register XColormapEvent *ev = (XColormapEvent *) re;
- ev->window = sw32(event->u.colormap.window, sw);
- ev->colormap = sw32(event->u.colormap.colormap, sw);
- ev->new = event->u.colormap.new;
- ev->state = event->u.colormap.state;
- }
- break;
- case ClientMessage:
- {
- register int i;
- register XClientMessageEvent *ev
- = (XClientMessageEvent *) re;
- ev->window = sw32(event->u.clientMessage.window, sw);
- ev->format = event->u.u.detail;
- switch (ev->format) {
- case 8:
- ev->message_type = sw32(event->u.clientMessage.u.b.type, sw);
- for (i = 0; i < 20; i++)
- ev->data.b[i] = event->u.clientMessage.u.b.bytes[i];
- break;
- case 16:
- ev->message_type = sw32(event->u.clientMessage.u.s.type, sw);
- ev->data.s[0] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts0, sw));
- ev->data.s[1] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts1, sw));
- ev->data.s[2] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts2, sw));
- ev->data.s[3] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts3, sw));
- ev->data.s[4] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts4, sw));
- ev->data.s[5] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts5, sw));
- ev->data.s[6] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts6, sw));
- ev->data.s[7] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts7, sw));
- ev->data.s[8] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts8, sw));
- ev->data.s[9] = cvtINT16toShort(sw16(event->u.clientMessage.u.s.shorts9, sw));
- break;
- case 32:
- ev->message_type = sw32(event->u.clientMessage.u.l.type, sw);
- ev->data.l[0] = cvtINT32toLong(sw32(event->u.clientMessage.u.l.longs0, sw));
- ev->data.l[1] = cvtINT32toLong(sw32(event->u.clientMessage.u.l.longs1, sw));
- ev->data.l[2] = cvtINT32toLong(sw32(event->u.clientMessage.u.l.longs2, sw));
- ev->data.l[3] = cvtINT32toLong(sw32(event->u.clientMessage.u.l.longs3, sw));
- ev->data.l[4] = cvtINT32toLong(sw32(event->u.clientMessage.u.l.longs4, sw));
- break;
- default: /* XXX should never occur */
- break;
- }
- }
- break;
- case MappingNotify:
- {
- register XMappingEvent *ev = (XMappingEvent *)re;
- ev->window = 0;
- ev->first_keycode = event->u.mappingNotify.firstKeyCode;
- ev->request = event->u.mappingNotify.request;
- ev->count = event->u.mappingNotify.count;
- }
- break;
- default:
- return(False);
- }
- return(True);
-}
diff --git a/nx-X11/lib/X11/imExten.c b/nx-X11/lib/X11/imExten.c
deleted file mode 100644
index 532b18d3b..000000000
--- a/nx-X11/lib/X11/imExten.c
+++ /dev/null
@@ -1,576 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-/*
- * index of extensions
- */
-
-#define XIM_EXT_SET_EVENT_MASK_IDX 0
-#ifdef EXT_FORWARD
-#define XIM_EXT_FORWARD_KEYEVENT_IDX 1
-#endif
-#ifdef EXT_MOVE
-#define XIM_EXT_MOVE_IDX 2
-#endif
-
-typedef struct _XIM_QueryExtRec {
- Bool is_support;
- const char *name;
- int name_len;
- CARD16 major_opcode;
- CARD16 minor_opcode;
- int idx;
-} XIM_QueryExtRec;
-
-static XIM_QueryExtRec extensions[] = {
- {False, "XIM_EXT_SET_EVENT_MASK", 0, 0, 0,
- XIM_EXT_SET_EVENT_MASK_IDX},
-#ifdef EXT_FORWARD
- {False, "XIM_EXT_FORWARD_KEYEVENT", 0, 0, 0,
- XIM_EXT_FORWARD_KEYEVENT_IDX},
-#endif
-#ifdef EXT_MOVE
- {False, "XIM_EXT_MOVE", 0, 0, 0, XIM_EXT_MOVE_IDX},
-#endif
- {False, NULL, 0, 0, 0, 0} /* dummy */
-};
-
-static int
-_XimIsSupportExt(
- int idx)
-{
- register int i;
- int n = XIMNumber(extensions) - 1;
-
- for (i = 0; i < n; i++) {
- if (extensions[i].idx == idx) {
- if (extensions[i].is_support)
- return i;
- else
- break;
- }
- }
- return -1;
-}
-
-static Bool
-_XimProcExtSetEventMask(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- EVENTMASK *buf_l = (EVENTMASK *)buf;
- EVENTMASK select_mask = _XimGetWindowEventmask(ic);
-
- ic->private.proto.filter_event_mask = buf_l[0];
- ic->private.proto.intercept_event_mask = buf_l[1];
- ic->private.proto.select_event_mask = buf_l[2];
- ic->private.proto.forward_event_mask = buf_l[3];
- ic->private.proto.synchronous_event_mask = buf_l[4];
-
- select_mask &= ~ic->private.proto.intercept_event_mask;
- /* deselected event mask */
- select_mask |= ic->private.proto.select_event_mask;
- /* selected event mask */
- XSelectInput(im->core.display, ic->core.focus_window, select_mask);
- _XimReregisterFilter(ic);
-
- if (!(_XimProcSyncReply(im, ic)))
- return False;
- return True;
-}
-
-static Bool
-_XimExtSetEventMaskCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Xim im = (Xim)call_data;
- Xic ic;
-
- if ((imid == im->private.proto.imid)
- && (ic = _XimICOfXICID(im, icid))) {
- (void)_XimProcExtSetEventMask(im, ic, (XPointer)&buf_s[2]);
- return True;
- }
- return False;
-}
-
-#ifdef EXT_FORWARD
-static Bool
-_XimProcExtForwardKeyEvent(
- Xim im,
- Xic ic,
- XPointer buf)
-{
- CARD8 *buf_b = (CARD8 *)buf;
- CARD16 *buf_s = (CARD16 *)buf;
- CARD32 *buf_l = (CARD32 *)buf;
- XEvent ev;
- XKeyEvent *kev = (XKeyEvent *)&ev;
-
- bzero(&ev, sizeof(XEvent));
- kev->send_event = False;
- kev->display = im->core.display;
- kev->serial = buf_s[1]; /* sequence number */
- kev->type = buf_b[4] & 0x7f; /* xEvent.u.u.type */
- kev->keycode = buf_b[5]; /* Keycode */
- kev->state = buf_s[3]; /* state */
- kev->time = buf_l[2]; /* time */
-
- XPutBackEvent(im->core.display, &ev);
-
- _XimRespSyncReply(ic, buf_s[0]);
- MARK_FABRICATED(im);
-
- return True;
-}
-
-static Bool
-_XimExtForwardKeyEventCallback(
- Xim xim,
- INT16 len,
- XPointer data,
- XPointer call_data)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
- Xim im = (Xim)call_data;
- Xic ic;
-
- if ((imid == im->private.proto.imid)
- && (ic = _XimICOfXICID(im, icid))) {
- (void)_XimProcExtForwardKeyEvent(im, ic, (XPointer)&buf_s[2]);
- return True;
- }
- return False;
-}
-
-static Bool
-_XimExtForwardKeyEventCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- Xic ic = (Xic)arg;
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
- XICID icid = buf_s[1];
-
- if ((major_opcode == XIM_SYNC_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid)
- && (icid == ic->private.proto.icid))
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid)
- && (buf_s[2] & XIM_ICID_VALID)
- && (icid == ic->private.proto.icid))
- return True;
- return False;
-}
-
-Bool
-_XimExtForwardKeyEvent(
- Xic ic,
- XKeyEvent *ev,
- Bool sync)
-{
- Xim im = (Xim) ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD8 *buf_b = &buf[XIM_HEADER_SIZE];
- CARD16 *buf_s = (CARD16 *)buf_b;
- CARD32 *buf_l = (CARD32 *)buf_b;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- INT16 len;
- int idx;
-
- if ((idx = _XimIsSupportExt(XIM_EXT_FORWARD_KEYEVENT_IDX)) < 0)
- return False;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
- buf_s[2] = sync ? XimSYNCHRONUS : 0; /* flag */
- buf_s[3] = (CARD16)(((XAnyEvent *)ev)->serial & ((unsigned long) 0xffff));
- /* sequence number */
- buf_b[8] = ev->type; /* xEvent.u.u.type */
- buf_b[9] = ev->keycode; /* keycode */
- buf_s[5] = ev->state; /* state */
- buf_l[3] = ev->time; /* time */
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16) /* sizeof icid */
- + sizeof(BITMASK16) /* sizeof flag */
- + sizeof(CARD16) /* sizeof sequence number */
- + sizeof(BYTE) /* sizeof xEvent.u.u.type */
- + sizeof(BYTE) /* sizeof keycode */
- + sizeof(CARD16) /* sizeof state */
- + sizeof(CARD32); /* sizeof time */
-
- _XimSetHeader((XPointer)buf,
- extensions[idx].major_opcode,
- extensions[idx].minor_opcode, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- if (sync) {
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimExtForwardKeyEventCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_sizex = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimExtForwardKeyEventCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else
- return False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
- }
- return True;
-}
-#endif /* EXT_FORWARD */
-
-static int
-_XimCheckExtensionListSize(void)
-{
- register int i;
- int len;
- int total = 0;
- int n = XIMNumber(extensions) - 1;
-
- for (i = 0; i < n; i++) {
- len = strlen(extensions[i].name);
- extensions[i].name_len = len;
- len += sizeof(BYTE);
- total += len;
- }
- return total;
-}
-
-static void
-_XimSetExtensionList(
- CARD8 *buf)
-{
- register int i;
- int len;
- int n = XIMNumber(extensions) - 1;
-
- for (i = 0; i < n; i++) {
- len = extensions[i].name_len;
- buf[0] = (BYTE)len;
- (void)strcpy((char *)&buf[1], extensions[i].name);
- len += sizeof(BYTE);
- buf += len;
- }
- return;
-}
-
-static unsigned int
-_XimCountNumberOfExtension(
- INT16 total,
- CARD8 *ext)
-{
- unsigned int n;
- INT16 len;
- INT16 min_len = sizeof(CARD8)
- + sizeof(CARD8)
- + sizeof(INT16);
-
- n = 0;
- while (total > min_len) {
- len = *((INT16 *)(&ext[2]));
- len += (min_len + XIM_PAD(len));
- total -= len;
- ext += len;
- n++;
- }
- return n;
-}
-
-static Bool
-_XimParseExtensionList(
- Xim im,
- CARD16 *data)
-{
- int num = XIMNumber(extensions) - 1;
- unsigned int n;
- CARD8 *buf;
- register int i;
- register int j;
- INT16 len;
-
- if (!(n = _XimCountNumberOfExtension(data[0], (CARD8 *)&data[1])))
- return True;
-
- buf = (CARD8 *)&data[1];
- for (i = 0; i < n; i++) {
- len = *((INT16 *)(&buf[2]));
- for (j = 0; j < num; j++) {
- if (!(strncmp(extensions[j].name, (char *)&buf[4], len))) {
- extensions[j].major_opcode = buf[0];
- extensions[j].minor_opcode = buf[1];
- extensions[j].is_support = True;
- break;
- }
- }
- len += sizeof(CARD8) /* sizeof major_opcode */
- + sizeof(CARD8) /* sizeof minor_opcode */
- + sizeof(INT16) /* sizeof length */
- + XIM_PAD(len); /* sizeof pad */
- buf += len;
- }
-
- return True;
-}
-
-static Bool
-_XimQueryExtensionCheck(
- Xim im,
- INT16 len,
- XPointer data,
- XPointer arg)
-{
- CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
- CARD8 major_opcode = *((CARD8 *)data);
- CARD8 minor_opcode = *((CARD8 *)data + 1);
- XIMID imid = buf_s[0];
-
- if ((major_opcode == XIM_QUERY_EXTENSION_REPLY)
- && (minor_opcode == 0)
- && (imid == im->private.proto.imid))
- return True;
- if ((major_opcode == XIM_ERROR)
- && (minor_opcode == 0)
- && (buf_s[2] & XIM_IMID_VALID)
- && (imid == im->private.proto.imid))
- return True;
- return False;
-}
-
-Bool
-_XimExtension(
- Xim im)
-{
- CARD8 *buf;
- CARD16 *buf_s;
- int buf_len;
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- int idx;
-
- if (!(len = _XimCheckExtensionListSize()))
- return True;
-
- buf_len = XIM_HEADER_SIZE
- + sizeof(CARD16)
- + sizeof(INT16)
- + len
- + XIM_PAD(len);
-
- if (!(buf = Xmalloc(buf_len)))
- return False;
- buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = len; /* length of Extensions */
- _XimSetExtensionList((CARD8 *)&buf_s[2]);
- /* extensions supported */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += sizeof(CARD16) /* sizeof imid */
- + sizeof(INT16); /* sizeof length of extensions */
-
- _XimSetHeader((XPointer)buf, XIM_QUERY_EXTENSION, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf))) {
- XFree(buf);
- return False;
- }
- XFree(buf);
- _XimFlush(im);
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimQueryExtensionCheck, 0);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, reply, buf_size,
- _XimQueryExtensionCheck, 0);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- return False;
- }
- }
- } else
- return False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- Xfree(preply);
- return False;
- }
-
- if (!(_XimParseExtensionList(im, &buf_s[1]))) {
- if(reply != preply)
- Xfree(preply);
- return False;
- }
- if(reply != preply)
- Xfree(preply);
-
- if ((idx = _XimIsSupportExt(XIM_EXT_SET_EVENT_MASK_IDX)) >= 0)
- _XimRegProtoIntrCallback(im,
- extensions[idx].major_opcode,
- extensions[idx].minor_opcode,
- _XimExtSetEventMaskCallback, (XPointer)im);
-#ifdef EXT_FORWARD
- if ((idx = _XimIsSupportExt(XIM_EXT_FORWARD_KEYEVENT_IDX)) >= 0)
- _XimRegProtoIntrCallback(im,
- extensions[idx].major_opcode,
- extensions[idx].minor_opcode,
- _XimExtForwardKeyEventCallback, (XPointer)im);
-#endif
-
- return True;
-}
-
-#ifdef EXT_MOVE
-/* flag of ExtenArgCheck */
-#define EXT_XNSPOTLOCATION (1L<<0)
-
-/* macro for ExtenArgCheck */
-#define SET_EXT_XNSPOTLOCATION(flag) (flag |= EXT_XNSPOTLOCATION)
-#define IS_EXT_XNSPOTLOCATION(flag) (flag & EXT_XNSPOTLOCATION)
-
-/* length of XPoint attribute */
-#define XIM_Xpoint_length 12
-
-static Bool
-_XimExtMove(
- Xim im,
- Xic ic,
- CARD16 x,
- CARD16 y)
-{
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
- int idx;
-
- if ((idx = _XimIsSupportExt(XIM_EXT_MOVE_IDX)) < 0)
- return False;
-
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
- buf_s[2] = x; /* X */
- buf_s[3] = y; /* Y */
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16) /* sizeof icid */
- + sizeof(INT16) /* sizeof X */
- + sizeof(INT16); /* sizeof Y */
-
- _XimSetHeader((XPointer)buf, extensions[idx].major_opcode,
- extensions[idx].minor_opcode, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return False;
- _XimFlush(im);
- return True;
-}
-
-BITMASK32
-_XimExtenArgCheck(
- XIMArg *arg)
-{
- CARD32 flag = 0L;
- if (!strcmp(arg->name, XNSpotLocation))
- SET_EXT_XNSPOTLOCATION(flag);
- return flag;
-}
-
-Bool
-_XimExtenMove(
- Xim im,
- Xic ic,
- CARD32 flag,
- CARD16 *buf,
- INT16 length)
-{
- if ((IS_EXT_XNSPOTLOCATION(flag)) && (length == XIM_Xpoint_length))
- return _XimExtMove(im, ic, buf[4], buf[5]);
- return False;
-}
-#endif /* EXT_MOVE */
diff --git a/nx-X11/lib/X11/imImSw.c b/nx-X11/lib/X11/imImSw.c
deleted file mode 100644
index 28b1725a6..000000000
--- a/nx-X11/lib/X11/imImSw.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993 by FUJITSU LIMITED
- Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission. FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Modifier: Franky Ling Digital Equipment Corporation
- frankyling@hgrd01.enet.dec.com
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XimImSw.h"
-
-static Bool
-_XimCheckIfDefault(
- Xim im)
-{
- return(True);
-}
-
-XimImsportSW _XimImSportRec[] = {
- { _XimCheckIfLocalProcessing, _XimLocalOpenIM, _XimLocalIMFree },
- { _XimCheckIfThaiProcessing, _XimThaiOpenIM, _XimThaiIMFree },
- { _XimCheckIfDefault, _XimProtoOpenIM, _XimProtoIMFree },
- { NULL, NULL, NULL },
-};
diff --git a/nx-X11/lib/X11/imInsClbk.c b/nx-X11/lib/X11/imInsClbk.c
deleted file mode 100644
index 3ae6b1bd7..000000000
--- a/nx-X11/lib/X11/imInsClbk.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/******************************************************************
-
- Copyright 1993, 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Sony Corporation
- not be used in advertising or publicity pertaining to distribution
- of the software without specific, written prior permission.
-Sony Corporation makes no representations about the suitability of
- this software for any purpose. It is provided "as is" without
- express or implied warranty.
-
-SONY CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Makoto Wakamatsu Sony Corporation
- makoto@sm.sony.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XlcPublic.h"
-#include "Ximint.h"
-
-
-typedef struct _XimInstCallback {
- Bool call;
- Bool destroy;
- Display *display;
- XLCd lcd;
- char name[XIM_MAXLCNAMELEN];
- char *modifiers;
- XrmDatabase rdb;
- char *res_name;
- char *res_class;
- XIDProc callback;
- XPointer client_data;
- struct _XimInstCallback *next;
-} XimInstCallbackRec, *XimInstCallback;
-
-
-static XimInstCallback callback_list = NULL;
-static Bool lock = False;
-
-
-static void
-MakeLocale( XLCd lcd, char locale[] )
-{
- char *language, *territory, *codeset;
-
- _XGetLCValues( lcd, XlcNLanguage, &language, XlcNTerritory, &territory,
- XlcNCodeset, &codeset, NULL );
-
- strcpy( locale, language );
- if( territory && *territory ) {
- strcat( locale, "_" );
- strcat( locale, territory );
- }
- if( codeset && *codeset ) {
- strcat( locale, "." );
- strcat( locale, codeset );
- }
-}
-
-
-static Bool
-_XimFilterPropertyNotify(
- Display *display,
- Window window,
- XEvent *event,
- XPointer client_data)
-{
- Atom ims, actual_type, *atoms;
- int actual_format;
- unsigned long nitems, bytes_after;
- int ii;
- XIM xim;
- Bool flag = False;
- XimInstCallback icb, picb, tmp;
-
- if( (ims = XInternAtom( display, XIM_SERVERS, True )) == None ||
- event->xproperty.atom != ims ||
- event->xproperty.state == PropertyDelete )
- return( False );
-
- if( XGetWindowProperty( display, RootWindow(display, 0), ims, 0L, 1000000L,
- False, XA_ATOM, &actual_type, &actual_format,
- &nitems, &bytes_after, (unsigned char **)&atoms )
- != Success ) {
- return( False );
- }
- if( actual_type != XA_ATOM || actual_format != 32 ) {
- XFree( atoms );
- return( False );
- }
-
- lock = True;
- for( ii = 0; ii < nitems; ii++, atoms ) {
- if(XGetSelectionOwner (display, atoms[ii])) {
- for( icb = callback_list; icb; icb = icb->next ) {
- if( !icb->call && !icb->destroy ) {
- xim = (*icb->lcd->methods->open_im)( icb->lcd, display,
- icb->rdb,
- icb->res_name,
- icb->res_class );
- if( xim ) {
- xim->methods->close( (XIM)xim );
- flag = True;
- icb->call = True;
- icb->callback( icb->display, icb->client_data, NULL );
- }
- }
- }
- break;
- }
- }
- XFree( atoms );
-
- for( icb = callback_list, picb = NULL; icb; ) {
- if( icb->destroy ) {
- if( picb )
- picb->next = icb->next;
- else
- callback_list = icb->next;
- tmp = icb;
- icb = icb->next;
- XFree( tmp );
- }
- else {
- picb = icb;
- icb = icb->next;
- }
- }
- lock = False;
-
- return( flag );
-}
-
-
-Bool
-_XimRegisterIMInstantiateCallback(
- XLCd lcd,
- Display *display,
- XrmDatabase rdb,
- char *res_name,
- char *res_class,
- XIDProc callback,
- XPointer client_data)
-{
- XimInstCallback icb, tmp;
- XIM xim;
- Window root;
- XWindowAttributes attr;
-
- if( lock )
- return( False );
-
- icb = Xmalloc(sizeof(XimInstCallbackRec));
- if( !icb )
- return( False );
- icb->call = icb->destroy = False;
- icb->display = display;
- icb->lcd = lcd;
- MakeLocale( lcd, icb->name );
- icb->modifiers = lcd->core->modifiers; /* XXXXX */
- icb->rdb = rdb;
- icb->res_name = res_name;
- icb->res_class = res_class;
- icb->callback = callback;
- icb->client_data = client_data;
- icb->next = NULL;
-
- if( !callback_list )
- callback_list = icb;
- else {
- for( tmp = callback_list; tmp->next; tmp = tmp->next );
- tmp->next = icb;
- }
-
- xim = (*lcd->methods->open_im)( lcd, display, rdb, res_name, res_class );
-
- if( icb == callback_list ) {
- root = RootWindow( display, 0 );
- XGetWindowAttributes( display, root, &attr );
- _XRegisterFilterByType( display, root, PropertyNotify, PropertyNotify,
- _XimFilterPropertyNotify, (XPointer)NULL );
- XSelectInput( display, root,
- attr.your_event_mask | PropertyChangeMask );
- }
-
- if( xim ) {
- lock = True;
- xim->methods->close( (XIM)xim );
- lock = False;
- icb->call = True;
- callback( display, client_data, NULL );
- }
-
- return( True );
-}
-
-
-Bool
-_XimUnRegisterIMInstantiateCallback(
- XLCd lcd,
- Display *display,
- XrmDatabase rdb,
- char *res_name,
- char *res_class,
- XIDProc callback,
- XPointer client_data)
-{
- char locale[XIM_MAXLCNAMELEN];
- XimInstCallback icb, picb;
-
- if( !callback_list )
- return( False );
-
- MakeLocale( lcd, locale );
-
- for( icb = callback_list, picb = NULL; icb; picb = icb, icb = icb->next ) {
- if( !strcmp( locale, icb->name ) &&
- (lcd->core->modifiers == icb->modifiers || /* XXXXX */
- (lcd->core->modifiers && icb->modifiers &&
- !strcmp( lcd->core->modifiers, icb->modifiers ))) &&
- rdb == icb->rdb && /* XXXXX */
- ((res_name == NULL && icb->res_name == NULL) ||
- (res_name != NULL && icb->res_name != NULL &&
- !strcmp( res_name, icb->res_name ))) &&
- ((res_class == NULL && icb->res_class == NULL) ||
- (res_class != NULL && icb->res_class != NULL &&
- !strcmp( res_class, icb->res_class ))) &&
- (callback == icb->callback) &&
- (client_data == icb->client_data) && /* XXXXX */
- !icb->destroy ) {
- if( lock )
- icb->destroy = True;
- else {
- if( !picb ) {
- callback_list = icb->next;
- _XUnregisterFilter( display, RootWindow(display, 0),
- _XimFilterPropertyNotify,
- (XPointer)NULL );
- }
- else
- picb->next = icb->next;
- _XCloseLC( icb->lcd );
- XFree( icb );
- }
- return( True );
- }
- }
- return( False );
-}
-
-
-void
-_XimResetIMInstantiateCallback(Xim xim)
-{
- char locale[XIM_MAXLCNAMELEN];
- XimInstCallback icb;
- XLCd lcd = xim->core.lcd;
-
- if( !callback_list && lock )
- return;
-
- MakeLocale( lcd, locale );
-
- for( icb = callback_list; icb; icb = icb->next )
- if( !strcmp( locale, icb->name ) &&
- (lcd->core->modifiers == icb->modifiers ||
- (lcd->core->modifiers && icb->modifiers &&
- !strcmp( lcd->core->modifiers, icb->modifiers ))) )
- icb->call = False;
-}
diff --git a/nx-X11/lib/X11/imInt.c b/nx-X11/lib/X11/imInt.c
deleted file mode 100644
index 05e04dac8..000000000
--- a/nx-X11/lib/X11/imInt.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XimImSw.h"
-
-static Xim *_XimCurrentIMlist = (Xim *)NULL;
-static int _XimCurrentIMcount = 0;
-
-static Bool
-_XimSetIMStructureList(
- Xim im)
-{
- register int i;
- Xim *xim;
-
- if(!(_XimCurrentIMlist)) {
- if(!(_XimCurrentIMlist = Xmalloc(sizeof(Xim))))
- return False;
- _XimCurrentIMlist[0] = im;
- _XimCurrentIMcount = 1;
- }
- else {
- for(i = 0; i < _XimCurrentIMcount; i++) {
- if(!( _XimCurrentIMlist[i])) {
- _XimCurrentIMlist[i] = im;
- break;
- }
- }
- if(i >= _XimCurrentIMcount) {
- if(!(xim = Xrealloc(_XimCurrentIMlist,
- ((i + 1) * sizeof(Xim)))))
- return False;
- _XimCurrentIMlist = xim;
- _XimCurrentIMlist[_XimCurrentIMcount] = im;
- _XimCurrentIMcount++;
- }
- }
- return True;
-}
-
-void
-_XimDestroyIMStructureList(Xim im)
-{
- register int i;
-
- for(i = 0; i < _XimCurrentIMcount; i++) {
- if(_XimCurrentIMlist[i] == im) {
- _XimCurrentIMlist[i] = NULL;
- break;
- }
- }
- return;
-}
-
-void
-_XimServerDestroy(Xim im_2_destroy)
-{
- register int i;
- Xim im;
- XIC ic;
-
- for(i = 0; i < _XimCurrentIMcount; i++) {
- if(!(im = _XimCurrentIMlist[i]))
- continue;
- /*
- * Only continue if this im is the one to be destroyed.
- */
- if (im != im_2_destroy)
- continue;
-
- if (im->core.destroy_callback.callback)
- (*im->core.destroy_callback.callback)((XIM)im,
- im->core.destroy_callback.client_data, NULL);
- for (ic = im->core.ic_chain; ic; ic = ic->core.next) {
- if (ic->core.destroy_callback.callback) {
- (*ic->core.destroy_callback.callback)(ic,
- ic->core.destroy_callback.client_data, NULL);
- }
- }
- _XimResetIMInstantiateCallback( im );
- (void)im->methods->close((XIM)im);
- Xfree(im);
- _XimCurrentIMlist[i] = NULL;
- return;
- }
-}
-
-#ifdef XIM_CONNECTABLE
-void
-_XimServerReconectableDestroy(void)
-{
- register int i;
- Xim im;
- XIC ic;
-
- for(i = 0; i < _XimCurrentIMcount; i++) {
- if(!(im = _XimCurrentIMlist[i]))
- continue;
-
- if (im->core.destroy_callback.callback)
- (*im->core.destroy_callback.callback)(im,
- im->core.destroy_callback.client_data, NULL);
- for (ic = im->core.ic_chain; ic; ic = ic->core.next) {
- if (ic->core.destroy_callback.callback) {
- (*ic->core.destroy_callback.callback)(ic,
- ic->core.destroy_callback.client_data, NULL);
- }
- }
- _XimResetIMInstantiateCallback( im );
- (void)im->methods->close((XIM)im);
- }
- return;
-}
-#endif /* XIM_CONNECTABLE */
-
-static const char *
-_XimStrstr(
- register const char *src,
- register const char *dest)
-{
- int len;
-
- len = strlen(dest);
- while((src = strchr(src, *dest))) {
- if(!strncmp(src, dest, len))
- return src;
- src++;
- }
- return NULL;
-}
-
-static char *
-_XimMakeImName(
- XLCd lcd)
-{
- const char* begin = NULL;
- const char* end = NULL;
- char* ret = NULL;
- const char* ximmodifier = XIMMODIFIER;
-
- if(lcd->core->modifiers != NULL && *lcd->core->modifiers != '\0') {
- begin = _XimStrstr(lcd->core->modifiers, ximmodifier);
- if (begin != NULL) {
- end = begin += strlen(ximmodifier);
- while (*end && *end != '@')
- end++;
- }
- }
- ret = Xmalloc(end - begin + 1);
- if (ret != NULL) {
- if (begin != NULL && end != NULL) {
- (void)strncpy(ret, begin, end - begin);
- ret[end - begin] = '\0';
- } else {
- ret[0] = '\0';
- }
- }
-
- return ret;
-}
-
-XIM
-_XimOpenIM(
- XLCd lcd,
- Display *dpy,
- XrmDatabase rdb,
- char *res_name,
- char *res_class)
-{
- Xim im;
- register int i;
-
- if (!(im = Xcalloc(1, sizeof(XimRec))))
- return (XIM)NULL;
-
- im->core.lcd = lcd;
- im->core.ic_chain = (XIC)NULL;
- im->core.display = dpy;
- im->core.rdb = rdb;
- im->core.res_name = NULL;
- im->core.res_class = NULL;
- if((res_name != NULL) && (*res_name != '\0')){
- if(!(im->core.res_name = strdup(res_name)))
- goto Error1;
- }
- if((res_class != NULL) && (*res_class != '\0')){
- if(!(im->core.res_class = strdup(res_class)))
- goto Error2;
- }
- if(!(im->core.im_name = _XimMakeImName(lcd)))
- goto Error3;
-
- for(i= 0; ; i++) {
- if(_XimImSportRec[i].checkprocessing(im)) {
- if(!(_XimImSportRec[i].im_open(im)))
- goto Error4;
- if(!_XimSetIMStructureList(im))
- goto Error4;
- return (XIM)im;
- }
- }
-
-Error4 :
- _XimImSportRec[i].im_free(im);
- Xfree(im);
- return NULL;
-Error3 :
- Xfree(im->core.im_name);
-Error2:
- Xfree(im->core.res_class);
-Error1:
- Xfree(im->core.res_name);
- Xfree(im);
- return NULL;
-}
-
-Bool
-_XInitIM(XLCd lcd)
-{
- if(lcd == (XLCd)NULL)
- return False;
- lcd->methods->open_im = _XimOpenIM;
- lcd->methods->register_callback = _XimRegisterIMInstantiateCallback;
- lcd->methods->unregister_callback = _XimUnRegisterIMInstantiateCallback;
- return True;
-}
diff --git a/nx-X11/lib/X11/imKStoUCS.c b/nx-X11/lib/X11/imKStoUCS.c
deleted file mode 100644
index 640b3516a..000000000
--- a/nx-X11/lib/X11/imKStoUCS.c
+++ /dev/null
@@ -1,322 +0,0 @@
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Ximint.h"
-
-static unsigned short const keysym_to_unicode_1a1_1ff[] = {
- 0x0104, 0x02d8, 0x0141, 0x0000, 0x013d, 0x015a, 0x0000, /* 0x01a0-0x01a7 */
- 0x0000, 0x0160, 0x015e, 0x0164, 0x0179, 0x0000, 0x017d, 0x017b, /* 0x01a8-0x01af */
- 0x0000, 0x0105, 0x02db, 0x0142, 0x0000, 0x013e, 0x015b, 0x02c7, /* 0x01b0-0x01b7 */
- 0x0000, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, /* 0x01b8-0x01bf */
- 0x0154, 0x0000, 0x0000, 0x0102, 0x0000, 0x0139, 0x0106, 0x0000, /* 0x01c0-0x01c7 */
- 0x010c, 0x0000, 0x0118, 0x0000, 0x011a, 0x0000, 0x0000, 0x010e, /* 0x01c8-0x01cf */
- 0x0110, 0x0143, 0x0147, 0x0000, 0x0000, 0x0150, 0x0000, 0x0000, /* 0x01d0-0x01d7 */
- 0x0158, 0x016e, 0x0000, 0x0170, 0x0000, 0x0000, 0x0162, 0x0000, /* 0x01d8-0x01df */
- 0x0155, 0x0000, 0x0000, 0x0103, 0x0000, 0x013a, 0x0107, 0x0000, /* 0x01e0-0x01e7 */
- 0x010d, 0x0000, 0x0119, 0x0000, 0x011b, 0x0000, 0x0000, 0x010f, /* 0x01e8-0x01ef */
- 0x0111, 0x0144, 0x0148, 0x0000, 0x0000, 0x0151, 0x0000, 0x0000, /* 0x01f0-0x01f7 */
- 0x0159, 0x016f, 0x0000, 0x0171, 0x0000, 0x0000, 0x0163, 0x02d9 /* 0x01f8-0x01ff */
-};
-
-static unsigned short const keysym_to_unicode_2a1_2fe[] = {
- 0x0126, 0x0000, 0x0000, 0x0000, 0x0000, 0x0124, 0x0000, /* 0x02a0-0x02a7 */
- 0x0000, 0x0130, 0x0000, 0x011e, 0x0134, 0x0000, 0x0000, 0x0000, /* 0x02a8-0x02af */
- 0x0000, 0x0127, 0x0000, 0x0000, 0x0000, 0x0000, 0x0125, 0x0000, /* 0x02b0-0x02b7 */
- 0x0000, 0x0131, 0x0000, 0x011f, 0x0135, 0x0000, 0x0000, 0x0000, /* 0x02b8-0x02bf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010a, 0x0108, 0x0000, /* 0x02c0-0x02c7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x02c8-0x02cf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x0000, 0x0000, /* 0x02d0-0x02d7 */
- 0x011c, 0x0000, 0x0000, 0x0000, 0x0000, 0x016c, 0x015c, 0x0000, /* 0x02d8-0x02df */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010b, 0x0109, 0x0000, /* 0x02e0-0x02e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x02e8-0x02ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121, 0x0000, 0x0000, /* 0x02f0-0x02f7 */
- 0x011d, 0x0000, 0x0000, 0x0000, 0x0000, 0x016d, 0x015d /* 0x02f8-0x02ff */
-};
-
-static unsigned short const keysym_to_unicode_3a2_3fe[] = {
- 0x0138, 0x0156, 0x0000, 0x0128, 0x013b, 0x0000, /* 0x03a0-0x03a7 */
- 0x0000, 0x0000, 0x0112, 0x0122, 0x0166, 0x0000, 0x0000, 0x0000, /* 0x03a8-0x03af */
- 0x0000, 0x0000, 0x0000, 0x0157, 0x0000, 0x0129, 0x013c, 0x0000, /* 0x03b0-0x03b7 */
- 0x0000, 0x0000, 0x0113, 0x0123, 0x0167, 0x014a, 0x0000, 0x014b, /* 0x03b8-0x03bf */
- 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012e, /* 0x03c0-0x03c7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0116, 0x0000, 0x0000, 0x012a, /* 0x03c8-0x03cf */
- 0x0000, 0x0145, 0x014c, 0x0136, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03d0-0x03d7 */
- 0x0000, 0x0172, 0x0000, 0x0000, 0x0000, 0x0168, 0x016a, 0x0000, /* 0x03d8-0x03df */
- 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012f, /* 0x03e0-0x03e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x0000, 0x012b, /* 0x03e8-0x03ef */
- 0x0000, 0x0146, 0x014d, 0x0137, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03f0-0x03f7 */
- 0x0000, 0x0173, 0x0000, 0x0000, 0x0000, 0x0169, 0x016b /* 0x03f8-0x03ff */
-};
-
-static unsigned short const keysym_to_unicode_4a1_4df[] = {
- 0x3002, 0x3008, 0x3009, 0x3001, 0x30fb, 0x30f2, 0x30a1, /* 0x04a0-0x04a7 */
- 0x30a3, 0x30a5, 0x30a7, 0x30a9, 0x30e3, 0x30e5, 0x30e7, 0x30c3, /* 0x04a8-0x04af */
- 0x30fc, 0x30a2, 0x30a4, 0x30a6, 0x30a8, 0x30aa, 0x30ab, 0x30ad, /* 0x04b0-0x04b7 */
- 0x30af, 0x30b1, 0x30b3, 0x30b5, 0x30b7, 0x30b9, 0x30bb, 0x30bd, /* 0x04b8-0x04bf */
- 0x30bf, 0x30c1, 0x30c4, 0x30c6, 0x30c8, 0x30ca, 0x30cb, 0x30cc, /* 0x04c0-0x04c7 */
- 0x30cd, 0x30ce, 0x30cf, 0x30d2, 0x30d5, 0x30d8, 0x30db, 0x30de, /* 0x04c8-0x04cf */
- 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e4, 0x30e6, 0x30e8, 0x30e9, /* 0x04d0-0x04d7 */
- 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ef, 0x30f3, 0x309b, 0x309c /* 0x04d8-0x04df */
-};
-
-static unsigned short const keysym_to_unicode_590_5fe[] = {
- 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, 0x06f5, 0x06f6, 0x06f7, /* 0x0590-0x0597 */
- 0x06f8, 0x06f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0598-0x059f */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x066a, 0x0670, 0x0679, /* 0x05a0-0x05a7 */
-
- 0x067e, 0x0686, 0x0688, 0x0691, 0x060c, 0x0000, 0x06d4, 0x0000, /* 0x05ac-0x05af */
- 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, /* 0x05b0-0x05b7 */
- 0x0668, 0x0669, 0x0000, 0x061b, 0x0000, 0x0000, 0x0000, 0x061f, /* 0x05b8-0x05bf */
- 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0x05c0-0x05c7 */
- 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, /* 0x05c8-0x05cf */
- 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, /* 0x05d0-0x05d7 */
- 0x0638, 0x0639, 0x063a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x05d8-0x05df */
- 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, /* 0x05e0-0x05e7 */
- 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, /* 0x05e8-0x05ef */
- 0x0650, 0x0651, 0x0652, 0x0653, 0x0654, 0x0655, 0x0698, 0x06a4, /* 0x05f0-0x05f7 */
- 0x06a9, 0x06af, 0x06ba, 0x06be, 0x06cc, 0x06d2, 0x06c1 /* 0x05f8-0x05fe */
-};
-
-static unsigned short keysym_to_unicode_680_6ff[] = {
- 0x0492, 0x0496, 0x049a, 0x049c, 0x04a2, 0x04ae, 0x04b0, 0x04b2, /* 0x0680-0x0687 */
- 0x04b6, 0x04b8, 0x04ba, 0x0000, 0x04d8, 0x04e2, 0x04e8, 0x04ee, /* 0x0688-0x068f */
- 0x0493, 0x0497, 0x049b, 0x049d, 0x04a3, 0x04af, 0x04b1, 0x04b3, /* 0x0690-0x0697 */
- 0x04b7, 0x04b9, 0x04bb, 0x0000, 0x04d9, 0x04e3, 0x04e9, 0x04ef, /* 0x0698-0x069f */
- 0x0000, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457, /* 0x06a0-0x06a7 */
- 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x0491, 0x045e, 0x045f, /* 0x06a8-0x06af */
- 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, /* 0x06b0-0x06b7 */
- 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x0490, 0x040e, 0x040f, /* 0x06b8-0x06bf */
- 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0x06c0-0x06c7 */
- 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, /* 0x06c8-0x06cf */
- 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0x06d0-0x06d7 */
- 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, /* 0x06d8-0x06df */
- 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0x06e0-0x06e7 */
- 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, /* 0x06e8-0x06ef */
- 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0x06f0-0x06f7 */
- 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a /* 0x06f8-0x06ff */
-};
-
-static unsigned short const keysym_to_unicode_7a1_7f9[] = {
- 0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0x0000, 0x038c, /* 0x07a0-0x07a7 */
- 0x038e, 0x03ab, 0x0000, 0x038f, 0x0000, 0x0000, 0x0385, 0x2015, /* 0x07a8-0x07af */
- 0x0000, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, /* 0x07b0-0x07b7 */
- 0x03cd, 0x03cb, 0x03b0, 0x03ce, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x07b8-0x07bf */
- 0x0000, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0x07c0-0x07c7 */
- 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, /* 0x07c8-0x07cf */
- 0x03a0, 0x03a1, 0x03a3, 0x0000, 0x03a4, 0x03a5, 0x03a6, 0x03a7, /* 0x07d0-0x07d7 */
- 0x03a8, 0x03a9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x07d8-0x07df */
- 0x0000, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, /* 0x07e0-0x07e7 */
- 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, /* 0x07e8-0x07ef */
- 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, /* 0x07f0-0x07f7 */
- 0x03c8, 0x03c9 /* 0x07f8-0x07ff */
-};
-
-static unsigned short const keysym_to_unicode_8a4_8fe[] = {
- 0x2320, 0x2321, 0x0000, 0x231c, /* 0x08a0-0x08a7 */
- 0x231d, 0x231e, 0x231f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08a8-0x08af */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08b0-0x08b7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x2264, 0x2260, 0x2265, 0x222b, /* 0x08b8-0x08bf */
- 0x2234, 0x0000, 0x221e, 0x0000, 0x0000, 0x2207, 0x0000, 0x0000, /* 0x08c0-0x08c7 */
- 0x2245, 0x2246, 0x0000, 0x0000, 0x0000, 0x0000, 0x21d2, 0x0000, /* 0x08c8-0x08cf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x221a, 0x0000, /* 0x08d0-0x08d7 */
- 0x0000, 0x0000, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228, /* 0x08d8-0x08df */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08e0-0x08e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2202, /* 0x08e8-0x08ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0192, 0x0000, /* 0x08f0-0x08f7 */
- 0x0000, 0x0000, 0x0000, 0x2190, 0x2191, 0x2192, 0x2193 /* 0x08f8-0x08ff */
-};
-
-static unsigned short const keysym_to_unicode_9df_9f8[] = {
- 0x2422, /* 0x09d8-0x09df */
- 0x2666, 0x25a6, 0x2409, 0x240c, 0x240d, 0x240a, 0x0000, 0x0000, /* 0x09e0-0x09e7 */
- 0x240a, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x2500, /* 0x09e8-0x09ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x251c, 0x2524, 0x2534, 0x252c, /* 0x09f0-0x09f7 */
- 0x2502 /* 0x09f8-0x09ff */
-};
-
-static unsigned short const keysym_to_unicode_aa1_afe[] = {
- 0x2003, 0x2002, 0x2004, 0x2005, 0x2007, 0x2008, 0x2009, /* 0x0aa0-0x0aa7 */
- 0x200a, 0x2014, 0x2013, 0x0000, 0x0000, 0x0000, 0x2026, 0x2025, /* 0x0aa8-0x0aaf */
- 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, /* 0x0ab0-0x0ab7 */
- 0x2105, 0x0000, 0x0000, 0x2012, 0x2039, 0x2024, 0x203a, 0x0000, /* 0x0ab8-0x0abf */
- 0x0000, 0x0000, 0x0000, 0x215b, 0x215c, 0x215d, 0x215e, 0x0000, /* 0x0ac0-0x0ac7 */
- 0x0000, 0x2122, 0x2120, 0x0000, 0x25c1, 0x25b7, 0x25cb, 0x25ad, /* 0x0ac8-0x0acf */
- 0x2018, 0x2019, 0x201c, 0x201d, 0x211e, 0x2030, 0x2032, 0x2033, /* 0x0ad0-0x0ad7 */
- 0x0000, 0x271d, 0x0000, 0x220e, 0x25c2, 0x2023, 0x25cf, 0x25ac, /* 0x0ad8-0x0adf */
- 0x25e6, 0x25ab, 0x25ae, 0x25b5, 0x25bf, 0x2606, 0x2022, 0x25aa, /* 0x0ae0-0x0ae7 */
- 0x25b4, 0x25be, 0x261a, 0x261b, 0x2663, 0x2666, 0x2665, 0x0000, /* 0x0ae8-0x0aef */
- 0x2720, 0x2020, 0x2021, 0x2713, 0x2612, 0x266f, 0x266d, 0x2642, /* 0x0af0-0x0af7 */
- 0x2640, 0x2121, 0x2315, 0x2117, 0x2038, 0x201a, 0x201e /* 0x0af8-0x0aff */
-};
-
-/* none of the APL keysyms match the Unicode characters */
-
-static unsigned short const keysym_to_unicode_cdf_cfa[] = {
- 0x2017, /* 0x0cd8-0x0cdf */
- 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, /* 0x0ce0-0x0ce7 */
- 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, /* 0x0ce8-0x0cef */
- 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, /* 0x0cf0-0x0cf7 */
- 0x05e8, 0x05e9, 0x05ea /* 0x0cf8-0x0cff */
-};
-
-static unsigned short const keysym_to_unicode_da1_df9[] = {
- 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, /* 0x0da0-0x0da7 */
- 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, /* 0x0da8-0x0daf */
- 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, /* 0x0db0-0x0db7 */
- 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, /* 0x0db8-0x0dbf */
- 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, /* 0x0dc0-0x0dc7 */
- 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, /* 0x0dc8-0x0dcf */
- 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, /* 0x0dd0-0x0dd7 */
- 0x0e38, 0x0e39, 0x0e3a, 0x0000, 0x0000, 0x0000, 0x0e3e, 0x0e3f, /* 0x0dd8-0x0ddf */
- 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, /* 0x0de0-0x0de7 */
- 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0000, 0x0000, /* 0x0de8-0x0def */
- 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, /* 0x0df0-0x0df7 */
- 0x0e58, 0x0e59 /* 0x0df8-0x0dff */
-};
-
-static unsigned short const keysym_to_unicode_ea0_eff[] = {
- 0x0000, 0x1101, 0x1101, 0x11aa, 0x1102, 0x11ac, 0x11ad, 0x1103, /* 0x0ea0-0x0ea7 */
- 0x1104, 0x1105, 0x11b0, 0x11b1, 0x11b2, 0x11b3, 0x11b4, 0x11b5, /* 0x0ea8-0x0eaf */
- 0x11b6, 0x1106, 0x1107, 0x1108, 0x11b9, 0x1109, 0x110a, 0x110b, /* 0x0eb0-0x0eb7 */
- 0x110c, 0x110d, 0x110e, 0x110f, 0x1110, 0x1111, 0x1112, 0x1161, /* 0x0eb8-0x0ebf */
- 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, /* 0x0ec0-0x0ec7 */
- 0x116a, 0x116b, 0x116c, 0x116d, 0x116e, 0x116f, 0x1170, 0x1171, /* 0x0ec8-0x0ecf */
- 0x1172, 0x1173, 0x1174, 0x1175, 0x11a8, 0x11a9, 0x11aa, 0x11ab, /* 0x0ed0-0x0ed7 */
- 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2, 0x11b3, /* 0x0ed8-0x0edf */
- 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba, 0x11bb, /* 0x0ee0-0x0ee7 */
- 0x11bc, 0x11bd, 0x11be, 0x11bf, 0x11c0, 0x11c1, 0x11c2, 0x0000, /* 0x0ee8-0x0eef */
- 0x0000, 0x0000, 0x1140, 0x0000, 0x0000, 0x1159, 0x119e, 0x0000, /* 0x0ef0-0x0ef7 */
- 0x11eb, 0x0000, 0x11f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x20a9, /* 0x0ef8-0x0eff */
-};
-
-static unsigned short keysym_to_unicode_12a1_12fe[] = {
- 0x1e02, 0x1e03, 0x0000, 0x0000, 0x0000, 0x1e0a, 0x0000, /* 0x12a0-0x12a7 */
- 0x1e80, 0x0000, 0x1e82, 0x1e0b, 0x1ef2, 0x0000, 0x0000, 0x0000, /* 0x12a8-0x12af */
- 0x1e1e, 0x1e1f, 0x0000, 0x0000, 0x1e40, 0x1e41, 0x0000, 0x1e56, /* 0x12b0-0x12b7 */
- 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, /* 0x12b8-0x12bf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12c0-0x12c7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12c8-0x12cf */
- 0x0174, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e6a, /* 0x12d0-0x12d7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0176, 0x0000, /* 0x12d8-0x12df */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12e0-0x12e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x12e8-0x12ef */
- 0x0175, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e6b, /* 0x12f0-0x12f7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0177 /* 0x12f0-0x12ff */
-};
-
-static unsigned short const keysym_to_unicode_13bc_13be[] = {
- 0x0152, 0x0153, 0x0178 /* 0x13b8-0x13bf */
-};
-
-static unsigned short keysym_to_unicode_14a1_14ff[] = {
- 0x2741, 0x00a7, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab, /* 0x14a0-0x14a7 */
- 0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c, /* 0x14a8-0x14af */
- 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, /* 0x14b0-0x14b7 */
- 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, /* 0x14b8-0x14bf */
- 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, /* 0x14c0-0x14c7 */
- 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, /* 0x14c8-0x14cf */
- 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, /* 0x14d0-0x14d7 */
- 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, /* 0x14d8-0x14df */
- 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, /* 0x14e0-0x14e7 */
- 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, /* 0x14e8-0x14ef */
- 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, /* 0x14f0-0x14f7 */
- 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x2019, 0x0027, /* 0x14f8-0x14ff */
-};
-
-static unsigned short keysym_to_unicode_15d0_15f6[] = {
- 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7, /* 0x15d0-0x15d7 */
- 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df, /* 0x15d8-0x15df */
- 0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7, /* 0x15e0-0x15e7 */
- 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef, /* 0x15e8-0x15ef */
- 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6 /* 0x15f0-0x15f7 */
-};
-
-static unsigned short keysym_to_unicode_16a0_16f6[] = {
- 0x0000, 0x0000, 0xf0a2, 0x1e8a, 0x0000, 0xf0a5, 0x012c, 0xf0a7, /* 0x16a0-0x16a7 */
- 0xf0a8, 0x01b5, 0x01e6, 0x0000, 0x0000, 0x0000, 0x0000, 0x019f, /* 0x16a8-0x16af */
- 0x0000, 0x0000, 0xf0b2, 0x1e8b, 0x01d1, 0xf0b5, 0x012d, 0xf0b7, /* 0x16b0-0x16b7 */
- 0xf0b8, 0x01b6, 0x01e7, 0x0000, 0x0000, 0x01d2, 0x0000, 0x0275, /* 0x16b8-0x16bf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x018f, 0x0000, /* 0x16c0-0x16c7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16c8-0x16cf */
- 0x0000, 0x1e36, 0xf0d2, 0xf0d3, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16d0-0x16d7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16d8-0x16df */
- 0x0000, 0x1e37, 0xf0e2, 0xf0e3, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16e0-0x16e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16e8-0x16ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0259 /* 0x16f0-0x16f6 */
-};
-
-static unsigned short const keysym_to_unicode_1e9f_1eff[] = {
- 0x0303,
- 0x1ea0, 0x1ea1, 0x1ea2, 0x1ea3, 0x1ea4, 0x1ea5, 0x1ea6, 0x1ea7, /* 0x1ea0-0x1ea7 */
- 0x1ea8, 0x1ea9, 0x1eaa, 0x1eab, 0x1eac, 0x1ead, 0x1eae, 0x1eaf, /* 0x1ea8-0x1eaf */
- 0x1eb0, 0x1eb1, 0x1eb2, 0x1eb3, 0x1eb4, 0x1eb5, 0x1eb6, 0x1eb7, /* 0x1eb0-0x1eb7 */
- 0x1eb8, 0x1eb9, 0x1eba, 0x1ebb, 0x1ebc, 0x1ebd, 0x1ebe, 0x1ebf, /* 0x1eb8-0x1ebf */
- 0x1ec0, 0x1ec1, 0x1ec2, 0x1ec3, 0x1ec4, 0x1ec5, 0x1ec6, 0x1ec7, /* 0x1ec0-0x1ec7 */
- 0x1ec8, 0x1ec9, 0x1eca, 0x1ecb, 0x1ecc, 0x1ecd, 0x1ece, 0x1ecf, /* 0x1ec8-0x1ecf */
- 0x1ed0, 0x1ed1, 0x1ed2, 0x1ed3, 0x1ed4, 0x1ed5, 0x1ed6, 0x1ed7, /* 0x1ed0-0x1ed7 */
- 0x1ed8, 0x1ed9, 0x1eda, 0x1edb, 0x1edc, 0x1edd, 0x1ede, 0x1edf, /* 0x1ed8-0x1edf */
- 0x1ee0, 0x1ee1, 0x1ee2, 0x1ee3, 0x1ee4, 0x1ee5, 0x1ee6, 0x1ee7, /* 0x1ee0-0x1ee7 */
- 0x1ee8, 0x1ee9, 0x1eea, 0x1eeb, 0x1eec, 0x1eed, 0x1eee, 0x1eef, /* 0x1ee8-0x1eef */
- 0x1ef0, 0x1ef1, 0x0300, 0x0301, 0x1ef4, 0x1ef5, 0x1ef6, 0x1ef7, /* 0x1ef0-0x1ef7 */
- 0x1ef8, 0x1ef9, 0x01a0, 0x01a1, 0x01af, 0x01b0, 0x0309, 0x0323 /* 0x1ef8-0x1eff */
-};
-
-static unsigned short const keysym_to_unicode_20a0_20ac[] = {
- 0x20a0, 0x20a1, 0x20a2, 0x20a3, 0x20a4, 0x20a5, 0x20a6, 0x20a7, /* 0x20a0-0x20a7 */
- 0x20a8, 0x20a9, 0x20aa, 0x20ab, 0x20ac /* 0x20a8-0x20af */
-};
-
-unsigned int
-KeySymToUcs4(KeySym keysym)
-{
- /* 'Unicode keysym' */
- if ((keysym & 0xff000000) == 0x01000000)
- return (keysym & 0x00ffffff);
-
- if (keysym > 0 && keysym < 0x100)
- return keysym;
- else if (keysym > 0x1a0 && keysym < 0x200)
- return keysym_to_unicode_1a1_1ff[keysym - 0x1a1];
- else if (keysym > 0x2a0 && keysym < 0x2ff)
- return keysym_to_unicode_2a1_2fe[keysym - 0x2a1];
- else if (keysym > 0x3a1 && keysym < 0x3ff)
- return keysym_to_unicode_3a2_3fe[keysym - 0x3a2];
- else if (keysym > 0x4a0 && keysym < 0x4e0)
- return keysym_to_unicode_4a1_4df[keysym - 0x4a1];
- else if (keysym > 0x589 && keysym < 0x5ff)
- return keysym_to_unicode_590_5fe[keysym - 0x590];
- else if (keysym > 0x67f && keysym < 0x700)
- return keysym_to_unicode_680_6ff[keysym - 0x680];
- else if (keysym > 0x7a0 && keysym < 0x7fa)
- return keysym_to_unicode_7a1_7f9[keysym - 0x7a1];
- else if (keysym > 0x8a3 && keysym < 0x8ff)
- return keysym_to_unicode_8a4_8fe[keysym - 0x8a4];
- else if (keysym > 0x9de && keysym < 0x9f9)
- return keysym_to_unicode_9df_9f8[keysym - 0x9df];
- else if (keysym > 0xaa0 && keysym < 0xaff)
- return keysym_to_unicode_aa1_afe[keysym - 0xaa1];
- else if (keysym > 0xcde && keysym < 0xcfb)
- return keysym_to_unicode_cdf_cfa[keysym - 0xcdf];
- else if (keysym > 0xda0 && keysym < 0xdfa)
- return keysym_to_unicode_da1_df9[keysym - 0xda1];
- else if (keysym > 0xe9f && keysym < 0xf00)
- return keysym_to_unicode_ea0_eff[keysym - 0xea0];
- else if (keysym > 0x12a0 && keysym < 0x12ff)
- return keysym_to_unicode_12a1_12fe[keysym - 0x12a1];
- else if (keysym > 0x13bb && keysym < 0x13bf)
- return keysym_to_unicode_13bc_13be[keysym - 0x13bc];
- else if (keysym > 0x14a0 && keysym < 0x1500)
- return keysym_to_unicode_14a1_14ff[keysym - 0x14a1];
- else if (keysym > 0x15cf && keysym < 0x15f7)
- return keysym_to_unicode_15d0_15f6[keysym - 0x15d0];
- else if (keysym > 0x169f && keysym < 0x16f7)
- return keysym_to_unicode_16a0_16f6[keysym - 0x16a0];
- else if (keysym > 0x1e9e && keysym < 0x1f00)
- return keysym_to_unicode_1e9f_1eff[keysym - 0x1e9f];
- else if (keysym > 0x209f && keysym < 0x20ad)
- return keysym_to_unicode_20a0_20ac[keysym - 0x20a0];
- else
- return 0;
-}
diff --git a/nx-X11/lib/X11/imLcFlt.c b/nx-X11/lib/X11/imLcFlt.c
deleted file mode 100644
index 50f4c252a..000000000
--- a/nx-X11/lib/X11/imLcFlt.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/******************************************************************
-
- Copyright 1992 by Fuji Xerox Co., Ltd.
- Copyright 1992, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Fuji Xerox,
-FUJITSU LIMITED not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. Fuji Xerox, FUJITSU LIMITED make no representations
-about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJI XEROX, FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJI XEROX,
-FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
-OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author : Kazunori Nishihara Fuji Xerox
- Modifier : Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include <nx-X11/keysym.h>
-#include "Xlcint.h"
-#include "Ximint.h"
-
-Bool
-_XimLocalFilter(Display *d, Window w, XEvent *ev, XPointer client_data)
-{
- Xic ic = (Xic)client_data;
- KeySym keysym;
- static char buf[256];
- static unsigned prevcode = 0, prevstate = 0;
- unsigned currstate;
- DefTree *b = ic->private.local.base.tree;
- DTIndex t;
- Bool braille = False, anymodifier = False;
-
- if(ev->xkey.keycode == 0)
- return (False);
-
- XLookupString((XKeyEvent *)ev, buf, sizeof(buf), &keysym, NULL);
-
- if(keysym >= XK_braille_dot_1 && keysym <= XK_braille_dot_8) {
- if(ev->type == KeyPress) {
- ic->private.local.brl_pressed |=
- 1<<(keysym-XK_braille_dot_1);
- return(True);
- } else {
- if(!ic->private.local.brl_committing
- || ev->xkey.time - ic->private.local.brl_release_start > 300) {
- ic->private.local.brl_committing = ic->private.local.brl_pressed;
- ic->private.local.brl_release_start = ev->xkey.time;
- }
- ic->private.local.brl_pressed &= ~(1<<(keysym-XK_braille_dot_1));
- if(!ic->private.local.brl_pressed && ic->private.local.brl_committing) {
- /* Commited a braille pattern, let it go through compose tree */
- keysym = XK_braille_blank | ic->private.local.brl_committing;
- ev->type = KeyPress;
- braille = True;
- } else {
- return(True);
- }
- }
- }
-
- if(((Xim)ic->core.im)->private.local.top == 0 )
- goto emit_braille;
-
- currstate = ev->xkey.state;
- if(ev->type == KeyPress) {
- prevcode = ev->xkey.keycode;
- prevstate = currstate;
-
- if(IsModifierKey(keysym))
- return(False);
- prevcode = 0;
- } else {
- if(prevcode != ev->xkey.keycode)
- return False;
-
- /* For lookup, we use the state at the time when the key was pressed, */
- /* because this state was not affected by the modifier that is mapped */
- /* to the key. */
- ev->xkey.state = prevstate;
- XLookupString((XKeyEvent *)ev, buf, sizeof(buf), &keysym, NULL);
- }
-
- for(t = ic->private.local.context; t; t = b[t].next) {
- if(IsModifierKey(b[t].keysym))
- anymodifier = True;
- if(((ev->xkey.state & b[t].modifier_mask) == b[t].modifier) &&
- (keysym == b[t].keysym))
- break;
- }
-
- /* Restore the state */
- ev->xkey.state = currstate;
-
- if(t) { /* Matched */
- if(b[t].succession) { /* Intermediate */
- ic->private.local.context = b[t].succession;
- return (ev->type == KeyPress);
- } else { /* Terminate (reached to leaf) */
- ic->private.local.composed = t;
- ic->private.local.brl_committed = 0;
- /* return back to client KeyPressEvent keycode == 0 */
- ev->xkey.keycode = 0;
- ev->xkey.type = KeyPress;
- XPutBackEvent(d, ev);
- if(prevcode){
- /* For modifier key releases, restore the event, as we do not */
- /* filter it. */
- ev->xkey.type = KeyRelease;
- ev->xkey.keycode = prevcode;
- }
- /* initialize internal state for next key sequence */
- ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- return (ev->type == KeyPress);
- }
- } else { /* Unmatched */
- /* Unmatched modifier key releases abort matching only in the case that */
- /* there was any modifier that would have matched */
- if((ic->private.local.context == ((Xim)ic->core.im)->private.local.top) ||
- (ev->type == KeyRelease && !anymodifier)) {
- goto emit_braille;
- }
- /* Error (Sequence Unmatch occured) */
- /* initialize internal state for next key sequence */
- ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- return (ev->type == KeyPress);
- }
-
-emit_braille:
- if(braille) {
- /* Braille pattern is not in compose tree, emit alone */
- ic->private.local.brl_committed = ic->private.local.brl_committing;
- ic->private.local.composed = 0;
- ev->xkey.keycode = 0;
- _XPutBackEvent(d, ev);
- return(True);
- }
- return(False);
-}
diff --git a/nx-X11/lib/X11/imLcGIc.c b/nx-X11/lib/X11/imLcGIc.c
deleted file mode 100644
index 003b3897a..000000000
--- a/nx-X11/lib/X11/imLcGIc.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/******************************************************************
-
- Copyright 1992,1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-char *
-_XimLocalGetICValues(XIC xic, XIMArg *values)
-{
- Xic ic = (Xic)xic;
- XimDefICValues ic_values;
-
- _XimGetCurrentICValues(ic, &ic_values);
- return(_XimGetICValueData(ic, (XPointer)&ic_values,
- ic->private.local.ic_resources,
- ic->private.local.ic_num_resources,
- values, XIM_GETICVALUES));
-}
diff --git a/nx-X11/lib/X11/imLcIc.c b/nx-X11/lib/X11/imLcIc.c
deleted file mode 100644
index 7ab9050c1..000000000
--- a/nx-X11/lib/X11/imLcIc.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/******************************************************************
-
- Copyright 1992,1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-static void
-_XimLocalUnSetFocus(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- ((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
-
- if (ic->core.focus_window)
- _XUnregisterFilter(ic->core.im->core.display,
- ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
- return;
-}
-
-static void
-_XimLocalDestroyIC(
- XIC xic)
-{
- Xic ic = (Xic)xic;
-
- if(((Xim)ic->core.im)->private.local.current_ic == (XIC)ic) {
- ((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
- }
- if (ic->core.focus_window)
- _XUnregisterFilter(ic->core.im->core.display,
- ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
- if(ic->private.local.ic_resources) {
- Xfree(ic->private.local.ic_resources);
- ic->private.local.ic_resources = NULL;
- }
- return;
-}
-
-static void
-_XimLocalSetFocus(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- XIC current_ic = ((Xim)ic->core.im)->private.local.current_ic;
-
- if (current_ic == (XIC)ic)
- return;
-
- if (current_ic != (XIC)NULL) {
- _XimLocalUnSetFocus(current_ic);
- }
- ((Xim)ic->core.im)->private.local.current_ic = (XIC)ic;
-
- if (ic->core.focus_window)
- _XRegisterFilterByType(ic->core.im->core.display,
- ic->core.focus_window, KeyPress, KeyRelease,
- _XimLocalFilter, (XPointer)ic);
- return;
-}
-
-static void
-_XimLocalReset(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- ic->private.local.composed = 0;
- ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- ic->private.local.brl_pressed = 0;
- ic->private.local.brl_committing = 0;
- ic->private.local.brl_committed = 0;
-}
-
-static char *
-_XimLocalMbReset(
- XIC xic)
-{
- _XimLocalReset(xic);
- return (char *)NULL;
-}
-
-static wchar_t *
-_XimLocalWcReset(
- XIC xic)
-{
- _XimLocalReset(xic);
- return (wchar_t *)NULL;
-}
-
-static XICMethodsRec Local_ic_methods = {
- _XimLocalDestroyIC, /* destroy */
- _XimLocalSetFocus, /* set_focus */
- _XimLocalUnSetFocus, /* unset_focus */
- _XimLocalSetICValues, /* set_values */
- _XimLocalGetICValues, /* get_values */
- _XimLocalMbReset, /* mb_reset */
- _XimLocalWcReset, /* wc_reset */
- _XimLocalMbReset, /* utf8_reset */
- _XimLocalMbLookupString, /* mb_lookup_string */
- _XimLocalWcLookupString, /* wc_lookup_string */
- _XimLocalUtf8LookupString /* utf8_lookup_string */
-};
-
-XIC
-_XimLocalCreateIC(
- XIM im,
- XIMArg *values)
-{
- Xic ic;
- XimDefICValues ic_values;
- XIMResourceList res;
- unsigned int num;
- int len;
-
- if((ic = Xcalloc(1, sizeof(XicRec))) == (Xic)NULL) {
- return ((XIC)NULL);
- }
-
- ic->methods = &Local_ic_methods;
- ic->core.im = im;
- ic->private.local.base = ((Xim)im)->private.local.base;
- ic->private.local.context = ((Xim)im)->private.local.top;
- ic->private.local.composed = 0;
- ic->private.local.brl_pressed = 0;
- ic->private.local.brl_committing = 0;
- ic->private.local.brl_committed = 0;
-
- num = im->core.ic_num_resources;
- len = sizeof(XIMResource) * num;
- if((res = Xmalloc(len)) == (XIMResourceList)NULL) {
- goto Set_Error;
- }
- (void)memcpy((char *)res, (char *)im->core.ic_resources, len);
- ic->private.local.ic_resources = res;
- ic->private.local.ic_num_resources = num;
-
- bzero((char *)&ic_values, sizeof(XimDefICValues));
- if(_XimCheckLocalInputStyle(ic, (XPointer)&ic_values, values,
- im->core.styles, res, num) == False) {
- goto Set_Error;
- }
-
- _XimSetICMode(res, num, ic_values.input_style);
-
- if(_XimSetICValueData(ic, (XPointer)&ic_values,
- ic->private.local.ic_resources,
- ic->private.local.ic_num_resources,
- values, XIM_CREATEIC, True)) {
- goto Set_Error;
- }
- ic_values.filter_events = KeyPressMask | KeyReleaseMask;
- _XimSetCurrentICValues(ic, &ic_values);
- if(_XimSetICDefaults(ic, (XPointer)&ic_values,
- XIM_SETICDEFAULTS, res, num) == False) {
- goto Set_Error;
- }
- _XimSetCurrentICValues(ic, &ic_values);
-
- return((XIC)ic);
-
-Set_Error :
- if (ic->private.local.ic_resources) {
- Xfree(ic->private.local.ic_resources);
- ic->private.local.ic_resources = NULL;
- }
- Xfree(ic);
- return((XIC)NULL);
-}
diff --git a/nx-X11/lib/X11/imLcIm.c b/nx-X11/lib/X11/imLcIm.c
deleted file mode 100644
index b3662bc96..000000000
--- a/nx-X11/lib/X11/imLcIm.c
+++ /dev/null
@@ -1,711 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission. FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Modifier: Franky Ling Digital Equipment Corporation
- frankyling@hgrd01.enet.dec.com
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-
-#include <nx-X11/Xmd.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XlcPublic.h"
-#include "XlcPubI.h"
-#include "Ximint.h"
-#include <ctype.h>
-#include <assert.h>
-
-#ifdef COMPOSECACHE
-# include <sys/types.h>
-# include <sys/stat.h>
-# include <sys/mman.h>
-# include <langinfo.h>
-#endif
-
-
-#ifdef COMPOSECACHE
-
-/* include trailing '/' for cache directory, file prefix otherwise */
-#define XIM_GLOBAL_CACHE_DIR "/var/cache/libx11/compose/"
-#define XIM_HOME_CACHE_DIR "/.compose-cache/"
-#define XIM_CACHE_MAGIC ('X' | 'i'<<8 | 'm'<<16 | 'C'<<24)
-#define XIM_CACHE_VERSION 4
-#define XIM_CACHE_TREE_ALIGNMENT 4
-
-#define XIM_HASH_PRIME_1 13
-#define XIM_HASH_PRIME_2 1234096939
-
-typedef INT32 DTStructIndex;
-struct _XimCacheStruct {
- INT32 id;
- INT32 version;
- DTStructIndex tree;
- DTStructIndex mb;
- DTStructIndex wc;
- DTStructIndex utf8;
- DTStructIndex size;
- DTIndex top;
- DTIndex treeused;
- DTCharIndex mbused;
- DTCharIndex wcused;
- DTCharIndex utf8used;
- char fname[1];
- /* char encoding[1] */
-};
-
-static struct _XimCacheStruct* _XimCache_mmap = NULL;
-static DefTreeBase _XimCachedDefaultTreeBase;
-static int _XimCachedDefaultTreeRefcount = 0;
-
-#endif
-
-
-Bool
-_XimCheckIfLocalProcessing(Xim im)
-{
- FILE *fp;
- char *name;
-
- if(strcmp(im->core.im_name, "") == 0) {
- name = _XlcFileName(im->core.lcd, COMPOSE_FILE);
- if (name != (char *)NULL) {
- fp = _XFopenFile (name, "r");
- Xfree(name);
- if (fp != (FILE *)NULL) {
- fclose(fp);
- return(True);
- }
- }
- return(False);
- } else if(strcmp(im->core.im_name, "local") == 0 ||
- strcmp(im->core.im_name, "none" ) == 0 ) {
- return(True);
- }
- return(False);
-}
-
-static void
-XimFreeDefaultTree(
- DefTreeBase *b)
-{
- if (!b) return;
- if (b->tree == NULL) return;
-#ifdef COMPOSECACHE
- if (b->tree == _XimCachedDefaultTreeBase.tree) {
- _XimCachedDefaultTreeRefcount--;
- /* No deleting, it's a cache after all. */
- return;
- }
-#endif
- Xfree (b->tree);
- b->tree = NULL;
- Xfree (b->mb);
- b->mb = NULL;
- Xfree (b->wc);
- b->wc = NULL;
- Xfree (b->utf8);
- b->utf8 = NULL;
-
- b->treeused = b->treesize = 0;
- b->mbused = b->mbsize = 0;
- b->wcused = b->wcsize = 0;
- b->utf8used = b->utf8size = 0;
-}
-
-void
-_XimLocalIMFree(
- Xim im)
-{
- XimFreeDefaultTree(&im->private.local.base);
- im->private.local.top = 0;
-
- Xfree(im->core.im_resources);
- im->core.im_resources = NULL;
-
- Xfree(im->core.ic_resources);
- im->core.ic_resources = NULL;
-
- Xfree(im->core.im_values_list);
- im->core.im_values_list = NULL;
-
- Xfree(im->core.ic_values_list);
- im->core.ic_values_list = NULL;
-
- Xfree(im->core.styles);
- im->core.styles = NULL;
-
- Xfree(im->core.res_name);
- im->core.res_name = NULL;
-
- Xfree(im->core.res_class);
- im->core.res_class = NULL;
-
- Xfree(im->core.im_name);
- im->core.im_name = NULL;
-
- if (im->private.local.ctom_conv) {
- _XlcCloseConverter(im->private.local.ctom_conv);
- im->private.local.ctom_conv = NULL;
- }
- if (im->private.local.ctow_conv) {
- _XlcCloseConverter(im->private.local.ctow_conv);
- im->private.local.ctow_conv = NULL;
- }
- if (im->private.local.ctoutf8_conv) {
- _XlcCloseConverter(im->private.local.ctoutf8_conv);
- im->private.local.ctoutf8_conv = NULL;
- }
- if (im->private.local.cstomb_conv) {
- _XlcCloseConverter(im->private.local.cstomb_conv);
- im->private.local.cstomb_conv = NULL;
- }
- if (im->private.local.cstowc_conv) {
- _XlcCloseConverter(im->private.local.cstowc_conv);
- im->private.local.cstowc_conv = NULL;
- }
- if (im->private.local.cstoutf8_conv) {
- _XlcCloseConverter(im->private.local.cstoutf8_conv);
- im->private.local.cstoutf8_conv = NULL;
- }
- if (im->private.local.ucstoc_conv) {
- _XlcCloseConverter(im->private.local.ucstoc_conv);
- im->private.local.ucstoc_conv = NULL;
- }
- if (im->private.local.ucstoutf8_conv) {
- _XlcCloseConverter(im->private.local.ucstoutf8_conv);
- im->private.local.ucstoutf8_conv = NULL;
- }
- return;
-}
-
-static Status
-_XimLocalCloseIM(
- XIM xim)
-{
- Xim im = (Xim)xim;
- XIC ic;
- XIC next;
-
- ic = im->core.ic_chain;
- im->core.ic_chain = NULL;
- while (ic) {
- (*ic->methods->destroy) (ic);
- next = ic->core.next;
- Xfree (ic);
- ic = next;
- }
- _XimLocalIMFree(im);
- _XimDestroyIMStructureList(im);
- return(True);
-}
-
-char *
-_XimLocalGetIMValues(
- XIM xim,
- XIMArg *values)
-{
- Xim im = (Xim)xim;
- XimDefIMValues im_values;
-
- _XimGetCurrentIMValues(im, &im_values);
- return(_XimGetIMValueData(im, (XPointer)&im_values, values,
- im->core.im_resources, im->core.im_num_resources));
-}
-
-char *
-_XimLocalSetIMValues(
- XIM xim,
- XIMArg *values)
-{
- Xim im = (Xim)xim;
- XimDefIMValues im_values;
- char *name = (char *)NULL;
-
- _XimGetCurrentIMValues(im, &im_values);
- name = _XimSetIMValueData(im, (XPointer)&im_values, values,
- im->core.im_resources, im->core.im_num_resources);
- _XimSetCurrentIMValues(im, &im_values);
- return(name);
-}
-
-
-#ifdef COMPOSECACHE
-
-static Bool
-_XimReadCachedDefaultTree(
- int fd_cache,
- const char *name,
- const char *encoding,
- DTStructIndex size)
-{
- struct _XimCacheStruct* m;
- int namelen = strlen (name) + 1;
- int encodinglen = strlen (encoding) + 1;
-
- m = mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd_cache, 0);
- if (m == NULL || m == MAP_FAILED)
- return False;
- assert (m->id == XIM_CACHE_MAGIC);
- assert (m->version == XIM_CACHE_VERSION);
- if (size != m->size ||
- size < XOffsetOf (struct _XimCacheStruct, fname) + namelen + encodinglen) {
- fprintf (stderr, "Ignoring broken XimCache %s [%s]\n", name, encoding);
- munmap (m, size);
- return False;
- }
- if (strncmp (name, m->fname, namelen) != 0) {
- /* m->fname may *not* be terminated - but who cares here */
- fprintf (stderr, "Filename hash clash - expected %s, got %s\n",
- name, m->fname);
- munmap (m, size);
- return False;
- }
- if (strncmp (encoding, m->fname + namelen, encodinglen) != 0) {
- /* m->fname+namelen may *not* be terminated - but who cares here */
- fprintf (stderr, "Enoding hash clash - expected %s, got %s\n",
- encoding, m->fname + namelen);
- munmap (m, size);
- return False;
- }
- _XimCache_mmap = m;
- _XimCachedDefaultTreeBase.tree = (DefTree *) (((char *) m) + m->tree);
- _XimCachedDefaultTreeBase.mb = (((char *) m) + m->mb);
- _XimCachedDefaultTreeBase.wc = (wchar_t *) (((char *) m) + m->wc);
- _XimCachedDefaultTreeBase.utf8 = (((char *) m) + m->utf8);
- _XimCachedDefaultTreeBase.treeused = m->treeused;
- _XimCachedDefaultTreeBase.mbused = m->mbused;
- _XimCachedDefaultTreeBase.wcused = m->wcused;
- _XimCachedDefaultTreeBase.utf8used = m->utf8used;
- /* treesize etc. is ignored because only used during parsing */
- _XimCachedDefaultTreeRefcount = 0;
-/* fprintf (stderr, "read cached tree at %p: %s\n", (void *) m, name); */
- return True;
-}
-
-static unsigned int strToHash (
- const char *name)
-{
- unsigned int hash = 0;
- while (*name)
- hash = hash * XIM_HASH_PRIME_1 + *(unsigned const char *)name++;
- return hash % XIM_HASH_PRIME_2;
-}
-
-
-/* Returns read-only fd of cache file, -1 if none.
- * Sets *res to cache filename if safe. Sets *size to file size of cache. */
-static int _XimCachedFileName (
- const char *dir, const char *name,
- const char *intname, const char *encoding,
- uid_t uid, int isglobal, char **res, off_t *size)
-{
- struct stat st_name, st;
- int fd;
- unsigned int len, hash, hash2;
- struct _XimCacheStruct *m;
- /* There are some races here with 'dir', but we are either in our own home
- * or the global cache dir, and not inside some public writable dir */
-/* fprintf (stderr, "XimCachedFileName for dir %s name %s intname %s encoding %s uid %d\n", dir, name, intname, encoding, uid); */
- if (stat (name, &st_name) == -1 || ! S_ISREG (st_name.st_mode)
- || stat (dir, &st) == -1 || ! S_ISDIR (st.st_mode) || st.st_uid != uid
- || (st.st_mode & 0022) != 0000) {
- *res = NULL;
- return -1;
- }
- len = strlen (dir);
- hash = strToHash (intname);
- hash2 = strToHash (encoding);
- *res = Xmalloc (len + 1 + 27 + 1); /* Max VERSION 9999 */
-
- if (len == 0 || dir [len-1] != '/')
- sprintf (*res, "%s/%c%d_%03x_%08x_%08x", dir, _XimGetMyEndian(),
- XIM_CACHE_VERSION, (unsigned int)sizeof (DefTree), hash, hash2);
- else
- sprintf (*res, "%s%c%d_%03x_%08x_%08x", dir, _XimGetMyEndian(),
- XIM_CACHE_VERSION, (unsigned int)sizeof (DefTree), hash, hash2);
-
-/* fprintf (stderr, "-> %s\n", *res); */
- if ( (fd = _XOpenFile (*res, O_RDONLY)) == -1)
- return -1;
-
- if (fstat (fd, &st) == -1) {
- Xfree (*res);
- *res = NULL;
- close (fd);
- return -1;
- }
- *size = st.st_size;
-
- if (! S_ISREG (st.st_mode) || st.st_uid != uid
- || (st.st_mode & 0022) != 0000 || st.st_mtime <= st_name.st_mtime
- || (st.st_mtime < time (NULL) - 24*60*60 && ! isglobal)) {
-
- close (fd);
- if (unlink (*res) != 0) {
- Xfree (*res);
- *res = NULL; /* cache is not safe */
- }
- return -1;
- }
-
- m = mmap (NULL, sizeof (struct _XimCacheStruct), PROT_READ, MAP_PRIVATE,
- fd, 0);
- if (m == NULL || m == MAP_FAILED) {
- close (fd);
- Xfree (*res);
- *res = NULL;
- return -1;
- }
- if (*size < sizeof (struct _XimCacheStruct) || m->id != XIM_CACHE_MAGIC) {
- munmap (m, sizeof (struct _XimCacheStruct));
- close (fd);
- fprintf (stderr, "Ignoring broken XimCache %s\n", *res);
- Xfree (*res);
- *res = NULL;
- return -1;
- }
- if (m->version != XIM_CACHE_VERSION) {
- munmap (m, sizeof (struct _XimCacheStruct));
- close (fd);
- if (unlink (*res) != 0) {
- Xfree (*res);
- *res = NULL; /* cache is not safe */
- }
- return -1;
- }
- munmap (m, sizeof (struct _XimCacheStruct));
-
- return fd;
-}
-
-
-static Bool _XimLoadCache (
- int fd,
- const char *name,
- const char *encoding,
- off_t size,
- Xim im)
-{
- if (_XimCache_mmap ||
- _XimReadCachedDefaultTree (fd, name, encoding, size)) {
- _XimCachedDefaultTreeRefcount++;
- memcpy (&im->private.local.base, &_XimCachedDefaultTreeBase,
- sizeof (_XimCachedDefaultTreeBase));
- im->private.local.top = _XimCache_mmap->top;
- return True;
- }
-
- return False;
-}
-
-
-static void
-_XimWriteCachedDefaultTree(
- const char *name,
- const char *encoding,
- const char *cachename,
- Xim im)
-{
- int fd;
- FILE *fp;
- struct _XimCacheStruct *m;
- int msize = (XOffsetOf(struct _XimCacheStruct, fname)
- + strlen(name) + strlen(encoding) + 2
- + XIM_CACHE_TREE_ALIGNMENT-1) & -XIM_CACHE_TREE_ALIGNMENT;
- DefTreeBase *b = &im->private.local.base;
-
- if (! b->tree && ! (b->tree = Xcalloc (1, sizeof(DefTree))) )
- return;
- if (! b->mb && ! (b->mb = Xmalloc (1)) )
- return;
- if (! b->wc && ! (b->wc = Xmalloc (sizeof(wchar_t))) )
- return;
- if (! b->utf8 && ! (b->utf8 = Xmalloc (1)) )
- return;
-
- /* First entry is always unused */
- b->mb[0] = 0;
- b->wc[0] = 0;
- b->utf8[0] = 0;
-
- m = Xcalloc (1, msize);
- m->id = XIM_CACHE_MAGIC;
- m->version = XIM_CACHE_VERSION;
- m->top = im->private.local.top;
- m->treeused = b->treeused;
- m->mbused = b->mbused;
- m->wcused = b->wcused;
- m->utf8used = b->utf8used;
- /* Tree first, then wide chars, then the rest due to alignment */
- m->tree = msize;
- m->wc = msize + sizeof (DefTree) * m->treeused;
- m->mb = m->wc + sizeof (wchar_t) * m->wcused;
- m->utf8 = m->mb + m->mbused;
- m->size = m->utf8 + m->utf8used;
- strcpy (m->fname, name);
- strcpy (m->fname+strlen(name)+1, encoding);
-
- /* This STILL might be racy on NFS */
- if ( (fd = _XOpenFileMode (cachename, O_WRONLY | O_CREAT | O_EXCL,
- 0600)) < 0) {
- Xfree(m);
- return;
- }
- if (! (fp = fdopen (fd, "wb")) ) {
- close (fd);
- Xfree(m);
- return;
- }
- fwrite (m, msize, 1, fp);
- fwrite (im->private.local.base.tree, sizeof(DefTree), m->treeused, fp);
- fwrite (im->private.local.base.wc, sizeof(wchar_t), m->wcused, fp);
- fwrite (im->private.local.base.mb, 1, m->mbused, fp);
- fwrite (im->private.local.base.utf8, 1, m->utf8used, fp);
- if (fclose (fp) != 0)
- unlink (cachename);
- _XimCache_mmap = m;
- memcpy (&_XimCachedDefaultTreeBase, &im->private.local.base,
- sizeof (_XimCachedDefaultTreeBase));
-/* fprintf (stderr, "wrote tree %s size %ld to %s\n", name, m->size, cachename); */
-}
-
-#endif
-
-
-static void
-_XimCreateDefaultTree(
- Xim im)
-{
- FILE *fp = NULL;
- char *name, *tmpname = NULL;
- char *cachename = NULL;
- /* Should use getpwent() instead of $HOME (cross-platform?) */
- char *home = getenv("HOME");
- char *tmpcachedir = NULL;
- int hl = home ? strlen (home) : 0;
-#ifdef COMPOSECACHE
- char *intname;
- char *cachedir = NULL;
- const char *encoding = nl_langinfo (CODESET);
- uid_t euid = geteuid ();
- gid_t egid = getegid ();
- int cachefd = -1;
- off_t size;
-#endif
-
- name = getenv("XCOMPOSEFILE");
- if (name == (char *) NULL) {
- if (home != (char *) NULL) {
- tmpname = name = Xmalloc(hl + 10 + 1);
- if (name != (char *) NULL) {
- int fd;
- strcpy(name, home);
- strcpy(name + hl, "/.XCompose");
- if ( (fd = _XOpenFile (name, O_RDONLY)) < 0) {
- Xfree (name);
- name = tmpname = NULL;
- } else
- close (fd);
- }
- }
- }
-
- if (name == (char *) NULL) {
- tmpname = name = _XlcFileName(im->core.lcd, COMPOSE_FILE);
- }
-#ifdef COMPOSECACHE
- intname = name;
-
- if (getuid () == euid && getgid () == egid && euid != 0) {
- char *c;
- /* Usage: XCOMPOSECACHE=<cachedir>[=<filename>]
- * cachedir: directory of cache files
- * filename: internally used name for cache file */
- cachedir = getenv("XCOMPOSECACHE");
- if (cachedir && (c = strchr (cachedir, '='))) {
- tmpcachedir = strdup (cachedir);
- intname = tmpcachedir + (c-cachedir) + 1;
- tmpcachedir[c-cachedir] = '\0';
- cachedir = tmpcachedir;
- }
- }
-
- if (! cachedir) {
- cachefd = _XimCachedFileName (XIM_GLOBAL_CACHE_DIR, name, intname,
- encoding, 0, 1, &cachename, &size);
- if (cachefd != -1) {
- if (_XimLoadCache (cachefd, intname, encoding, size, im)) {
- Xfree (tmpcachedir);
- Xfree (tmpname);
- Xfree (cachename);
- close (cachefd);
- return;
- }
- close (cachefd);
- }
- Xfree (cachename);
- cachename = NULL;
- }
-
- if (getuid () == euid && getgid () == egid && euid != 0 && home) {
-
- if (! cachedir) {
- tmpcachedir = cachedir = Xmalloc (hl+strlen(XIM_HOME_CACHE_DIR)+1);
- strcpy (cachedir, home);
- strcat (cachedir, XIM_HOME_CACHE_DIR);
- }
- cachefd = _XimCachedFileName (cachedir, name, intname, encoding,
- euid, 0, &cachename, &size);
- if (cachefd != -1) {
- if (_XimLoadCache (cachefd, intname, encoding, size, im)) {
- Xfree (tmpcachedir);
- Xfree (tmpname);
- Xfree (cachename);
- close (cachefd);
- return;
- }
- close (cachefd);
- }
- }
-#endif
-
- if (! (fp = _XFopenFile (name, "r"))) {
- Xfree (tmpcachedir);
- Xfree (tmpname);
- Xfree (cachename);
- return;
- }
- _XimParseStringFile(fp, im);
- fclose(fp);
-
-#ifdef COMPOSECACHE
- if (cachename) {
- assert (euid != 0);
- _XimWriteCachedDefaultTree (intname, encoding, cachename, im);
- }
-#endif
-
- Xfree (tmpcachedir);
- Xfree (tmpname);
- Xfree (cachename);
-}
-
-static XIMMethodsRec Xim_im_local_methods = {
- _XimLocalCloseIM, /* close */
- _XimLocalSetIMValues, /* set_values */
- _XimLocalGetIMValues, /* get_values */
- _XimLocalCreateIC, /* create_ic */
- _XimLcctstombs, /* ctstombs */
- _XimLcctstowcs, /* ctstowcs */
- _XimLcctstoutf8 /* ctstoutf8 */
-};
-
-Bool
-_XimLocalOpenIM(
- Xim im)
-{
- XLCd lcd = im->core.lcd;
- XlcConv conv;
- XimDefIMValues im_values;
- XimLocalPrivateRec* private = &im->private.local;
-
- _XimInitialResourceInfo();
- if(_XimSetIMResourceList(&im->core.im_resources,
- &im->core.im_num_resources) == False) {
- goto Open_Error;
- }
- if(_XimSetICResourceList(&im->core.ic_resources,
- &im->core.ic_num_resources) == False) {
- goto Open_Error;
- }
-
- _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
-
- _XimGetCurrentIMValues(im, &im_values);
- if(_XimSetLocalIMDefaults(im, (XPointer)&im_values,
- im->core.im_resources, im->core.im_num_resources) == False) {
- goto Open_Error;
- }
- _XimSetCurrentIMValues(im, &im_values);
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte)))
- goto Open_Error;
- private->ctom_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar)))
- goto Open_Error;
- private->ctow_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNUtf8String)))
- goto Open_Error;
- private->ctoutf8_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
- goto Open_Error;
- private->cstomb_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
- goto Open_Error;
- private->cstowc_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
- goto Open_Error;
- private->cstoutf8_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
- goto Open_Error;
- private->ucstoc_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
- goto Open_Error;
- private->ucstoutf8_conv = conv;
-
- private->base.treeused = 1;
- private->base.mbused = 1;
- private->base.wcused = 1;
- private->base.utf8used = 1;
-
- _XimCreateDefaultTree(im);
-
- im->methods = &Xim_im_local_methods;
- private->current_ic = (XIC)NULL;
-
- return(True);
-
-Open_Error :
- _XimLocalIMFree(im);
- return(False);
-}
diff --git a/nx-X11/lib/X11/imLcLkup.c b/nx-X11/lib/X11/imLcLkup.c
deleted file mode 100644
index 878b8e350..000000000
--- a/nx-X11/lib/X11/imLcLkup.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/******************************************************************
-
- Copyright 1992 by Fuji Xerox Co., Ltd.
- Copyright 1992, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Fuji Xerox,
-FUJITSU LIMITED not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. Fuji Xerox, FUJITSU LIMITED make no representations
-about the suitability of this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJI XEROX, FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJI XEROX,
-FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
-OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Kazunori Nishihara Fuji Xerox
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/keysym.h>
-#include <nx-X11/Xutil.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XlcPubI.h"
-#include "Ximint.h"
-
-int
-_XimLocalMbLookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
- KeySym *keysym, Status *status)
-{
- Xic ic = (Xic)xic;
- int ret;
- DefTree *b = ic->private.local.base.tree;
- char *mb = ic->private.local.base.mb;
-
- if(ev->type != KeyPress) {
- if(status) *status = XLookupNone;
- return(0);
- }
- if(ev->keycode == 0 &&
- ( (ic->private.local.composed != 0)
- ||(ic->private.local.brl_committed != 0))) {
- if (ic->private.local.brl_committed != 0) { /* Braille Event */
- unsigned char pattern = ic->private.local.brl_committed;
- char mb[XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)];
- ret = _Xlcwctomb(ic->core.im->core.lcd, mb, BRL_UC_ROW | pattern);
- if(ret > bytes) {
- if(status) *status = XBufferOverflow;
- return(ret);
- }
- if(keysym) *keysym = XK_braille_blank | pattern;
- if(ret > 0) {
- if (keysym) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- memcpy(buffer, mb, ret);
- } else {
- if(keysym) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- } else { /* Composed Event */
- ret = strlen(&mb[b[ic->private.local.composed].mb]);
- if(ret > bytes) {
- if(status) *status = XBufferOverflow;
- return(ret);
- }
- memcpy(buffer, &mb[b[ic->private.local.composed].mb], ret);
- if(keysym) *keysym = b[ic->private.local.composed].ks;
- if (ret > 0) {
- if (keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- } else {
- if(keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- }
- return (ret);
- } else { /* Throughed Event */
- ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
- if(ret > 0) {
- if (ret > bytes) {
- if (status) *status = XBufferOverflow;
- } else if (keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- } else {
- if(keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- }
- return (ret);
-}
-
-int
-_XimLocalWcLookupString(XIC xic, XKeyEvent *ev, wchar_t *buffer, int wlen,
- KeySym *keysym, Status *status)
-{
- Xic ic = (Xic)xic;
- int ret;
- DefTree *b = ic->private.local.base.tree;
- wchar_t *wc = ic->private.local.base.wc;
-
- if(ev->type != KeyPress) {
- if(status) *status = XLookupNone;
- return(0);
- }
- if(ev->keycode == 0) {
- if (ic->private.local.brl_committed != 0) { /* Braille Event */
- unsigned char pattern = ic->private.local.brl_committed;
- ret = 1;
- if (ret > wlen) {
- if(status) *status = XBufferOverflow;
- return (ret);
- }
- *buffer = BRL_UC_ROW | pattern;
- if(keysym) {
- *keysym = XK_braille_blank | pattern;
- if(status) *status = XLookupBoth;
- } else
- if(status) *status = XLookupChars;
- } else { /* Composed Event */
- ret = _Xwcslen(&wc[b[ic->private.local.composed].wc]);
- if(ret > wlen) {
- if(status) *status = XBufferOverflow;
- return (ret);
- }
- memcpy((char *)buffer, (char *)&wc[b[ic->private.local.composed].wc],
- ret * sizeof(wchar_t));
- if(keysym) *keysym = b[ic->private.local.composed].ks;
- if (ret > 0) {
- if (keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- } else {
- if(keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- }
- return (ret);
- } else { /* Throughed Event */
- ret = _XimLookupWCText(ic, ev, buffer, wlen, keysym, NULL);
- if(ret > 0) {
- if (ret > wlen) {
- if (status) *status = XBufferOverflow;
- } else if (keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- } else {
- if(keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- }
- return (ret);
-}
-
-int
-_XimLocalUtf8LookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
- KeySym *keysym, Status *status)
-{
- Xic ic = (Xic)xic;
- int ret;
- DefTree *b = ic->private.local.base.tree;
- char *utf8 = ic->private.local.base.utf8;
-
- if(ev->type != KeyPress) {
- if(status) *status = XLookupNone;
- return(0);
- }
- if(ev->keycode == 0) {
- if (ic->private.local.brl_committed != 0) { /* Braille Event */
- unsigned char pattern = ic->private.local.brl_committed;
- ret = 3;
- if (ret > bytes) {
- if(status) *status = XBufferOverflow;
- return (ret);
- }
- buffer[0] = 0xe0 | ((BRL_UC_ROW >> 12) & 0x0f);
- buffer[1] = 0x80 | ((BRL_UC_ROW >> 8) & 0x30) | (pattern >> 6);
- buffer[2] = 0x80 | (pattern & 0x3f);
- if(keysym) {
- *keysym = XK_braille_blank | pattern;
- if(status) *status = XLookupBoth;
- } else
- if(status) *status = XLookupChars;
- } else { /* Composed Event */
- ret = strlen(&utf8[b[ic->private.local.composed].utf8]);
- if(ret > bytes) {
- if(status) *status = XBufferOverflow;
- return (ret);
- }
- memcpy(buffer, &utf8[b[ic->private.local.composed].utf8], ret);
- if(keysym) *keysym = b[ic->private.local.composed].ks;
- if (ret > 0) {
- if (keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- } else {
- if(keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- }
- return (ret);
- } else { /* Throughed Event */
- ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
- if(ret > 0) {
- if (ret > bytes) {
- if (status) *status = XBufferOverflow;
- } else if (keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupBoth;
- } else {
- if(status) *status = XLookupChars;
- }
- } else {
- if(keysym && *keysym != NoSymbol) {
- if(status) *status = XLookupKeySym;
- } else {
- if(status) *status = XLookupNone;
- }
- }
- }
- return (ret);
-}
-
-static int
-_XimLcctsconvert(
- XlcConv conv,
- char *from,
- int from_len,
- char *to,
- int to_len,
- Status *state)
-{
- int from_left;
- int to_left;
- int from_savelen;
- int to_savelen;
- int from_cnvlen;
- int to_cnvlen;
- char *from_buf;
- char *to_buf;
- char scratchbuf[BUFSIZ];
- Status tmp_state;
-
- if (!state)
- state = &tmp_state;
-
- if (!conv || !from || !from_len) {
- *state = XLookupNone;
- return 0;
- }
-
- /* Reset the converter. The CompoundText at 'from' starts in
- initial state. */
- _XlcResetConverter(conv);
-
- from_left = from_len;
- to_left = BUFSIZ;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_buf = &from[from_cnvlen];
- from_savelen = from_left;
- to_buf = &scratchbuf[to_cnvlen];
- to_savelen = to_left;
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (!to_cnvlen) {
- *state = XLookupNone;
- return 0;
- }
- break;
- }
- }
-
- if (!to || !to_len || (to_len < to_cnvlen)) {
- *state = XBufferOverflow;
- } else {
- memcpy(to, scratchbuf, to_cnvlen);
- *state = XLookupChars;
- }
- return to_cnvlen;
-}
-
-int
-_XimLcctstombs(XIM xim, char *from, int from_len,
- char *to, int to_len, Status *state)
-{
- return _XimLcctsconvert(((Xim)xim)->private.local.ctom_conv,
- from, from_len, to, to_len, state);
-}
-
-int
-_XimLcctstowcs(XIM xim, char *from, int from_len,
- wchar_t *to, int to_len, Status *state)
-{
- Xim im = (Xim)xim;
- XlcConv conv = im->private.local.ctow_conv;
- int from_left;
- int to_left;
- int from_savelen;
- int to_savelen;
- int from_cnvlen;
- int to_cnvlen;
- char *from_buf;
- wchar_t *to_buf;
- wchar_t scratchbuf[BUFSIZ];
- Status tmp_state;
-
- if (!state)
- state = &tmp_state;
-
- if (!conv || !from || !from_len) {
- *state = XLookupNone;
- return 0;
- }
-
- /* Reset the converter. The CompoundText at 'from' starts in
- initial state. */
- _XlcResetConverter(conv);
-
- from_left = from_len;
- to_left = BUFSIZ;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_buf = &from[from_cnvlen];
- from_savelen = from_left;
- to_buf = &scratchbuf[to_cnvlen];
- to_savelen = to_left;
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (!to_cnvlen){
- *state = XLookupNone;
- return 0;
- }
- break;
- }
- }
-
- if (!to || !to_len || (to_len < to_cnvlen)) {
- *state = XBufferOverflow;
- } else {
- memcpy(to, scratchbuf, to_cnvlen * sizeof(wchar_t));
- *state = XLookupChars;
- }
- return to_cnvlen;
-}
-
-int
-_XimLcctstoutf8(XIM xim, char *from, int from_len,
- char *to, int to_len, Status *state)
-{
- return _XimLcctsconvert(((Xim)xim)->private.local.ctoutf8_conv,
- from, from_len, to, to_len, state);
-}
diff --git a/nx-X11/lib/X11/imLcPrs.c b/nx-X11/lib/X11/imLcPrs.c
deleted file mode 100644
index fa992e5d3..000000000
--- a/nx-X11/lib/X11/imLcPrs.c
+++ /dev/null
@@ -1,741 +0,0 @@
-/******************************************************************
-
- Copyright 1992 by Oki Technosystems Laboratory, Inc.
- Copyright 1992 by Fuji Xerox Co., Ltd.
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Oki Technosystems
-Laboratory and Fuji Xerox not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission.
-Oki Technosystems Laboratory and Fuji Xerox make no representations
-about the suitability of this software for any purpose. It is provided
-"as is" without express or implied warranty.
-
-OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS
-LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
-
- Author: Yasuhiro Kawai Oki Technosystems Laboratory
- Author: Kazunori Nishihara Fuji Xerox
-
-******************************************************************/
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include <sys/stat.h>
-#include <stdio.h>
-#include <limits.h>
-#include "pathmax.h"
-
-#define XLC_BUFSIZE 256
-
-extern int _Xmbstowcs(
- wchar_t *wstr,
- char *str,
- int len
-);
-
-extern int _Xmbstoutf8(
- char *ustr,
- const char *str,
- int len
-);
-
-static void parsestringfile(FILE *fp, Xim im, int depth);
-
-/*
- * Parsing File Format:
- *
- * FILE ::= { [PRODUCTION] [COMMENT] "\n"}
- * PRODUCTION ::= LHS ":" RHS [ COMMENT ]
- * COMMENT ::= "#" {<any character except null or newline>}
- * LHS ::= EVENT { EVENT }
- * EVENT ::= [MODIFIER_LIST] "<" keysym ">"
- * MODIFIER_LIST ::= (["!"] {MODIFIER} ) | "None"
- * MODIFIER ::= ["~"] MODIFIER_NAME
- * MODIFIER_NAME ::= ("Ctrl"|"Lock"|"Caps"|"Shift"|"Alt"|"Meta")
- * RHS ::= ( STRING | keysym | STRING keysym )
- * STRING ::= '"' { CHAR } '"'
- * CHAR ::= GRAPHIC_CHAR | ESCAPED_CHAR
- * GRAPHIC_CHAR ::= locale (codeset) dependent code
- * ESCAPED_CHAR ::= ('\\' | '\"' | OCTAL | HEX )
- * OCTAL ::= '\' OCTAL_CHAR [OCTAL_CHAR [OCTAL_CHAR]]
- * OCTAL_CHAR ::= (0|1|2|3|4|5|6|7)
- * HEX ::= '\' (x|X) HEX_CHAR [HEX_CHAR]]
- * HEX_CHAR ::= (0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|a|b|c|d|e|f)
- *
- */
-
-static int
-nextch(
- FILE *fp,
- int *lastch)
-{
- int c;
-
- if (*lastch != 0) {
- c = *lastch;
- *lastch = 0;
- } else {
- c = getc(fp);
- if (c == '\\') {
- c = getc(fp);
- if (c == '\n') {
- c = getc(fp);
- } else {
- ungetc(c, fp);
- c = '\\';
- }
- }
- }
- return(c);
-}
-
-static void
-putbackch(
- int c,
- int *lastch)
-{
- *lastch = c;
-}
-
-#define ENDOFFILE 0
-#define ENDOFLINE 1
-#define COLON 2
-#define LESS 3
-#define GREATER 4
-#define EXCLAM 5
-#define TILDE 6
-#define STRING 7
-#define KEY 8
-#define ERROR 9
-
-#ifndef isalnum
-#define isalnum(c) \
- (('0' <= (c) && (c) <= '9') || \
- ('A' <= (c) && (c) <= 'Z') || \
- ('a' <= (c) && (c) <= 'z'))
-#endif
-
-static int
-nexttoken(
- FILE *fp,
- char *tokenbuf,
- int *lastch)
-{
- int c;
- int token;
- char *p;
- int i, j;
-
- while ((c = nextch(fp, lastch)) == ' ' || c == '\t') {
- }
- switch (c) {
- case EOF:
- token = ENDOFFILE;
- break;
- case '\n':
- token = ENDOFLINE;
- break;
- case '<':
- token = LESS;
- break;
- case '>':
- token = GREATER;
- break;
- case ':':
- token = COLON;
- break;
- case '!':
- token = EXCLAM;
- break;
- case '~':
- token = TILDE;
- break;
- case '"':
- p = tokenbuf;
- while ((c = nextch(fp, lastch)) != '"') {
- if (c == '\n' || c == EOF) {
- putbackch(c, lastch);
- token = ERROR;
- goto string_error;
- } else if (c == '\\') {
- c = nextch(fp, lastch);
- switch (c) {
- case '\\':
- case '"':
- *p++ = c;
- break;
- case 'n':
- *p++ = '\n';
- break;
- case 'r':
- *p++ = '\r';
- break;
- case 't':
- *p++ = '\t';
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- i = c - '0';
- c = nextch(fp, lastch);
- for (j = 0; j < 2 && c >= '0' && c <= '7'; j++) {
- i <<= 3;
- i += c - '0';
- c = nextch(fp, lastch);
- }
- putbackch(c, lastch);
- *p++ = (char)i;
- break;
- case 'X':
- case 'x':
- i = 0;
- for (j = 0; j < 2; j++) {
- c = nextch(fp, lastch);
- i <<= 4;
- if (c >= '0' && c <= '9') {
- i += c - '0';
- } else if (c >= 'A' && c <= 'F') {
- i += c - 'A' + 10;
- } else if (c >= 'a' && c <= 'f') {
- i += c - 'a' + 10;
- } else {
- putbackch(c, lastch);
- i >>= 4;
- break;
- }
- }
- if (j == 0) {
- token = ERROR;
- goto string_error;
- }
- *p++ = (char)i;
- break;
- case EOF:
- putbackch(c, lastch);
- token = ERROR;
- goto string_error;
- default:
- *p++ = c;
- break;
- }
- } else {
- *p++ = c;
- }
- }
- *p = '\0';
- token = STRING;
- break;
- case '#':
- while ((c = nextch(fp, lastch)) != '\n' && c != EOF) {
- }
- if (c == '\n') {
- token = ENDOFLINE;
- } else {
- token = ENDOFFILE;
- }
- break;
- default:
- if (isalnum(c) || c == '_' || c == '-') {
- p = tokenbuf;
- *p++ = c;
- c = nextch(fp, lastch);
- while (isalnum(c) || c == '_' || c == '-') {
- *p++ = c;
- c = nextch(fp, lastch);
- }
- *p = '\0';
- putbackch(c, lastch);
- token = KEY;
- } else {
- token = ERROR;
- }
- break;
- }
-string_error:
- return(token);
-}
-
-static long
-modmask(
- char *name)
-{
- struct _modtbl {
- const char name[6];
- long mask;
- };
-
- static const struct _modtbl tbl[] = {
- { "Ctrl", ControlMask },
- { "Lock", LockMask },
- { "Caps", LockMask },
- { "Shift", ShiftMask },
- { "Alt", Mod1Mask },
- { "Meta", Mod1Mask }};
-
- int i, num_entries = sizeof (tbl) / sizeof (tbl[0]);
-
- for (i = 0; i < num_entries; i++)
- if (!strcmp (name, tbl[i].name))
- return tbl[i].mask;
-
- return 0;
-}
-
-static char*
-TransFileName(Xim im, char *name)
-{
- char *home = NULL, *lcCompose = NULL;
- char dir[XLC_BUFSIZE] = "";
- char *i = name, *ret = NULL, *j;
- size_t l = 0;
-
- while (*i) {
- if (*i == '%') {
- i++;
- switch (*i) {
- case '%':
- l++;
- break;
- case 'H':
- if (home == NULL)
- home = getenv("HOME");
- if (home) {
- size_t Hsize = strlen(home);
- if (Hsize > PATH_MAX)
- /* your home directory length is ridiculous */
- goto end;
- l += Hsize;
- }
- break;
- case 'L':
- if (lcCompose == NULL)
- lcCompose = _XlcFileName(im->core.lcd, COMPOSE_FILE);
- if (lcCompose) {
- size_t Lsize = strlen(lcCompose);
- if (Lsize > PATH_MAX)
- /* your compose pathname length is ridiculous */
- goto end;
- l += Lsize;
- }
- break;
- case 'S':
- if (dir[0] == '\0')
- xlocaledir(dir, XLC_BUFSIZE);
- if (dir[0]) {
- size_t Ssize = strlen(dir);
- if (Ssize > PATH_MAX)
- /* your locale directory path length is ridiculous */
- goto end;
- l += Ssize;
- }
- break;
- }
- } else {
- l++;
- }
- i++;
- if (l > PATH_MAX)
- /* your expanded path length is ridiculous */
- goto end;
- }
-
- j = ret = Xmalloc(l+1);
- if (ret == NULL)
- goto end;
- i = name;
- while (*i) {
- if (*i == '%') {
- i++;
- switch (*i) {
- case '%':
- *j++ = '%';
- break;
- case 'H':
- if (home) {
- strcpy(j, home);
- j += strlen(home);
- }
- break;
- case 'L':
- if (lcCompose) {
- strcpy(j, lcCompose);
- j += strlen(lcCompose);
- }
- break;
- case 'S':
- strcpy(j, dir);
- j += strlen(dir);
- break;
- }
- i++;
- } else {
- *j++ = *i++;
- }
- }
- *j = '\0';
-end:
- Xfree(lcCompose);
- return ret;
-}
-
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 6
-#endif
-
-static int
-get_mb_string (Xim im, char *buf, KeySym ks)
-{
- XPointer from, to;
- int from_len, to_len, len;
- XPointer args[1];
- XlcCharSet charset;
- char local_buf[MB_LEN_MAX];
- unsigned int ucs;
- ucs = KeySymToUcs4(ks);
-
- from = (XPointer) &ucs;
- to = (XPointer) local_buf;
- from_len = 1;
- to_len = MB_LEN_MAX;
- args[0] = (XPointer) &charset;
- if (_XlcConvert(im->private.local.ucstoc_conv,
- &from, &from_len, &to, &to_len, args, 1 ) != 0) {
- return 0;
- }
-
- from = (XPointer) local_buf;
- to = (XPointer) buf;
- from_len = MB_LEN_MAX - to_len;
- to_len = MB_LEN_MAX + 1;
- args[0] = (XPointer) charset;
- if (_XlcConvert(im->private.local.cstomb_conv,
- &from, &from_len, &to, &to_len, args, 1 ) != 0) {
- return 0;
- }
- len = MB_LEN_MAX + 1 - to_len;
- buf[len] = '\0';
- return len;
-}
-
-#define AllMask (ShiftMask | LockMask | ControlMask | Mod1Mask)
-#define LOCAL_WC_BUFSIZE 128
-#define LOCAL_UTF8_BUFSIZE 256
-#define SEQUENCE_MAX 10
-
-static int
-parseline(
- FILE *fp,
- Xim im,
- char* tokenbuf,
- int depth)
-{
- int token;
- DTModifier modifier_mask;
- DTModifier modifier;
- DTModifier tmp;
- KeySym keysym = NoSymbol;
- DTIndex *top = &im->private.local.top;
- DefTreeBase *b = &im->private.local.base;
- DTIndex t;
- DefTree *p = NULL;
- Bool exclam, tilde;
- KeySym rhs_keysym = 0;
- char *rhs_string_mb;
- int l;
- int lastch = 0;
- char local_mb_buf[MB_LEN_MAX+1];
- wchar_t local_wc_buf[LOCAL_WC_BUFSIZE], *rhs_string_wc;
- char local_utf8_buf[LOCAL_UTF8_BUFSIZE], *rhs_string_utf8;
-
- struct DefBuffer {
- DTModifier modifier_mask;
- DTModifier modifier;
- KeySym keysym;
- };
-
- struct DefBuffer buf[SEQUENCE_MAX];
- int i, n;
-
- do {
- token = nexttoken(fp, tokenbuf, &lastch);
- } while (token == ENDOFLINE);
-
- if (token == ENDOFFILE) {
- return(-1);
- }
-
- n = 0;
- do {
- if ((token == KEY) && (strcmp("include", tokenbuf) == 0)) {
- char *filename;
- FILE *infp;
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token != KEY && token != STRING)
- goto error;
- if (++depth > 100)
- goto error;
- if ((filename = TransFileName(im, tokenbuf)) == NULL)
- goto error;
- infp = _XFopenFile(filename, "r");
- Xfree(filename);
- if (infp == NULL)
- goto error;
- parsestringfile(infp, im, depth);
- fclose(infp);
- return (0);
- } else if ((token == KEY) && (strcmp("None", tokenbuf) == 0)) {
- modifier = 0;
- modifier_mask = AllMask;
- token = nexttoken(fp, tokenbuf, &lastch);
- } else {
- modifier_mask = modifier = 0;
- exclam = False;
- if (token == EXCLAM) {
- exclam = True;
- token = nexttoken(fp, tokenbuf, &lastch);
- }
- while (token == TILDE || token == KEY) {
- tilde = False;
- if (token == TILDE) {
- tilde = True;
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token != KEY)
- goto error;
- }
- tmp = modmask(tokenbuf);
- if (!tmp) {
- goto error;
- }
- modifier_mask |= tmp;
- if (tilde) {
- modifier &= ~tmp;
- } else {
- modifier |= tmp;
- }
- token = nexttoken(fp, tokenbuf, &lastch);
- }
- if (exclam) {
- modifier_mask = AllMask;
- }
- }
-
- if (token != LESS) {
- goto error;
- }
-
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token != KEY) {
- goto error;
- }
-
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token != GREATER) {
- goto error;
- }
-
- keysym = XStringToKeysym(tokenbuf);
- if (keysym == NoSymbol) {
- goto error;
- }
-
- buf[n].keysym = keysym;
- buf[n].modifier = modifier;
- buf[n].modifier_mask = modifier_mask;
- n++;
- if( n >= SEQUENCE_MAX )
- goto error;
- token = nexttoken(fp, tokenbuf, &lastch);
- } while (token != COLON);
-
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token == STRING) {
- l = strlen(tokenbuf) + 1;
- while (b->mbused + l > b->mbsize) {
- DTCharIndex newsize = b->mbsize ? b->mbsize * 1.5 : 1024;
- char *newmb = Xrealloc (b->mb, newsize);
- if (newmb == NULL)
- goto error;
- b->mb = newmb;
- b->mbsize = newsize;
- }
- rhs_string_mb = &b->mb[b->mbused];
- b->mbused += l;
- strcpy(rhs_string_mb, tokenbuf);
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token == KEY) {
- rhs_keysym = XStringToKeysym(tokenbuf);
- if (rhs_keysym == NoSymbol) {
- goto error;
- }
- token = nexttoken(fp, tokenbuf, &lastch);
- }
- if (token != ENDOFLINE && token != ENDOFFILE) {
- goto error;
- }
- } else if (token == KEY) {
- rhs_keysym = XStringToKeysym(tokenbuf);
- if (rhs_keysym == NoSymbol) {
- goto error;
- }
- token = nexttoken(fp, tokenbuf, &lastch);
- if (token != ENDOFLINE && token != ENDOFFILE) {
- goto error;
- }
-
- l = get_mb_string(im, local_mb_buf, rhs_keysym);
- while (b->mbused + l + 1 > b->mbsize) {
- DTCharIndex newsize = b->mbsize ? b->mbsize * 1.5 : 1024;
- char *newmb = Xrealloc (b->mb, newsize);
- if (newmb == NULL)
- goto error;
- b->mb = newmb;
- b->mbsize = newsize;
- }
- rhs_string_mb = &b->mb[b->mbused];
- b->mbused += l + 1;
- memcpy(rhs_string_mb, local_mb_buf, l);
- rhs_string_mb[l] = '\0';
- } else {
- goto error;
- }
-
- l = _Xmbstowcs(local_wc_buf, rhs_string_mb, LOCAL_WC_BUFSIZE - 1);
- if (l == LOCAL_WC_BUFSIZE - 1) {
- local_wc_buf[l] = (wchar_t)'\0';
- }
- while (b->wcused + l + 1 > b->wcsize) {
- DTCharIndex newsize = b->wcsize ? b->wcsize * 1.5 : 512;
- wchar_t *newwc = Xrealloc (b->wc, sizeof(wchar_t) * newsize);
- if (newwc == NULL)
- goto error;
- b->wc = newwc;
- b->wcsize = newsize;
- }
- rhs_string_wc = &b->wc[b->wcused];
- b->wcused += l + 1;
- memcpy((char *)rhs_string_wc, (char *)local_wc_buf, (l + 1) * sizeof(wchar_t) );
-
- l = _Xmbstoutf8(local_utf8_buf, rhs_string_mb, LOCAL_UTF8_BUFSIZE - 1);
- if (l == LOCAL_UTF8_BUFSIZE - 1) {
- local_utf8_buf[l] = '\0';
- }
- while (b->utf8used + l + 1 > b->utf8size) {
- DTCharIndex newsize = b->utf8size ? b->utf8size * 1.5 : 1024;
- char *newutf8 = Xrealloc (b->utf8, newsize);
- if (newutf8 == NULL)
- goto error;
- b->utf8 = newutf8;
- b->utf8size = newsize;
- }
- rhs_string_utf8 = &b->utf8[b->utf8used];
- b->utf8used += l + 1;
- memcpy(rhs_string_utf8, local_utf8_buf, l + 1);
-
- for (i = 0; i < n; i++) {
- for (t = *top; t; t = b->tree[t].next) {
- if (buf[i].keysym == b->tree[t].keysym &&
- buf[i].modifier == b->tree[t].modifier &&
- buf[i].modifier_mask == b->tree[t].modifier_mask) {
- break;
- }
- }
- if (t) {
- p = &b->tree[t];
- top = &p->succession;
- } else {
- while (b->treeused >= b->treesize) {
- DefTree *old = b->tree;
- int oldsize = b->treesize;
- int newsize = b->treesize ? b->treesize * 1.5 : 256;
- DefTree *new = Xrealloc (b->tree, sizeof(DefTree) * newsize);
- if (new == NULL)
- goto error;
- b->tree = new;
- b->treesize = newsize;
- if (top >= (DTIndex *) old && top < (DTIndex *) &old[oldsize])
- top = (DTIndex *) (((char *) top) + (((char *)b->tree)-(char *)old));
- }
- p = &b->tree[b->treeused];
- p->keysym = buf[i].keysym;
- p->modifier = buf[i].modifier;
- p->modifier_mask = buf[i].modifier_mask;
- p->succession = 0;
- p->next = *top;
- p->mb = 0;
- p->wc = 0;
- p->utf8 = 0;
- p->ks = NoSymbol;
- *top = b->treeused;
- top = &p->succession;
- b->treeused++;
- }
- }
-
- /* old entries no longer freed... */
- p->mb = rhs_string_mb - b->mb;
- p->wc = rhs_string_wc - b->wc;
- p->utf8 = rhs_string_utf8 - b->utf8;
- p->ks = rhs_keysym;
- return(n);
-error:
- while (token != ENDOFLINE && token != ENDOFFILE) {
- token = nexttoken(fp, tokenbuf, &lastch);
- }
- return(0);
-}
-
-void
-_XimParseStringFile(
- FILE *fp,
- Xim im)
-{
- parsestringfile(fp, im, 0);
-}
-
-static void
-parsestringfile(
- FILE *fp,
- Xim im,
- int depth)
-{
- char tb[8192];
- char* tbp;
- struct stat st;
-
- if (fstat (fileno (fp), &st) != -1) {
- unsigned long size = (unsigned long) st.st_size;
- if (st.st_size >= INT_MAX)
- return;
- if (size <= sizeof tb) tbp = tb;
- else tbp = malloc (size);
-
- if (tbp != NULL) {
- while (parseline(fp, im, tbp, depth) >= 0) {}
- if (tbp != tb) free (tbp);
- }
- }
-}
diff --git a/nx-X11/lib/X11/imLcSIc.c b/nx-X11/lib/X11/imLcSIc.c
deleted file mode 100644
index 944bd8abd..000000000
--- a/nx-X11/lib/X11/imLcSIc.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/******************************************************************
-
- Copyright 1990, 1991, 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include <nx-X11/Xutil.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-char *
-_XimLocalSetICValues(XIC xic, XIMArg *values)
-{
- XimDefICValues ic_values;
- Xic ic = (Xic)xic;
- char *name;
-
- _XimGetCurrentICValues(ic, &ic_values);
- name = _XimSetICValueData(ic, (XPointer)&ic_values,
- ic->private.local.ic_resources,
- ic->private.local.ic_num_resources,
- values, XIM_SETICVALUES, True);
- _XimSetCurrentICValues(ic, &ic_values);
- return(name);
-}
diff --git a/nx-X11/lib/X11/imRm.c b/nx-X11/lib/X11/imRm.c
deleted file mode 100644
index 373217173..000000000
--- a/nx-X11/lib/X11/imRm.c
+++ /dev/null
@@ -1,3212 +0,0 @@
-/******************************************************************
-
- Copyright 1990, 1991, 1992,1993, 1994 by FUJITSU LIMITED
- Copyright 1994 by Sony Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-and Sony Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific,
-written prior permission. FUJITSU LIMITED and Sony Corporation make
-no representations about the suitability of this software for any
-purpose. It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED AND SONY CORPORATION DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU LIMITED AND
-SONY CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Modifier: Makoto Wakamatsu Sony Corporation
- makoto@sm.sony.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "Xresource.h"
-
-#define GET_NAME(x) name_table + x.name_offset
-
-typedef struct _XimValueOffsetInfo {
- unsigned short name_offset;
- XrmQuark quark;
- unsigned int offset;
- Bool (*defaults)(
- struct _XimValueOffsetInfo *, XPointer, XPointer, unsigned long
- );
- Bool (*encode)(
- struct _XimValueOffsetInfo *, XPointer, XPointer
- );
- Bool (*decode)(
- struct _XimValueOffsetInfo *, XPointer, XPointer
- );
-} XimValueOffsetInfoRec, *XimValueOffsetInfo;
-
-#ifdef XIM_CONNECTABLE
-static Bool
-_XimCheckBool(str)
- char *str;
-{
- if(!strcmp(str, "True") || !strcmp(str, "true") ||
- !strcmp(str, "Yes") || !strcmp(str, "yes") ||
- !strcmp(str, "ON") || !strcmp(str, "on"))
- return True;
- return False;
-}
-
-void
-_XimSetProtoResource(im)
- Xim im;
-{
- char res_name_buf[256];
- char* res_name;
- size_t res_name_len;
- char res_class_buf[256];
- char* res_class;
- size_t res_class_len;
- char* str_type;
- XrmValue value;
- XIMStyle preedit_style = 0;
- XIMStyle status_style = 0;
- XIMStyles* imstyles;
- char* dotximdot = ".xim.";
- char* ximdot = "xim.";
- char* dotXimdot = ".Xim.";
- char* Ximdot = "Xim.";
-
- if (!im->core.rdb)
- return;
-
- res_name_len = strlen (im->core.res_name);
- if (res_name_len < 200) {
- res_name = res_name_buf;
- res_name_len = sizeof(res_name_buf);
- }
- else {
- res_name_len += 50;
- res_name = Xmalloc (res_name_len);
- }
- res_class_len = strlen (im->core.res_class);
- if (res_class_len < 200) {
- res_class = res_class_buf;
- res_class_len = sizeof(res_class_buf);
- }
- else {
- res_class_len += 50;
- res_class = Xmalloc (res_class_len);
- }
- /* pretend malloc always works */
-
- (void) snprintf (res_name, res_name_len, "%s%s%s",
- im->core.res_name != NULL ? im->core.res_name : "*",
- im->core.res_name != NULL ? dotximdot : ximdot,
- "useAuth");
- (void) snprintf (res_class, res_class_len, "%s%s%s",
- im->core.res_class != NULL ? im->core.res_class : "*",
- im->core.res_class != NULL ? dotXimdot : Ximdot,
- "UseAuth");
- bzero(&value, sizeof(XrmValue));
- if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
- if(_XimCheckBool(value.addr)) {
- MARK_USE_AUTHORIZATION_FUNC(im);
- }
- }
-
- (void) snprintf (res_name, res_name_len, "%s%s%s",
- im->core.res_name != NULL ? im->core.res_name : "*",
- im->core.res_name != NULL ? dotximdot : ximdot,
- "delaybinding");
- (void) snprintf (res_class, res_class_len, "%s%s%s",
- im->core.res_class != NULL ? im->core.res_class : "*",
- im->core.res_class != NULL ? dotXimdot : Ximdot,
- "Delaybinding");
- bzero(&value, sizeof(XrmValue));
- if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
- if(_XimCheckBool(value.addr)) {
- MARK_DELAYBINDABLE(im);
- }
- }
-
- (void) snprintf (res_name, res_name_len, "%s%s%s",
- im->core.res_name != NULL ? im->core.res_name : "*",
- im->core.res_name != NULL ? dotximdot : ximdot,
- "reconnect");
- (void) snprintf (res_class, res_class_len, "%s%s%s",
- im->core.res_class != NULL ? im->core.res_class : "*",
- im->core.res_class != NULL ? dotXimdot : Ximdot,
- "Reconnect");
- bzero(&value, sizeof(XrmValue));
- if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
- if(_XimCheckBool(value.addr)) {
- MARK_RECONNECTABLE(im);
- }
- }
-
- if(!IS_CONNECTABLE(im)) {
- if (res_name != res_name_buf) Xfree (res_name);
- if (res_class != res_class_buf) Xfree (res_class);
- return;
- }
-
- (void) snprintf (res_name, res_name_len, "%s%s%s",
- im->core.res_name != NULL ? im->core.res_name : "*",
- im->core.res_name != NULL ? dotximdot : ximdot,
- "preeditDefaultStyle");
- (void) snprintf (res_class, res_class_len, "%s%s%s",
- im->core.res_class != NULL ? im->core.res_class : "*",
- im->core.res_class != NULL ? dotXimdot : Ximdot,
- "PreeditDefaultStyle");
- if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
- if(!strcmp(value.addr, "XIMPreeditArea"))
- preedit_style = XIMPreeditArea;
- else if(!strcmp(value.addr, "XIMPreeditCallbacks"))
- preedit_style = XIMPreeditCallbacks;
- else if(!strcmp(value.addr, "XIMPreeditPosition"))
- preedit_style = XIMPreeditPosition;
- else if(!strcmp(value.addr, "XIMPreeditNothing"))
- preedit_style = XIMPreeditNothing;
- else if(!strcmp(value.addr, "XIMPreeditNone"))
- preedit_style = XIMPreeditNone;
- }
- if(!preedit_style)
- preedit_style = XIMPreeditNothing;
-
- (void) snprintf (res_name, res_name_len, "%s%s%s",
- im->core.res_name != NULL ? im->core.res_name : "*",
- im->core.res_name != NULL ? dotximdot : ximdot,
- "statusDefaultStyle");
- (void) snprintf (res_class, res_class_len, "%s%s%s",
- im->core.res_class != NULL ? im->core.res_class : "*",
- im->core.res_class != NULL ? dotXimdot : Ximdot,
- "StatusDefaultStyle");
- if(XrmGetResource(im->core.rdb, res_name, res_class, &str_type, &value)) {
- if(!strcmp(value.addr, "XIMStatusArea"))
- status_style = XIMStatusArea;
- else if(!strcmp(value.addr, "XIMStatusCallbacks"))
- status_style = XIMStatusCallbacks;
- else if(!strcmp(value.addr, "XIMStatusNothing"))
- status_style = XIMStatusNothing;
- else if(!strcmp(value.addr, "XIMStatusNone"))
- status_style = XIMStatusNone;
- }
- if(!status_style)
- status_style = XIMStatusNothing;
-
- if(!(imstyles = Xmalloc(sizeof(XIMStyles) + sizeof(XIMStyle)))){
- if (res_name != res_name_buf) Xfree (res_name);
- if (res_class != res_class_buf) Xfree (res_class);
- return;
- }
- imstyles->count_styles = 1;
- imstyles->supported_styles =
- (XIMStyle *)((char *)imstyles + sizeof(XIMStyles));
- imstyles->supported_styles[0] = preedit_style | status_style;
- im->private.proto.default_styles = imstyles;
- if (res_name != res_name_buf) Xfree (res_name);
- if (res_class != res_class_buf) Xfree (res_class);
-}
-#endif /* XIM_CONNECTABLE */
-
-static const char name_table[] =
- /* 0 */ XNQueryInputStyle"\0"
- /* 16 */ XNClientWindow"\0"
- /* 29 */ XNInputStyle"\0"
- /* 40 */ XNFocusWindow"\0"
- /* 52 */ XNResourceName"\0"
- /* 65 */ XNResourceClass"\0"
- /* 79 */ XNGeometryCallback"\0"
- /* 96 */ XNDestroyCallback"\0"
- /* 112 */ XNFilterEvents"\0"
- /* 125 */ XNPreeditStartCallback"\0"
- /* 146 */ XNPreeditDoneCallback"\0"
- /* 166 */ XNPreeditDrawCallback"\0"
- /* 186 */ XNPreeditCaretCallback"\0"
- /* 207 */ XNPreeditStateNotifyCallback"\0"
- /* 234 */ XNPreeditAttributes"\0"
- /* 252 */ XNStatusStartCallback"\0"
- /* 272 */ XNStatusDoneCallback"\0"
- /* 291 */ XNStatusDrawCallback"\0"
- /* 310 */ XNStatusAttributes"\0"
- /* 327 */ XNArea"\0"
- /* 332 */ XNAreaNeeded"\0"
- /* 343 */ XNSpotLocation"\0"
- /* 356 */ XNColormap"\0"
- /* 365 */ XNStdColormap"\0"
- /* 377 */ XNForeground"\0"
- /* 388 */ XNBackground"\0"
- /* 399 */ XNBackgroundPixmap"\0"
- /* 416 */ XNFontSet"\0"
- /* 424 */ XNLineSpace"\0"
- /* 434 */ XNCursor"\0"
- /* 441 */ XNQueryIMValuesList"\0"
- /* 459 */ XNQueryICValuesList"\0"
- /* 477 */ XNVisiblePosition"\0"
- /* 493 */ XNStringConversionCallback"\0"
- /* 518 */ XNStringConversion"\0"
- /* 535 */ XNResetState"\0"
- /* 546 */ XNHotKey"\0"
- /* 553 */ XNHotKeyState"\0"
- /* 565 */ XNPreeditState
-;
-
-#define OFFSET_XNQUERYINPUTSTYLE 0
-#define OFFSET_XNCLIENTWINDOW 16
-#define OFFSET_XNINPUTSTYLE 29
-#define OFFSET_XNFOCUSWINDOW 40
-#define OFFSET_XNRESOURCENAME 52
-#define OFFSET_XNRESOURCECLASS 65
-#define OFFSET_XNGEOMETRYCALLBACK 79
-#define OFFSET_XNDESTROYCALLBACK 96
-#define OFFSET_XNFILTEREVENTS 112
-#define OFFSET_XNPREEDITSTARTCALLBACK 125
-#define OFFSET_XNPREEDITDONECALLBACK 146
-#define OFFSET_XNPREEDITDRAWCALLBACK 166
-#define OFFSET_XNPREEDITCARETCALLBACK 186
-#define OFFSET_XNPREEDITSTATENOTIFYCALLBACK 207
-#define OFFSET_XNPREEDITATTRIBUTES 234
-#define OFFSET_XNSTATUSSTARTCALLBACK 252
-#define OFFSET_XNSTATUSDONECALLBACK 272
-#define OFFSET_XNSTATUSDRAWCALLBACK 291
-#define OFFSET_XNSTATUSATTRIBUTES 310
-#define OFFSET_XNAREA 327
-#define OFFSET_XNAREANEEDED 332
-#define OFFSET_XNSPOTLOCATION 343
-#define OFFSET_XNCOLORMAP 356
-#define OFFSET_XNSTDCOLORMAP 365
-#define OFFSET_XNFOREGROUND 377
-#define OFFSET_XNBACKGROUND 388
-#define OFFSET_XNBACKGROUNDPIXMAP 399
-#define OFFSET_XNFONTSET 416
-#define OFFSET_XNLINESPACE 424
-#define OFFSET_XNCURSOR 434
-#define OFFSET_XNQUERYIMVALUESLIST 441
-#define OFFSET_XNQUERYICVALUESLIST 459
-#define OFFSET_XNVISIBLEPOSITION 477
-#define OFFSET_XNSTRINGCONVERSIONCALLBACK 493
-#define OFFSET_XNSTRINGCONVERSION 518
-#define OFFSET_XNRESETSTATE 535
-#define OFFSET_XNHOTKEY 546
-#define OFFSET_XNHOTKEYSTATE 553
-#define OFFSET_XNPREEDITSTATE 565
-
-/* offsets into name_table */
-static const unsigned short supported_local_im_values_list[] = {
- OFFSET_XNQUERYINPUTSTYLE,
- OFFSET_XNRESOURCENAME,
- OFFSET_XNRESOURCECLASS,
- OFFSET_XNDESTROYCALLBACK,
- OFFSET_XNQUERYIMVALUESLIST,
- OFFSET_XNQUERYICVALUESLIST,
- OFFSET_XNVISIBLEPOSITION
-};
-
-/* offsets into name_table */
-static const unsigned short supported_local_ic_values_list[] = {
- OFFSET_XNINPUTSTYLE,
- OFFSET_XNCLIENTWINDOW,
- OFFSET_XNFOCUSWINDOW,
- OFFSET_XNRESOURCENAME,
- OFFSET_XNRESOURCECLASS,
- OFFSET_XNGEOMETRYCALLBACK,
- OFFSET_XNFILTEREVENTS,
- OFFSET_XNDESTROYCALLBACK,
- OFFSET_XNSTRINGCONVERSIONCALLBACK,
- OFFSET_XNSTRINGCONVERSIONCALLBACK,
- OFFSET_XNRESETSTATE,
- OFFSET_XNHOTKEY,
- OFFSET_XNHOTKEYSTATE,
- OFFSET_XNPREEDITATTRIBUTES,
- OFFSET_XNSTATUSATTRIBUTES,
- OFFSET_XNAREA,
- OFFSET_XNAREANEEDED,
- OFFSET_XNSPOTLOCATION,
- OFFSET_XNCOLORMAP,
- OFFSET_XNSTDCOLORMAP,
- OFFSET_XNFOREGROUND,
- OFFSET_XNBACKGROUND,
- OFFSET_XNBACKGROUNDPIXMAP,
- OFFSET_XNFONTSET,
- OFFSET_XNLINESPACE,
- OFFSET_XNCURSOR,
- OFFSET_XNPREEDITSTARTCALLBACK,
- OFFSET_XNPREEDITDONECALLBACK,
- OFFSET_XNPREEDITDRAWCALLBACK,
- OFFSET_XNPREEDITCARETCALLBACK,
- OFFSET_XNSTATUSSTARTCALLBACK,
- OFFSET_XNSTATUSDONECALLBACK,
- OFFSET_XNSTATUSDRAWCALLBACK,
- OFFSET_XNPREEDITSTATE,
- OFFSET_XNPREEDITSTATENOTIFYCALLBACK
-};
-
-static XIMStyle const supported_local_styles[] = {
- XIMPreeditNone | XIMStatusNone,
- XIMPreeditNothing | XIMStatusNothing,
- 0 /* dummy */
-};
-
-static Bool
-_XimDefaultStyles(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm, /* unused */
- unsigned long mode) /* unused */
-{
- XIMStyles *styles;
- XIMStyles **out;
- register int i;
- unsigned int n;
- int len;
- XPointer tmp;
-
- n = XIMNumber(supported_local_styles) - 1;
- len = sizeof(XIMStyles) + sizeof(XIMStyle) * n;
- if(!(tmp = Xcalloc(1, len))) {
- return False;
- }
-
- styles = (XIMStyles *)tmp;
- if (n > 0) {
- styles->count_styles = (unsigned short)n;
- styles->supported_styles =
- (XIMStyle *)((char *)tmp + sizeof(XIMStyles));
- for(i = 0; i < n; i++) {
- styles->supported_styles[i] = supported_local_styles[i];
- }
- }
-
- out = (XIMStyles **)((char *)top + info->offset);
- *out = styles;
- return True;
-}
-
-static Bool
-_XimDefaultIMValues(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm, /* unused */
- unsigned long mode) /* unused */
-{
- XIMValuesList *values_list;
- XIMValuesList **out;
- register int i;
- unsigned int n;
- int len;
- XPointer tmp;
-
- n = XIMNumber(supported_local_im_values_list);
- len = sizeof(XIMValuesList) + sizeof(char **) * n;
- if(!(tmp = Xcalloc(1, len))) {
- return False;
- }
-
- values_list = (XIMValuesList *)tmp;
- if (n > 0) {
- values_list->count_values = (unsigned short)n;
- values_list->supported_values
- = (char **)((char *)tmp + sizeof(XIMValuesList));
- for(i = 0; i < n; i++) {
- values_list->supported_values[i] =
- (char *)name_table + supported_local_im_values_list[i];
- }
- }
-
- out = (XIMValuesList **)((char *)top + info->offset);
- *out = values_list;
- return True;
-}
-
-static Bool
-_XimDefaultICValues(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm, /* unused */
- unsigned long mode) /* unused */
-{
- XIMValuesList *values_list;
- XIMValuesList **out;
- register int i;
- unsigned int n;
- int len;
- XPointer tmp;
-
- n = XIMNumber(supported_local_ic_values_list);
- len = sizeof(XIMValuesList) + sizeof(char **) * n;
- if(!(tmp = Xcalloc(1, len))) {
- return False;
- }
-
- values_list = (XIMValuesList *)tmp;
- if (n > 0) {
- values_list->count_values = (unsigned short)n;
- values_list->supported_values
- = (char **)((char *)tmp + sizeof(XIMValuesList));
- for(i = 0; i < n; i++) {
- values_list->supported_values[i] =
- (char *)name_table + supported_local_ic_values_list[i];
- }
- }
-
- out = (XIMValuesList **)((char *)top + info->offset);
- *out = values_list;
- return True;
-}
-
-static Bool
-_XimDefaultVisiblePos(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm, /* unused */
- unsigned long mode) /* unused */
-{
- Bool *out;
-
- out = (Bool *)((char *)top + info->offset);
- *out = False;
- return True;
-}
-
-static Bool
-_XimDefaultFocusWindow(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Window *out;
-
- if(ic->core.client_window == (Window)NULL) {
- return True;
- }
-
- out = (Window *)((char *)top + info->offset);
- *out = ic->core.client_window;
- return True;
-}
-
-static Bool
-_XimDefaultResName(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- char **out;
-
- if(im->core.res_name == (char *)NULL) {
- return True;
- }
-
- out = (char **)((char *)top + info->offset);
- *out = im->core.res_name;
- return True;
-}
-
-static Bool
-_XimDefaultResClass(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- char **out;
-
- if(im->core.res_class == (char *)NULL) {
- return True;
- }
-
- out = (char **)((char *)top + info->offset);
- *out = im->core.res_class;
- return True;
-}
-
-static Bool
-_XimDefaultDestroyCB(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- XIMCallback *out;
-
- out = (XIMCallback *)((char *)top + info->offset);
- *out = im->core.destroy_callback;
- return True;
-}
-
-static Bool
-_XimDefaultResetState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- XIMResetState *out;
-
- out = (XIMResetState *)((char *)top + info->offset);
- *out = XIMInitialState;
- return True;
-}
-
-static Bool
-_XimDefaultHotKeyState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- XIMHotKeyState *out;
-
- out = (XIMHotKeyState *)((char *)top + info->offset);
- *out = XIMHotKeyStateOFF;
- return True;
-}
-
-static Bool
-_XimDefaultArea(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- Window root_return;
- int x_return, y_return;
- unsigned int width_return, height_return;
- unsigned int border_width_return;
- unsigned int depth_return;
- XRectangle area;
- XRectangle *out;
-
- if(ic->core.focus_window == (Window)NULL) {
- return True;
- }
- if(XGetGeometry(im->core.display, (Drawable)ic->core.focus_window,
- &root_return, &x_return, &y_return, &width_return,
- &height_return, &border_width_return, &depth_return)
- == (Status)Success) {
- return True;
- }
- area.x = 0;
- area.y = 0;
- area.width = width_return;
- area.height = height_return;
-
- out = (XRectangle *)((char *)top + info->offset);
- *out = area;
- return True;
-}
-
-static Bool
-_XimDefaultColormap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- XWindowAttributes win_attr;
- Colormap *out;
-
- if(ic->core.client_window == (Window)NULL) {
- return True;
- }
- if(XGetWindowAttributes(im->core.display, ic->core.client_window,
- &win_attr) == (Status)Success) {
- return True;
- }
-
- out = (Colormap *)((char *)top + info->offset);
- *out = win_attr.colormap;
- return True;
-}
-
-static Bool
-_XimDefaultStdColormap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Atom *out;
-
- out = (Atom *)((char *)top + info->offset);
- *out = (Atom)0;
- return True;
-}
-
-static Bool
-_XimDefaultFg(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- unsigned long fg;
- unsigned long *out;
-
- fg = WhitePixel(im->core.display, DefaultScreen(im->core.display));
- out = (unsigned long *)((char *)top + info->offset);
- *out = fg;
- return True;
-}
-
-static Bool
-_XimDefaultBg(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- Xim im = (Xim)ic->core.im;
- unsigned long bg;
- unsigned long *out;
-
- bg = BlackPixel(im->core.display, DefaultScreen(im->core.display));
- out = (unsigned long *)((char *)top + info->offset);
- *out = bg;
- return True;
-}
-
-static Bool
-_XimDefaultBgPixmap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Pixmap *out;
-
- out = (Pixmap *)((char *)top + info->offset);
- *out = (Pixmap)0;
- return True;
-}
-
-static Bool
-_XimDefaultFontSet(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- XFontSet *out;
-
- out = (XFontSet *)((char *)top + info->offset);
- *out = 0;
- return True;
-}
-
-static Bool
-_XimDefaultLineSpace(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Xic ic = (Xic)parm;
- XFontSet fontset;
- XFontSetExtents *fset_extents;
- int line_space = 0;
- int *out;
-
- if(mode & XIM_PREEDIT_ATTR) {
- fontset = ic->core.preedit_attr.fontset;
- } else if(mode & XIM_STATUS_ATTR) {
- fontset = ic->core.status_attr.fontset;
- } else {
- return True;
- }
- if (fontset) {
- fset_extents = XExtentsOfFontSet(fontset);
- line_space = fset_extents->max_logical_extent.height;
- }
- out = (int *)((char *)top + info->offset);
- *out = line_space;
- return True;
-}
-
-static Bool
-_XimDefaultCursor(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- Cursor *out;
-
- out = (Cursor *)((char *)top + info->offset);
- *out = (Cursor)0;
- return True;
-}
-
-static Bool
-_XimDefaultPreeditState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- XIMPreeditState *out;
-
- out = (XIMPreeditState *)((char *)top + info->offset);
- *out = XIMPreeditDisable;
- return True;
-}
-
-static Bool
-_XimDefaultNest(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer parm,
- unsigned long mode)
-{
- return True;
-}
-
-static Bool
-_XimEncodeCallback(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMCallback *out;
-
- out = (XIMCallback *)((char *)top + info->offset);
- *out = *((XIMCallback *)val);
- return True;
-}
-
-static Bool
-_XimEncodeString(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- char *string;
- char **out;
-
- if(val == (XPointer)NULL) {
- return False;
- }
- if (!(string = strdup((char *)val))) {
- return False;
- }
-
- out = (char **)((char *)top + info->offset);
- if(*out) {
- Xfree(*out);
- }
- *out = string;
- return True;
-}
-
-static Bool
-_XimEncodeStyle(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMStyle *out;
-
- out = (XIMStyle *)((char *)top + info->offset);
- *out = (XIMStyle)val;
- return True;
-}
-
-static Bool
-_XimEncodeWindow(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Window *out;
-
- out = (Window *)((char *)top + info->offset);
- *out = (Window)val;
- return True;
-}
-
-static Bool
-_XimEncodeStringConv(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- /*
- * Not yet
- */
- return True;
-}
-
-static Bool
-_XimEncodeResetState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMResetState *out;
-
- out = (XIMResetState *)((char *)top + info->offset);
- *out = (XIMResetState)val;
- return True;
-}
-
-static Bool
-_XimEncodeHotKey(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMHotKeyTriggers *hotkey = (XIMHotKeyTriggers *)val;
- XIMHotKeyTriggers **out;
- XIMHotKeyTriggers *key_list;
- XIMHotKeyTrigger *key;
- XPointer tmp;
- int num;
- int len;
- register int i;
-
- if(hotkey == (XIMHotKeyTriggers *)NULL) {
- return True;
- }
-
- if((num = hotkey->num_hot_key) == 0) {
- return True;
- }
-
- len = sizeof(XIMHotKeyTriggers) + sizeof(XIMHotKeyTrigger) * num;
- if(!(tmp = Xmalloc(len))) {
- return False;
- }
-
- key_list = (XIMHotKeyTriggers *)tmp;
- key = (XIMHotKeyTrigger *)((char *)tmp + sizeof(XIMHotKeyTriggers));
-
- for(i = 0; i < num; i++) {
- key[i] = hotkey->key[i];
- }
-
- key_list->num_hot_key = num;
- key_list->key = key;
-
- out = (XIMHotKeyTriggers **)((char *)top + info->offset);
- *out = key_list;
- return True;
-}
-
-static Bool
-_XimEncodeHotKetState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMHotKeyState *out;
-
- out = (XIMHotKeyState *)((char *)top + info->offset);
- *out = (XIMHotKeyState)val;
- return True;
-}
-
-static Bool
-_XimEncodeRectangle(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XRectangle *out;
-
- out = (XRectangle *)((char *)top + info->offset);
- *out = *((XRectangle *)val);
- return True;
-}
-
-static Bool
-_XimEncodeSpot(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XPoint *out;
-
- out = (XPoint *)((char *)top + info->offset);
- *out = *((XPoint *)val);
- return True;
-}
-
-static Bool
-_XimEncodeColormap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Colormap *out;
-
- out = (Colormap *)((char *)top + info->offset);
- *out = (Colormap)val;
- return True;
-}
-
-static Bool
-_XimEncodeStdColormap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Atom *out;
-
- out = (Atom *)((char *)top + info->offset);
- *out = (Atom)val;
- return True;
-}
-
-static Bool
-_XimEncodeLong(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- unsigned long *out;
-
- out = (unsigned long *)((char *)top + info->offset);
- *out = (unsigned long)val;
- return True;
-}
-
-static Bool
-_XimEncodeBgPixmap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Pixmap *out;
-
- out = (Pixmap *)((char *)top + info->offset);
- *out = (Pixmap)val;
- return True;
-}
-
-static Bool
-_XimEncodeFontSet(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XFontSet *out;
-
- out = (XFontSet *)((char *)top + info->offset);
- *out = (XFontSet)val;
- return True;
-}
-
-static Bool
-_XimEncodeLineSpace(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- int *out;
-
- out = (int *)((char *)top + info->offset);
- *out = (long)val;
- return True;
-}
-
-static Bool
-_XimEncodeCursor(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Cursor *out;
-
- out = (Cursor *)((char *)top + info->offset);
- *out = (Cursor)val;
- return True;
-}
-
-static Bool
-_XimEncodePreeditState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMPreeditState *out;
-
- out = (XIMPreeditState *)((char *)top + info->offset);
- *out = (XIMPreeditState)val;
- return True;
-}
-
-static Bool
-_XimEncodeNest(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- return True;
-}
-
-static Bool
-_XimDecodeStyles(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMStyles *styles;
- XIMStyles *out;
- register int i;
- unsigned int num;
- int len;
- XPointer tmp;
-
- if(val == (XPointer)NULL) {
- return False;
- }
-
- styles = *((XIMStyles **)((char *)top + info->offset));
- num = styles->count_styles;
-
- len = sizeof(XIMStyles) + sizeof(XIMStyle) * num;
- if(!(tmp = Xcalloc(1, len))) {
- return False;
- }
-
- out = (XIMStyles *)tmp;
- if(num >0) {
- out->count_styles = (unsigned short)num;
- out->supported_styles = (XIMStyle *)((char *)tmp + sizeof(XIMStyles));
-
- for(i = 0; i < num; i++) {
- out->supported_styles[i] = styles->supported_styles[i];
- }
- }
- *((XIMStyles **)val) = out;
- return True;
-}
-
-static Bool
-_XimDecodeValues(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMValuesList *values_list;
- XIMValuesList *out;
- register int i;
- unsigned int num;
- int len;
- XPointer tmp;
-
- if(val == (XPointer)NULL) {
- return False;
- }
-
- values_list = *((XIMValuesList **)((char *)top + info->offset));
- num = values_list->count_values;
-
- len = sizeof(XIMValuesList) + sizeof(char **) * num;
- if(!(tmp = Xcalloc(1, len))) {
- return False;
- }
-
- out = (XIMValuesList *)tmp;
- if(num) {
- out->count_values = (unsigned short)num;
- out->supported_values = (char **)((char *)tmp + sizeof(XIMValuesList));
-
- for(i = 0; i < num; i++) {
- out->supported_values[i] = values_list->supported_values[i];
- }
- }
- *((XIMValuesList **)val) = out;
- return True;
-}
-
-static Bool
-_XimDecodeCallback(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMCallback *in;
- XIMCallback *callback;
-
- in = (XIMCallback *)((char *)top + info->offset);
- if(!(callback = Xmalloc(sizeof(XIMCallback)))) {
- return False;
- }
- callback->client_data = in->client_data;
- callback->callback = in->callback;
-
- *((XIMCallback **)val) = callback;
- return True;
-}
-
-static Bool
-_XimDecodeString(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- char *in;
- char *string;
-
- in = *((char **)((char *)top + info->offset));
- if (in != NULL) {
- string = strdup(in);
- } else {
- string = Xcalloc(1, 1); /* strdup("") */
- }
- if (string == NULL) {
- return False;
- }
- *((char **)val) = string;
- return True;
-}
-
-static Bool
-_XimDecodeBool(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Bool *in;
-
- in = (Bool *)((char *)top + info->offset);
- *((Bool *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeStyle(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMStyle *in;
-
- in = (XIMStyle *)((char *)top + info->offset);
- *((XIMStyle *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeWindow(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Window *in;
-
- in = (Window *)((char *)top + info->offset);
- *((Window *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeStringConv(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- /*
- * Not yet
- */
- return True;
-}
-
-static Bool
-_XimDecodeResetState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMResetState *in;
-
- in = (XIMResetState *)((char *)top + info->offset);
- *((XIMResetState *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeHotKey(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMHotKeyTriggers *in;
- XIMHotKeyTriggers *hotkey;
- XIMHotKeyTrigger *key;
- XPointer tmp;
- int num;
- int len;
- register int i;
-
- in = *((XIMHotKeyTriggers **)((char *)top + info->offset));
- num = in->num_hot_key;
- len = sizeof(XIMHotKeyTriggers) + sizeof(XIMHotKeyTrigger) * num;
- if(!(tmp = Xmalloc(len))) {
- return False;
- }
-
- hotkey = (XIMHotKeyTriggers *)tmp;
- key = (XIMHotKeyTrigger *)((char *)tmp + sizeof(XIMHotKeyTriggers));
-
- for(i = 0; i < num; i++) {
- key[i] = in->key[i];
- }
- hotkey->num_hot_key = num;
- hotkey->key = key;
-
- *((XIMHotKeyTriggers **)val) = hotkey;
- return True;
-}
-
-static Bool
-_XimDecodeHotKetState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMHotKeyState *in;
-
- in = (XIMHotKeyState *)((char *)top + info->offset);
- *((XIMHotKeyState *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeRectangle(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XRectangle *in;
- XRectangle *rect;
-
- in = (XRectangle *)((char *)top + info->offset);
- if(!(rect = Xmalloc(sizeof(XRectangle)))) {
- return False;
- }
- *rect = *in;
- *((XRectangle **)val) = rect;
- return True;
-}
-
-static Bool
-_XimDecodeSpot(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XPoint *in;
- XPoint *spot;
-
- in = (XPoint *)((char *)top + info->offset);
- if(!(spot = Xmalloc(sizeof(XPoint)))) {
- return False;
- }
- *spot = *in;
- *((XPoint **)val) = spot;
- return True;
-}
-
-static Bool
-_XimDecodeColormap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Colormap *in;
-
- in = (Colormap *)((char *)top + info->offset);
- *((Colormap *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeStdColormap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Atom *in;
-
- in = (Atom *)((char *)top + info->offset);
- *((Atom *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeLong(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- unsigned long *in;
-
- in = (unsigned long *)((char *)top + info->offset);
- *((unsigned long *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeBgPixmap(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Pixmap *in;
-
- in = (Pixmap *)((char *)top + info->offset);
- *((Pixmap *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeFontSet(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XFontSet *in;
-
- in = (XFontSet *)((char *)top + info->offset);
- *((XFontSet *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeLineSpace(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- int *in;
-
- in = (int *)((char *)top + info->offset);
- *((int *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeCursor(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- Cursor *in;
-
- in = (Cursor *)((char *)top + info->offset);
- *((Cursor *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodePreeditState(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- XIMPreeditState *in;
-
- in = (XIMPreeditState *)((char *)top + info->offset);
- *((XIMPreeditState *)val) = *in;
- return True;
-}
-
-static Bool
-_XimDecodeNest(
- XimValueOffsetInfo info,
- XPointer top,
- XPointer val)
-{
- return True;
-}
-
-static XIMResource im_resources[] = {
- {XNQueryInputStyle, 0, XimType_XIMStyles, 0, 0, 0},
- {XNDestroyCallback, 0, 0, 0, 0, 0},
- {XNResourceName, 0, XimType_STRING8, 0, 0, 0},
- {XNResourceClass, 0, XimType_STRING8, 0, 0, 0},
- {XNQueryIMValuesList, 0, 0, 0, 0, 0},
- {XNQueryICValuesList, 0, 0, 0, 0, 0},
- {XNVisiblePosition, 0, 0, 0, 0, 0}
-};
-
-static XIMResource im_inner_resources[] = {
- {XNDestroyCallback, 0, 0, 0, 0, 0},
- {XNResourceName, 0, XimType_STRING8, 0, 0, 0},
- {XNResourceClass, 0, XimType_STRING8, 0, 0, 0},
- {XNQueryIMValuesList, 0, 0, 0, 0, 0},
- {XNQueryICValuesList, 0, 0, 0, 0, 0},
- {XNVisiblePosition, 0, 0, 0, 0, 0}
-};
-
-static XIMResource ic_resources[] = {
- {XNInputStyle, 0, XimType_CARD32, 0, 0, 0},
- {XNClientWindow, 0, XimType_Window, 0, 0, 0},
- {XNFocusWindow, 0, XimType_Window, 0, 0, 0},
- {XNResourceName, 0, XimType_STRING8, 0, 0, 0},
- {XNResourceClass, 0, XimType_STRING8, 0, 0, 0},
- {XNGeometryCallback, 0, 0, 0, 0, 0},
- {XNFilterEvents, 0, XimType_CARD32, 0, 0, 0},
- {XNDestroyCallback, 0, 0, 0, 0, 0},
- {XNStringConversionCallback, 0, 0, 0, 0, 0},
- {XNStringConversion, 0, XimType_XIMStringConversion,0, 0, 0},
- {XNResetState, 0, 0, 0, 0, 0},
- {XNHotKey, 0, XimType_XIMHotKeyTriggers,0, 0, 0},
- {XNHotKeyState, 0, XimType_XIMHotKeyState, 0, 0, 0},
- {XNPreeditAttributes, 0, XimType_NEST, 0, 0, 0},
- {XNStatusAttributes, 0, XimType_NEST, 0, 0, 0},
- {XNArea, 0, XimType_XRectangle, 0, 0, 0},
- {XNAreaNeeded, 0, XimType_XRectangle, 0, 0, 0},
- {XNSpotLocation, 0, XimType_XPoint, 0, 0, 0},
- {XNColormap, 0, XimType_CARD32, 0, 0, 0},
- {XNStdColormap, 0, XimType_CARD32, 0, 0, 0},
- {XNForeground, 0, XimType_CARD32, 0, 0, 0},
- {XNBackground, 0, XimType_CARD32, 0, 0, 0},
- {XNBackgroundPixmap, 0, XimType_CARD32, 0, 0, 0},
- {XNFontSet, 0, XimType_XFontSet, 0, 0, 0},
- {XNLineSpace, 0, XimType_CARD32, 0, 0, 0},
- {XNCursor, 0, XimType_CARD32, 0, 0, 0},
- {XNPreeditStartCallback, 0, 0, 0, 0, 0},
- {XNPreeditDoneCallback, 0, 0, 0, 0, 0},
- {XNPreeditDrawCallback, 0, 0, 0, 0, 0},
- {XNPreeditCaretCallback, 0, 0, 0, 0, 0},
- {XNStatusStartCallback, 0, 0, 0, 0, 0},
- {XNStatusDoneCallback, 0, 0, 0, 0, 0},
- {XNStatusDrawCallback, 0, 0, 0, 0, 0},
- {XNPreeditState, 0, 0, 0, 0, 0},
- {XNPreeditStateNotifyCallback, 0, 0, 0, 0, 0},
-};
-
-static XIMResource ic_inner_resources[] = {
- {XNResourceName, 0, XimType_STRING8, 0, 0, 0},
- {XNResourceClass, 0, XimType_STRING8, 0, 0, 0},
- {XNGeometryCallback, 0, 0, 0, 0, 0},
- {XNDestroyCallback, 0, 0, 0, 0, 0},
- {XNStringConversionCallback, 0, 0, 0, 0, 0},
- {XNPreeditStartCallback, 0, 0, 0, 0, 0},
- {XNPreeditDoneCallback, 0, 0, 0, 0, 0},
- {XNPreeditDrawCallback, 0, 0, 0, 0, 0},
- {XNPreeditCaretCallback, 0, 0, 0, 0, 0},
- {XNStatusStartCallback, 0, 0, 0, 0, 0},
- {XNStatusDoneCallback, 0, 0, 0, 0, 0},
- {XNStatusDrawCallback, 0, 0, 0, 0, 0},
- {XNPreeditStateNotifyCallback, 0, 0, 0, 0, 0},
-};
-
-static XimValueOffsetInfoRec im_attr_info[] = {
- {OFFSET_XNQUERYINPUTSTYLE, 0,
- XOffsetOf(XimDefIMValues, styles),
- _XimDefaultStyles, NULL, _XimDecodeStyles},
-
- {OFFSET_XNDESTROYCALLBACK, 0,
- XOffsetOf(XimDefIMValues, destroy_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNRESOURCENAME, 0,
- XOffsetOf(XimDefIMValues, res_name),
- NULL, _XimEncodeString, _XimDecodeString},
-
- {OFFSET_XNRESOURCECLASS, 0,
- XOffsetOf(XimDefIMValues, res_class),
- NULL, _XimEncodeString, _XimDecodeString},
-
- {OFFSET_XNQUERYIMVALUESLIST, 0,
- XOffsetOf(XimDefIMValues, im_values_list),
- _XimDefaultIMValues, NULL, _XimDecodeValues},
-
- {OFFSET_XNQUERYICVALUESLIST, 0,
- XOffsetOf(XimDefIMValues, ic_values_list),
- _XimDefaultICValues, NULL, _XimDecodeValues},
-
- {OFFSET_XNVISIBLEPOSITION, 0,
- XOffsetOf(XimDefIMValues, visible_position),
- _XimDefaultVisiblePos, NULL, _XimDecodeBool}
-};
-
-static XimValueOffsetInfoRec ic_attr_info[] = {
- {OFFSET_XNINPUTSTYLE, 0,
- XOffsetOf(XimDefICValues, input_style),
- NULL, _XimEncodeStyle, _XimDecodeStyle},
-
- {OFFSET_XNCLIENTWINDOW, 0,
- XOffsetOf(XimDefICValues, client_window),
- NULL, _XimEncodeWindow, _XimDecodeWindow},
-
- {OFFSET_XNFOCUSWINDOW, 0,
- XOffsetOf(XimDefICValues, focus_window),
- _XimDefaultFocusWindow, _XimEncodeWindow, _XimDecodeWindow},
-
- {OFFSET_XNRESOURCENAME, 0,
- XOffsetOf(XimDefICValues, res_name),
- _XimDefaultResName, _XimEncodeString, _XimDecodeString},
-
- {OFFSET_XNRESOURCECLASS, 0,
- XOffsetOf(XimDefICValues, res_class),
- _XimDefaultResClass, _XimEncodeString, _XimDecodeString},
-
- {OFFSET_XNGEOMETRYCALLBACK, 0,
- XOffsetOf(XimDefICValues, geometry_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNFILTEREVENTS, 0,
- XOffsetOf(XimDefICValues, filter_events),
- NULL, NULL, _XimDecodeLong},
-
- {OFFSET_XNDESTROYCALLBACK, 0,
- XOffsetOf(XimDefICValues, destroy_callback),
- _XimDefaultDestroyCB, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNSTRINGCONVERSIONCALLBACK, 0,
- XOffsetOf(XimDefICValues, string_conversion_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNSTRINGCONVERSION, 0,
- XOffsetOf(XimDefICValues, string_conversion),
- NULL, _XimEncodeStringConv, _XimDecodeStringConv},
-
- {OFFSET_XNRESETSTATE, 0,
- XOffsetOf(XimDefICValues, reset_state),
- _XimDefaultResetState, _XimEncodeResetState, _XimDecodeResetState},
-
- {OFFSET_XNHOTKEY, 0,
- XOffsetOf(XimDefICValues, hotkey),
- NULL, _XimEncodeHotKey, _XimDecodeHotKey},
-
- {OFFSET_XNHOTKEYSTATE, 0,
- XOffsetOf(XimDefICValues, hotkey_state),
- _XimDefaultHotKeyState, _XimEncodeHotKetState, _XimDecodeHotKetState},
-
- {OFFSET_XNPREEDITATTRIBUTES, 0,
- XOffsetOf(XimDefICValues, preedit_attr),
- _XimDefaultNest, _XimEncodeNest, _XimDecodeNest},
-
- {OFFSET_XNSTATUSATTRIBUTES, 0,
- XOffsetOf(XimDefICValues, status_attr),
- _XimDefaultNest, _XimEncodeNest, _XimDecodeNest},
-};
-
-static XimValueOffsetInfoRec ic_pre_attr_info[] = {
- {OFFSET_XNAREA, 0,
- XOffsetOf(ICPreeditAttributes, area),
- _XimDefaultArea, _XimEncodeRectangle, _XimDecodeRectangle},
-
- {OFFSET_XNAREANEEDED, 0,
- XOffsetOf(ICPreeditAttributes, area_needed),
- NULL, _XimEncodeRectangle, _XimDecodeRectangle},
-
- {OFFSET_XNSPOTLOCATION, 0,
- XOffsetOf(ICPreeditAttributes, spot_location),
- NULL, _XimEncodeSpot, _XimDecodeSpot},
-
- {OFFSET_XNCOLORMAP, 0,
- XOffsetOf(ICPreeditAttributes, colormap),
- _XimDefaultColormap, _XimEncodeColormap, _XimDecodeColormap},
-
- {OFFSET_XNSTDCOLORMAP, 0,
- XOffsetOf(ICPreeditAttributes, std_colormap),
- _XimDefaultStdColormap, _XimEncodeStdColormap, _XimDecodeStdColormap},
-
- {OFFSET_XNFOREGROUND, 0,
- XOffsetOf(ICPreeditAttributes, foreground),
- _XimDefaultFg, _XimEncodeLong, _XimDecodeLong},
-
- {OFFSET_XNBACKGROUND, 0,
- XOffsetOf(ICPreeditAttributes, background),
- _XimDefaultBg, _XimEncodeLong, _XimDecodeLong},
-
- {OFFSET_XNBACKGROUNDPIXMAP, 0,
- XOffsetOf(ICPreeditAttributes, background_pixmap),
- _XimDefaultBgPixmap, _XimEncodeBgPixmap, _XimDecodeBgPixmap},
-
- {OFFSET_XNFONTSET, 0,
- XOffsetOf(ICPreeditAttributes, fontset),
- _XimDefaultFontSet, _XimEncodeFontSet, _XimDecodeFontSet},
-
- {OFFSET_XNLINESPACE, 0,
- XOffsetOf(ICPreeditAttributes, line_spacing),
- _XimDefaultLineSpace, _XimEncodeLineSpace, _XimDecodeLineSpace},
-
- {OFFSET_XNCURSOR, 0,
- XOffsetOf(ICPreeditAttributes, cursor),
- _XimDefaultCursor, _XimEncodeCursor, _XimDecodeCursor},
-
- {OFFSET_XNPREEDITSTARTCALLBACK, 0,
- XOffsetOf(ICPreeditAttributes, start_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNPREEDITDONECALLBACK, 0,
- XOffsetOf(ICPreeditAttributes, done_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNPREEDITDRAWCALLBACK, 0,
- XOffsetOf(ICPreeditAttributes, draw_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNPREEDITCARETCALLBACK, 0,
- XOffsetOf(ICPreeditAttributes, caret_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNPREEDITSTATE, 0,
- XOffsetOf(ICPreeditAttributes, preedit_state),
- _XimDefaultPreeditState, _XimEncodePreeditState,_XimDecodePreeditState},
-
- {OFFSET_XNPREEDITSTATENOTIFYCALLBACK, 0,
- XOffsetOf(ICPreeditAttributes, state_notify_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-};
-
-static XimValueOffsetInfoRec ic_sts_attr_info[] = {
- {OFFSET_XNAREA, 0,
- XOffsetOf(ICStatusAttributes, area),
- _XimDefaultArea, _XimEncodeRectangle, _XimDecodeRectangle},
-
- {OFFSET_XNAREANEEDED, 0,
- XOffsetOf(ICStatusAttributes, area_needed),
- NULL, _XimEncodeRectangle, _XimDecodeRectangle},
-
- {OFFSET_XNCOLORMAP, 0,
- XOffsetOf(ICStatusAttributes, colormap),
- _XimDefaultColormap, _XimEncodeColormap, _XimDecodeColormap},
-
- {OFFSET_XNSTDCOLORMAP, 0,
- XOffsetOf(ICStatusAttributes, std_colormap),
- _XimDefaultStdColormap, _XimEncodeStdColormap, _XimDecodeStdColormap},
-
- {OFFSET_XNFOREGROUND, 0,
- XOffsetOf(ICStatusAttributes, foreground),
- _XimDefaultFg, _XimEncodeLong, _XimDecodeLong},
-
- {OFFSET_XNBACKGROUND, 0,
- XOffsetOf(ICStatusAttributes, background),
- _XimDefaultBg, _XimEncodeLong, _XimDecodeLong},
-
- {OFFSET_XNBACKGROUNDPIXMAP, 0,
- XOffsetOf(ICStatusAttributes, background_pixmap),
- _XimDefaultBgPixmap, _XimEncodeBgPixmap, _XimDecodeBgPixmap},
-
- {OFFSET_XNFONTSET, 0,
- XOffsetOf(ICStatusAttributes, fontset),
- _XimDefaultFontSet, _XimEncodeFontSet, _XimDecodeFontSet},
-
- {OFFSET_XNLINESPACE, 0,
- XOffsetOf(ICStatusAttributes, line_spacing),
- _XimDefaultLineSpace, _XimEncodeLineSpace, _XimDecodeLineSpace},
-
- {OFFSET_XNCURSOR, 0,
- XOffsetOf(ICStatusAttributes, cursor),
- _XimDefaultCursor, _XimEncodeCursor, _XimDecodeCursor},
-
- {OFFSET_XNSTATUSSTARTCALLBACK, 0,
- XOffsetOf(ICStatusAttributes, start_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNSTATUSDONECALLBACK, 0,
- XOffsetOf(ICStatusAttributes, done_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback},
-
- {OFFSET_XNSTATUSDRAWCALLBACK, 0,
- XOffsetOf(ICStatusAttributes, draw_callback),
- NULL, _XimEncodeCallback, _XimDecodeCallback}
-};
-
-typedef struct _XimIMMode {
- unsigned short name_offset;
- unsigned short mode;
-} XimIMMode;
-
-static const XimIMMode im_mode[] = {
- {OFFSET_XNQUERYINPUTSTYLE,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)},
- {OFFSET_XNDESTROYCALLBACK,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_SET | XIM_MODE_IM_GET)},
- {OFFSET_XNRESOURCENAME,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_SET | XIM_MODE_IM_GET)},
- {OFFSET_XNRESOURCECLASS,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_SET | XIM_MODE_IM_GET)},
- {OFFSET_XNQUERYIMVALUESLIST,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)},
- {OFFSET_XNQUERYICVALUESLIST,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)},
- {OFFSET_XNVISIBLEPOSITION,
- (XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)}
-};
-
-typedef struct _XimICMode {
- unsigned short name_offset;
- unsigned short preedit_callback_mode;
- unsigned short preedit_position_mode;
- unsigned short preedit_area_mode;
- unsigned short preedit_nothing_mode;
- unsigned short preedit_none_mode;
- unsigned short status_callback_mode;
- unsigned short status_area_mode;
- unsigned short status_nothing_mode;
- unsigned short status_none_mode;
-} XimICMode;
-
-static const XimICMode ic_mode[] = {
- {OFFSET_XNINPUTSTYLE,
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_GET),
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_GET),
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_GET),
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_GET)},
- {OFFSET_XNCLIENTWINDOW,
- (XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
- 0,
- (XIM_MODE_STS_ONCE | XIM_MODE_STS_GET),
- (XIM_MODE_STS_ONCE | XIM_MODE_STS_GET),
- (XIM_MODE_STS_ONCE | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNFOCUSWINDOW,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNRESOURCENAME,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNRESOURCECLASS,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNGEOMETRYCALLBACK,
- 0,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0,
- 0},
- {OFFSET_XNFILTEREVENTS,
- XIM_MODE_PRE_GET,
- XIM_MODE_PRE_GET,
- XIM_MODE_PRE_GET,
- XIM_MODE_PRE_GET,
- 0,
- XIM_MODE_STS_GET,
- XIM_MODE_STS_GET,
- XIM_MODE_STS_GET,
- XIM_MODE_STS_GET},
- {OFFSET_XNDESTROYCALLBACK,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNSTRINGCONVERSIONCALLBACK,
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNSTRINGCONVERSION,
- XIM_MODE_PRE_SET,
- XIM_MODE_PRE_SET,
- XIM_MODE_PRE_SET,
- XIM_MODE_PRE_SET,
- XIM_MODE_PRE_SET,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNRESETSTATE,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNHOTKEY,
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNHOTKEYSTATE,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNPREEDITATTRIBUTES,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNSTATUSATTRIBUTES,
- 0,
- 0,
- 0,
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNAREA,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0,
- 0},
- {OFFSET_XNAREANEEDED,
- 0,
- 0,
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- (XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0,
- 0},
- {OFFSET_XNSPOTLOCATION,
- 0, /*(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),*/
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNCOLORMAP,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNSTDCOLORMAP,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNFOREGROUND,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNBACKGROUND,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNBACKGROUNDPIXMAP,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNFONTSET,
- 0,
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNLINESPACE,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNCURSOR,
- 0,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- (XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0},
- {OFFSET_XNPREEDITSTARTCALLBACK,
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNPREEDITDONECALLBACK,
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNPREEDITDRAWCALLBACK,
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNPREEDITCARETCALLBACK,
- (XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNPREEDITSTATE,
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNPREEDITSTATENOTIFYCALLBACK,
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- (XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
- 0,
- 0,
- 0,
- 0,
- 0},
- {OFFSET_XNSTATUSSTARTCALLBACK,
- 0,
- 0,
- 0,
- 0,
- 0,
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0,
- 0,
- 0},
- {OFFSET_XNSTATUSDONECALLBACK,
- 0,
- 0,
- 0,
- 0,
- 0,
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0,
- 0,
- 0},
- {OFFSET_XNSTATUSDRAWCALLBACK,
- 0,
- 0,
- 0,
- 0,
- 0,
- (XIM_MODE_STS_CREATE | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
- 0,
- 0,
- 0}
-};
-
-/* the quarks are separated from im_mode/ic_mode so those arrays
- * can be const.
- */
-static XrmQuark im_mode_quark[sizeof(im_mode) / sizeof(im_mode[0])];
-static XrmQuark ic_mode_quark[sizeof(ic_mode) / sizeof(ic_mode[0])];
-
-static Bool
-_XimSetResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num,
- XIMResourceList resource,
- unsigned int num_resource,
- unsigned short id)
-{
- register int i;
- int len;
- XIMResourceList res;
-
- len = sizeof(XIMResource) * num_resource;
- if(!(res = Xcalloc(1, len))) {
- return False;
- }
-
- for(i = 0; i < num_resource; i++, id++) {
- res[i] = resource[i];
- res[i].id = id;
- }
-
- _XIMCompileResourceList(res, num_resource);
- *res_list = res;
- *list_num = num_resource;
- return True;
-}
-
-Bool
-_XimSetIMResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num)
-{
- return _XimSetResourceList(res_list, list_num,
- im_resources, XIMNumber(im_resources), 100);
-}
-
-Bool
-_XimSetICResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num)
-{
- return _XimSetResourceList(res_list, list_num,
- ic_resources, XIMNumber(ic_resources), 200);
-}
-
-Bool
-_XimSetInnerIMResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num)
-{
- return _XimSetResourceList(res_list, list_num,
- im_inner_resources, XIMNumber(im_inner_resources), 100);
-}
-
-Bool
-_XimSetInnerICResourceList(
- XIMResourceList *res_list,
- unsigned int *list_num)
-{
- return _XimSetResourceList(res_list, list_num,
- ic_inner_resources, XIMNumber(ic_inner_resources), 200);
-}
-
-static XIMResourceList
-_XimGetResourceListRecByMode(
- XIMResourceList res_list,
- unsigned int list_num,
- unsigned short mode)
-{
- register int i;
-
- for(i = 0; i < list_num; i++) {
- if (res_list[i].mode & mode) {
- return (XIMResourceList)&res_list[i];
- }
- }
- return (XIMResourceList)NULL;
-}
-
-Bool
-_XimCheckCreateICValues(
- XIMResourceList res_list,
- unsigned int list_num)
-{
- if (!_XimGetResourceListRecByMode(res_list, list_num, XIM_MODE_IC_CREATE)) {
- return True;
- }
- return False;
-}
-
-XIMResourceList
-_XimGetResourceListRecByQuark(
- XIMResourceList res_list,
- unsigned int list_num,
- XrmQuark quark)
-{
- register int i;
-
- for(i = 0; i < list_num; i++) {
- if (res_list[i].xrm_name == quark) {
- return (XIMResourceList)&res_list[i];
- }
- }
- return (XIMResourceList)NULL;
-}
-
-XIMResourceList
-_XimGetResourceListRec(
- XIMResourceList res_list,
- unsigned int list_num,
- const char *name)
-{
- XrmQuark quark = XrmStringToQuark(name);
-
- return _XimGetResourceListRecByQuark(res_list, list_num, quark);
-}
-
-char *
-_XimSetIMValueData(
- Xim im,
- XPointer top,
- XIMArg *values,
- XIMResourceList res_list,
- unsigned int list_num)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
-
- for(p = values; p->name != NULL; p++) {
- if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
- return p->name;
- }
- check = _XimCheckIMMode(res, XIM_SETIMVALUES);
- if(check == XIM_CHECK_INVALID) {
- continue;
- } else if (check == XIM_CHECK_ERROR) {
- return p->name;
- }
-
- if(!_XimEncodeLocalIMAttr(res, top, p->value)) {
- return p->name;
- }
- }
- return NULL;
-}
-
-char *
-_XimGetIMValueData(
- Xim im,
- XPointer top,
- XIMArg *values,
- XIMResourceList res_list,
- unsigned int list_num)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
-
- for(p = values; p->name != NULL; p++) {
- if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
- return p->name;
- }
- check = _XimCheckIMMode(res, XIM_GETIMVALUES);
- if(check == XIM_CHECK_INVALID) {
- continue;
- } else if (check == XIM_CHECK_ERROR) {
- return p->name;
- }
-
- if(!_XimDecodeLocalIMAttr(res, top, p->value)) {
- return p->name;
- }
- }
- return NULL;
-}
-
-void
-_XimSetIMMode(
- XIMResourceList res_list,
- unsigned int list_num)
-{
- XIMResourceList res;
- unsigned int n = XIMNumber(im_mode);
- register int i;
-
- for(i = 0; i < n; i++) {
- if(!(res = _XimGetResourceListRecByQuark(res_list,
- list_num, im_mode_quark[i]))) {
- continue;
- }
- res->mode = im_mode[i].mode;
- }
- return;
-}
-
-static int
-_XimCheckSetIMDefaultsMode(
- XIMResourceList res)
-{
- if(res->mode & XIM_MODE_IM_DEFAULT) {
- return XIM_CHECK_VALID;
- }
- return XIM_CHECK_INVALID;
-}
-
-static int
-_XimCheckSetIMValuesMode(
- XIMResourceList res)
-{
- if(res->mode & XIM_MODE_IM_SET) {
- return XIM_CHECK_VALID;
- }
- return XIM_CHECK_INVALID;
-}
-
-static int
- _XimCheckGetIMValuesMode(
- XIMResourceList res)
-{
- if(res->mode & XIM_MODE_IM_GET) {
- return XIM_CHECK_VALID;
- }
- return XIM_CHECK_INVALID;
-}
-
-int
- _XimCheckIMMode(
- XIMResourceList res,
- unsigned long mode)
-{
- if(res->mode == 0) {
- return XIM_CHECK_INVALID;
- }
- if(mode & XIM_SETIMDEFAULTS) {
- return _XimCheckSetIMDefaultsMode(res);
- } else if (mode & XIM_SETIMVALUES) {
- return _XimCheckSetIMValuesMode(res);
- } else if (mode & XIM_GETIMVALUES) {
- return _XimCheckGetIMValuesMode(res);
- } else {
- return XIM_CHECK_ERROR;
- }
-}
-
-void
-_XimSetICMode(XIMResourceList res_list, unsigned int list_num, XIMStyle style)
-{
- XIMResourceList res;
- unsigned int n = XIMNumber(ic_mode);
- register int i;
- unsigned int pre_offset;
- unsigned int sts_offset;
-
- if(style & XIMPreeditArea) {
- pre_offset = XOffsetOf(XimICMode, preedit_area_mode);
- } else if(style & XIMPreeditCallbacks) {
- pre_offset = XOffsetOf(XimICMode, preedit_callback_mode);
- } else if(style & XIMPreeditPosition) {
- pre_offset = XOffsetOf(XimICMode, preedit_position_mode);
- } else if(style & XIMPreeditNothing) {
- pre_offset = XOffsetOf(XimICMode, preedit_nothing_mode);
- } else {
- pre_offset = XOffsetOf(XimICMode, preedit_none_mode);
- }
-
- if(style & XIMStatusArea) {
- sts_offset = XOffsetOf(XimICMode, status_area_mode);
- } else if(style & XIMStatusCallbacks) {
- sts_offset = XOffsetOf(XimICMode, status_callback_mode);
- } else if(style & XIMStatusNothing) {
- sts_offset = XOffsetOf(XimICMode, status_nothing_mode);
- } else {
- sts_offset = XOffsetOf(XimICMode, status_none_mode);
- }
-
- for(i = 0; i < n; i++) {
- if(!(res = _XimGetResourceListRecByQuark(res_list,
- list_num, ic_mode_quark[i]))) {
- continue;
- }
- res->mode = ( (*(const unsigned short *)((const char *)&ic_mode[i] + pre_offset))
- | (*(const unsigned short *)((const char *)&ic_mode[i] + sts_offset)));
- }
- return;
-}
-
-static int
-_XimCheckSetICDefaultsMode(
- XIMResourceList res,
- unsigned long mode)
-{
- if(mode & XIM_PREEDIT_ATTR) {
- if(!(res->mode & XIM_MODE_PRE_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_PRE_CREATE) {
- return XIM_CHECK_ERROR;
- } else if (!(res->mode & XIM_MODE_PRE_DEFAULT)) {
- return XIM_CHECK_INVALID;
- }
-
- } else if(mode & XIM_STATUS_ATTR) {
- if(!(res->mode & XIM_MODE_STS_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_STS_CREATE) {
- return XIM_CHECK_ERROR;
- }
- if(!(res->mode & XIM_MODE_STS_DEFAULT)) {
- return XIM_CHECK_INVALID;
- }
-
- } else {
- if(!res->mode) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_IC_CREATE) {
- return XIM_CHECK_ERROR;
- }
- if(!(res->mode & XIM_MODE_IC_DEFAULT)) {
- return XIM_CHECK_INVALID;
- }
- }
- return XIM_CHECK_VALID;
-}
-
-static int
-_XimCheckCreateICMode(
- XIMResourceList res,
- unsigned long mode)
-{
- if(mode & XIM_PREEDIT_ATTR) {
- if(!(res->mode & XIM_MODE_PRE_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_PRE_CREATE) {
- res->mode &= ~XIM_MODE_PRE_CREATE;
- } else if(res->mode & XIM_MODE_PRE_ONCE) {
- res->mode &= ~XIM_MODE_PRE_ONCE;
- } else if(res->mode & XIM_MODE_PRE_DEFAULT) {
- res->mode &= ~XIM_MODE_PRE_DEFAULT;
- } else if (!(res->mode & XIM_MODE_PRE_SET)) {
- return XIM_CHECK_ERROR;
- }
-
- } else if(mode & XIM_STATUS_ATTR) {
- if(!(res->mode & XIM_MODE_STS_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_STS_CREATE) {
- res->mode &= ~XIM_MODE_STS_CREATE;
- } else if(res->mode & XIM_MODE_STS_ONCE) {
- res->mode &= ~XIM_MODE_STS_ONCE;
- } else if(res->mode & XIM_MODE_STS_DEFAULT) {
- res->mode &= ~XIM_MODE_STS_DEFAULT;
- } else if (!(res->mode & XIM_MODE_STS_SET)) {
- return XIM_CHECK_ERROR;
- }
-
- } else {
- if(!res->mode) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_IC_CREATE) {
- res->mode &= ~XIM_MODE_IC_CREATE;
- } else if(res->mode & XIM_MODE_IC_ONCE) {
- res->mode &= ~XIM_MODE_IC_ONCE;
- } else if(res->mode & XIM_MODE_IC_DEFAULT) {
- res->mode &= ~XIM_MODE_IC_DEFAULT;
- } else if (!(res->mode & XIM_MODE_IC_SET)) {
- return XIM_CHECK_ERROR;
- }
- }
- return XIM_CHECK_VALID;
-}
-
-static int
-_XimCheckSetICValuesMode(
- XIMResourceList res,
- unsigned long mode)
-{
- if(mode & XIM_PREEDIT_ATTR) {
- if(!(res->mode & XIM_MODE_PRE_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_PRE_ONCE) {
- res->mode &= ~XIM_MODE_PRE_ONCE;
- } else if(!(res->mode & XIM_MODE_PRE_SET)) {
- return XIM_CHECK_ERROR;
- }
-
- } else if(mode & XIM_STATUS_ATTR) {
- if(!(res->mode & XIM_MODE_STS_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_STS_ONCE) {
- res->mode &= ~XIM_MODE_STS_ONCE;
- } else if(!(res->mode & XIM_MODE_STS_SET)) {
- return XIM_CHECK_ERROR;
- }
-
- } else {
- if(!res->mode) {
- return XIM_CHECK_INVALID;
- }
-
- if(res->mode & XIM_MODE_IC_ONCE) {
- res->mode &= ~XIM_MODE_IC_ONCE;
- } else if(!(res->mode & XIM_MODE_IC_SET)) {
- return XIM_CHECK_ERROR;
- }
- }
- return XIM_CHECK_VALID;
-}
-
-static int
-_XimCheckGetICValuesMode(
- XIMResourceList res,
- unsigned long mode)
-{
- if(mode & XIM_PREEDIT_ATTR) {
- if(!(res->mode & XIM_MODE_PRE_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(!(res->mode & XIM_MODE_PRE_GET)) {
- return XIM_CHECK_ERROR;
- }
-
- } else if(mode & XIM_STATUS_ATTR) {
- if(!(res->mode & XIM_MODE_STS_MASK)) {
- return XIM_CHECK_INVALID;
- }
-
- if(!(res->mode & XIM_MODE_STS_GET)) {
- return XIM_CHECK_ERROR;
- }
-
- } else {
- if(!res->mode) {
- return XIM_CHECK_INVALID;
- }
-
- if(!(res->mode & XIM_MODE_IC_GET)) {
- return XIM_CHECK_ERROR;
- }
- }
- return XIM_CHECK_VALID;
-}
-
-int
- _XimCheckICMode(
- XIMResourceList res,
- unsigned long mode)
-{
- if(mode &XIM_SETICDEFAULTS) {
- return _XimCheckSetICDefaultsMode(res, mode);
- } else if (mode & XIM_CREATEIC) {
- return _XimCheckCreateICMode(res, mode);
- } else if (mode & XIM_SETICVALUES) {
- return _XimCheckSetICValuesMode(res, mode);
- } else if (mode & XIM_GETICVALUES) {
- return _XimCheckGetICValuesMode(res, mode);
- } else {
- return XIM_CHECK_ERROR;
- }
-}
-
-Bool
-_XimSetLocalIMDefaults(
- Xim im,
- XPointer top,
- XIMResourceList res_list,
- unsigned int list_num)
-{
- XimValueOffsetInfo info;
- unsigned int num;
- register int i;
- XIMResourceList res;
- int check;
-
- info = im_attr_info;
- num = XIMNumber(im_attr_info);
-
- for(i = 0; i < num; i++) {
- if((res = _XimGetResourceListRecByQuark( res_list, list_num,
- info[i].quark)) == (XIMResourceList)NULL) {
- return False;
- }
-
- check = _XimCheckIMMode(res, XIM_SETIMDEFAULTS);
- if(check == XIM_CHECK_INVALID) {
- continue;
- } else if (check == XIM_CHECK_ERROR) {
- return False;
- }
-
- if(!info[i].defaults) {
- continue;
- }
- if(!(info[i].defaults(&info[i], top, (XPointer)NULL, 0))) {
- return False;
- }
- }
- return True;
-}
-
-Bool
-_XimSetICDefaults(
- Xic ic,
- XPointer top,
- unsigned long mode,
- XIMResourceList res_list,
- unsigned int list_num)
-{
- unsigned int num;
- XimValueOffsetInfo info;
- register int i;
- XIMResourceList res;
- int check;
- XrmQuark pre_quark;
- XrmQuark sts_quark;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
-
- if(mode & XIM_PREEDIT_ATTR) {
- info = ic_pre_attr_info;
- num = XIMNumber(ic_pre_attr_info);
- } else if(mode & XIM_STATUS_ATTR) {
- info = ic_sts_attr_info;
- num = XIMNumber(ic_sts_attr_info);
- } else {
- info = ic_attr_info;
- num = XIMNumber(ic_attr_info);
- }
-
- for(i = 0; i < num; i++) {
- if(info[i].quark == pre_quark) {
- if(!_XimSetICDefaults(ic, (XPointer)((char *)top + info[i].offset),
- (mode | XIM_PREEDIT_ATTR), res_list, list_num)) {
- return False;
- }
- } else if (info[i].quark == sts_quark) {
- if(!_XimSetICDefaults(ic, (XPointer)((char *)top + info[i].offset),
- (mode | XIM_STATUS_ATTR), res_list, list_num)) {
- return False;
- }
- } else {
- if(!(res = _XimGetResourceListRecByQuark(res_list, list_num,
- info[i].quark))) {
- return False;
- }
-
- check = _XimCheckICMode(res, mode);
- if (check == XIM_CHECK_INVALID) {
- continue;
- } else if (check == XIM_CHECK_ERROR) {
- return False;
- }
-
- if (!info[i].defaults) {
- continue;
- }
- if (!(info[i].defaults(&info[i], top, (XPointer)ic, mode))) {
- return False;
- }
- }
- }
- return True;
-}
-
-static Bool
-_XimEncodeAttr(
- XimValueOffsetInfo info,
- unsigned int num,
- XIMResourceList res,
- XPointer top,
- XPointer val)
-{
- register int i;
-
- for(i = 0; i < num; i++ ) {
- if(info[i].quark == res->xrm_name) {
- if(!info[i].encode) {
- return False;
- }
- return (*info[i].encode)(&info[i], top, val);
- }
- }
- return False;
-}
-
-Bool
-_XimEncodeLocalIMAttr(
- XIMResourceList res,
- XPointer top,
- XPointer val)
-{
- return _XimEncodeAttr(im_attr_info, XIMNumber(im_attr_info),
- res, top, val);
-}
-
-Bool
-_XimEncodeLocalICAttr(
- Xic ic,
- XIMResourceList res,
- XPointer top,
- XIMArg *arg,
- unsigned long mode)
-{
- unsigned int num;
- XimValueOffsetInfo info;
-
- if(mode & XIM_PREEDIT_ATTR) {
- info = ic_pre_attr_info;
- num = XIMNumber(ic_pre_attr_info);
- } else if(mode & XIM_STATUS_ATTR) {
- info = ic_sts_attr_info;
- num = XIMNumber(ic_sts_attr_info);
- } else {
- info = ic_attr_info;
- num = XIMNumber(ic_attr_info);
- }
-
- return _XimEncodeAttr(info, num, res, top, arg->value);
-}
-
-static Bool
-_XimEncodeLocalTopValue(
- Xic ic,
- XIMResourceList res,
- XPointer val,
- Bool flag)
-{
- XIMArg *p = (XIMArg *)val;
-
- if (res->xrm_name == XrmStringToQuark(XNClientWindow)) {
- ic->core.client_window = (Window)p->value;
- if (ic->core.focus_window == (Window)0)
- ic->core.focus_window = ic->core.client_window;
- if (flag) {
- _XRegisterFilterByType(ic->core.im->core.display,
- ic->core.focus_window,
- KeyPress, KeyRelease, _XimLocalFilter, (XPointer)ic);
- }
- } else if (res->xrm_name == XrmStringToQuark(XNFocusWindow)) {
- if (ic->core.client_window) {
- if (flag) {
- _XUnregisterFilter(ic->core.im->core.display,
- ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
- }
- ic->core.focus_window = (Window)p->value;
- if (flag) {
- _XRegisterFilterByType(ic->core.im->core.display,
- ic->core.focus_window, KeyPress, KeyRelease,
- _XimLocalFilter, (XPointer)ic);
- }
- } else
- ic->core.focus_window = (Window)p->value;
- }
- return True;
-}
-
-static Bool
-_XimEncodeLocalPreeditValue(
- Xic ic,
- XIMResourceList res,
- XPointer val)
-{
- XIMArg *p = (XIMArg *)val;
-
- if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
- XStandardColormap *colormap_ret;
- int count;
-
- if (!(XGetRGBColormaps(ic->core.im->core.display,
- ic->core.focus_window, &colormap_ret,
- &count, (Atom)p->value)))
- return False;
-
- Xfree(colormap_ret);
- }
- return True;
-}
-
-static Bool
-_XimEncodeLocalStatusValue(
- Xic ic,
- XIMResourceList res,
- XPointer val)
-{
- XIMArg *p = (XIMArg *)val;
-
- if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
- XStandardColormap *colormap_ret;
- int count;
-
- if (!(XGetRGBColormaps(ic->core.im->core.display,
- ic->core.focus_window, &colormap_ret,
- &count, (Atom)p->value)))
- return False;
-
- Xfree(colormap_ret);
- }
- return True;
-}
-
-char *
-_XimSetICValueData(
- Xic ic,
- XPointer top,
- XIMResourceList res_list,
- unsigned int list_num,
- XIMArg *values,
- unsigned long mode,
- Bool flag)
-{
- register XIMArg *p;
- XIMResourceList res;
- char *name;
- int check;
- XrmQuark pre_quark;
- XrmQuark sts_quark;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
-
- for(p = values; p->name != NULL; p++) {
- if((res = _XimGetResourceListRec(res_list, list_num,
- p->name)) == (XIMResourceList)NULL) {
- return p->name;
- }
- if(res->xrm_name == pre_quark) {
- if(((name = _XimSetICValueData(ic,
- (XPointer)(&((XimDefICValues *)top)->preedit_attr),
- res_list, list_num, (XIMArg *)p->value,
- (mode | XIM_PREEDIT_ATTR), flag)))) {
- return name;
- }
- } else if(res->xrm_name == sts_quark) {
- if(((name = _XimSetICValueData(ic,
- (XPointer)(&((XimDefICValues *)top)->status_attr),
- res_list, list_num, (XIMArg *)p->value,
- (mode | XIM_STATUS_ATTR), flag)))) {
- return name;
- }
- } else {
- check = _XimCheckICMode(res, mode);
- if(check == XIM_CHECK_INVALID) {
- continue;
- } else if(check == XIM_CHECK_ERROR) {
- return p->name;
- }
-
- if(mode & XIM_PREEDIT_ATTR) {
- if (!_XimEncodeLocalPreeditValue(ic, res, (XPointer)p))
- return p->name;
- } else if(mode & XIM_STATUS_ATTR) {
- if (!_XimEncodeLocalStatusValue(ic, res, (XPointer)p))
- return p->name;
- } else {
- if (!_XimEncodeLocalTopValue(ic, res, (XPointer)p, flag))
- return p->name;
- }
- if(_XimEncodeLocalICAttr(ic, res, top, p, mode) == False) {
- return p->name;
- }
- }
- }
- return NULL;
-}
-
-static Bool
-_XimCheckInputStyle(
- XIMStyles *styles,
- XIMStyle style)
-{
- int num = styles->count_styles;
- register int i;
-
- for(i = 0; i < num; i++) {
- if(styles->supported_styles[i] == style) {
- return True;
- }
- }
- return False;
-}
-
-Bool
-_XimCheckLocalInputStyle(
- Xic ic,
- XPointer top,
- XIMArg *values,
- XIMStyles *styles,
- XIMResourceList res_list,
- unsigned int list_num)
-{
- XrmQuark quark = XrmStringToQuark(XNInputStyle);
- register XIMArg *p;
- XIMResourceList res;
-
- for(p = values; p && p->name != NULL; p++) {
- if(quark == XrmStringToQuark(p->name)) {
- if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
- return False;
- }
- if(!_XimEncodeLocalICAttr(ic, res, top, p, 0)) {
- return False;
- }
- if (_XimCheckInputStyle(styles,
- ((XimDefICValues *)top)->input_style)) {
- return True;
- }
- return False;
- }
- }
- return False;
-}
-
-static Bool
-_XimDecodeAttr(
- XimValueOffsetInfo info,
- unsigned int num,
- XIMResourceList res,
- XPointer top,
- XPointer val)
-{
- register int i;
-
- for(i = 0; i < num; i++ ) {
- if(info[i].quark == res->xrm_name) {
- if(!info[i].decode) {
- return False;
- }
- return (*info[i].decode)(&info[i], top, val);
- }
- }
- return False;
-}
-
-Bool
-_XimDecodeLocalIMAttr(
- XIMResourceList res,
- XPointer top,
- XPointer val)
-{
- return _XimDecodeAttr(im_attr_info, XIMNumber(im_attr_info),
- res, top, val);
-}
-
-Bool
-_XimDecodeLocalICAttr(
- XIMResourceList res,
- XPointer top,
- XPointer val,
- unsigned long mode)
-{
- unsigned int num;
- XimValueOffsetInfo info;
-
- if(mode & XIM_PREEDIT_ATTR) {
- info = ic_pre_attr_info;
- num = XIMNumber(ic_pre_attr_info);
- } else if(mode & XIM_STATUS_ATTR) {
- info = ic_sts_attr_info;
- num = XIMNumber(ic_sts_attr_info);
- } else {
- info = ic_attr_info;
- num = XIMNumber(ic_attr_info);
- }
-
- return _XimDecodeAttr(info, num, res, top, val);
-}
-
-char *
-_XimGetICValueData(Xic ic, XPointer top, XIMResourceList res_list,
- unsigned int list_num, XIMArg *values, unsigned long mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- char *name;
- int check;
- XrmQuark pre_quark;
- XrmQuark sts_quark;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
-
- for(p = values; p->name != NULL; p++) {
- if((res = _XimGetResourceListRec(res_list, list_num,
- p->name)) == (XIMResourceList)NULL) {
- return p->name;
- }
- if(res->xrm_name == pre_quark) {
- if((name = _XimGetICValueData(ic,
- (XPointer)(&((XimDefICValues *)top)->preedit_attr),
- res_list, list_num, (XIMArg *)p->value,
- (mode | XIM_PREEDIT_ATTR)))) {
- return name;
- }
- } else if(res->xrm_name == sts_quark) {
- if((name = _XimGetICValueData(ic,
- (XPointer)(&((XimDefICValues *)top)->status_attr),
- res_list, list_num, (XIMArg *)p->value,
- (mode | XIM_STATUS_ATTR)))) {
- return name;
- }
- } else {
- check = _XimCheckICMode(res, mode);
- if(check == XIM_CHECK_INVALID) {
- continue;
- } else if(check == XIM_CHECK_ERROR) {
- return p->name;
- }
-
- if(_XimDecodeLocalICAttr(res, top, p->value, mode) == False) {
- return p->name;
- }
- }
- }
- return NULL;
-}
-
-void
-_XimGetCurrentIMValues(Xim im, XimDefIMValues *im_values)
-{
- bzero((char *)im_values, sizeof(XimDefIMValues));
-
- im_values->styles = im->core.styles;
- im_values->im_values_list = im->core.im_values_list;
- im_values->ic_values_list = im->core.ic_values_list;
- im_values->destroy_callback = im->core.destroy_callback;
- im_values->res_name = im->core.res_name;
- im_values->res_class = im->core.res_class;
- im_values->visible_position = im->core.visible_position;
-}
-
-void
-_XimSetCurrentIMValues(Xim im, XimDefIMValues *im_values)
-{
- im->core.styles = im_values->styles;
- im->core.im_values_list = im_values->im_values_list;
- im->core.ic_values_list = im_values->ic_values_list;
- im->core.destroy_callback = im_values->destroy_callback;
- im->core.res_name = im_values->res_name;
- im->core.res_class = im_values->res_class;
- im->core.visible_position = im_values->visible_position;
-}
-
-void
-_XimGetCurrentICValues(Xic ic, XimDefICValues *ic_values)
-{
- bzero((char *)ic_values, sizeof(XimDefICValues));
-
- ic_values->input_style = ic->core.input_style;
- ic_values->client_window = ic->core.client_window;
- ic_values->focus_window = ic->core.focus_window;
- ic_values->filter_events = ic->core.filter_events;
- ic_values->geometry_callback = ic->core.geometry_callback;
- ic_values->res_name = ic->core.res_name;
- ic_values->res_class = ic->core.res_class;
- ic_values->destroy_callback = ic->core.destroy_callback;
- ic_values->string_conversion_callback
- = ic->core.string_conversion_callback;
- ic_values->string_conversion = ic->core.string_conversion;
- ic_values->reset_state = ic->core.reset_state;
- ic_values->hotkey = ic->core.hotkey;
- ic_values->hotkey_state = ic->core.hotkey_state;
- ic_values->preedit_attr = ic->core.preedit_attr;
- ic_values->status_attr = ic->core.status_attr;
-}
-
-void
-_XimSetCurrentICValues(
- Xic ic,
- XimDefICValues *ic_values)
-{
- ic->core.input_style = ic_values->input_style;
- ic->core.client_window = ic_values->client_window;
- if (ic_values->focus_window)
- ic->core.focus_window = ic_values->focus_window;
- ic->core.filter_events = ic_values->filter_events;
- ic->core.geometry_callback = ic_values->geometry_callback;
- ic->core.res_name = ic_values->res_name;
- ic->core.res_class = ic_values->res_class;
- ic->core.destroy_callback = ic_values->destroy_callback;
- ic->core.string_conversion_callback
- = ic_values->string_conversion_callback;
- ic->core.string_conversion = ic_values->string_conversion;
- ic->core.reset_state = ic_values->reset_state;
- ic->core.hotkey = ic_values->hotkey;
- ic->core.hotkey_state = ic_values->hotkey_state;
- ic->core.preedit_attr = ic_values->preedit_attr;
- ic->core.status_attr = ic_values->status_attr;
-}
-
-static void
-_XimInitialIMOffsetInfo(void)
-{
- unsigned int n = XIMNumber(im_attr_info);
- register int i;
-
- for(i = 0; i < n; i++) {
- im_attr_info[i].quark = XrmStringToQuark(GET_NAME(im_attr_info[i]));
- }
-}
-
-static void
-_XimInitialICOffsetInfo(void)
-{
- unsigned int n;
- register int i;
-
- n = XIMNumber(ic_attr_info);
- for(i = 0; i < n; i++) {
- ic_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_attr_info[i]));
- }
-
- n = XIMNumber(ic_pre_attr_info);
- for(i = 0; i < n; i++) {
- ic_pre_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_pre_attr_info[i]));
- }
-
- n = XIMNumber(ic_sts_attr_info);
- for(i = 0; i < n; i++) {
- ic_sts_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_sts_attr_info[i]));
- }
-}
-
-static void
-_XimInitialIMMode(void)
-{
- unsigned int n = XIMNumber(im_mode);
- register int i;
-
- for(i = 0; i < n; i++) {
- im_mode_quark[i] = XrmStringToQuark(GET_NAME(im_mode[i]));
- }
-}
-
-static void
-_XimInitialICMode(void)
-{
- unsigned int n = XIMNumber(ic_mode);
- register int i;
-
- for(i = 0; i < n; i++) {
- ic_mode_quark[i] = XrmStringToQuark(GET_NAME(ic_mode[i]));
- }
-}
-
-void
-_XimInitialResourceInfo(void)
-{
- static Bool init_flag = False;
-
- if(init_flag == True) {
- return;
- }
- _XimInitialIMOffsetInfo();
- _XimInitialICOffsetInfo();
- _XimInitialIMMode();
- _XimInitialICMode();
- init_flag = True;
-}
diff --git a/nx-X11/lib/X11/imRmAttr.c b/nx-X11/lib/X11/imRmAttr.c
deleted file mode 100644
index 9d4e46258..000000000
--- a/nx-X11/lib/X11/imRmAttr.c
+++ /dev/null
@@ -1,1514 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-
-static XIMResourceList
-_XimGetNestedListSeparator(
- XIMResourceList res_list, /* LISTofIMATTR or IMATTR */
- unsigned int res_num)
-{
- return _XimGetResourceListRec(res_list, res_num, XNSeparatorofNestedList);
-}
-
-static Bool
-_XimCheckInnerIMAttributes(
- Xim im,
- XIMArg *arg,
- unsigned long mode)
-{
- XIMResourceList res;
- int check;
-
- if (!(res = _XimGetResourceListRec(im->private.proto.im_inner_resources,
- im->private.proto.im_num_inner_resources, arg->name)))
- return False;
-
- check = _XimCheckIMMode(res, mode);
- if(check == XIM_CHECK_INVALID)
- return True;
- else if(check == XIM_CHECK_ERROR)
- return False;
-
- return True;
-}
-
-char *
-_XimMakeIMAttrIDList(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- CARD16 *buf,
- INT16 *len,
- unsigned long mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
-
- *len = 0;
- if (!arg)
- return (char *)NULL;
-
- for (p = arg; p->name; p++) {
- if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
- if (_XimCheckInnerIMAttributes(im, p, mode))
- continue;
- return p->name;
- }
-
- check = _XimCheckIMMode(res, mode);
- if (check == XIM_CHECK_INVALID)
- continue;
- else if (check == XIM_CHECK_ERROR)
- return p->name;
-
- *buf = res->id;
- *len += sizeof(CARD16);
- buf++;
- }
- return (char *)NULL;
-}
-
-static Bool
-_XimCheckInnerICAttributes(
- Xic ic,
- XIMArg *arg,
- unsigned long mode)
-{
- XIMResourceList res;
- int check;
-
- if (!(res = _XimGetResourceListRec(ic->private.proto.ic_inner_resources,
- ic->private.proto.ic_num_inner_resources, arg->name)))
- return False;
-
- check = _XimCheckICMode(res, mode);
- if(check == XIM_CHECK_INVALID)
- return True;
- else if(check == XIM_CHECK_ERROR)
- return False;
-
- return True;
-}
-
-char *
-_XimMakeICAttrIDList(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- CARD16 *buf,
- INT16 *len,
- unsigned long mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
- XrmQuark pre_quark;
- XrmQuark sts_quark;
- char *name;
- INT16 new_len;
-
- *len = 0;
- if (!arg)
- return (char *)NULL;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
-
- for (p = arg; p && p->name; p++) {
- if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
- if (_XimCheckInnerICAttributes(ic, p, mode))
- continue;
- *len = -1;
- return p->name;
- }
-
- check = _XimCheckICMode(res, mode);
- if(check == XIM_CHECK_INVALID)
- continue;
- else if(check == XIM_CHECK_ERROR) {
- *len = -1;
- return p->name;
- }
-
- *buf = res->id;
- *len += sizeof(CARD16);
- buf++;
- if (res->resource_size == XimType_NEST) {
- if (res->xrm_name == pre_quark) {
- if ((name = _XimMakeICAttrIDList(ic, res_list, res_num,
- (XIMArg *)p->value, buf, &new_len,
- (mode | XIM_PREEDIT_ATTR)))) {
- if (new_len < 0) *len = -1;
- else *len += new_len;
- return name;
- }
- *len += new_len;
- buf = (CARD16 *)((char *)buf + new_len);
- } else if (res->xrm_name == sts_quark) {
- if ((name = _XimMakeICAttrIDList(ic, res_list, res_num,
- (XIMArg *)p->value, buf, &new_len,
- (mode | XIM_STATUS_ATTR)))) {
- if (new_len < 0) *len = -1;
- else *len += new_len;
- return name;
- }
- *len += new_len;
- buf = (CARD16 *)((char *)buf + new_len);
- }
-
- if (!(res = _XimGetNestedListSeparator(res_list, res_num))) {
- p++;
- if (p) {
- *len = -1;
- return p->name;
- }
- else {
- return (char *)NULL;
- }
- }
- *buf = res->id;
- *len += sizeof(CARD16);
- buf++;
- }
- }
- return (char *)NULL;
-}
-
-static Bool
-_XimAttributeToValue(
- Xic ic,
- XIMResourceList res,
- CARD16 *data,
- INT16 data_len,
- XPointer value,
- BITMASK32 mode)
-{
- switch (res->resource_size) {
- case XimType_SeparatorOfNestedList:
- case XimType_NEST:
- break;
-
- case XimType_CARD8:
- case XimType_CARD16:
- case XimType_CARD32:
- case XimType_Window:
- case XimType_XIMHotKeyState:
- _XCopyToArg((XPointer)data, (XPointer *)&value, data_len);
- break;
-
- case XimType_STRING8:
- {
- char *str;
-
- if (!(value))
- return False;
-
- if (!(str = Xmalloc(data_len + 1)))
- return False;
-
- (void)memcpy(str, (char *)data, data_len);
- str[data_len] = '\0';
-
- *((char **)value) = str;
- break;
- }
-
- case XimType_XIMStyles:
- {
- INT16 num = data[0];
- register CARD32 *style_list = (CARD32 *)&data[2];
- XIMStyle *style;
- XIMStyles *rep;
- register int i;
- char *p;
- int alloc_len;
-
- if (!(value))
- return False;
-
- alloc_len = sizeof(XIMStyles) + sizeof(XIMStyle) * num;
- if (!(p = Xmalloc(alloc_len)))
- return False;
-
- rep = (XIMStyles *)p;
- style = (XIMStyle *)(p + sizeof(XIMStyles));
-
- for (i = 0; i < num; i++)
- style[i] = (XIMStyle)style_list[i];
-
- rep->count_styles = (unsigned short)num;
- rep->supported_styles = style;
- *((XIMStyles **)value) = rep;
- break;
- }
-
- case XimType_XRectangle:
- {
- XRectangle *rep;
-
- if (!(value))
- return False;
-
- if (!(rep = Xmalloc(sizeof(XRectangle))))
- return False;
-
- rep->x = data[0];
- rep->y = data[1];
- rep->width = data[2];
- rep->height = data[3];
- *((XRectangle **)value) = rep;
- break;
- }
-
- case XimType_XPoint:
- {
- XPoint *rep;
-
- if (!(value))
- return False;
-
- if (!(rep = Xmalloc(sizeof(XPoint))))
- return False;
-
- rep->x = data[0];
- rep->y = data[1];
- *((XPoint **)value) = rep;
- break;
- }
-
- case XimType_XFontSet:
- {
- INT16 len = data[0];
- char *base_name;
- XFontSet rep = (XFontSet)NULL;
- char **missing_list = NULL;
- int missing_count;
- char *def_string;
-
- if (!(value))
- return False;
- if (!ic)
- return False;
-
- if (!(base_name = Xmalloc(len + 1)))
- return False;
-
- (void)strncpy(base_name, (char *)&data[1], (int)len);
- base_name[len] = '\0';
-
- if (mode & XIM_PREEDIT_ATTR) {
- if (!strcmp(base_name, ic->private.proto.preedit_font)) {
- rep = ic->core.preedit_attr.fontset;
- } else if (!ic->private.proto.preedit_font_length) {
- rep = XCreateFontSet(ic->core.im->core.display,
- base_name, &missing_list,
- &missing_count, &def_string);
- }
- } else if (mode & XIM_STATUS_ATTR) {
- if (!strcmp(base_name, ic->private.proto.status_font)) {
- rep = ic->core.status_attr.fontset;
- } else if (!ic->private.proto.status_font_length) {
- rep = XCreateFontSet(ic->core.im->core.display,
- base_name, &missing_list,
- &missing_count, &def_string);
- }
- }
-
- Xfree(base_name);
- Xfree(missing_list);
- *((XFontSet *)value) = rep;
- break;
- }
-
- case XimType_XIMHotKeyTriggers:
- {
- INT32 num = *((CARD32 *)data);
- register CARD32 *key_list = (CARD32 *)&data[2];
- XIMHotKeyTrigger *key;
- XIMHotKeyTriggers *rep;
- register int i;
- char *p;
- int alloc_len;
-
- if (!(value))
- return False;
-
- alloc_len = sizeof(XIMHotKeyTriggers)
- + sizeof(XIMHotKeyTrigger) * num;
- if (!(p = Xmalloc(alloc_len)))
- return False;
-
- rep = (XIMHotKeyTriggers *)p;
- key = (XIMHotKeyTrigger *)(p + sizeof(XIMHotKeyTriggers));
-
- for (i = 0; i < num; i++, key_list += 3) {
- key[i].keysym = (KeySym)key_list[0]; /* keysym */
- key[i].modifier = (int)key_list[1]; /* modifier */
- key[i].modifier_mask = (int)key_list[2]; /* modifier_mask */
- }
-
- rep->num_hot_key = (int)num;
- rep->key = key;
- *((XIMHotKeyTriggers **)value) = rep;
- break;
- }
-
- case XimType_XIMStringConversion:
- {
- break;
- }
-
- default:
- return False;
- }
- return True;
-}
-
-static Bool
-_XimDecodeInnerIMATTRIBUTE(
- Xim im,
- XIMArg *arg)
-{
- XIMResourceList res;
- XimDefIMValues im_values;
-
- if (!(res = _XimGetResourceListRec(im->private.proto.im_inner_resources,
- im->private.proto.im_num_inner_resources, arg->name)))
- return False;
-
- _XimGetCurrentIMValues(im, &im_values);
- return _XimDecodeLocalIMAttr(res, (XPointer)&im_values, arg->value);
-}
-
-char *
-_XimDecodeIMATTRIBUTE(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- CARD16 *data,
- INT16 data_len,
- XIMArg *arg,
- BITMASK32 mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
- INT16 len;
- CARD16 *buf;
- INT16 total;
- INT16 min_len = sizeof(CARD16) /* sizeof attributeID */
- + sizeof(INT16); /* sizeof length */
-
- for (p = arg; p->name; p++) {
- if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
- if (_XimDecodeInnerIMATTRIBUTE(im, p))
- continue;
- return p->name;
- }
-
- check = _XimCheckIMMode(res, mode);
- if(check == XIM_CHECK_INVALID)
- continue;
- else if(check == XIM_CHECK_ERROR)
- return p->name;
-
- total = data_len;
- buf = data;
- while (total >= min_len) {
- if (res->id == buf[0])
- break;
-
- len = buf[1];
- len += XIM_PAD(len) + min_len;
- buf = (CARD16 *)((char *)buf + len);
- total -= len;
- }
- if (total < min_len)
- return p->name;
-
- if (!(_XimAttributeToValue((Xic) im->private.local.current_ic,
- res, &buf[2], buf[1], p->value, mode)))
- return p->name;
- }
- return (char *)NULL;
-}
-
-static Bool
-_XimDecodeInnerICATTRIBUTE(
- Xic ic,
- XIMArg *arg,
- unsigned long mode)
-{
- XIMResourceList res;
- XimDefICValues ic_values;
-
- if (!(res = _XimGetResourceListRec(ic->private.proto.ic_inner_resources,
- ic->private.proto.ic_num_inner_resources, arg->name)))
- return False;
-
- _XimGetCurrentICValues(ic, &ic_values);
- if (!_XimDecodeLocalICAttr(res, (XPointer)&ic_values, arg->value, mode))
- return False;
- _XimSetCurrentICValues(ic, &ic_values);
- return True;
-}
-
-char *
-_XimDecodeICATTRIBUTE(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- CARD16 *data,
- INT16 data_len,
- XIMArg *arg,
- BITMASK32 mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
- INT16 len;
- CARD16 *buf;
- INT16 total;
- char *name;
- INT16 min_len = sizeof(CARD16) /* sizeof attributeID */
- + sizeof(INT16); /* sizeof length */
- XrmQuark pre_quark;
- XrmQuark sts_quark;
-
- if (!arg)
- return (char *)NULL;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
-
- for (p = arg; p->name; p++) {
- if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
- if (_XimDecodeInnerICATTRIBUTE(ic, p, mode))
- continue;
- return p->name;
- }
-
- check = _XimCheckICMode(res, mode);
- if (check == XIM_CHECK_INVALID)
- continue;
- else if (check == XIM_CHECK_ERROR)
- return p->name;
-
- total = data_len;
- buf = data;
- while (total >= min_len) {
- if (res->id == buf[0])
- break;
-
- len = buf[1];
- len += XIM_PAD(len) + min_len;
- buf = (CARD16 *)((char *)buf + len);
- total -= len;
- }
- if (total < min_len)
- return p->name;
-
- if (res->resource_size == XimType_NEST) {
- if (res->xrm_name == pre_quark) {
- if ((name = _XimDecodeICATTRIBUTE(ic, res_list, res_num,
- &buf[2], buf[1], (XIMArg *)p->value,
- (mode | XIM_PREEDIT_ATTR))))
- return name;
- } else if (res->xrm_name == sts_quark) {
- if ((name = _XimDecodeICATTRIBUTE(ic, res_list, res_num,
- &buf[2], buf[1], (XIMArg *)p->value,
- (mode | XIM_STATUS_ATTR))))
- return name;
- }
- } else {
- if (!(_XimAttributeToValue(ic, res, &buf[2], buf[1],
- p->value, mode)))
- return p->name;
- }
- }
- return (char *)NULL;
-}
-
-static Bool
-_XimValueToAttribute(
- XIMResourceList res,
- XPointer buf,
- int buf_size,
- XPointer value,
- int *len,
- unsigned long mode,
- XPointer param)
-{
- int ret_len;
-
- switch (res->resource_size) {
- case XimType_SeparatorOfNestedList:
- case XimType_NEST:
- *len = 0;
- break;
-
- case XimType_CARD8:
- ret_len = sizeof(CARD8);
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- *((CARD8 *)buf) = (CARD8)(long)value;
- *len = ret_len;
- break;
-
- case XimType_CARD16:
- ret_len = sizeof(CARD16);
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- *((CARD16 *)buf) = (CARD16)(long)value;
- *len = ret_len;
- break;
-
- case XimType_CARD32:
- case XimType_Window:
- case XimType_XIMHotKeyState:
- ret_len = sizeof(CARD32);
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- *((CARD32 *)buf) = (CARD32)(long)value;
- *len = ret_len;
- break;
-
- case XimType_STRING8:
- if (!value) {
- *len = 0;
- return False;
- }
-
- ret_len = strlen((char *)value);
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- (void)memcpy((char *)buf, (char *)value, ret_len);
- *len = ret_len;
- break;
-
- case XimType_XRectangle:
- {
- XRectangle *rect = (XRectangle *)value;
- CARD16 *buf_s = (CARD16 *)buf;
-
- if (!rect) {
- *len = 0;
- return False;
- }
-
- ret_len = sizeof(INT16) /* sizeof X */
- + sizeof(INT16) /* sizeof Y */
- + sizeof(CARD16) /* sizeof width */
- + sizeof(CARD16); /* sizeof height */
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- buf_s[0] = (CARD16)rect->x; /* X */
- buf_s[1] = (CARD16)rect->y; /* Y */
- buf_s[2] = (CARD16)rect->width; /* width */
- buf_s[3] = (CARD16)rect->height; /* heght */
- *len = ret_len;
- break;
- }
-
- case XimType_XPoint:
- {
- XPoint *point = (XPoint *)value;
- CARD16 *buf_s = (CARD16 *)buf;
-
- if (!point) {
- *len = 0;
- return False;
- }
-
- ret_len = sizeof(INT16) /* sizeof X */
- + sizeof(INT16); /* sizeof Y */
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- buf_s[0] = (CARD16)point->x; /* X */
- buf_s[1] = (CARD16)point->y; /* Y */
- *len = ret_len;
- break;
- }
-
- case XimType_XFontSet:
- {
- XFontSet font = (XFontSet)value;
- Xic ic = (Xic)param;
- char *base_name = NULL;
- int length = 0;
- CARD16 *buf_s = (CARD16 *)buf;
-
- if (!font) {
- *len = 0;
- return False;
- }
-
- if (mode & XIM_PREEDIT_ATTR) {
- base_name = ic->private.proto.preedit_font;
- length = ic->private.proto.preedit_font_length;
- } else if (mode & XIM_STATUS_ATTR) {
- base_name = ic->private.proto.status_font;
- length = ic->private.proto.status_font_length;
- }
-
- if (!base_name) {
- *len = 0;
- return False;
- }
-
- ret_len = sizeof(CARD16) /* sizeof length of Base name */
- + length; /* sizeof Base font name list */
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- buf_s[0] = (INT16)length; /* length of Base font name */
- (void)memcpy((char *)&buf_s[1], base_name, length);
- /* Base font name list */
- *len = ret_len;
- break;
- }
-
- case XimType_XIMHotKeyTriggers:
- {
- XIMHotKeyTriggers *hotkey = (XIMHotKeyTriggers *)value;
- INT32 num;
- CARD32 *buf_l = (CARD32 *)buf;
- register CARD32 *key = (CARD32 *)&buf_l[1];
- register int i;
-
- if (!hotkey) {
- *len = 0;
- return False;
- }
- num = (INT32)hotkey->num_hot_key;
-
- ret_len = sizeof(INT32) /* sizeof number of key list */
- + (sizeof(CARD32) /* sizeof keysyn */
- + sizeof(CARD32) /* sizeof modifier */
- + sizeof(CARD32)) /* sizeof modifier_mask */
- * num; /* number of key list */
- if (buf_size < ret_len + XIM_PAD(ret_len)) {
- *len = -1;
- return False;
- }
-
- buf_l[0] = num; /* number of key list */
- for (i = 0; i < num; i++, key += 3) {
- key[0] = (CARD32)(hotkey->key[i].keysym);
- /* keysym */
- key[1] = (CARD32)(hotkey->key[i].modifier);
- /* modifier */
- key[2] = (CARD32)(hotkey->key[i].modifier_mask);
- /* modifier_mask */
- }
- *len = ret_len;
- break;
- }
-
- case XimType_XIMStringConversion:
- {
- *len = 0;
- break;
- }
-
- default:
- return False;
- }
- return True;
-}
-
-static Bool
-_XimSetInnerIMAttributes(
- Xim im,
- XPointer top,
- XIMArg *arg,
- unsigned long mode)
-{
- XIMResourceList res;
- int check;
-
- if (!(res = _XimGetResourceListRec(im->private.proto.im_inner_resources,
- im->private.proto.im_num_inner_resources, arg->name)))
- return False;
-
- check = _XimCheckIMMode(res, mode);
- if(check == XIM_CHECK_INVALID)
- return True;
- else if(check == XIM_CHECK_ERROR)
- return False;
-
- return _XimEncodeLocalIMAttr(res, top, arg->value);
-}
-
-char *
-_XimEncodeIMATTRIBUTE(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- XIMArg **arg_ret,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- unsigned long mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
- CARD16 *buf_s;
- int len;
- int min_len = sizeof(CARD16) /* sizeof attribute ID */
- + sizeof(INT16); /* sizeof value length */
-
- *ret_len = 0;
- for (p = arg; p->name; p++) {
- if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
- if (_XimSetInnerIMAttributes(im, top, p, mode))
- continue;
- return p->name;
- }
-
- check = _XimCheckIMMode(res, mode);
- if (check == XIM_CHECK_INVALID)
- continue;
- else if (check == XIM_CHECK_ERROR)
- return p->name;
-
- if (!(_XimEncodeLocalIMAttr(res, top, p->value)))
- return p->name;
-
- buf_s = (CARD16 *)buf;
- if (!(_XimValueToAttribute(res, (XPointer)&buf_s[2], (size - min_len),
- p->value, &len, mode, (XPointer)NULL)))
- return p->name;
-
- if (len == 0) {
- continue;
- } else if (len < 0) {
- *arg_ret = p;
- return (char *)NULL;
- }
-
- buf_s[0] = res->id; /* attribute ID */
- buf_s[1] = len; /* value length */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += min_len;
-
- buf += len;
- *ret_len += len;
- size -= len;
- }
- *arg_ret = (XIMArg *)NULL;
- return (char *)NULL;
-}
-
-#ifdef XIM_CONNECTABLE
-Bool
-_XimEncodeSavedIMATTRIBUTE(
- Xim im,
- XIMResourceList res_list,
- unsigned int res_num,
- int *idx,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- unsigned long mode)
-{
- register int i;
- int num = im->private.proto.num_saved_imvalues;
- XrmQuark *quark_list = im->private.proto.saved_imvalues;
- XIMResourceList res;
- XPointer value;
- CARD16 *buf_s;
- int len;
- int min_len = sizeof(CARD16) /* sizeof attribute ID */
- + sizeof(INT16); /* sizeof value length */
-
- if (!im->private.proto.saved_imvalues) {
- *idx = -1;
- *ret_len = 0;
- return True;
- }
-
- *ret_len = 0;
- for (i = *idx; i < num; i++) {
- if (!(res = _XimGetResourceListRecByQuark(res_list,
- res_num, quark_list[i])))
- continue;
-
- if (!_XimDecodeLocalIMAttr(res, top, value))
- return False;
-
- buf_s = (CARD16 *)buf;
- if (!(_XimValueToAttribute(res, (XPointer)&buf_s[2],
- (size - min_len), value, &len, mode, (XPointer)NULL)))
- return False;
-
- if (len == 0) {
- continue;
- } else if (len < 0) {
- *idx = i;
- return True;
- }
-
- buf_s[0] = res->id; /* attribute ID */
- buf_s[1] = len; /* value length */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += min_len;
-
- buf += len;
- *ret_len += len;
- size -= len;
- }
- *idx = -1;
- return True;
-}
-#endif /* XIM_CONNECTABLE */
-
-static Bool
-_XimEncodeTopValue(
- Xic ic,
- XIMResourceList res,
- XIMArg *p)
-{
- if (res->xrm_name == XrmStringToQuark(XNClientWindow)) {
- ic->core.client_window = (Window)p->value;
- if (ic->core.focus_window == (Window)0)
- ic->core.focus_window = ic->core.client_window;
- _XimRegisterFilter(ic);
-
- } else if (res->xrm_name == XrmStringToQuark(XNFocusWindow)) {
- if (ic->core.client_window) {
- _XimUnregisterFilter(ic);
- ic->core.focus_window = (Window)p->value;
- _XimRegisterFilter(ic);
- } else /* client_window not yet */
- ic->core.focus_window = (Window)p->value;
- }
- return True;
-}
-
-static Bool
-_XimEncodePreeditValue(
- Xic ic,
- XIMResourceList res,
- XIMArg *p)
-{
- if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
- XStandardColormap *colormap_ret;
- int count;
-
- if (!(XGetRGBColormaps(ic->core.im->core.display,
- ic->core.focus_window, &colormap_ret,
- &count, (Atom)p->value)))
- return False;
-
- XFree(colormap_ret);
- } else if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
- int list_ret;
- XFontStruct **struct_list;
- char **name_list;
- char *tmp;
- int len;
- register int i;
-
- if (!p->value)
- return False;
-
- Xfree(ic->private.proto.preedit_font);
-
- list_ret = XFontsOfFontSet((XFontSet)p->value,
- &struct_list, &name_list);
- for (i = 0, len = 0; i < list_ret; i++) {
- len += (strlen(name_list[i]) + sizeof(char));
- }
- if (!(tmp = Xmalloc(len + 1))) {
- ic->private.proto.preedit_font = NULL;
- return False;
- }
-
- tmp[0] = '\0';
- for (i = 0; i < list_ret; i++) {
- strcat(tmp, name_list[i]);
- strcat(tmp, ",");
- }
- tmp[len - 1] = 0;
- ic->private.proto.preedit_font = tmp;
- ic->private.proto.preedit_font_length = len - 1;
- }
- return True;
-}
-
-static Bool
-_XimEncodeStatusValue(
- Xic ic,
- XIMResourceList res,
- XIMArg *p)
-{
- if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
- XStandardColormap *colormap_ret = NULL;
- int count;
-
- if (!(XGetRGBColormaps(ic->core.im->core.display,
- ic->core.focus_window, &colormap_ret,
- &count, (Atom)p->value)))
- return False;
-
- XFree(colormap_ret);
- } else if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
- int list_ret;
- XFontStruct **struct_list;
- char **name_list;
- char *tmp;
- int len;
- register int i;
-
- if (!p->value)
- return False;
-
- Xfree(ic->private.proto.status_font);
-
- list_ret = XFontsOfFontSet((XFontSet)p->value,
- &struct_list, &name_list);
- for (i = 0, len = 0; i < list_ret; i++) {
- len += (strlen(name_list[i]) + sizeof(char));
- }
- if (!(tmp = Xmalloc(len+1))) {
- ic->private.proto.status_font = NULL;
- return False;
- }
-
- tmp[0] = '\0';
- for(i = 0; i < list_ret; i++) {
- strcat(tmp, name_list[i]);
- strcat(tmp, ",");
- }
- tmp[len - 1] = 0;
- ic->private.proto.status_font = tmp;
- ic->private.proto.status_font_length = len - 1;
- }
- return True;
-}
-
-static Bool
-_XimSetInnerICAttributes(
- Xic ic,
- XPointer top,
- XIMArg *arg,
- unsigned long mode)
-{
- XIMResourceList res;
- int check;
-
- if (!(res = _XimGetResourceListRec(ic->private.proto.ic_inner_resources,
- ic->private.proto.ic_num_inner_resources, arg->name)))
- return False;
-
- check = _XimCheckICMode(res, mode);
- if(check == XIM_CHECK_INVALID)
- return True;
- else if(check == XIM_CHECK_ERROR)
- return False;
-
- return _XimEncodeLocalICAttr(ic, res, top, arg, mode);
-}
-
-char *
-_XimEncodeICATTRIBUTE(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- XIMArg *arg,
- XIMArg **arg_ret,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- BITMASK32 *flag,
- unsigned long mode)
-{
- register XIMArg *p;
- XIMResourceList res;
- int check;
- CARD16 *buf_s;
- int len;
- int min_len = sizeof(CARD16) /* sizeof attribute ID */
- + sizeof(INT16); /* sizeof value length */
- XrmQuark pre_quark;
- XrmQuark sts_quark;
- char *name;
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
-
- *ret_len = 0;
- for (p = arg; p && p->name; p++) {
- buf_s = (CARD16 *)buf;
- if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) {
- if (_XimSetInnerICAttributes(ic, top, p, mode))
- continue;
- return p->name;
- }
-
- check = _XimCheckICMode(res, mode);
- if (check == XIM_CHECK_INVALID)
- continue;
- else if (check == XIM_CHECK_ERROR)
- return p->name;
-
- if (mode & XIM_PREEDIT_ATTR) {
- if (!(_XimEncodePreeditValue(ic, res, p)))
- return p->name;
- } else if (mode & XIM_STATUS_ATTR) {
- if (!(_XimEncodeStatusValue(ic, res, p)))
- return p->name;
- } else {
- if (!(_XimEncodeTopValue(ic, res, p)))
- return p->name;
- }
-
- if (res->resource_size == XimType_NEST) {
- XimDefICValues *ic_attr = (XimDefICValues *)top;
-
- if (res->xrm_name == pre_quark) {
- XIMArg *arg_rt;
- if ((name = _XimEncodeICATTRIBUTE(ic, res_list, res_num,
- (XIMArg *)p->value, &arg_rt,
- (char *)&buf_s[2], (size - min_len),
- &len, (XPointer)&ic_attr->preedit_attr, flag,
- (mode | XIM_PREEDIT_ATTR)))) {
- return name;
- }
-
- } else if (res->xrm_name == sts_quark) {
- XIMArg *arg_rt;
- if ((name = _XimEncodeICATTRIBUTE(ic, res_list, res_num,
- (XIMArg *)p->value, &arg_rt,
- (char *)&buf_s[2], (size - min_len),
- &len, (XPointer)&ic_attr->status_attr, flag,
- (mode | XIM_STATUS_ATTR)))) {
- return name;
- }
- }
- } else {
-#ifdef EXT_MOVE
- if (flag)
- *flag |= _XimExtenArgCheck(p);
-#endif
- if (!(_XimEncodeLocalICAttr(ic, res, top, p, mode)))
- return p->name;
-
- if (!(_XimValueToAttribute(res, (XPointer)&buf_s[2],
- (size - min_len), p->value,
- &len, mode, (XPointer)ic)))
- return p->name;
- }
-
- if (len == 0) {
- continue;
- } else if (len < 0) {
- *arg_ret = p;
- return (char *)NULL;
- }
-
- buf_s[0] = res->id; /* attribute ID */
- buf_s[1] = len; /* value length */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += min_len;
-
- buf += len;
- *ret_len += len;
- size -= len;
- }
- *arg_ret = (XIMArg *)NULL;
- return (char *)NULL;
-}
-
-#ifdef XIM_CONNECTABLE
-static Bool
-_XimEncodeSavedPreeditValue(
- Xic ic,
- XIMResourceList res,
- XPointer value)
-{
- int list_ret;
- XFontStruct **struct_list;
- char **name_list;
- char *tmp;
- int len;
- register int i;
-
- if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
- if (!value)
- return False;
-
- if (ic->private.proto.preedit_font)
- Xfree(ic->private.proto.preedit_font);
-
- list_ret = XFontsOfFontSet((XFontSet)value,
- &struct_list, &name_list);
- for(i = 0, len = 0; i < list_ret; i++) {
- len += (strlen(name_list[i]) + sizeof(char));
- }
- if(!(tmp = Xmalloc(len + 1))) {
- ic->private.proto.preedit_font = NULL;
- return False;
- }
-
- tmp[0] = '\0';
- for(i = 0; i < list_ret; i++) {
- strcat(tmp, name_list[i]);
- strcat(tmp, ",");
- }
- tmp[len - 1] = 0;
- ic->private.proto.preedit_font = tmp;
- ic->private.proto.preedit_font_length = len - 1;
- }
- return True;
-}
-
-static Bool
-_XimEncodeSavedStatusValue(
- Xic ic,
- XIMResourceList res,
- XPointer value)
-{
- int list_ret;
- XFontStruct **struct_list;
- char **name_list;
- char *tmp;
- int len;
- register int i;
-
- if (res->xrm_name == XrmStringToQuark(XNFontSet)) {
- if (!value)
- return False;
-
- Xfree(ic->private.proto.status_font);
-
- list_ret = XFontsOfFontSet((XFontSet)value,
- &struct_list, &name_list);
- for(i = 0, len = 0; i < list_ret; i++) {
- len += (strlen(name_list[i]) + sizeof(char));
- }
- if(!(tmp = Xmalloc(len + 1))) {
- ic->private.proto.status_font = NULL;
- return False;
- }
-
- tmp[0] = '\0';
- for(i = 0; i < list_ret; i++) {
- strcat(tmp, name_list[i]);
- strcat(tmp, ",");
- }
- tmp[len - 1] = 0;
- ic->private.proto.status_font = tmp;
- ic->private.proto.status_font_length = len - 1;
- }
- return True;
-}
-
-Bool
-_XimEncodeSavedICATTRIBUTE(
- Xic ic,
- XIMResourceList res_list,
- unsigned int res_num,
- int *idx,
- char *buf,
- int size,
- int *ret_len,
- XPointer top,
- unsigned long mode)
-{
- int i;
- int num = ic->private.proto.num_saved_icvalues;
- XrmQuark *quark_list = ic->private.proto.saved_icvalues;
- XIMResourceList res;
- XPointer value;
- CARD16 *buf_s;
- int len;
- int min_len = sizeof(CARD16) /* sizeof attribute ID */
- + sizeof(INT16); /* sizeof value length */
- XrmQuark pre_quark;
- XrmQuark sts_quark;
- XrmQuark separator;
-
- if (!ic->private.proto.saved_icvalues) {
- *idx = -1;
- *ret_len = 0;
- return True;
- }
-
- pre_quark = XrmStringToQuark(XNPreeditAttributes);
- sts_quark = XrmStringToQuark(XNStatusAttributes);
- separator = XrmStringToQuark(XNSeparatorofNestedList);
-
- *ret_len = 0;
- for (i = *idx; i < num; i++) {
- if (quark_list[i] == separator) {
- *idx = i;
- return True;
- }
-
- if (!(res = _XimGetResourceListRecByQuark(res_list,
- res_num, quark_list[i])))
- continue;
-
- if (!_XimDecodeLocalICAttr(res, top,(XPointer)&value, mode))
- return False;
-
- if (mode & XIM_PREEDIT_ATTR) {
- if (!(_XimEncodeSavedPreeditValue(ic, res, value))) {
- return False;
- }
- } else if (mode & XIM_STATUS_ATTR) {
- if (!(_XimEncodeSavedStatusValue(ic, res, value))) {
- return False;
- }
- }
-
- buf_s = (CARD16 *)buf;
- if (res->resource_size == XimType_NEST) {
- XimDefICValues *ic_attr = (XimDefICValues *)top;
-
- i++;
- if (res->xrm_name == pre_quark) {
- if (!_XimEncodeSavedICATTRIBUTE(ic, res_list, res_num,
- &i, (char *)&buf_s[2], (size - min_len),
- &len, (XPointer)&ic_attr->preedit_attr,
- (mode | XIM_PREEDIT_ATTR))) {
- return False;
- }
-
- } else if (res->xrm_name == sts_quark) {
- if (!_XimEncodeSavedICATTRIBUTE(ic, res_list, res_num,
- &i, (char *)&buf_s[2], (size - min_len),
- &len, (XPointer)&ic_attr->status_attr,
- (mode | XIM_STATUS_ATTR))) {
- return False;
- }
- }
- } else {
- if (!(_XimValueToAttribute(res, (XPointer)&buf_s[2],
- (size - min_len), value,
- &len, mode, (XPointer)ic))) {
- return False;
- }
- }
-
- if (len == 0) {
- continue;
- } else if (len < 0) {
- if (quark_list[i] == separator)
- i++;
- *idx = i;
- return True;
- }
-
- buf_s[0] = res->id; /* attribute ID */
- buf_s[1] = len; /* value length */
- XIM_SET_PAD(&buf_s[2], len); /* pad */
- len += min_len;
-
- buf += len;
- *ret_len += len;
- size -= len;
- }
- *idx = -1;
- return True;
-}
-#endif /* XIM_CONNECTABLE */
-
-static unsigned int
-_XimCountNumberOfAttr(
- INT16 total,
- CARD16 *attr,
- int *names_len)
-{
- unsigned int n;
- INT16 len;
- INT16 min_len = sizeof(CARD16) /* sizeof attribute ID */
- + sizeof(CARD16) /* sizeof type of value */
- + sizeof(INT16); /* sizeof length of attribute */
-
- n = 0;
- *names_len = 0;
- while (total > min_len) {
- len = attr[2];
- *names_len += (len + 1);
- len += (min_len + XIM_PAD(len + 2));
- total -= len;
- attr = (CARD16 *)((char *)attr + len);
- n++;
- }
- return n;
-}
-
-Bool
-_XimGetAttributeID(
- Xim im,
- CARD16 *buf)
-{
- unsigned int n;
- XIMResourceList res;
- char *names;
- int names_len;
- XPointer tmp;
- XIMValuesList *values_list;
- char **values;
- int values_len;
- register int i;
- INT16 len;
- INT16 min_len = sizeof(CARD16) /* sizeof attribute ID */
- + sizeof(CARD16) /* sizeof type of value */
- + sizeof(INT16); /* sizeof length of attr */
- /*
- * IM attribute ID
- */
-
- if (!(n = _XimCountNumberOfAttr(buf[0], &buf[1], &names_len)))
- return False;
-
- if (!(res = Xcalloc(n, sizeof(XIMResource))))
- return False;
-
- values_len = sizeof(XIMValuesList) + (sizeof(char **) * n) + names_len;
- if (!(tmp = Xcalloc(1, values_len))) {
- Xfree(res);
- return False;
- }
-
- values_list = (XIMValuesList *)tmp;
- values = (char **)((char *)tmp + sizeof(XIMValuesList));
- names = (char *)((char *)values + (sizeof(char **) * n));
-
- values_list->count_values = n;
- values_list->supported_values = values;
-
- buf++;
- for (i = 0; i < n; i++) {
- len = buf[2];
- (void)memcpy(names, (char *)&buf[3], len);
- values[i] = names;
- names[len] = '\0';
- res[i].resource_name = names;
- res[i].resource_size = buf[1];
- res[i].id = buf[0];
- names += (len + 1);
- len += (min_len + XIM_PAD(len + 2));
- buf = (CARD16 *)((char *)buf + len);
- }
- _XIMCompileResourceList(res, n);
-
- Xfree(im->core.im_resources);
- Xfree(im->core.im_values_list);
-
- im->core.im_resources = res;
- im->core.im_num_resources = n;
- im->core.im_values_list = values_list;
-
- /*
- * IC attribute ID
- */
-
- if (!(n = _XimCountNumberOfAttr(buf[0], &buf[2], &names_len)))
- return False;
-
- if (!(res = Xcalloc(n, sizeof(XIMResource))))
- return False;
-
- values_len = sizeof(XIMValuesList) + (sizeof(char **) * n) + names_len;
- if (!(tmp = Xcalloc(1, values_len))) {
- Xfree(res);
- return False;
- }
-
- values_list = (XIMValuesList *)tmp;
- values = (char **)((char *)tmp + sizeof(XIMValuesList));
- names = (char *)((char *)values + (sizeof(char **) * n));
-
- values_list->count_values = n;
- values_list->supported_values = values;
-
- buf += 2;
- for (i = 0; i < n; i++) {
- len = buf[2];
- (void)memcpy(names, (char *)&buf[3], len);
- values[i] = names;
- names[len] = '\0';
- res[i].resource_name = names;
- res[i].resource_size = buf[1];
- res[i].id = buf[0];
- names += (len + 1);
- len += (min_len + XIM_PAD(len + 2));
- buf = (CARD16 *)((char *)buf + len);
- }
- _XIMCompileResourceList(res, n);
-
-
- Xfree(im->core.ic_resources);
- Xfree(im->core.ic_values_list);
-
- im->core.ic_resources = res;
- im->core.ic_num_resources = n;
- im->core.ic_values_list = values_list;
-
- return True;
-}
diff --git a/nx-X11/lib/X11/imThaiFlt.c b/nx-X11/lib/X11/imThaiFlt.c
deleted file mode 100644
index 401bd9a08..000000000
--- a/nx-X11/lib/X11/imThaiFlt.c
+++ /dev/null
@@ -1,1421 +0,0 @@
-/***********************************************************
-
-Copyright 1993, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-/*
-**++
-** FACILITY:
-**
-** Xlib
-**
-** ABSTRACT:
-**
-** Thai specific functions.
-** Handles character classifications, composibility checking,
-** Input sequence check and other Thai specific requirements
-** according to WTT specification and DEC extensions.
-**
-** MODIFICATION HISTORY:
-**
-**/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include <nx-X11/keysym.h>
-#include <nx-X11/Xutil.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XimThai.h"
-#include "XlcPubI.h"
-
-
-#define SPACE 32
-
-/* character classification table */
-#define TACTIS_CHARS 256
-static
-char const tactis_chtype[TACTIS_CHARS] = {
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 0 - 7 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 8 - 15 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 16 - 23 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 24 - 31 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 32 - 39 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 40 - 47 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 48 - 55 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 56 - 63 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 64 - 71 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 72 - 79 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 80 - 87 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 88 - 95 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 96 - 103 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 104 - 111 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 112 - 119 */
- NON, NON, NON, NON, NON, NON, NON, CTRL, /* 120 - 127 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 128 - 135 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 136 - 143 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 144 - 151 */
- CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 152 - 159 */
- NON, CONS, CONS, CONS, CONS, CONS, CONS, CONS, /* 160 - 167 */
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, CONS, /* 168 - 175 */
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, CONS, /* 176 - 183 */
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, CONS, /* 184 - 191 */
- CONS, CONS, CONS, CONS, FV3, CONS, FV3, CONS, /* 192 - 199 */
- CONS, CONS, CONS, CONS, CONS, CONS, CONS, NON, /* 200 - 207 */
- FV1, AV2, FV1, FV1, AV1, AV3, AV2, AV3, /* 208 - 215 */
- BV1, BV2, BD, NON, NON, NON, NON, NON, /* 216 - 223 */
- LV, LV, LV, LV, LV, FV2, NON, AD2, /* 224 - 231 */
- TONE, TONE, TONE, TONE, AD1, AD1, AD3, NON, /* 232 - 239 */
- NON, NON, NON, NON, NON, NON, NON, NON, /* 240 - 247 */
- NON, NON, NON, NON, NON, NON, NON, CTRL /* 248 - 255 */
-};
-
-/* Composibility checking tables */
-#define NC 0 /* NOT COMPOSIBLE - following char displays in next cell */
-#define CP 1 /* COMPOSIBLE - following char is displayed in the same cell
- as leading char, also implies ACCEPT */
-#define XC 3 /* Non-display */
-#define AC 4 /* ACCEPT - display the following char in the next cell */
-#define RJ 5 /* REJECT - discard that following char, ignore it */
-
-#define CH_CLASSES 17 /* 17 classes of chars */
-
-static
-char const write_rules_lookup[CH_CLASSES][CH_CLASSES] = {
- /* Table 0: writing/outputing rules */
- /* row: leading char, column: following char */
-/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
- {XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*CTRL*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*NON*/
- ,{XC, NC, NC, NC, NC, NC, NC, CP, CP, CP, CP, CP, CP, CP, CP, CP, CP}/*CONS*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*LV*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*FV1*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*FV2*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*FV3*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, CP, CP, NC, NC, NC, NC, NC}/*BV1*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, CP, NC, NC, NC, NC, NC, NC}/*BV2*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*BD*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*TONE*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*AD1*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*AD2*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC}/*AD3*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, CP, CP, NC, NC, NC, NC, NC}/*AV1*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, CP, NC, NC, NC, NC, NC, NC}/*AV2*/
- ,{XC, NC, NC, NC, NC, NC, NC, NC, NC, NC, CP, NC, CP, NC, NC, NC, NC}/*AV3*/
-};
-
-static
-char const wtt_isc1_lookup[CH_CLASSES][CH_CLASSES] = {
- /* Table 1: WTT default input sequence check rules */
- /* row: leading char, column: following char */
-/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
- {XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*CTRL*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*NON*/
- ,{XC, AC, AC, AC, AC, AC, AC, CP, CP, CP, CP, CP, CP, CP, CP, CP, CP}/*CONS*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*LV*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV3*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, CP, RJ, RJ, RJ, RJ, RJ}/*BV1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, RJ, RJ, RJ, RJ, RJ, RJ}/*BV2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*BD*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*TONE*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD3*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, CP, RJ, RJ, RJ, RJ, RJ}/*AV1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, RJ, RJ, RJ, RJ, RJ, RJ}/*AV2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, RJ, CP, RJ, RJ, RJ, RJ}/*AV3*/
-};
-
-static
-char const wtt_isc2_lookup[CH_CLASSES][CH_CLASSES] = {
- /* Table 2: WTT strict input sequence check rules */
- /* row: leading char, column: following char */
-/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
- {XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*CTRL*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*NON*/
- ,{XC, AC, AC, AC, AC, RJ, AC, CP, CP, CP, CP, CP, CP, CP, CP, CP, CP}/*CONS*/
- ,{XC, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*LV*/
- ,{XC, AC, AC, AC, AC, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV1*/
- ,{XC, AC, AC, AC, AC, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV2*/
- ,{XC, AC, AC, AC, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV3*/
- ,{XC, AC, AC, AC, AC, RJ, AC, RJ, RJ, RJ, CP, CP, RJ, RJ, RJ, RJ, RJ}/*BV1*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, CP, RJ, RJ, RJ, RJ, RJ, RJ}/*BV2*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*BD*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*TONE*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD1*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD2*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD3*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, CP, CP, RJ, RJ, RJ, RJ, RJ}/*AV1*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, CP, RJ, RJ, RJ, RJ, RJ, RJ}/*AV2*/
- ,{XC, AC, AC, AC, RJ, RJ, AC, RJ, RJ, RJ, CP, RJ, CP, RJ, RJ, RJ, RJ}/*AV3*/
-};
-
-static
-char const thaicat_isc_lookup[CH_CLASSES][CH_CLASSES] = {
- /* Table 3: Thaicat input sequence check rules */
- /* row: leading char, column: following char */
-/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
- {XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*CTRL*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*NON*/
- ,{XC, AC, AC, AC, AC, AC, AC, CP, CP, CP, CP, CP, CP, CP, CP, CP, CP}/*CONS*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*LV*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*FV2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ} /*FV3*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, CP, RJ, RJ, RJ, RJ, RJ}/*BV1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, RJ, RJ, RJ, RJ, RJ, RJ}/*BV2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*BD*/
- ,{XC, AC, AC, AC, AC, AC, AC, CP, CP, RJ, RJ, RJ, RJ, RJ, CP, CP, CP}/*TONE*/
- ,{XC, AC, AC, AC, AC, AC, AC, CP, RJ, RJ, RJ, RJ, RJ, RJ, CP, RJ, RJ}/*AD1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, CP}/*AD2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ, RJ}/*AD3*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, CP, RJ, RJ, RJ, RJ, RJ}/*AV1*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, RJ, RJ, RJ, RJ, RJ, RJ}/*AV2*/
- ,{XC, AC, AC, AC, AC, AC, AC, RJ, RJ, RJ, CP, RJ, CP, RJ, RJ, RJ, RJ}/*AV3*/
-};
-
-
-/* returns classification of a char */
-static int
-THAI_chtype (unsigned char ch)
-{
- return tactis_chtype[ch];
-}
-
-#ifdef UNUSED
-/* returns the display level */
-static int
-THAI_chlevel (unsigned char ch)
-{
- int chlevel;
-
- switch (tactis_chtype[ch])
- {
- case CTRL:
- chlevel = NON;
- break;
- case BV1:
- case BV2:
- case BD:
- chlevel = BELOW;
- break;
- case TONE:
- case AD1:
- case AD2:
- chlevel = TOP;
- break;
- case AV1:
- case AV2:
- case AV3:
- case AD3:
- chlevel = ABOVE;
- break;
- case NON:
- case CONS:
- case LV:
- case FV1:
- case FV2:
- case FV3:
- default: /* if tactis_chtype is invalid */
- chlevel = BASE;
- break;
- }
- return chlevel;
-}
-
-
-/* return True if char is non-spacing */
-static Bool
-THAI_isdead (unsigned char ch)
-{
- return ((tactis_chtype[ch] == CTRL) || (tactis_chtype[ch] == BV1) ||
- (tactis_chtype[ch] == BV2) || (tactis_chtype[ch] == BD) ||
- (tactis_chtype[ch] == TONE) || (tactis_chtype[ch] == AD1) ||
- (tactis_chtype[ch] == AD2) || (tactis_chtype[ch] == AD3) ||
- (tactis_chtype[ch] == AV1) || (tactis_chtype[ch] == AV2) ||
- (tactis_chtype[ch] == AV3));
-}
-
-
-/* return True if char is consonant */
-static Bool
-THAI_iscons (unsigned char ch)
-{
- return (tactis_chtype[ch] == CONS);
-}
-
-
-/* return True if char is vowel */
-static Bool
-THAI_isvowel (unsigned char ch)
-{
- return ((tactis_chtype[ch] == LV) || (tactis_chtype[ch] == FV1) ||
- (tactis_chtype[ch] == FV2) || (tactis_chtype[ch] == FV3) ||
- (tactis_chtype[ch] == BV1) || (tactis_chtype[ch] == BV2) ||
- (tactis_chtype[ch] == AV1) || (tactis_chtype[ch] == AV2) ||
- (tactis_chtype[ch] == AV3));
-}
-
-
-/* return True if char is tonemark */
-static Bool
-THAI_istone (unsigned char ch)
-{
- return (tactis_chtype[ch] == TONE);
-}
-#endif
-
-static Bool
-THAI_iscomposible (
- unsigned char follow_ch,
- unsigned char lead_ch)
-{/* "Can follow_ch be put in the same display cell as lead_ch?" */
-
- return (write_rules_lookup[THAI_chtype(lead_ch)][THAI_chtype(follow_ch)]
- == CP);
-}
-
-static Bool
-THAI_isaccepted (
- unsigned char follow_ch,
- unsigned char lead_ch,
- unsigned char mode)
-{
- Bool iskeyvalid; /* means "Can follow_ch be keyed in after lead_ch?" */
-
- switch (mode)
- {
- case WTT_ISC1:
- iskeyvalid =
- (wtt_isc1_lookup[THAI_chtype(lead_ch)][THAI_chtype(follow_ch)] != RJ);
- break;
- case WTT_ISC2:
- iskeyvalid =
- (wtt_isc2_lookup[THAI_chtype(lead_ch)][THAI_chtype(follow_ch)] != RJ);
- break;
- case THAICAT_ISC:
- iskeyvalid =
- (thaicat_isc_lookup[THAI_chtype(lead_ch)][THAI_chtype(follow_ch)] != RJ);
- break;
- default:
- iskeyvalid = True;
- break;
- }
-
- return iskeyvalid;
-}
-
-#ifdef UNUSED
-static void
-THAI_apply_write_rules(
- unsigned char *instr,
- unsigned char *outstr,
- unsigned char insert_ch,
- int *num_insert_ch)
-{
-/*
-Input parameters:
- instr - input string
- insert_ch specify what char to be added when invalid composition is found
-Output parameters:
- outstr - output string after input string has been applied the rules
- num_insert_ch - number of insert_ch added to outstr.
-*/
- unsigned char *lead_ch = NULL, *follow_ch = NULL, *out_ch = NULL;
-
- *num_insert_ch = 0;
- lead_ch = follow_ch = instr;
- out_ch = outstr;
- if ((*lead_ch == '\0') || !(THAI_find_chtype(instr,DEAD)))
- { /* Empty string or can't find any non-spacing char*/
- strcpy((char *)outstr, (char *)instr);
- } else { /* String of length >= 1, keep looking */
- follow_ch++;
- if (THAI_isdead(*lead_ch)) { /* is first char non-spacing? */
- *out_ch++ = SPACE;
- (*num_insert_ch)++;
- }
- *out_ch++ = *lead_ch;
- while (*follow_ch != '\0') /* more char in string to check */
- {
- if (THAI_isdead(*follow_ch) &&
- !THAI_iscomposible(*follow_ch,*lead_ch))
- {
- *out_ch++ = SPACE;
- (*num_insert_ch)++;
- }
- *out_ch++ = *follow_ch;
- lead_ch = follow_ch;
- follow_ch++;
- }
- *out_ch = '\0';
- }
-}
-
-static int
-THAI_find_chtype (
- unsigned char *instr,
- int chtype)
-{
-/*
-Input parameters:
- instr - input string
- chtype - type of character to look for
-Output parameters:
- function returns first position of character with matched chtype
- function returns -1 if it does not find.
-*/
- int i = 0, position = -1;
-
- switch (chtype)
- {
- case DEAD:
- for (i = 0; *instr != '\0' && THAI_isdead(*instr); i++, instr++)
- ;
- if (*instr != '\0') position = i;
- break;
- default:
- break;
- }
- return position;
-}
-
-
-static int
-THAI_apply_scm(
- unsigned char *instr,
- unsigned char *outstr,
- unsigned char spec_ch,
- int num_sp,
- unsigned char insert_ch)
-{
- unsigned char *scan, *outch;
- int i, dead_count, found_count;
- Bool isconsecutive;
-
- scan = instr;
- outch = outstr;
- dead_count = found_count = 0;
- isconsecutive = False;
- while (*scan != '\0') {
- if (THAI_isdead(*scan))
- dead_count++; /* count number of non-spacing char */
- if (*scan == spec_ch)
- if (!isconsecutive)
- found_count++; /* count number consecutive spec char found */
- *outch++ = *scan++;
- if (found_count == num_sp) {
- for (i = 0; i < dead_count; i++)
- *outch++ = insert_ch;
- dead_count = found_count = 0;
- }
- }
- /* what to return? */
- return 0; /* probably not right but better than returning garbage */
-}
-
-
-/* The following functions are copied from XKeyBind.c */
-
-static void ComputeMaskFromKeytrans();
-static int IsCancelComposeKey(KeySym *symbol, XKeyEvent *event);
-static void SetLed(Display *dpy, int num, int state);
-static CARD8 FindKeyCode();
-
-
-/* The following functions are specific to this module */
-
-static int XThaiTranslateKey();
-static int XThaiTranslateKeySym();
-
-
-static KeySym HexIMNormalKey(
- XicThaiPart *thai_part,
- KeySym symbol,
- XKeyEvent *event);
-static KeySym HexIMFirstComposeKey(
- XicThaiPart *thai_part,
- KeySym symbol,
- XKeyEvent *event);
-static KeySym HexIMSecondComposeKey(
- XicThaiPart *thai_part,
- KeySym symbol
- XKeyEvent *event);
-static KeySym HexIMComposeSequence(KeySym ks1, KeySym ks2);
-static void InitIscMode(Xic ic);
-static Bool ThaiComposeConvert(
- Display *dpy,
- KeySym insym,
- KeySym *outsym, KeySym *lower, KeySym *upper);
-#endif
-
-/*
- * Definitions
- */
-
-#define BellVolume 0
-
-#define ucs2tis(wc) \
- (unsigned char) ( \
- (0<=(wc)&&(wc)<=0x7F) ? \
- (wc) : \
- ((0x0E01<=(wc)&&(wc)<=0x0E5F) ? ((wc)-0x0E00+0xA0) : 0))
-/* "c" is an unsigned char */
-#define tis2ucs(c) \
- ( \
- ((c)<=0x7F) ? \
- (wchar_t)(c) : \
- ((0x0A1<=(c)) ? ((wchar_t)(c)-0xA0+0x0E00) : 0))
-
-/*
- * Macros to save and recall last input character in XIC
- */
-#define IC_SavePreviousChar(ic,ch) \
- ((ic)->private.local.base.mb[(ic)->private.local.base.tree[(ic)->private.local.context].mb] = (char) (ch))
-#define IC_ClearPreviousChar(ic) \
- ((ic)->private.local.base.mb[(ic)->private.local.base.tree[(ic)->private.local.context].mb] = 0)
-#define IC_GetPreviousChar(ic) \
- (IC_RealGetPreviousChar(ic,1))
-#define IC_GetContextChar(ic) \
- (IC_RealGetPreviousChar(ic,2))
-#define IC_DeletePreviousChar(ic) \
- (IC_RealDeletePreviousChar(ic))
-
-static unsigned char
-IC_RealGetPreviousChar(Xic ic, unsigned short pos)
-{
- XICCallback* cb = &ic->core.string_conversion_callback;
- DefTreeBase *b = &ic->private.local.base;
-
- if (cb && cb->callback) {
- XIMStringConversionCallbackStruct screc;
- unsigned char c;
-
- /* Use a safe value of position = 0 and stretch the range to desired
- * place, as XIM protocol is unclear here whether it could be negative
- */
- screc.position = 0;
- screc.direction = XIMBackwardChar;
- screc.operation = XIMStringConversionRetrieval;
- screc.factor = pos;
- screc.text = 0;
-
- (cb->callback)((XIC)ic, cb->client_data, (XPointer)&screc);
- if (!screc.text)
- return (unsigned char) b->mb[b->tree[(ic)->private.local.context].mb];
- if ((screc.text->feedback &&
- *screc.text->feedback == XIMStringConversionLeftEdge) ||
- screc.text->length < 1)
- {
- c = 0;
- } else {
- Xim im;
- XlcConv conv;
- int from_left;
- int to_left;
- char *from_buf;
- char *to_buf;
-
- im = (Xim) XIMOfIC((XIC)ic);
- if (screc.text->encoding_is_wchar) {
- conv = _XlcOpenConverter(im->core.lcd, XlcNWideChar,
- im->core.lcd, XlcNCharSet);
- from_buf = (char *) screc.text->string.wcs;
- from_left = screc.text->length * sizeof(wchar_t);
- } else {
- conv = _XlcOpenConverter(im->core.lcd, XlcNMultiByte,
- im->core.lcd, XlcNCharSet);
- from_buf = screc.text->string.mbs;
- from_left = screc.text->length;
- }
- to_buf = (char *)&c;
- to_left = 1;
-
- _XlcResetConverter(conv);
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0)
- {
- c = (unsigned char) b->mb[b->tree[(ic)->private.local.context].mb];
- }
- _XlcCloseConverter(conv);
-
- XFree(screc.text->string.mbs);
- }
- XFree(screc.text);
- return c;
- } else {
- return (unsigned char) b->mb[b->tree[(ic)->private.local.context].mb];
- }
-}
-
-static unsigned char
-IC_RealDeletePreviousChar(Xic ic)
-{
- XICCallback* cb = &ic->core.string_conversion_callback;
-
- if (cb && cb->callback) {
- XIMStringConversionCallbackStruct screc;
- unsigned char c;
-
- screc.position = 0;
- screc.direction = XIMBackwardChar;
- screc.operation = XIMStringConversionSubstitution;
- screc.factor = 1;
- screc.text = 0;
-
- (cb->callback)((XIC)ic, cb->client_data, (XPointer)&screc);
- if (!screc.text) { return 0; }
- if ((screc.text->feedback &&
- *screc.text->feedback == XIMStringConversionLeftEdge) ||
- screc.text->length < 1)
- {
- c = 0;
- } else {
- if (screc.text->encoding_is_wchar) {
- c = ucs2tis(screc.text->string.wcs[0]);
- XFree(screc.text->string.wcs);
- } else {
- c = screc.text->string.mbs[0];
- XFree(screc.text->string.mbs);
- }
- }
- XFree(screc.text);
- return c;
- } else {
- return 0;
- }
-}
-/*
- * Input sequence check mode in XIC
- */
-#define IC_IscMode(ic) ((ic)->private.local.thai.input_mode)
-
-/*
- * Max. size of string handled by the two String Lookup functions.
- */
-#define STR_LKUP_BUF_SIZE 256
-
-/*
- * Size of buffer to contain previous locale name.
- */
-#define SAV_LOCALE_NAME_SIZE 256
-
-/*
- * Size of buffer to contain the IM modifier.
- */
-#define MAXTHAIIMMODLEN 20
-
-#define AllMods (ShiftMask|LockMask|ControlMask| \
- Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)
-
-
-#define IsISOControlKey(ks) ((ks) >= XK_2 && (ks) <= XK_8)
-
-#define IsValidControlKey(ks) (((((ks)>=XK_A && (ks)<=XK_asciitilde) || \
- (ks)==XK_space || (ks)==XK_Delete) && \
- ((ks)!=0)))
-
-#define COMPOSE_LED 2
-
-#ifdef UNUSED
-typedef KeySym (*StateProc)(
- XicThaiPart *thai_part,
- KeySym symbol,
- XKeyEvent *event);
-
-
-/*
- * macros to classify XKeyEvent state field
- */
-
-#define IsShift(state) (((state) & ShiftMask) != 0)
-#define IsLock(state) (((state) & LockMask) != 0)
-#define IsControl(state) (((state) & ControlMask) != 0)
-#define IsMod1(state) (((state) & Mod1Mask) != 0)
-#define IsMod2(state) (((state) & Mod2Mask) != 0)
-#define IsMod3(state) (((state) & Mod3Mask) != 0)
-#define IsMod4(state) (((state) & Mod4Mask) != 0)
-#define IsMod5(state) (((state) & Mod5Mask) != 0)
-
-/*
- * key starts Thai compose sequence (Hex input method) if :
- */
-
-#define IsComposeKey(ks, event) \
- (( ks==XK_Alt_L && \
- IsControl((event)->state) && \
- !IsShift((event)->state)) \
- ? True : False)
-
-
-/*
- * State handler to implement the Thai hex input method.
- */
-
-static int const nstate_handlers = 3;
-static StateProc state_handler[] = {
- HexIMNormalKey,
- HexIMFirstComposeKey,
- HexIMSecondComposeKey
-};
-
-
-/*
- * Table for 'Thai Compose' character input.
- * The current implementation uses latin-1 keysyms.
- */
-struct _XMapThaiKey {
- KeySym from;
- KeySym to;
-};
-
-static struct _XMapThaiKey const ThaiComposeTable[] = {
- { /* 0xa4 */ XK_currency, /* 0xa5 */ XK_yen },
- { /* 0xa2 */ XK_cent, /* 0xa3 */ XK_sterling },
- { /* 0xe6 */ XK_ae, /* 0xef */ XK_idiaeresis },
- { /* 0xd3 */ XK_Oacute, /* 0xee */ XK_icircumflex },
- { /* 0xb9 */ XK_onesuperior, /* 0xfa */ XK_uacute },
- { /* 0xd2 */ XK_Ograve, /* 0xe5 */ XK_aring },
- { /* 0xbc */ XK_onequarter, /* 0xfb */ XK_ucircumflex },
- { XK_VoidSymbol, XK_VoidSymbol }
-};
-
-struct _XKeytrans {
- struct _XKeytrans *next;/* next on list */
- char *string; /* string to return when the time comes */
- int len; /* length of string (since NULL is legit)*/
- KeySym key; /* keysym rebound */
- unsigned int state; /* modifier state */
- KeySym *modifiers; /* modifier keysyms you want */
- int mlen; /* length of modifier list */
-};
-
-
-/* Convert keysym to 'Thai Compose' keysym */
-/* The current implementation use latin-1 keysyms */
-static Bool
-ThaiComposeConvert(
- Display *dpy,
- KeySym insym,
- KeySym *outsym, KeySym *lower, KeySym *upper)
-{
- struct _XMapThaiKey const *table_entry = ThaiComposeTable;
-
- while (table_entry->from != XK_VoidSymbol) {
- if (table_entry->from == insym) {
- *outsym = table_entry->to;
- *lower = *outsym;
- *upper = *outsym;
- return True;
- }
- table_entry++;
- }
- return False;
-}
-
-static int
-XThaiTranslateKey(
- register Display *dpy,
- KeyCode keycode,
- register unsigned int modifiers,
- unsigned int *modifiers_return,
- KeySym *keysym_return,
- KeySym *lsym_return,
- KeySym *usym_return)
-{
- int per;
- register KeySym *syms;
- KeySym sym = 0, lsym = 0, usym = 0;
-
- if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
- return 0;
- *modifiers_return = (ShiftMask|LockMask) | dpy->mode_switch;
- if (((int)keycode < dpy->min_keycode) || ((int)keycode > dpy->max_keycode))
- {
- *keysym_return = NoSymbol;
- return 1;
- }
- per = dpy->keysyms_per_keycode;
- syms = &dpy->keysyms[(keycode - dpy->min_keycode) * per];
- while ((per > 2) && (syms[per - 1] == NoSymbol))
- per--;
- if ((per > 2) && (modifiers & dpy->mode_switch)) {
- syms += 2;
- per -= 2;
- }
- if (!(modifiers & ShiftMask) &&
- (!(modifiers & LockMask) || (dpy->lock_meaning == NoSymbol))) {
- if ((per == 1) || (syms[1] == NoSymbol))
- XConvertCase(syms[0], keysym_return, &usym);
- else {
- XConvertCase(syms[0], &lsym, &usym);
- *keysym_return = syms[0];
- }
- } else if (!(modifiers & LockMask) ||
- (dpy->lock_meaning != XK_Caps_Lock)) {
- if ((per == 1) || ((usym = syms[1]) == NoSymbol))
- XConvertCase(syms[0], &lsym, &usym);
- *keysym_return = usym;
- } else {
- if ((per == 1) || ((sym = syms[1]) == NoSymbol))
- sym = syms[0];
- XConvertCase(sym, &lsym, &usym);
- if (!(modifiers & ShiftMask) && (sym != syms[0]) &&
- ((sym != usym) || (lsym == usym)))
- XConvertCase(syms[0], &lsym, &usym);
- *keysym_return = usym;
- }
- /*
- * ThaiCat keyboard support :
- * When the Shift and Thai keys are hold for some keys a 'Thai Compose'
- * character code is generated which is different from column 3 and
- * 4 of the keymap.
- * Since we don't know whether ThaiCat keyboard or WTT keyboard is
- * in use, the same mapping is done for all Thai input.
- * We just arbitary choose to use column 3 keysyms as the indices of
- * this mapping.
- * When the control key is also hold, this mapping has no effect.
- */
- if ((modifiers & Mod1Mask) &&
- (modifiers & ShiftMask) &&
- !(modifiers & ControlMask)) {
- if (ThaiComposeConvert(dpy, syms[0], &sym, &lsym, &usym))
- *keysym_return = sym;
- }
-
- if (*keysym_return == XK_VoidSymbol)
- *keysym_return = NoSymbol;
- *lsym_return = lsym;
- *usym_return = usym;
- return 1;
-}
-
-/*
- * XThaiTranslateKeySym
- *
- * Translate KeySym to TACTIS code output.
- * The current implementation uses ISO latin-1 keysym.
- * Should be changed to TACTIS keysyms when they are defined by the
- * standard.
- */
-static int
-XThaiTranslateKeySym(
- Display *dpy,
- register KeySym symbol,
- register KeySym lsym,
- register KeySym usym,
- unsigned int modifiers,
- unsigned char *buffer,
- int nbytes)
-{
- KeySym ckey = 0;
- register struct _XKeytrans *p;
- int length;
- unsigned long hiBytes;
- register unsigned char c;
-
- /*
- * initialize length = 1 ;
- */
- length = 1;
-
- if (!symbol)
- return 0;
- /* see if symbol rebound, if so, return that string. */
- for (p = dpy->key_bindings; p; p = p->next) {
- if (((modifiers & AllMods) == p->state) && (symbol == p->key)) {
- length = p->len;
- if (length > nbytes) length = nbytes;
- memcpy (buffer, p->string, length);
- return length;
- }
- }
- /* try to convert to TACTIS, handling control */
- hiBytes = symbol >> 8;
- if (!(nbytes &&
- ((hiBytes == 0) ||
- ((hiBytes == 0xFF) &&
- (((symbol >= XK_BackSpace) && (symbol <= XK_Clear)) ||
- (symbol == XK_Return) ||
- (symbol == XK_Escape) ||
- (symbol == XK_KP_Space) ||
- (symbol == XK_KP_Tab) ||
- (symbol == XK_KP_Enter) ||
- ((symbol >= XK_KP_Multiply) && (symbol <= XK_KP_9)) ||
- (symbol == XK_KP_Equal) ||
- (symbol == XK_Scroll_Lock) ||
-#ifdef DXK_PRIVATE /* DEC private keysyms */
- (symbol == DXK_Remove) ||
-#endif
- (symbol == NoSymbol) ||
- (symbol == XK_Delete))))))
- return 0;
-
- /* if X keysym, convert to ascii by grabbing low 7 bits */
- if (symbol == XK_KP_Space)
- c = XK_space & 0x7F; /* patch encoding botch */
-/* not for Thai
- else if (symbol == XK_hyphen)
- c = XK_minus & 0xFF; */ /* map to equiv character */
- else if (hiBytes == 0xFF)
- c = symbol & 0x7F;
- else
- c = symbol & 0xFF;
- /* only apply Control key if it makes sense, else ignore it */
- if (modifiers & ControlMask) {
- if (!(IsKeypadKey(lsym) || lsym==XK_Return || lsym==XK_Tab)) {
- if (IsISOControlKey(lsym)) ckey = lsym;
- else if (IsISOControlKey(usym)) ckey = usym;
- else if (lsym == XK_question) ckey = lsym;
- else if (usym == XK_question) ckey = usym;
- else if (IsValidControlKey(lsym)) ckey = lsym;
- else if (IsValidControlKey(usym)) ckey = usym;
- else length = 0;
-
- if (length != 0) {
- if (ckey == XK_2) c = '\000';
- else if (ckey >= XK_3 && ckey <= XK_7)
- c = (char)(ckey-('3'-'\033'));
- else if (ckey == XK_8) c = '\177';
- else if (ckey == XK_Delete) c = '\030';
- else if (ckey == XK_question) c = '\037';
- else if (ckey == XK_quoteleft) c = '\036'; /* KLee 1/24/91 */
- else c = (char)(ckey & 0x1f);
- }
- }
- }
- /*
- * ThaiCat has a key that generates two TACTIS codes D1 & E9.
- * It is represented by the latin-1 keysym XK_thorn (0xfe).
- * If c is XK_thorn, this key is pressed and it is converted to
- * 0xd1 0xe9.
- */
- if (c == XK_thorn) {
- buffer[0] = 0xd1;
- buffer[1] = 0xe9;
- buffer[2] = '\0';
- return 2;
- }
- else {
- /* Normal case */
- buffer[0] = c;
- buffer[1] = '\0';
- return 1;
- }
-}
-
-/*
- * given a KeySym, returns the first keycode containing it, if any.
- */
-static CARD8
-FindKeyCode(
- register Display *dpy,
- register KeySym code)
-{
-
- register KeySym *kmax = dpy->keysyms +
- (dpy->max_keycode - dpy->min_keycode + 1) * dpy->keysyms_per_keycode;
- register KeySym *k = dpy->keysyms;
- while (k < kmax) {
- if (*k == code)
- return (((k - dpy->keysyms) / dpy->keysyms_per_keycode) +
- dpy->min_keycode);
- k += 1;
- }
- return 0;
-}
-
-/*
- * given a list of modifiers, computes the mask necessary for later matching.
- * This routine must lookup the key in the Keymap and then search to see
- * what modifier it is bound to, if any. Sets the AnyModifier bit if it
- * can't map some keysym to a modifier.
- */
-static void
-ComputeMaskFromKeytrans(
- Display *dpy,
- register struct _XKeytrans *p)
-{
- register int i;
- register CARD8 code;
- register XModifierKeymap *m = dpy->modifiermap;
-
- p->state = AnyModifier;
- for (i = 0; i < p->mlen; i++) {
- /* if not found, then not on current keyboard */
- if ((code = FindKeyCode(dpy, p->modifiers[i])) == 0)
- return;
- /* code is now the keycode for the modifier you want */
- {
- register int j = m->max_keypermod<<3;
-
- while ((--j >= 0) && (code != m->modifiermap[j]))
- ;
- if (j < 0)
- return;
- p->state |= (1<<(j/m->max_keypermod));
- }
- }
- p->state &= AllMods;
-}
-
-/************************************************************************
- *
- *
- * Compose handling routines - compose handlers 0,1,2
- *
- *
- ************************************************************************/
-
-#define NORMAL_KEY_STATE 0
-#define FIRST_COMPOSE_KEY_STATE 1
-#define SECOND_COMPOSE_KEY_STATE 2
-
-static
-KeySym HexIMNormalKey(
- XicThaiPart *thai_part,
- KeySym symbol,
- XKeyEvent *event)
-{
- if (IsComposeKey (symbol, event)) /* start compose sequence */
- {
- SetLed (event->display,COMPOSE_LED, LedModeOn);
- thai_part->comp_state = FIRST_COMPOSE_KEY_STATE;
- return NoSymbol;
- }
- return symbol;
-}
-
-
-static
-KeySym HexIMFirstComposeKey(
- XicThaiPart *thai_part,
- KeySym symbol,
- XKeyEvent *event)
-{
- if (IsModifierKey (symbol)) return symbol; /* ignore shift etc. */
- if (IsCancelComposeKey (&symbol, event)) /* cancel sequence */
- {
- SetLed (event->display,COMPOSE_LED, LedModeOff);
- thai_part->comp_state = NORMAL_KEY_STATE;
- return symbol;
- }
- if (IsComposeKey (symbol, event)) /* restart sequence ?? */
- {
- return NoSymbol; /* no state change necessary */
- }
-
- thai_part->keysym = symbol; /* save key pressed */
- thai_part->comp_state = SECOND_COMPOSE_KEY_STATE;
- return NoSymbol;
-}
-
-static
-KeySym HexIMSecondComposeKey(
- XicThaiPart *thai_part,
- KeySym symbol,
- XKeyEvent *event)
-{
- if (IsModifierKey (symbol)) return symbol; /* ignore shift etc. */
- if (IsComposeKey (symbol, event)) /* restart sequence ? */
- {
- thai_part->comp_state =FIRST_COMPOSE_KEY_STATE;
- return NoSymbol;
- }
- SetLed (event->display,COMPOSE_LED, LedModeOff);
- if (IsCancelComposeKey (&symbol, event)) /* cancel sequence ? */
- {
- thai_part->comp_state = NORMAL_KEY_STATE;
- return symbol;
- }
-
- if ((symbol = HexIMComposeSequence (thai_part->keysym, symbol))
- ==NoSymbol)
- { /* invalid compose sequence */
- XBell(event->display, BellVolume);
- }
- thai_part->comp_state = NORMAL_KEY_STATE; /* reset to normal state */
- return symbol;
-}
-
-
-/*
- * Interprets two keysyms entered as hex digits and return the Thai keysym
- * correspond to the TACTIS code formed.
- * The current implementation of this routine returns ISO Latin Keysyms.
- */
-
-static
-KeySym HexIMComposeSequence(KeySym ks1, KeySym ks2)
-{
-int hi_digit;
-int lo_digit;
-int tactis_code;
-
- if ((ks1 >= XK_0) && (ks1 <= XK_9))
- hi_digit = ks1 - XK_0;
- else if ((ks1 >= XK_A) && (ks1 <= XK_F))
- hi_digit = ks1 - XK_A + 10;
- else if ((ks1 >= XK_a) && (ks1 <= XK_f))
- hi_digit = ks1 - XK_a + 10;
- else /* out of range */
- return NoSymbol;
-
- if ((ks2 >= XK_0) && (ks2 <= XK_9))
- lo_digit = ks2 - XK_0;
- else if ((ks2 >= XK_A) && (ks2 <= XK_F))
- lo_digit = ks2 - XK_A + 10;
- else if ((ks2 >= XK_a) && (ks2 <= XK_f))
- lo_digit = ks2 - XK_a + 10;
- else /* out of range */
- return NoSymbol;
-
- tactis_code = hi_digit * 0x10 + lo_digit ;
-
- return (KeySym)tactis_code;
-
-}
-
-/*
- * routine determines
- * 1) whether key event should cancel a compose sequence
- * 2) whether cancelling key event should be processed or ignored
- */
-
-static
-int IsCancelComposeKey(
- KeySym *symbol,
- XKeyEvent *event)
-{
- if (*symbol==XK_Delete && !IsControl(event->state) &&
- !IsMod1(event->state)) {
- *symbol=NoSymbol; /* cancel compose sequence, and ignore key */
- return True;
- }
- if (IsComposeKey(*symbol, event)) return False;
- return (
- IsControl (event->state) ||
- IsMod1(event->state) ||
- IsKeypadKey (*symbol) ||
- IsFunctionKey (*symbol) ||
- IsMiscFunctionKey (*symbol) ||
-#ifdef DXK_PRIVATE /* DEC private keysyms */
- *symbol == DXK_Remove ||
-#endif
- IsPFKey (*symbol) ||
- IsCursorKey (*symbol) ||
- (*symbol >= XK_Tab && *symbol < XK_Multi_key)
- ? True : False); /* cancel compose sequence and pass */
- /* cancelling key through */
-}
-
-
-/*
- * set specified keyboard LED on or off
- */
-
-static
-void SetLed(
- Display *dpy,
- int num,
- int state)
-{
- XKeyboardControl led_control;
-
- led_control.led_mode = state;
- led_control.led = num;
- XChangeKeyboardControl (dpy, KBLed | KBLedMode, &led_control);
-}
-#endif
-
-/*
- * Initialize ISC mode from im modifier
- */
-static void InitIscMode(Xic ic)
-{
- Xim im;
- char *im_modifier_name;
-
- /* If already defined, just return */
-
- if (IC_IscMode(ic)) return;
-
- /* Get IM modifier */
-
- im = (Xim) XIMOfIC((XIC)ic);
- im_modifier_name = im->core.im_name;
-
- /* Match with predefined value, default is Basic Check */
-
- if (!strncmp(im_modifier_name,"BasicCheck",MAXTHAIIMMODLEN+1))
- IC_IscMode(ic) = WTT_ISC1;
- else if (!strncmp(im_modifier_name,"Strict",MAXTHAIIMMODLEN+1))
- IC_IscMode(ic) = WTT_ISC2;
- else if (!strncmp(im_modifier_name,"Thaicat",MAXTHAIIMMODLEN+1))
- IC_IscMode(ic) = THAICAT_ISC;
- else if (!strncmp(im_modifier_name,"Passthrough",MAXTHAIIMMODLEN+1))
- IC_IscMode(ic) = NOISC;
- else
- IC_IscMode(ic) = WTT_ISC1;
-
- return;
-}
-
-/*
- * Helper functions for _XimThaiFilter()
- */
-static Bool
-ThaiFltAcceptInput(Xic ic, unsigned char new_char, KeySym symbol)
-{
- DefTreeBase *b = &ic->private.local.base;
- b->wc[b->tree[ic->private.local.composed].wc+0] = tis2ucs(new_char);
- b->wc[b->tree[ic->private.local.composed].wc+1] = '\0';
-
- if ((new_char <= 0x1f) || (new_char == 0x7f))
- b->tree[ic->private.local.composed].keysym = symbol;
- else
- b->tree[ic->private.local.composed].keysym = NoSymbol;
-
- return True;
-}
-
-static Bool
-ThaiFltReorderInput(Xic ic, unsigned char previous_char, unsigned char new_char)
-{
- DefTreeBase *b = &ic->private.local.base;
- if (!IC_DeletePreviousChar(ic)) return False;
- b->wc[b->tree[ic->private.local.composed].wc+0] = tis2ucs(new_char);
- b->wc[b->tree[ic->private.local.composed].wc+1] = tis2ucs(previous_char);
- b->wc[b->tree[ic->private.local.composed].wc+2] = '\0';
-
- b->tree[ic->private.local.composed].keysym = NoSymbol;
-
- return True;
-}
-
-static Bool
-ThaiFltReplaceInput(Xic ic, unsigned char new_char, KeySym symbol)
-{
- DefTreeBase *b = &ic->private.local.base;
- if (!IC_DeletePreviousChar(ic)) return False;
- b->wc[b->tree[ic->private.local.composed].wc+0] = tis2ucs(new_char);
- b->wc[b->tree[ic->private.local.composed].wc+1] = '\0';
-
- if ((new_char <= 0x1f) || (new_char == 0x7f))
- b->tree[ic->private.local.composed].keysym = symbol;
- else
- b->tree[ic->private.local.composed].keysym = NoSymbol;
-
- return True;
-}
-
-static unsigned
-NumLockMask(Display *d)
-{
- int i;
- XModifierKeymap *map;
- KeyCode numlock_keycode = XKeysymToKeycode (d, XK_Num_Lock);
- if (numlock_keycode == NoSymbol)
- return 0;
-
- map = XGetModifierMapping (d);
- if (!map)
- return 0;
-
- for (i = 0; i < 8; i++) {
- if (map->modifiermap[map->max_keypermod * i] == numlock_keycode) {
- XFreeModifiermap(map);
- return 1 << i;
- }
- }
- XFreeModifiermap(map);
- return 0;
-}
-
-/*
- * Filter function for TACTIS
- */
-Bool
-_XimThaiFilter(Display *d, Window w, XEvent *ev, XPointer client_data)
-{
- Xic ic = (Xic)client_data;
- KeySym symbol;
- int isc_mode; /* Thai Input Sequence Check mode */
- unsigned char previous_char; /* Last inputted Thai char */
- unsigned char new_char;
-#ifdef UNUSED
- unsigned int modifiers;
- KeySym lsym,usym;
- int state;
- XicThaiPart *thai_part;
- char buf[10];
-#endif
- wchar_t wbuf[10];
- Bool isReject;
- DefTreeBase *b = &ic->private.local.base;
-
- if ((ev->type != KeyPress)
- || (ev->xkey.keycode == 0))
- return False;
-
- if (!IC_IscMode(ic)) InitIscMode(ic);
-
- XwcLookupString((XIC)ic, &ev->xkey, wbuf, sizeof(wbuf) / sizeof(wbuf[0]),
- &symbol, NULL);
-
- if ((ev->xkey.state & (AllMods & ~(ShiftMask|LockMask|NumLockMask(d)))) ||
- ((symbol >> 8 == 0xFF) &&
- ((XK_BackSpace <= symbol && symbol <= XK_Clear) ||
- (symbol == XK_Return) ||
- (symbol == XK_Pause) ||
- (symbol == XK_Scroll_Lock) ||
- (symbol == XK_Sys_Req) ||
- (symbol == XK_Escape) ||
- (symbol == XK_Delete) ||
- IsCursorKey(symbol) ||
- IsKeypadKey(symbol) ||
- IsMiscFunctionKey(symbol) ||
- IsFunctionKey(symbol))))
- {
- IC_ClearPreviousChar(ic);
- return False;
- }
- if (((symbol >> 8 == 0xFF) &&
- IsModifierKey(symbol)) ||
-#ifdef XK_XKB_KEYS
- ((symbol >> 8 == 0xFE) &&
- (XK_ISO_Lock <= symbol && symbol <= XK_ISO_Last_Group_Lock)) ||
-#endif
- (symbol == NoSymbol))
- {
- return False;
- }
-#ifdef UNUSED
- if (! XThaiTranslateKey(ev->xkey.display, ev->xkey.keycode, ev->xkey.state,
- &modifiers, &symbol, &lsym, &usym))
- return False;
-
- /*
- * Hex input method processing
- */
-
- thai_part = &ic->private.local.thai;
- state = thai_part->comp_state;
- if (state >= 0 && state < nstate_handlers) /* call handler for state */
- {
- symbol = (* state_handler[state])(thai_part, symbol, (XKeyEvent *)ev);
- }
-
- /*
- * Translate KeySym into mb.
- */
- count = XThaiTranslateKeySym(ev->xkey.display, symbol, lsym,
- usym, ev->xkey.state, buf, 10);
-
- if (!symbol && !count)
- return True;
-
- /* Return symbol if cannot convert to character */
- if (!count)
- return False;
-#endif
-
- /*
- * Thai Input sequence check
- */
- isc_mode = IC_IscMode(ic);
- if (!(previous_char = IC_GetPreviousChar(ic))) previous_char = ' ';
- new_char = ucs2tis(wbuf[0]);
- isReject = True;
- if (THAI_isaccepted(new_char, previous_char, isc_mode)) {
- ThaiFltAcceptInput(ic, new_char, symbol);
- isReject = False;
- } else {
- unsigned char context_char;
-
- context_char = IC_GetContextChar(ic);
- if (context_char) {
- if (THAI_iscomposible(new_char, context_char)) {
- if (THAI_iscomposible(previous_char, new_char)) {
- isReject = !ThaiFltReorderInput(ic, previous_char, new_char);
- } else if (THAI_iscomposible(previous_char, context_char)) {
- isReject = !ThaiFltReplaceInput(ic, new_char, symbol);
- } else if (THAI_chtype(previous_char) == FV1
- && THAI_chtype(new_char) == TONE) {
- isReject = !ThaiFltReorderInput(ic, previous_char, new_char);
- }
- } else if (THAI_isaccepted(new_char, context_char, isc_mode)) {
- isReject = !ThaiFltReplaceInput(ic, new_char, symbol);
- }
- }
- }
- if (isReject) {
- /* reject character */
- XBell(ev->xkey.display, BellVolume);
- return True;
- }
-
- _Xlcwcstombs(ic->core.im->core.lcd, &b->mb[b->tree[ic->private.local.composed].mb],
- &b->wc[b->tree[ic->private.local.composed].wc], 10);
-
- _Xlcmbstoutf8(ic->core.im->core.lcd, &b->utf8[b->tree[ic->private.local.composed].utf8],
- &b->mb[b->tree[ic->private.local.composed].mb], 10);
-
- /* Remember the last character inputted
- * (as fallback in case StringConversionCallback is not provided)
- */
- IC_SavePreviousChar(ic, new_char);
-
- ev->xkey.keycode = 0;
- XPutBackEvent(d, ev);
- return True;
-}
diff --git a/nx-X11/lib/X11/imThaiIc.c b/nx-X11/lib/X11/imThaiIc.c
deleted file mode 100644
index b559145d0..000000000
--- a/nx-X11/lib/X11/imThaiIc.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission. FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Modifier: Franky Ling Digital Equipment Corporation
- frankyling@hgrd01.enet.dec.com
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-
-static void
-_XimThaiUnSetFocus(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- ((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
-
- if (ic->core.focus_window)
- _XUnregisterFilter(ic->core.im->core.display, ic->core.focus_window,
- _XimThaiFilter, (XPointer)ic);
- return;
-}
-
-static void
-_XimThaiDestroyIC(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- DefTreeBase *b = &ic->private.local.base;
-
- if(((Xim)ic->core.im)->private.local.current_ic == (XIC)ic) {
- _XimThaiUnSetFocus(xic);
- }
-
- Xfree(ic->private.local.ic_resources);
- ic->private.local.ic_resources = NULL;
-
- Xfree (b->tree);
- b->tree = NULL;
-
- Xfree (b->mb);
- b->mb = NULL;
-
- Xfree (b->wc);
- b->wc = NULL;
-
- Xfree (b->utf8);
- b->utf8 = NULL;
- return;
-}
-
-static void
-_XimThaiSetFocus(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- XIC current_ic = ((Xim)ic->core.im)->private.local.current_ic;
-
- if (current_ic == (XIC)ic)
- return;
-
- if (current_ic != (XIC)NULL) {
- _XimThaiUnSetFocus(current_ic);
- }
- ((Xim)ic->core.im)->private.local.current_ic = (XIC)ic;
-
- if (ic->core.focus_window)
- _XRegisterFilterByType(ic->core.im->core.display, ic->core.focus_window,
- KeyPress, KeyPress, _XimThaiFilter, (XPointer)ic);
- return;
-}
-
-static void
-_XimThaiReset(
- XIC xic)
-{
- Xic ic = (Xic)xic;
- DefTreeBase *b = &ic->private.local.base;
- ic->private.local.thai.comp_state = 0;
- ic->private.local.thai.keysym = 0;
- b->mb[b->tree[ic->private.local.composed].mb] = '\0';
- b->wc[b->tree[ic->private.local.composed].wc] = '\0';
- b->utf8[b->tree[ic->private.local.composed].utf8] = '\0';
-}
-
-static char *
-_XimThaiMbReset(
- XIC xic)
-{
- _XimThaiReset(xic);
- return (char *)NULL;
-}
-
-static wchar_t *
-_XimThaiWcReset(
- XIC xic)
-{
- _XimThaiReset(xic);
- return (wchar_t *)NULL;
-}
-
-static XICMethodsRec Thai_ic_methods = {
- _XimThaiDestroyIC, /* destroy */
- _XimThaiSetFocus, /* set_focus */
- _XimThaiUnSetFocus, /* unset_focus */
- _XimLocalSetICValues, /* set_values */
- _XimLocalGetICValues, /* get_values */
- _XimThaiMbReset, /* mb_reset */
- _XimThaiWcReset, /* wc_reset */
- _XimThaiMbReset, /* utf8_reset */
- _XimLocalMbLookupString, /* mb_lookup_string */
- _XimLocalWcLookupString, /* wc_lookup_string */
- _XimLocalUtf8LookupString /* utf8_lookup_string */
-};
-
-XIC
-_XimThaiCreateIC(
- XIM im,
- XIMArg *values)
-{
- Xic ic;
- XimDefICValues ic_values;
- XIMResourceList res;
- unsigned int num;
- int len;
- DefTree *tree;
-
- if((ic = Xcalloc(1, sizeof(XicRec))) == (Xic)NULL) {
- return ((XIC)NULL);
- }
-
- ic->methods = &Thai_ic_methods;
- ic->core.im = im;
- ic->core.filter_events = KeyPressMask;
-
- if (! (ic->private.local.base.tree = tree = Xmalloc(sizeof(DefTree)*3)) )
- goto Set_Error;
- if (! (ic->private.local.base.mb = Xmalloc(21)) )
- goto Set_Error;
- if (! (ic->private.local.base.wc = Xmalloc(sizeof(wchar_t)*21)) )
- goto Set_Error;
- if (! (ic->private.local.base.utf8 = Xmalloc(21)) )
- goto Set_Error;
- ic->private.local.context = 1;
- tree[1].mb = 1;
- tree[1].wc = 1;
- tree[1].utf8 = 1;
- ic->private.local.composed = 2;
- tree[2].mb = 11;
- tree[2].wc = 11;
- tree[2].utf8 = 11;
-
- ic->private.local.thai.comp_state = 0;
- ic->private.local.thai.keysym = 0;
- ic->private.local.thai.input_mode = 0;
-
- num = im->core.ic_num_resources;
- len = sizeof(XIMResource) * num;
- if((res = Xmalloc(len)) == (XIMResourceList)NULL) {
- goto Set_Error;
- }
- (void)memcpy((char *)res, (char *)im->core.ic_resources, len);
- ic->private.local.ic_resources = res;
- ic->private.local.ic_num_resources = num;
-
- bzero((char *)&ic_values, sizeof(XimDefICValues));
- if(_XimCheckLocalInputStyle(ic, (XPointer)&ic_values, values,
- im->core.styles, res, num) == False) {
- goto Set_Error;
- }
-
- _XimSetICMode(res, num, ic_values.input_style);
-
- if(_XimSetICValueData(ic, (XPointer)&ic_values,
- ic->private.local.ic_resources,
- ic->private.local.ic_num_resources,
- values, XIM_CREATEIC, True)) {
- goto Set_Error;
- }
- if(_XimSetICDefaults(ic, (XPointer)&ic_values,
- XIM_SETICDEFAULTS, res, num) == False) {
- goto Set_Error;
- }
- ic_values.filter_events = KeyPressMask;
- _XimSetCurrentICValues(ic, &ic_values);
-
- return ((XIC)ic);
-
-Set_Error :
- if (ic->private.local.ic_resources) {
- Xfree(ic->private.local.ic_resources);
- }
- Xfree(ic);
- return((XIC)NULL);
-}
diff --git a/nx-X11/lib/X11/imThaiIm.c b/nx-X11/lib/X11/imThaiIm.c
deleted file mode 100644
index c17723aca..000000000
--- a/nx-X11/lib/X11/imThaiIm.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
- Copyright 1993 by Digital Equipment Corporation
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of FUJITSU LIMITED and
-Digital Equipment Corporation not be used in advertising or publicity
-pertaining to distribution of the software without specific, written
-prior permission. FUJITSU LIMITED and Digital Equipment Corporation
-makes no representations about the suitability of this software for
-any purpose. It is provided "as is" without express or implied
-warranty.
-
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-FUJITSU LIMITED AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR
-ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
-
- Author: Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
- Modifier: Franky Ling Digital Equipment Corporation
- frankyling@hgrd01.enet.dec.com
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xmd.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XlcPublic.h"
-#include "XlcPubI.h"
-#include "Ximint.h"
-
-static XIMMethodsRec Xim_im_thai_methods = {
- _XimThaiCloseIM, /* close */
- _XimLocalSetIMValues, /* set_values */
- _XimLocalGetIMValues, /* get_values */
- _XimThaiCreateIC, /* create_ic */
- _XimLcctstombs, /* ctstombs */
- _XimLcctstowcs, /* ctstowcs */
- _XimLcctstoutf8 /* ctstoutf8 */
-};
-
-#define THAI_LANGUAGE_NAME "th"
-
-Bool
-_XimCheckIfThaiProcessing(Xim im)
-{
- char *language;
-
- _XGetLCValues(im->core.lcd, XlcNLanguage, &language, NULL);
- if(strcmp(language, THAI_LANGUAGE_NAME) == 0 &&
- (strcmp(im->core.im_name, "") == 0 ||
- strcmp(im->core.im_name, "BasicCheck") == 0 ||
- strcmp(im->core.im_name, "Strict") == 0 ||
- strcmp(im->core.im_name, "Thaicat") == 0 ||
- strcmp(im->core.im_name, "Passthrough") == 0))
- {
- return(True);
- }
- return(False);
-}
-
-Bool
-_XimThaiOpenIM(Xim im)
-{
- XLCd lcd = im->core.lcd;
- XlcConv conv;
- XimDefIMValues im_values;
- XimLocalPrivateRec* private = &im->private.local;
-
- _XimInitialResourceInfo();
- if(_XimSetIMResourceList(&im->core.im_resources,
- &im->core.im_num_resources) == False) {
- goto Open_Error;
- }
- if(_XimSetICResourceList(&im->core.ic_resources,
- &im->core.ic_num_resources) == False) {
- goto Open_Error;
- }
-
- _XimSetIMMode(im->core.im_resources, im->core.im_num_resources);
-
- _XimGetCurrentIMValues(im, &im_values);
- if(_XimSetLocalIMDefaults(im, (XPointer)&im_values,
- im->core.im_resources, im->core.im_num_resources) == False) {
- goto Open_Error;
- }
- _XimSetCurrentIMValues(im, &im_values);
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte)))
- goto Open_Error;
- private->ctom_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar)))
- goto Open_Error;
- private->ctow_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNUtf8String)))
- goto Open_Error;
- private->ctoutf8_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
- goto Open_Error;
- private->cstomb_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
- goto Open_Error;
- private->cstowc_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
- goto Open_Error;
- private->cstoutf8_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
- goto Open_Error;
- private->ucstoc_conv = conv;
-
- if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
- goto Open_Error;
- private->ucstoutf8_conv = conv;
-
- im->methods = &Xim_im_thai_methods;
- private->current_ic = (XIC)NULL;
-
- return(True);
-
-Open_Error :
- _XimThaiIMFree(im);
- return(False);
-}
-
-void
-_XimThaiIMFree(Xim im)
-{
- if(im->core.im_resources) {
- Xfree(im->core.im_resources);
- im->core.im_resources = NULL;
- }
- if(im->core.ic_resources) {
- Xfree(im->core.ic_resources);
- im->core.ic_resources = NULL;
- }
- if(im->core.im_values_list) {
- Xfree(im->core.im_values_list);
- im->core.im_values_list = NULL;
- }
- if(im->core.ic_values_list) {
- Xfree(im->core.ic_values_list);
- im->core.ic_values_list = NULL;
- }
- if(im->core.styles) {
- Xfree(im->core.styles);
- im->core.styles = NULL;
- }
- if(im->core.res_name) {
- Xfree(im->core.res_name);
- im->core.res_name = NULL;
- }
- if(im->core.res_class) {
- Xfree(im->core.res_class);
- im->core.res_class = NULL;
- }
- if(im->core.im_name) {
- Xfree(im->core.im_name);
- im->core.im_name = NULL;
- }
- if (im->private.local.ctom_conv) {
- _XlcCloseConverter(im->private.local.ctom_conv);
- im->private.local.ctom_conv = NULL;
- }
- if (im->private.local.ctow_conv) {
- _XlcCloseConverter(im->private.local.ctow_conv);
- im->private.local.ctow_conv = NULL;
- }
- if (im->private.local.ctoutf8_conv) {
- _XlcCloseConverter(im->private.local.ctoutf8_conv);
- im->private.local.ctoutf8_conv = NULL;
- }
- if (im->private.local.cstomb_conv) {
- _XlcCloseConverter(im->private.local.cstomb_conv);
- im->private.local.cstomb_conv = NULL;
- }
- if (im->private.local.cstowc_conv) {
- _XlcCloseConverter(im->private.local.cstowc_conv);
- im->private.local.cstowc_conv = NULL;
- }
- if (im->private.local.cstoutf8_conv) {
- _XlcCloseConverter(im->private.local.cstoutf8_conv);
- im->private.local.cstoutf8_conv = NULL;
- }
- if (im->private.local.ucstoc_conv) {
- _XlcCloseConverter(im->private.local.ucstoc_conv);
- im->private.local.ucstoc_conv = NULL;
- }
- if (im->private.local.ucstoutf8_conv) {
- _XlcCloseConverter(im->private.local.ucstoutf8_conv);
- im->private.local.ucstoutf8_conv = NULL;
- }
- return;
-}
-
-Status
-_XimThaiCloseIM(XIM xim)
-{
- Xim im = (Xim)xim;
- XIC ic;
- XIC next;
-
- ic = im->core.ic_chain;
- im->core.ic_chain = NULL;
- while (ic) {
- (*ic->methods->destroy) (ic);
- next = ic->core.next;
- Xfree (ic);
- ic = next;
- }
- _XimThaiIMFree(im);
- return(True);
-}
diff --git a/nx-X11/lib/X11/imTrX.c b/nx-X11/lib/X11/imTrX.c
deleted file mode 100644
index 148b7fc90..000000000
--- a/nx-X11/lib/X11/imTrX.c
+++ /dev/null
@@ -1,518 +0,0 @@
-/*
- * Copyright 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <string.h>
-#include <nx-X11/Xatom.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XimTrInt.h"
-#include "XimTrX.h"
-
-static Bool
-_XimXRegisterDispatcher(
- Xim im,
- Bool (*callback)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data)
-{
- XIntrCallbackPtr rec;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
-
- if (!(rec = Xmalloc(sizeof(XIntrCallbackRec))))
- return False;
-
- rec->func = callback;
- rec->call_data = call_data;
- rec->next = spec->intr_cb;
- spec->intr_cb = rec;
- return True;
-}
-
-static void
-_XimXFreeIntrCallback(
- Xim im)
-{
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- register XIntrCallbackPtr rec, next;
-
- for (rec = spec->intr_cb; rec;) {
- next = rec->next;
- Xfree(rec);
- rec = next;
- }
- return;
-}
-
-static Bool
-_XimXCallDispatcher(Xim im, INT16 len, XPointer data)
-{
- register XIntrCallbackRec *rec;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
-
- for (rec = spec->intr_cb; rec; rec = rec->next) {
- if ((*rec->func)(im, len, data, rec->call_data))
- return True;
- }
- return False;
-}
-
-static Bool
-_XimXFilterWaitEvent(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer arg)
-{
- Xim im = (Xim)arg;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- Bool ret;
-
- spec->ev = (XPointer)ev;
- ret = _XimFilterWaitEvent(im);
-
- /*
- * If ev is a pointer to a stack variable, there could be
- * a coredump later on if the pointer is dereferenced.
- * Therefore, reset to NULL to force reinitialization in
- * _XimXRead().
- *
- * Keep in mind _XimXRead may be called again when the stack
- * is very different.
- */
- spec->ev = (XPointer)NULL;
-
- return ret;
-}
-
-static Bool
-_CheckConnect(
- Display *display,
- XEvent *event,
- XPointer xim)
-{
- Xim im = (Xim)xim;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
-
- if ((event->type == ClientMessage)
- && (event->xclient.message_type == spec->imconnectid)) {
- return True;
- }
- return False;
-}
-
-static Bool
-_XimXConnect(Xim im)
-{
- XEvent event;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- CARD32 major_code;
- CARD32 minor_code;
-
- if (!(spec->lib_connect_wid = XCreateSimpleWindow(im->core.display,
- DefaultRootWindow(im->core.display), 0, 0, 1, 1, 1, 0, 0))) {
- return False;
- }
-
- event.xclient.type = ClientMessage;
- event.xclient.display = im->core.display;
- event.xclient.window = im->private.proto.im_window;
- event.xclient.message_type = spec->imconnectid;
- event.xclient.format = 32;
- event.xclient.data.l[0] = (CARD32)spec->lib_connect_wid;
- event.xclient.data.l[1] = spec->major_code;
- event.xclient.data.l[2] = spec->minor_code;
- event.xclient.data.l[3] = 0;
- event.xclient.data.l[4] = 0;
-
- if(event.xclient.data.l[1] == 1 || event.xclient.data.l[1] == 2) {
- XWindowAttributes atr;
- long event_mask;
-
- XGetWindowAttributes(im->core.display, spec->lib_connect_wid, &atr);
- event_mask = atr.your_event_mask | PropertyChangeMask;
- XSelectInput(im->core.display, spec->lib_connect_wid, event_mask);
- _XRegisterFilterByType(im->core.display, spec->lib_connect_wid,
- PropertyNotify, PropertyNotify,
- _XimXFilterWaitEvent, (XPointer)im);
- }
-
- XSendEvent(im->core.display, im->private.proto.im_window,
- False, NoEventMask, &event);
- XFlush(im->core.display);
-
- for (;;) {
- XIfEvent(im->core.display, &event, _CheckConnect, (XPointer)im);
- if (event.xclient.type != ClientMessage) {
- return False;
- }
- if (event.xclient.message_type == spec->imconnectid)
- break;
- }
-
- spec->ims_connect_wid = (Window)event.xclient.data.l[0];
- major_code = (CARD32)event.xclient.data.l[1];
- minor_code = (CARD32)event.xclient.data.l[2];
-
- if (((major_code == 0) && (minor_code <= 2)) ||
- ((major_code == 1) && (minor_code == 0)) ||
- ((major_code == 2) && (minor_code <= 1))) {
- spec->major_code = major_code;
- spec->minor_code = minor_code;
- }
- if (((major_code == 0) && (minor_code == 2)) ||
- ((major_code == 2) && (minor_code == 1))) {
- spec->BoundarySize = (CARD32)event.xclient.data.l[3];
- }
-
- /* ClientMessage Event Filter */
- _XRegisterFilterByType(im->core.display, spec->lib_connect_wid,
- ClientMessage, ClientMessage,
- _XimXFilterWaitEvent, (XPointer)im);
- return True;
-}
-
-static Bool
-_XimXShutdown(Xim im)
-{
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
-
- if (!spec)
- return True;
-
- /* ClientMessage Event Filter */
- _XUnregisterFilter(im->core.display,
- ((XSpecRec *)im->private.proto.spec)->lib_connect_wid,
- _XimXFilterWaitEvent, (XPointer)im);
- XDestroyWindow(im->core.display,
- ((XSpecRec *)im->private.proto.spec)->lib_connect_wid);
- _XimXFreeIntrCallback(im);
- Xfree(spec);
- im->private.proto.spec = 0;
- return True;
-}
-
-static char *
-_NewAtom(
- char *atomName)
-{
- static int sequence = 0;
-
- (void)sprintf(atomName, "_client%d", sequence);
- sequence = ((sequence < 20) ? sequence + 1 : 0);
- return atomName;
-}
-
-static Bool
-_XimXWrite(Xim im, INT16 len, XPointer data)
-{
- Atom atom;
- char atomName[16];
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- XEvent event;
- CARD8 *p;
- CARD32 major_code = spec->major_code;
- CARD32 minor_code = spec->minor_code;
- int BoundSize;
-
- bzero(&event,sizeof(XEvent));
- event.xclient.type = ClientMessage;
- event.xclient.display = im->core.display;
- event.xclient.window = spec->ims_connect_wid;
- if(major_code == 1 && minor_code == 0) {
- BoundSize = 0;
- } else if((major_code == 0 && minor_code == 2) ||
- (major_code == 2 && minor_code == 1)) {
- BoundSize = spec->BoundarySize;
- } else if(major_code == 0 && minor_code == 1) {
- BoundSize = len;
- } else {
- BoundSize = XIM_CM_DATA_SIZE;
- }
- if (len > BoundSize) {
- event.xclient.message_type = spec->improtocolid;
- atom = XInternAtom(im->core.display, _NewAtom(atomName), False);
- XChangeProperty(im->core.display, spec->ims_connect_wid,
- atom, XA_STRING, 8, PropModeAppend,
- (unsigned char *)data, len);
- if(major_code == 0) {
- event.xclient.format = 32;
- event.xclient.data.l[0] = (long)len;
- event.xclient.data.l[1] = (long)atom;
- XSendEvent(im->core.display, spec->ims_connect_wid,
- False, NoEventMask, &event);
- }
- } else {
- int length;
-
- event.xclient.format = 8;
- for(length = 0 ; length < len ; length += XIM_CM_DATA_SIZE) {
- p = (CARD8 *)&event.xclient.data.b[0];
- if((length + XIM_CM_DATA_SIZE) >= len) {
- event.xclient.message_type = spec->improtocolid;
- bzero(p, XIM_CM_DATA_SIZE);
- memcpy((char *)p, (data + length), (len - length));
- } else {
- event.xclient.message_type = spec->immoredataid;
- memcpy((char *)p, (data + length), XIM_CM_DATA_SIZE);
- }
- XSendEvent(im->core.display, spec->ims_connect_wid,
- False, NoEventMask, &event);
- }
- }
-
- return True;
-}
-
-static Bool
-_XimXGetReadData(
- Xim im,
- char *buf,
- int buf_len,
- int *ret_len,
- XEvent *event)
-{
- char *data;
- int len;
-
- char tmp_buf[XIM_CM_DATA_SIZE];
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- unsigned long length;
- Atom prop;
- int return_code;
- Atom type_ret;
- int format_ret;
- unsigned long nitems;
- unsigned long bytes_after_ret;
- unsigned char *prop_ret;
-
- if ((event->type == ClientMessage) &&
- !((event->xclient.message_type == spec->improtocolid) ||
- (event->xclient.message_type == spec->immoredataid))) {
- /* This event has nothing to do with us,
- * FIXME should not have gotten here then...
- */
- return False;
- } else if ((event->type == ClientMessage) && (event->xclient.format == 8)) {
- data = event->xclient.data.b;
- if (buf_len >= XIM_CM_DATA_SIZE) {
- (void)memcpy(buf, data, XIM_CM_DATA_SIZE);
- *ret_len = XIM_CM_DATA_SIZE;
- } else {
- (void)memcpy(buf, data, buf_len);
- len = XIM_CM_DATA_SIZE - buf_len;
- (void)memcpy(tmp_buf, &data[buf_len], len);
- bzero(data, XIM_CM_DATA_SIZE);
- (void)memcpy(data, tmp_buf, len);
- XPutBackEvent(im->core.display, event);
- *ret_len = buf_len;
- }
- } else if ((event->type == ClientMessage)
- && (event->xclient.format == 32)) {
- length = (unsigned long)event->xclient.data.l[0];
- prop = (Atom)event->xclient.data.l[1];
- return_code = XGetWindowProperty(im->core.display,
- spec->lib_connect_wid, prop, 0L,
- (long)((length + 3)/ 4), True, AnyPropertyType,
- &type_ret, &format_ret, &nitems, &bytes_after_ret, &prop_ret);
- if (return_code != Success || format_ret == 0 || nitems == 0) {
- if (return_code == Success)
- XFree(prop_ret);
- return False;
- }
- if (buf_len >= (int)nitems) {
- (void)memcpy(buf, prop_ret, (int)nitems);
- *ret_len = (int)nitems;
- if (bytes_after_ret > 0) {
- XFree(prop_ret);
- if (XGetWindowProperty(im->core.display,
- spec->lib_connect_wid, prop, 0L,
- ((length + bytes_after_ret + 3)/ 4),
- True, AnyPropertyType,
- &type_ret, &format_ret, &nitems,
- &bytes_after_ret,
- &prop_ret) == Success) {
- XChangeProperty(im->core.display, spec->lib_connect_wid, prop,
- XA_STRING, 8, PropModePrepend, &prop_ret[length],
- (nitems - length));
- } else {
- return False;
- }
- }
- } else {
- (void)memcpy(buf, prop_ret, buf_len);
- *ret_len = buf_len;
- len = nitems - buf_len;
-
- if (bytes_after_ret > 0) {
- XFree(prop_ret);
- if (XGetWindowProperty(im->core.display,
- spec->lib_connect_wid, prop, 0L,
- ((length + bytes_after_ret + 3)/ 4),
- True, AnyPropertyType,
- &type_ret, &format_ret, &nitems,
- &bytes_after_ret, &prop_ret) != Success) {
- return False;
- }
- }
- XChangeProperty(im->core.display, spec->lib_connect_wid, prop,
- XA_STRING, 8, PropModePrepend, &prop_ret[buf_len], len);
- event->xclient.data.l[0] = (long)len;
- event->xclient.data.l[1] = (long)prop;
- XPutBackEvent(im->core.display, event);
- }
- XFree(prop_ret);
- } else if (event->type == PropertyNotify) {
- prop = event->xproperty.atom;
- return_code = XGetWindowProperty(im->core.display,
- spec->lib_connect_wid, prop, 0L,
- 1000000L, True, AnyPropertyType,
- &type_ret, &format_ret, &nitems, &bytes_after_ret, &prop_ret);
- if (return_code != Success || format_ret == 0 || nitems == 0) {
- if (return_code == Success)
- XFree(prop_ret);
- return False;
- }
- if (buf_len >= nitems) {
- (void)memcpy(buf, prop_ret, (int)nitems);
- *ret_len = (int)nitems;
- } else {
- (void)memcpy(buf, prop_ret, buf_len);
- *ret_len = buf_len;
- len = nitems - buf_len;
- XChangeProperty(im->core.display, spec->lib_connect_wid, prop,
- XA_STRING, 8, PropModePrepend, &prop_ret[buf_len], len);
- }
- XFree(prop_ret);
- }
- return True;
-}
-
-static Bool
-_CheckCMEvent(
- Display *display,
- XEvent *event,
- XPointer xim)
-{
- Xim im = (Xim)xim;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- CARD32 major_code = spec->major_code;
-
- if ((event->type == ClientMessage)
- &&((event->xclient.message_type == spec->improtocolid) ||
- (event->xclient.message_type == spec->immoredataid)))
- return True;
- if((major_code == 1 || major_code == 2) &&
- (event->type == PropertyNotify) &&
- (event->xproperty.state == PropertyNewValue))
- return True;
- return False;
-}
-
-static Bool
-_XimXRead(Xim im, XPointer recv_buf, int buf_len, int *ret_len)
-{
- XEvent *ev;
- XEvent event;
- int len = 0;
- XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
- XPointer arg = spec->ev;
-
- if (!arg) {
- bzero(&event, sizeof(XEvent));
- ev = &event;
- XIfEvent(im->core.display, ev, _CheckCMEvent, (XPointer)im);
- } else {
- ev = (XEvent *)arg;
- spec->ev = (XPointer)NULL;
- }
- if (!(_XimXGetReadData(im, recv_buf, buf_len, &len, ev)))
- return False;
- *ret_len = len;
- return True;
-}
-
-static void
-_XimXFlush(Xim im)
-{
- XFlush(im->core.display);
- return;
-}
-
-Bool
-_XimXConf(Xim im, char *address)
-{
- XSpecRec *spec;
-
- if (!(spec = Xcalloc(1, sizeof(XSpecRec))))
- return False;
-
- spec->improtocolid = XInternAtom(im->core.display, _XIM_PROTOCOL, False);
- spec->imconnectid = XInternAtom(im->core.display, _XIM_XCONNECT, False);
- spec->immoredataid = XInternAtom(im->core.display, _XIM_MOREDATA, False);
- spec->major_code = MAJOR_TRANSPORT_VERSION;
- spec->minor_code = MINOR_TRANSPORT_VERSION;
-
- im->private.proto.spec = (XPointer)spec;
- im->private.proto.connect = _XimXConnect;
- im->private.proto.shutdown = _XimXShutdown;
- im->private.proto.write = _XimXWrite;
- im->private.proto.read = _XimXRead;
- im->private.proto.flush = _XimXFlush;
- im->private.proto.register_dispatcher = _XimXRegisterDispatcher;
- im->private.proto.call_dispatcher = _XimXCallDispatcher;
-
- return True;
-}
diff --git a/nx-X11/lib/X11/imTrans.c b/nx-X11/lib/X11/imTrans.c
deleted file mode 100644
index 7f936cff6..000000000
--- a/nx-X11/lib/X11/imTrans.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * Copyright 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xmd.h>
-#include "Xlibint.h"
-#include <nx-X11/Xtrans/Xtrans.h>
-#include "Xlcint.h"
-#include "Ximint.h"
-#include "XimTrans.h"
-#include "XimTrInt.h"
-
-#ifdef WIN32
-#include <nx-X11/Xwindows.h>
-#endif
-
-
-#ifndef XIM_CONNECTION_RETRIES
-#define XIM_CONNECTION_RETRIES 5
-#endif
-
-
-static Bool
-_XimTransConnect(
- Xim im)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
- int connect_stat, retry;
- Window window;
-
- for (retry = XIM_CONNECTION_RETRIES; retry >= 0; retry--)
- {
- if ((spec->trans_conn = _XimXTransOpenCOTSClient (
- spec->address)) == NULL)
- {
- break;
- }
-
- if ((connect_stat = _XimXTransConnect (
- spec->trans_conn, spec->address)) < 0)
- {
- _XimXTransClose (spec->trans_conn);
- spec->trans_conn = NULL;
-
- if (connect_stat == TRANS_TRY_CONNECT_AGAIN)
- continue;
- else
- break;
- }
- else
- break;
- }
-
- if (spec->trans_conn == NULL)
- return False;
-
- spec->fd = _XimXTransGetConnectionNumber (spec->trans_conn);
-
- if (!(window = XCreateSimpleWindow(im->core.display,
- DefaultRootWindow(im->core.display), 0, 0, 1, 1, 1, 0, 0)))
- return False;
- spec->window = window;
-
- _XRegisterFilterByType(im->core.display, window, KeyPress, KeyPress,
- _XimTransFilterWaitEvent, (XPointer)im);
-
- return _XRegisterInternalConnection(im->core.display, spec->fd,
- (_XInternalConnectionProc)_XimTransInternalConnection,
- (XPointer)im);
-}
-
-
-static Bool
-_XimTransShutdown(
- Xim im)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
-
- _XimXTransDisconnect(spec->trans_conn);
- (void)_XimXTransClose(spec->trans_conn);
- _XimFreeTransIntrCallback(im);
- _XUnregisterInternalConnection(im->core.display, spec->fd);
- _XUnregisterFilter(im->core.display, spec->window,
- _XimTransFilterWaitEvent, (XPointer)im);
- XDestroyWindow(im->core.display, spec->window);
- Xfree(spec->address);
- Xfree(spec);
- return True;
-}
-
-
-
-Bool
-_XimTransRegisterDispatcher(
- Xim im,
- Bool (*callback)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
- TransIntrCallbackPtr rec;
-
- if (!(rec = Xmalloc(sizeof(TransIntrCallbackRec))))
- return False;
-
- rec->func = callback;
- rec->call_data = call_data;
- rec->next = spec->intr_cb;
- spec->intr_cb = rec;
- return True;
-}
-
-
-void
-_XimFreeTransIntrCallback(
- Xim im)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
- register TransIntrCallbackPtr rec, next;
-
- for (rec = spec->intr_cb; rec;) {
- next = rec->next;
- Xfree(rec);
- rec = next;
- }
- return;
-}
-
-
-Bool
-_XimTransCallDispatcher(Xim im, INT16 len, XPointer data)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
- TransIntrCallbackRec *rec;
-
- for (rec = spec->intr_cb; rec; rec = rec->next) {
- if ((*rec->func)(im, len, data, rec->call_data))
- return True;
- }
- return False;
-}
-
-
-Bool
-_XimTransFilterWaitEvent(
- Display *d,
- Window w,
- XEvent *ev,
- XPointer arg)
-{
- Xim im = (Xim)arg;
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
-
- spec->is_putback = False;
- return _XimFilterWaitEvent(im);
-}
-
-
-void
-_XimTransInternalConnection(
- Display *d,
- int fd,
- XPointer arg)
-{
- Xim im = (Xim)arg;
- XEvent ev;
- XKeyEvent *kev;
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
-
- if (spec->is_putback)
- return;
-
- bzero(&ev, sizeof(ev)); /* FIXME: other fields may be accessed, too. */
- kev = (XKeyEvent *)&ev;
- kev->type = KeyPress;
- kev->send_event = False;
- kev->display = im->core.display;
- kev->window = spec->window;
- kev->keycode = 0;
- kev->time = 0L;
- kev->serial = LastKnownRequestProcessed(im->core.display);
-#if 0
- fprintf(stderr,"%s,%d: putback FIXED kev->time=0 kev->serial=%lu\n", __FILE__, __LINE__, kev->serial);
-#endif
-
- XPutBackEvent(im->core.display, &ev);
- XFlush(im->core.display);
- spec->is_putback = True;
- return;
-}
-
-
-Bool
-_XimTransWrite(Xim im, INT16 len, XPointer data)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
- char *buf = (char *)data;
- register int nbyte;
-
- while (len > 0) {
- if ((nbyte = _XimXTransWrite(spec->trans_conn, buf, len)) <= 0)
- return False;
- len -= nbyte;
- buf += nbyte;
- }
- return True;
-}
-
-
-Bool
-_XimTransRead(
- Xim im,
- XPointer recv_buf,
- int buf_len,
- int *ret_len)
-{
- TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
- int len;
-
- if (buf_len == 0) {
- *ret_len = 0;
- return True;
- }
- if ((len = _XimXTransRead(spec->trans_conn, recv_buf, buf_len)) <= 0)
- return False;
- *ret_len = len;
- return True;
-}
-
-
-void
-_XimTransFlush(
- Xim im)
-{
- return;
-}
-
-
-
-Bool
-_XimTransConf(
- Xim im,
- char *address)
-{
- char *paddr;
- TransSpecRec *spec;
-
- if (!(paddr = strdup(address)))
- return False;
-
- if (!(spec = Xcalloc(1, sizeof(TransSpecRec)))) {
- Xfree(paddr);
- return False;
- }
-
- spec->address = paddr;
-
- im->private.proto.spec = (XPointer)spec;
- im->private.proto.connect = _XimTransConnect;
- im->private.proto.shutdown = _XimTransShutdown;
- im->private.proto.write = _XimTransWrite;
- im->private.proto.read = _XimTransRead;
- im->private.proto.flush = _XimTransFlush;
- im->private.proto.register_dispatcher = _XimTransRegisterDispatcher;
- im->private.proto.call_dispatcher = _XimTransCallDispatcher;
-
- return True;
-}
diff --git a/nx-X11/lib/X11/imTransR.c b/nx-X11/lib/X11/imTransR.c
deleted file mode 100644
index 50b549e71..000000000
--- a/nx-X11/lib/X11/imTransR.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright 1992 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/******************************************************************
-
- Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose.
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
- Author: Hideki Hiura (hhiura@Sun.COM) Sun Microsystems, Inc.
- Takashi Fujiwara FUJITSU LIMITED
- fujiwara@a80.tech.yk.fujitsu.co.jp
-
-******************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include "XimTrInt.h"
-#include "Ximint.h"
-
-TransportSW _XimTransportRec[] = {
- { "X", _XimXConf }, /* 1st entry must be X.
- This will be a fallback */
-#ifdef TCPCONN
- { "tcp", _XimTransConf }, /* use X transport lib */
-#endif /* TCPCONN */
-#if defined(UNIXCONN) || defined(LOCALCONN)
- { "local", _XimTransConf }, /* use X transport lib */
-#endif /* UNIXCONN */
- { (char *)NULL, (Bool (*)(Xim, char *))NULL },
-};
-
-Bool
-_XimConnect(Xim im)
-{
- return im->private.proto.connect(im);
-}
-
-Bool
-_XimShutdown(Xim im)
-{
- return im->private.proto.shutdown(im);
-}
-
-Bool
-_XimWrite(Xim im, INT16 len, XPointer data)
-{
- return im->private.proto.write(im, len, data);
-}
-
-static int
-_CheckProtocolData(
- Xim im,
- char *recv_buf)
-{
- int data_len;
-
- data_len = (int)(((*((CARD16 *)recv_buf + 1)) * 4) + XIM_HEADER_SIZE);
- return data_len;
-}
-
-static int
-_XimReadData(
- Xim im,
- INT16 *len,
- XPointer buf,
- int buf_size)
-{
- char *hold_buf;
- char *tmp;
- int data_len;
- int packet_size;
- int ret_len;
- register int i;
-
- if (buf_size < XIM_HEADER_SIZE) {
- *len = (INT16)XIM_HEADER_SIZE;
- return XIM_OVERFLOW;
- }
-
- bzero(buf, buf_size);
- packet_size = 0;
- data_len = 0;
-
- if ((hold_buf = im->private.proto.hold_data)) {
- data_len = im->private.proto.hold_data_len;
- if (data_len >= XIM_HEADER_SIZE) {
- packet_size = _CheckProtocolData(im, hold_buf);
- if (packet_size > buf_size) {
- *len = (INT16)packet_size;
- return XIM_OVERFLOW;
- }
- if (packet_size <= data_len) {
- memcpy(buf, hold_buf, packet_size);
- for (i = packet_size; i < data_len; i++) {
- if (hold_buf[i])
- break;
- }
- data_len -= i;
-
- if (data_len) {
- if (!(tmp = Xmalloc(data_len))) {
- return XIM_FALSE;
- }
- memcpy(tmp, &hold_buf[i], data_len);
- im->private.proto.hold_data = tmp;
- im->private.proto.hold_data_len = data_len;
- } else {
- im->private.proto.hold_data = 0;
- im->private.proto.hold_data_len = 0;
- }
- Xfree(hold_buf);
- *len = (INT16)packet_size;
- return XIM_TRUE;
- }
- }
- memcpy(buf, hold_buf, data_len);
- buf_size -= data_len;
- Xfree(hold_buf);
- im->private.proto.hold_data = 0;
- im->private.proto.hold_data_len = 0;
- }
-
- if (!packet_size) {
- while (data_len < XIM_HEADER_SIZE) {
- if (!(im->private.proto.read(im,
- (XPointer)&buf[data_len], buf_size, &ret_len))) {
- return XIM_FALSE;
- }
- data_len += ret_len;
- buf_size -= ret_len;
- }
- packet_size = _CheckProtocolData(im, buf);
- }
-
- if (packet_size > buf_size) {
- if (!(tmp = Xmalloc(data_len))) {
- return XIM_FALSE;
- }
- memcpy(tmp, buf, data_len);
- bzero(buf, data_len);
- im->private.proto.hold_data = tmp;
- im->private.proto.hold_data_len = data_len;
- *len = (INT16)packet_size;
- return XIM_OVERFLOW;
- }
-
- while (data_len < packet_size) {
- if (!(im->private.proto.read(im,
- (XPointer)&buf[data_len], buf_size, &ret_len))) {
- return XIM_FALSE;
- }
- data_len += ret_len;
- buf_size -= ret_len;
- }
-
- for (i = packet_size; i < data_len; i++) {
- if (buf[i])
- break;
- }
- data_len -= i;
-
- if (data_len) {
- if (!(tmp = Xmalloc(data_len))) {
- return XIM_FALSE;
- }
- memcpy(tmp, &buf[i], data_len);
- bzero(&buf[i], data_len);
- im->private.proto.hold_data = tmp;
- im->private.proto.hold_data_len = data_len;
- } else {
- im->private.proto.hold_data = 0;
- im->private.proto.hold_data_len = 0;
- }
- *len = (INT16)packet_size;
- return XIM_TRUE;
-}
-
-static Bool
-_XimCallDispatcher(
- Xim im,
- INT16 len,
- XPointer data)
-{
- return im->private.proto.call_dispatcher(im, len, data);
-}
-
-int
-_XimRead(Xim im, INT16 *len, XPointer buf, int buf_size,
- Bool (*predicate)(Xim, INT16, XPointer, XPointer), XPointer arg)
-{
- INT16 read_len;
- int ret_code;
-
- for (;;) {
- ret_code = _XimReadData(im, &read_len, buf, buf_size);
- if(ret_code != XIM_TRUE) {
- return ret_code;
- }
- if ((*predicate)(im, read_len, buf, arg))
- break;
- if (_XimCallDispatcher(im, read_len, buf))
- continue;
- _XimError(im, 0, XIM_BadProtocol, (INT16)0, (CARD16)0, (char *)NULL);
- }
- *len = read_len;
- return True;
-}
-
-Bool
-_XimRegisterDispatcher(
- Xim im,
- Bool (*callback)(
- Xim, INT16, XPointer, XPointer
- ),
- XPointer call_data)
-{
- return im->private.proto.register_dispatcher(im, callback, call_data);
-}
-
-void
-_XimFlush(Xim im)
-{
- im->private.proto.flush(im);
- return;
-}
-
-Bool
-_XimFilterWaitEvent(Xim im)
-{
- INT16 read_len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
-
- buf_size = BUFSIZE;
- ret_code = _XimReadData(im, &read_len, (XPointer)reply, buf_size);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(read_len <= 0) {
- preply = reply;
- } else {
- buf_size = (int)read_len;
- preply = Xmalloc(buf_size);
- ret_code = _XimReadData(im, &read_len, preply, buf_size);
- if(ret_code != XIM_TRUE) {
- if (preply != reply)
- Xfree(preply);
- return False;
- }
- }
- } else {
- return False;
- }
- if (_XimCallDispatcher(im, read_len, preply)) {
- if(reply != preply)
- Xfree(preply);
- return True;
- }
- _XimError(im, 0, XIM_BadProtocol, (INT16)0, (CARD16)0, (char *)NULL);
- if(reply != preply)
- Xfree(preply);
- return True;
-}
diff --git a/nx-X11/lib/X11/lcCT.c b/nx-X11/lib/X11/lcCT.c
deleted file mode 100644
index 6e3f21e92..000000000
--- a/nx-X11/lib/X11/lcCT.c
+++ /dev/null
@@ -1,1303 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Takanori Tateno FUJITSU LIMITED
- *
- */
-/*
- * 2000
- * Modifier: Ivan Pascal The XFree86 Project
- * Modifier: Bruno Haible The XFree86 Project
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include <nx-X11/Xos.h>
-#include <stdio.h>
-
-
-/* ====================== Built-in Character Sets ====================== */
-
-/*
- * Static representation of a character set that can be used in Compound Text.
- */
-typedef struct _CTDataRec {
- const char name[19];
- const char ct_sequence[5]; /* Compound Text encoding, ESC sequence */
-} CTDataRec, *CTData;
-
-static const CTDataRec default_ct_data[] =
-{
- /* */
- /* X11 registry name MIME name ISO-IR ESC sequence */
- /* */
-
- /* Registered character sets with one byte per character */
- { "ISO8859-1:GL", /* US-ASCII 6 */ "\033(B" },
- { "ISO8859-1:GR", /* ISO-8859-1 100 */ "\033-A" },
- { "ISO8859-2:GR", /* ISO-8859-2 101 */ "\033-B" },
- { "ISO8859-3:GR", /* ISO-8859-3 109 */ "\033-C" },
- { "ISO8859-4:GR", /* ISO-8859-4 110 */ "\033-D" },
- { "ISO8859-5:GR", /* ISO-8859-5 144 */ "\033-L" },
- { "ISO8859-6:GR", /* ISO-8859-6 127 */ "\033-G" },
- { "ISO8859-7:GR", /* ISO-8859-7 126 */ "\033-F" },
- { "ISO8859-8:GR", /* ISO-8859-8 138 */ "\033-H" },
- { "ISO8859-9:GR", /* ISO-8859-9 148 */ "\033-M" },
- { "ISO8859-10:GR", /* ISO-8859-10 157 */ "\033-V" },
- { "ISO8859-11:GR", /* ISO-8859-11 166 */ "\033-T" },
- { "ISO8859-13:GR", /* ISO-8859-13 179 */ "\033-Y" },
- { "ISO8859-14:GR", /* ISO-8859-14 199 */ "\033-_" },
- { "ISO8859-15:GR", /* ISO-8859-15 203 */ "\033-b" },
- { "ISO8859-16:GR", /* ISO-8859-16 226 */ "\033-f" },
- { "JISX0201.1976-0:GL", /* ISO-646-JP 14 */ "\033(J" },
- { "JISX0201.1976-0:GR", "\033)I" },
-#if 0
- { "TIS620-0:GR", /* TIS-620 166 */ "\033-T" },
-#endif
-
- /* Registered character sets with two byte per character */
- { "GB2312.1980-0:GL", /* GB_2312-80 58 */ "\033$(A" },
- { "GB2312.1980-0:GR", /* GB_2312-80 58 */ "\033$)A" },
- { "JISX0208.1983-0:GL", /* JIS_X0208-1983 87 */ "\033$(B" },
- { "JISX0208.1983-0:GR", /* JIS_X0208-1983 87 */ "\033$)B" },
- { "JISX0208.1990-0:GL", /* JIS_X0208-1990 168 */ "\033$(B" },
- { "JISX0208.1990-0:GR", /* JIS_X0208-1990 168 */ "\033$)B" },
- { "JISX0212.1990-0:GL", /* JIS_X0212-1990 159 */ "\033$(D" },
- { "JISX0212.1990-0:GR", /* JIS_X0212-1990 159 */ "\033$)D" },
- { "KSC5601.1987-0:GL", /* KS_C_5601-1987 149 */ "\033$(C" },
- { "KSC5601.1987-0:GR", /* KS_C_5601-1987 149 */ "\033$)C" },
- { "CNS11643.1986-1:GL", /* CNS 11643-1992 pl.1 171 */ "\033$(G" },
- { "CNS11643.1986-1:GR", /* CNS 11643-1992 pl.1 171 */ "\033$)G" },
- { "CNS11643.1986-2:GL", /* CNS 11643-1992 pl.2 172 */ "\033$(H" },
- { "CNS11643.1986-2:GR", /* CNS 11643-1992 pl.2 172 */ "\033$)H" },
- { "CNS11643.1992-3:GL", /* CNS 11643-1992 pl.3 183 */ "\033$(I" },
- { "CNS11643.1992-3:GR", /* CNS 11643-1992 pl.3 183 */ "\033$)I" },
- { "CNS11643.1992-4:GL", /* CNS 11643-1992 pl.4 184 */ "\033$(J" },
- { "CNS11643.1992-4:GR", /* CNS 11643-1992 pl.4 184 */ "\033$)J" },
- { "CNS11643.1992-5:GL", /* CNS 11643-1992 pl.5 185 */ "\033$(K" },
- { "CNS11643.1992-5:GR", /* CNS 11643-1992 pl.5 185 */ "\033$)K" },
- { "CNS11643.1992-6:GL", /* CNS 11643-1992 pl.6 186 */ "\033$(L" },
- { "CNS11643.1992-6:GR", /* CNS 11643-1992 pl.6 186 */ "\033$)L" },
- { "CNS11643.1992-7:GL", /* CNS 11643-1992 pl.7 187 */ "\033$(M" },
- { "CNS11643.1992-7:GR", /* CNS 11643-1992 pl.7 187 */ "\033$)M" },
-
- /* Registered encodings with a varying number of bytes per character */
- { "ISO10646-1", /* UTF-8 196 */ "\033%G" },
-
- /* Encodings without ISO-IR assigned escape sequence must be
- defined in XLC_LOCALE files, using "\033%/1" or "\033%/2". */
-
- /* Backward compatibility with XFree86 3.x */
-#if 1
- { "ISO8859-14:GR", "\033%/1" },
- { "ISO8859-15:GR", "\033%/1" },
-#endif
- /* For use by utf8 -> ctext */
- { "BIG5-0:GLGR", "\033%/2"},
- { "BIG5HKSCS-0:GLGR", "\033%/2"},
- { "GBK-0:GLGR", "\033%/2"},
- /* used by Emacs, but not backed by ISO-IR */
- { "BIG5-E0:GL", "\033$(0" },
- { "BIG5-E0:GR", "\033$)0" },
- { "BIG5-E1:GL", "\033$(1" },
- { "BIG5-E1:GR", "\033$)1" },
-
-};
-
-/* We represent UTF-8 as an XlcGLGR charset, not in extended segments. */
-#define UTF8_IN_EXTSEQ 0
-
-/* ======================= Parsing ESC Sequences ======================= */
-
-#define XctC0 0x0000
-#define XctHT 0x0009
-#define XctNL 0x000a
-#define XctESC 0x001b
-#define XctGL 0x0020
-#define XctC1 0x0080
-#define XctCSI 0x009b
-#define XctGR 0x00a0
-#define XctSTX 0x0002
-
-#define XctCntrlFunc 0x0023
-#define XctMB 0x0024
-#define XctOtherCoding 0x0025
-#define XctGL94 0x0028
-#define XctGR94 0x0029
-#define XctGR96 0x002d
-#define XctNonStandard 0x002f
-#define XctIgnoreExt 0x0030
-#define XctNotIgnoreExt 0x0031
-#define XctLeftToRight 0x0031
-#define XctRightToLeft 0x0032
-#define XctDirection 0x005d
-#define XctDirectionEnd 0x005d
-
-#define XctGL94MB 0x2428
-#define XctGR94MB 0x2429
-#define XctExtSeg 0x252f
-#define XctReturn 0x2540
-
-/*
- * Parses the header of a Compound Text segment, i.e. the charset designator.
- * The string starts at *text and has *length bytes.
- * Return value is one of:
- * 0 (no valid charset designator),
- * XctGL94, XctGR94, XctGR96, XctGL94MB, XctGR94MB,
- * XctLeftToRight, XctRightToLeft, XctDirectionEnd,
- * XctExtSeg, XctOtherCoding, XctReturn, XctIgnoreExt, XctNotIgnoreExt.
- * If the return value is not 0, *text is incremented and *length decremented,
- * to point past the charset designator. If the return value is one of
- * XctGL94, XctGR94, XctGR96, XctGL94MB, XctGR94MB,
- * XctExtSeg, XctOtherCoding, XctIgnoreExt, XctNotIgnoreExt,
- * *final_byte is set to the "final byte" of the charset designator.
- */
-static unsigned int
-_XlcParseCT(
- const char **text,
- int *length,
- unsigned char *final_byte)
-{
- unsigned int ret = 0;
- unsigned char ch;
- const unsigned char *str = (const unsigned char *) *text;
-
- *final_byte = 0;
-
- if (*length < 1)
- return 0;
- switch (ch = *str++) {
- case XctESC:
- if (*length < 2)
- return 0;
- switch (ch = *str++) {
- case XctOtherCoding: /* % */
- if (*length < 3)
- return 0;
- ch = *str++;
- if (ch == XctNonStandard) { /* / */
- if (*length < 4)
- return 0;
- ret = XctExtSeg;
- ch = *str++;
- } else if (ch == '@') {
- ret = XctReturn;
- } else {
- ret = XctOtherCoding;
- }
- *final_byte = ch;
- break;
-
- case XctCntrlFunc: /* # */
- if (*length < 4)
- return 0;
- *final_byte = *str++;
- switch (*str++) {
- case XctIgnoreExt: /* 0 */
- ret = XctIgnoreExt;
- break;
- case XctNotIgnoreExt: /* 1 */
- ret = XctNotIgnoreExt;
- break;
- default:
- ret = 0;
- break;
- }
- break;
-
- case XctMB: /* $ */
- if (*length < 4)
- return 0;
- ch = *str++;
- switch (ch) {
- case XctGL94: /* ( */
- ret = XctGL94MB;
- break;
- case XctGR94: /* ) */
- ret = XctGR94MB;
- break;
- default:
- ret = 0;
- break;
- }
- *final_byte = *str++;
- break;
-
- case XctGL94: /* ( */
- if (*length < 3)
- return 0;
- ret = XctGL94;
- *final_byte = *str++;
- break;
- case XctGR94: /* ) */
- if (*length < 3)
- return 0;
- ret = XctGR94;
- *final_byte = *str++;
- break;
- case XctGR96: /* - */
- if (*length < 3)
- return 0;
- ret = XctGR96;
- *final_byte = *str++;
- break;
- }
- break;
- case XctCSI:
- /* direction */
- if (*length < 2)
- return 0;
- switch (*str++) {
- case XctLeftToRight:
- if (*length < 3)
- return 0;
- if (*str++ == XctDirection)
- ret = XctLeftToRight;
- break;
- case XctRightToLeft:
- if (*length < 3)
- return 0;
- if (*str++ == XctDirection)
- ret = XctRightToLeft;
- break;
- case XctDirectionEnd:
- ret = XctDirectionEnd;
- break;
- }
- break;
- }
-
- if (ret) {
- *length -= (const char *) str - *text;
- *text = (const char *) str;
- }
- return ret;
-}
-
-/*
- * Fills into a freshly created XlcCharSet the fields that can be inferred
- * from the ESC sequence. These are side, char_size, set_size.
- * Returns True if the charset can be used with Compound Text.
- *
- * Used by _XlcCreateDefaultCharSet.
- */
-Bool
-_XlcParseCharSet(
- XlcCharSet charset)
-{
- unsigned int type;
- unsigned char final_byte;
- const char *ptr = charset->ct_sequence;
- int length;
- int char_size;
-
- if (*ptr == '\0')
- return False;
-
- length = strlen(ptr);
-
- type = _XlcParseCT(&ptr, &length, &final_byte);
-
- /* Check for validity and determine char_size.
- char_size = 0 means varying number of bytes per character. */
- switch (type) {
- case XctGL94:
- case XctGR94:
- case XctGR96:
- char_size = 1;
- break;
- case XctGL94MB:
- case XctGR94MB:
- char_size = (final_byte < 0x60 ? 2 : final_byte < 0x70 ? 3 : 4);
- break;
- case XctExtSeg:
- char_size = final_byte - '0';
- if (!(char_size >= 0 && char_size <= 4))
- return False;
- break;
- case XctOtherCoding:
- char_size = 0;
- break;
- default:
- return False;
- }
-
- charset->char_size = char_size;
-
- /* Fill in other values. */
- switch (type) {
- case XctGL94:
- case XctGL94MB:
- charset->side = XlcGL;
- charset->set_size = 94;
- break;
- case XctGR94:
- case XctGR94MB:
- charset->side = XlcGR;
- charset->set_size = 94;
- break;
- case XctGR96:
- charset->side = XlcGR;
- charset->set_size = 96;
- break;
- case XctExtSeg:
- case XctOtherCoding:
- charset->side = XlcGLGR;
- charset->set_size = 0;
- break;
- }
- return True;
-}
-
-
-/* =============== Management of the List of Character Sets =============== */
-
-/*
- * Representation of a character set that can be used for Compound Text,
- * at run time.
- * Note: This information is not contained in the XlcCharSet, because
- * multiple ESC sequences may be used for the same XlcCharSet.
- */
-typedef struct _CTInfoRec {
- XlcCharSet charset;
- const char *ct_sequence; /* Compound Text ESC sequence */
- unsigned int type;
- unsigned char final_byte;
- /* If type == XctExtSeg: */
- const char *ext_segment; /* extended segment name, then '\002' */
- int ext_segment_len; /* length of above, including final '\002' */
-
- struct _CTInfoRec *next;
-} CTInfoRec, *CTInfo;
-
-/*
- * List of character sets that can be used for Compound Text,
- * Includes all that are listed in default_ct_data, but more can be added
- * at runtime through _XlcAddCT.
- */
-static CTInfo ct_list = NULL;
-static CTInfo ct_list_end = NULL;
-
-/*
- * Returns a Compound Text info record for an ESC sequence.
- * The first part of the ESC sequence has already been parsed into 'type'
- * and 'final_byte'. The remainder starts at 'text', at least 'text_len'
- * bytes (only used if type == XctExtSeg).
- */
-static CTInfo
-_XlcGetCTInfo(
- unsigned int type,
- unsigned char final_byte,
- const char *text,
- int text_len)
-{
- CTInfo ct_info;
-
- for (ct_info = ct_list; ct_info; ct_info = ct_info->next)
- if (ct_info->type == type
- && ct_info->final_byte == final_byte
- && (type != XctExtSeg
- || (text_len >= ct_info->ext_segment_len
- && memcmp(text, ct_info->ext_segment,
- ct_info->ext_segment_len) == 0)))
- return ct_info;
-
- return (CTInfo) NULL;
-}
-
-/* Returns the Compound Text info for a given XlcCharSet.
- Returns NULL if none is found. */
-static CTInfo
-_XlcGetCTInfoFromCharSet(
- XlcCharSet charset)
-{
- CTInfo ct_info;
-
- for (ct_info = ct_list; ct_info; ct_info = ct_info->next)
- if (ct_info->charset == charset)
- return ct_info;
-
- return (CTInfo) NULL;
-}
-
-/* Creates a new XlcCharSet, given its name (including side suffix) and
- Compound Text ESC sequence (normally at most 4 bytes), and makes it
- eligible for Compound Text processing. */
-XlcCharSet
-_XlcAddCT(
- const char *name,
- const char *ct_sequence)
-{
- CTInfo ct_info, existing_info;
- XlcCharSet charset;
- const char *ct_ptr;
- int length;
- unsigned int type;
- unsigned char final_byte;
-
- charset = _XlcGetCharSet(name);
- if (charset != NULL) {
- /* Even if the charset already exists, it is OK to register a second
- Compound Text sequence for it. */
- } else {
- /* Attempt to create the charset. */
- charset = _XlcCreateDefaultCharSet(name, ct_sequence);
- if (charset == NULL)
- return (XlcCharSet) NULL;
- _XlcAddCharSet(charset);
- }
-
- /* Allocate a CTinfo record. */
- length = strlen(ct_sequence);
- ct_info = Xmalloc(sizeof(CTInfoRec) + length+1);
- if (ct_info == NULL)
- return charset;
-
- ct_info->charset = charset;
- ct_info->ct_sequence = strcpy((char *) (ct_info + 1), ct_sequence);
-
- /* Parse the Compound Text sequence. */
- ct_ptr = ct_sequence;
- type = _XlcParseCT(&ct_ptr, &length, &final_byte);
-
- ct_info->type = type;
- ct_info->final_byte = final_byte;
-
- switch (type) {
- case XctGL94:
- case XctGR94:
- case XctGR96:
- case XctGL94MB:
- case XctGR94MB:
- case XctOtherCoding:
- ct_info->ext_segment = NULL;
- ct_info->ext_segment_len = 0;
- break;
- case XctExtSeg: {
- /* By convention, the extended segment name is the encoding_name
- in lowercase. */
- const char *q = charset->encoding_name;
- int n = strlen(q);
- char *p;
-
- /* Ensure ct_info->ext_segment_len <= 0x3fff - 6. */
- if (n > 0x3fff - 6 - 1) {
- Xfree(ct_info);
- return charset;
- }
- p = Xmalloc(n+1);
- if (p == NULL) {
- Xfree(ct_info);
- return charset;
- }
- ct_info->ext_segment = p;
- ct_info->ext_segment_len = n+1;
- for ( ; n > 0; p++, q++, n--)
- *p = (*q >= 'A' && *q <= 'Z' ? *q - 'A' + 'a' : *q);
- *p = XctSTX;
- break;
- }
- default:
- Xfree(ct_info);
- return (XlcCharSet) NULL;
- }
-
- /* Insert it into the list, if not already present. */
- existing_info =
- _XlcGetCTInfo(type, ct_info->final_byte,
- ct_info->ext_segment, ct_info->ext_segment_len);
- if (existing_info == NULL) {
- /* Insert it at the end. If there are duplicates CTinfo entries
- for the same XlcCharSet, we want the first (standard) one to
- override the second (user defined) one. */
- ct_info->next = NULL;
- if (ct_list_end)
- ct_list_end->next = ct_info;
- else
- ct_list = ct_info;
- ct_list_end = ct_info;
- } else {
- if (existing_info->charset != charset
- /* We have a conflict, with one exception: JISX0208.1983-0 and
- JISX0208.1990-0 are the same for all practical purposes. */
- && !(strncmp(existing_info->charset->name, "JISX0208", 8) == 0
- && strncmp(charset->name, "JISX0208", 8) == 0)) {
- fprintf(stderr,
- "Xlib: charsets %s and %s have the same CT sequence\n",
- charset->name, existing_info->charset->name);
- if (strcmp(charset->ct_sequence, ct_sequence) == 0)
- charset->ct_sequence = "";
- }
- Xfree(ct_info);
- }
-
- return charset;
-}
-
-
-/* ========== Converters String <--> CharSet <--> Compound Text ========== */
-
-/*
- * Structure representing the parse state of a Compound Text string.
- */
-typedef struct _StateRec {
- XlcCharSet charset; /* The charset of the current segment */
- XlcCharSet GL_charset; /* The charset responsible for 0x00..0x7F */
- XlcCharSet GR_charset; /* The charset responsible for 0x80..0xFF */
- XlcCharSet Other_charset; /* != NULL if currently in an other segment */
- int ext_seg_left; /* > 0 if currently in an extended segment */
-} StateRec, *State;
-
-
-/* Subroutine for parsing an ESC sequence. */
-
-typedef enum {
- resOK, /* Charset saved in 'state', sequence skipped */
- resNotInList, /* Charset not found, sequence skipped */
- resNotCTSeq /* EscSeq not recognized, pointers not changed */
-} CheckResult;
-
-static CheckResult
-_XlcCheckCTSequence(
- State state,
- const char **ctext,
- int *ctext_len)
-{
- XlcCharSet charset;
- CTInfo ct_info;
- const char *tmp_ctext = *ctext;
- int tmp_ctext_len = *ctext_len;
- unsigned int type;
- unsigned char final_byte;
- int ext_seg_left = 0;
-
- /* Check for validity. */
- type = _XlcParseCT(&tmp_ctext, &tmp_ctext_len, &final_byte);
-
- switch (type) {
- case XctGL94:
- case XctGR94:
- case XctGR96:
- case XctGL94MB:
- case XctGR94MB:
- case XctOtherCoding:
- *ctext = tmp_ctext;
- *ctext_len = tmp_ctext_len;
- break;
- case XctReturn:
- *ctext = tmp_ctext;
- *ctext_len = tmp_ctext_len;
- state->Other_charset = NULL;
- return resOK;
- case XctExtSeg:
- if (tmp_ctext_len > 2
- && (tmp_ctext[0] & 0x80) && (tmp_ctext[0] & 0x80)) {
- unsigned int msb = tmp_ctext[0] & 0x7f;
- unsigned int lsb = tmp_ctext[1] & 0x7f;
- ext_seg_left = (msb << 7) + lsb;
- if (ext_seg_left <= tmp_ctext_len - 2) {
- *ctext = tmp_ctext + 2;
- *ctext_len = tmp_ctext_len - 2;
- break;
- }
- }
- return resNotCTSeq;
- default:
- return resNotCTSeq;
- }
-
- ct_info = _XlcGetCTInfo(type, final_byte, *ctext, ext_seg_left);
-
- if (ct_info) {
- charset = ct_info->charset;
- state->ext_seg_left = ext_seg_left;
- if (type == XctExtSeg) {
- state->charset = charset;
- /* Skip past the extended segment name and the separator. */
- *ctext += ct_info->ext_segment_len;
- *ctext_len -= ct_info->ext_segment_len;
- state->ext_seg_left -= ct_info->ext_segment_len;
- } else if (type == XctOtherCoding) {
- state->Other_charset = charset;
- } else {
- if (charset->side == XlcGL) {
- state->GL_charset = charset;
- } else if (charset->side == XlcGR) {
- state->GR_charset = charset;
- } else {
- state->GL_charset = charset;
- state->GR_charset = charset;
- }
- }
- return resOK;
- } else {
- state->ext_seg_left = 0;
- if (type == XctExtSeg) {
- /* Skip the entire extended segment. */
- *ctext += ext_seg_left;
- *ctext_len -= ext_seg_left;
- }
- return resNotInList;
- }
-}
-
-static void
-init_state(
- XlcConv conv)
-{
- State state = (State) conv->state;
- static XlcCharSet default_GL_charset = NULL;
- static XlcCharSet default_GR_charset = NULL;
-
- if (default_GL_charset == NULL) {
- default_GL_charset = _XlcGetCharSet("ISO8859-1:GL");
- default_GR_charset = _XlcGetCharSet("ISO8859-1:GR");
- }
-
- /* The initial state is ISO-8859-1 on both sides. */
- state->GL_charset = state->charset = default_GL_charset;
- state->GR_charset = default_GR_charset;
-
- state->Other_charset = NULL;
-
- state->ext_seg_left = 0;
-}
-
-/* from XlcNCompoundText to XlcNCharSet */
-
-static int
-cttocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XlcCharSet charset = NULL;
- const char *ctptr;
- char *bufptr;
- int ctext_len, buf_len;
- int unconv_num = 0;
-
- ctptr = (const char *) *from;
- bufptr = (char *) *to;
- ctext_len = *from_left;
- buf_len = *to_left;
-
- while (ctext_len > 0 && buf_len > 0) {
- if (state->ext_seg_left == 0) {
- /* Not in the middle of an extended segment; look at next byte. */
- unsigned char ch = *ctptr;
- XlcCharSet ch_charset;
-
- if (ch == XctESC) {
- CheckResult ret =
- _XlcCheckCTSequence(state, &ctptr, &ctext_len);
- if (ret == resOK)
- /* state has been modified. */
- continue;
- if (ret == resNotInList) {
- /* XXX Just continue with previous charset. */
- unconv_num++;
- continue;
- }
- } else if (ch == XctCSI) {
- /* XXX Simply ignore the XctLeftToRight, XctRightToLeft,
- XctDirectionEnd sequences for the moment. */
- unsigned char dummy;
- if (_XlcParseCT(&ctptr, &ctext_len, &dummy)) {
- unconv_num++;
- continue;
- }
- }
-
- /* Find the charset which is responsible for this byte. */
- ch_charset = (state->Other_charset != NULL ? state->Other_charset :
- (ch & 0x80 ? state->GR_charset : state->GL_charset));
-
- /* Set the charset of this run, or continue the current run,
- or stop the current run. */
- if (charset) {
- if (charset != ch_charset)
- break;
- } else {
- state->charset = charset = ch_charset;
- }
-
- /* We don't want to split a character into multiple pieces. */
- if (buf_len < 6) {
- if (charset->char_size > 0) {
- if (buf_len < charset->char_size)
- break;
- } else {
- /* char_size == 0 is tricky. The code here is good only
- for valid UTF-8 input. */
- if (charset->ct_sequence[0] == XctESC
- && charset->ct_sequence[1] == XctOtherCoding
- && charset->ct_sequence[2] == 'G') {
- int char_size = (ch < 0xc0 ? 1 :
- ch < 0xe0 ? 2 :
- ch < 0xf0 ? 3 :
- ch < 0xf8 ? 4 :
- ch < 0xfc ? 5 :
- 6);
- if (buf_len < char_size)
- break;
- }
- }
- }
-
- *bufptr++ = *ctptr++;
- ctext_len--;
- buf_len--;
- } else {
- /* Copy as much as possible from the current extended segment
- to the buffer. */
- int char_size;
-
- /* Set the charset of this run, or continue the current run,
- or stop the current run. */
- if (charset) {
- if (charset != state->charset)
- break;
- } else {
- charset = state->charset;
- }
-
- char_size = charset->char_size;
-
- if (state->ext_seg_left <= buf_len || char_size > 0) {
- int n = (state->ext_seg_left <= buf_len
- ? state->ext_seg_left
- : (buf_len / char_size) * char_size);
- memcpy(bufptr, ctptr, n);
- ctptr += n; ctext_len -= n;
- bufptr += n; buf_len -= n;
- state->ext_seg_left -= n;
- } else {
-#if UTF8_IN_EXTSEQ
- /* char_size == 0 is tricky. The code here is good only
- for valid UTF-8 input. */
- if (strcmp(charset->name, "ISO10646-1") == 0) {
- unsigned char ch = *ctptr;
- int char_size = (ch < 0xc0 ? 1 :
- ch < 0xe0 ? 2 :
- ch < 0xf0 ? 3 :
- ch < 0xf8 ? 4 :
- ch < 0xfc ? 5 :
- 6);
- int i;
- if (buf_len < char_size)
- break;
- /* A small loop is faster than calling memcpy. */
- for (i = char_size; i > 0; i--)
- *bufptr++ = *ctptr++;
- ctext_len -= char_size;
- buf_len -= char_size;
- state->ext_seg_left -= char_size;
- } else
-#endif
- {
- /* Here ctext_len >= state->ext_seg_left > buf_len.
- We may be splitting a character into multiple pieces.
- Oh well. */
- int n = buf_len;
- memcpy(bufptr, ctptr, n);
- ctptr += n; ctext_len -= n;
- bufptr += n; buf_len -= n;
- state->ext_seg_left -= n;
- }
- }
- }
- }
-
- /* 'charset' is the charset for the current run. In some cases,
- 'state->charset' contains the charset for the next run. Therefore,
- return 'charset'.
- 'charset' may still be NULL only if no output was produced. */
- if (num_args > 0)
- *((XlcCharSet *) args[0]) = charset;
-
- *from_left -= ctptr - *((const char **) from);
- *from = (XPointer) ctptr;
-
- *to_left -= bufptr - *((char **) to);
- *to = (XPointer) bufptr;
-
- return unconv_num;
-}
-
-/* from XlcNCharSet to XlcNCompoundText */
-
-static int
-cstoct(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XlcSide side;
- unsigned char min_ch = 0, max_ch = 0;
- int length, unconv_num;
- CTInfo ct_info;
- XlcCharSet charset;
- const char *csptr;
- char *ctptr;
- int csstr_len, ct_len;
- char *ext_segment_start;
- int char_size;
-
- /* One argument is required, of type XlcCharSet. */
- if (num_args < 1)
- return -1;
-
- csptr = *((const char **) from);
- ctptr = *((char **) to);
- csstr_len = *from_left;
- ct_len = *to_left;
-
- charset = (XlcCharSet) args[0];
-
- ct_info = _XlcGetCTInfoFromCharSet(charset);
- if (ct_info == NULL)
- return -1;
-
- side = charset->side;
- length = strlen(ct_info->ct_sequence);
-
- ext_segment_start = NULL;
-
- if (ct_info->type == XctOtherCoding) {
- /* Output the Escape sequence for switching to the charset, and
- reserve room now for the XctReturn sequence at the end. */
- if (ct_len < length + 3)
- return -1;
-
- memcpy(ctptr, ct_info->ct_sequence, length);
- ctptr += length;
- ct_len -= length + 3;
- } else
- /* Test whether the charset is already active. */
- if (((side == XlcGR || side == XlcGLGR)
- && charset != state->GR_charset)
- || ((side == XlcGL || side == XlcGLGR)
- && charset != state->GL_charset)) {
-
- /* Output the Escape sequence for switching to the charset. */
- if (ct_info->type == XctExtSeg) {
- if (ct_len < length + 2 + ct_info->ext_segment_len)
- return -1;
-
- memcpy(ctptr, ct_info->ct_sequence, length);
- ctptr += length;
- ct_len -= length;
-
- ctptr += 2;
- ct_len -= 2;
- ext_segment_start = ctptr;
-
- /* The size of an extended segment must fit in 14 bits. */
- if (ct_len > 0x3fff)
- ct_len = 0x3fff;
-
- memcpy(ctptr, ct_info->ext_segment, ct_info->ext_segment_len);
- ctptr += ct_info->ext_segment_len;
- ct_len -= ct_info->ext_segment_len;
- } else {
- if (ct_len < length)
- return -1;
-
- memcpy(ctptr, ct_info->ct_sequence, length);
- ctptr += length;
- ct_len -= length;
- }
- }
-
- /* If the charset has side GL or GR, prepare remapping the characters
- to the correct side. */
- if (charset->set_size) {
- min_ch = 0x20;
- max_ch = 0x7f;
- if (charset->set_size == 94) {
- max_ch--;
- if (charset->char_size > 1 || side == XlcGR)
- min_ch++;
- }
- }
-
- /* Actually copy the contents. */
- unconv_num = 0;
- char_size = charset->char_size;
- if (char_size == 1) {
- while (csstr_len > 0 && ct_len > 0) {
- if (charset->set_size) {
- /* The CompoundText specification says that the only
- control characters allowed are 0x09, 0x0a, 0x1b, 0x9b.
- Therefore here we eliminate other control characters. */
- unsigned char ch = *((const unsigned char *) csptr) & 0x7f;
- if (!((ch >= min_ch && ch <= max_ch)
- || (side == XlcGL
- && (ch == 0x00 || ch == 0x09 || ch == 0x0a))
- || ((side == XlcGL || side == XlcGR)
- && (ch == 0x1b)))) {
- csptr++;
- csstr_len--;
- unconv_num++;
- continue;
- }
- }
-
- if (side == XlcGL)
- *ctptr++ = *csptr++ & 0x7f;
- else if (side == XlcGR)
- *ctptr++ = *csptr++ | 0x80;
- else
- *ctptr++ = *csptr++;
- csstr_len--;
- ct_len--;
- }
- } else if (char_size > 1) {
- while (csstr_len >= char_size && ct_len >= char_size) {
- if (side == XlcGL) {
- int i;
- for (i = char_size; i > 0; i--)
- *ctptr++ = *csptr++ & 0x7f;
- } else if (side == XlcGR) {
- int i;
- for (i = char_size; i > 0; i--)
- *ctptr++ = *csptr++ | 0x80;
- } else {
- int i;
- for (i = char_size; i > 0; i--)
- *ctptr++ = *csptr++;
- }
- csstr_len -= char_size;
- ct_len -= char_size;
- }
- } else {
- /* char_size = 0. The code here is good only for valid UTF-8 input. */
- if ((charset->ct_sequence[0] == XctESC
- && charset->ct_sequence[1] == XctOtherCoding
- && charset->ct_sequence[2] == 'G')
-#if UTF8_IN_EXTSEQ
- || strcmp(charset->name, "ISO10646-1") == 0
-#endif
- ) {
- while (csstr_len > 0 && ct_len > 0) {
- unsigned char ch = * (const unsigned char *) csptr;
- int char_size = (ch < 0xc0 ? 1 :
- ch < 0xe0 ? 2 :
- ch < 0xf0 ? 3 :
- ch < 0xf8 ? 4 :
- ch < 0xfc ? 5 :
- 6);
- int i;
- if (!(csstr_len >= char_size && ct_len >= char_size))
- break;
- for (i = char_size; i > 0; i--)
- *ctptr++ = *csptr++;
- csstr_len -= char_size;
- ct_len -= char_size;
- }
- } else {
- while (csstr_len > 0 && ct_len > 0) {
- *ctptr++ = *csptr++;
- csstr_len--;
- ct_len--;
- }
- }
- }
-
- if (ct_info->type == XctOtherCoding) {
- /* Terminate with an XctReturn sequence. */
- ctptr[0] = XctESC;
- ctptr[1] = XctOtherCoding;
- ctptr[2] = '@';
- ctptr += 3;
- } else if (ext_segment_start != NULL) {
- /* Backpatch the extended segment's length. */
- int ext_segment_length = ctptr - ext_segment_start;
- *(ext_segment_start - 2) = (ext_segment_length >> 7) | 0x80;
- *(ext_segment_start - 1) = (ext_segment_length & 0x7f) | 0x80;
- } else {
- if (side == XlcGR || side == XlcGLGR)
- state->GR_charset = charset;
- if (side == XlcGL || side == XlcGLGR)
- state->GL_charset = charset;
- }
-
- *from_left -= csptr - *((const char **) from);
- *from = (XPointer) csptr;
-
- *to_left -= ctptr - *((char **) to);
- *to = (XPointer) ctptr;
-
- return 0;
-}
-
-/* from XlcNString to XlcNCharSet */
-
-static int
-strtocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- const char *src;
- char *dst;
- unsigned char side;
- int length;
-
- src = (const char *) *from;
- dst = (char *) *to;
-
- length = min(*from_left, *to_left);
- side = *((const unsigned char *) src) & 0x80;
-
- while (side == (*((const unsigned char *) src) & 0x80) && length-- > 0)
- *dst++ = *src++;
-
- *from_left -= src - (const char *) *from;
- *from = (XPointer) src;
- *to_left -= dst - (char *) *to;
- *to = (XPointer) dst;
-
- if (num_args > 0)
- *((XlcCharSet *)args[0]) = (side ? state->GR_charset : state->GL_charset);
-
- return 0;
-}
-
-/* from XlcNCharSet to XlcNString */
-
-static int
-cstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- const char *csptr;
- char *string_ptr;
- int csstr_len, str_len;
- unsigned char ch;
- int unconv_num = 0;
-
- /* This converter can only convert from ISO8859-1:GL and ISO8859-1:GR. */
- if (num_args < 1
- || !((XlcCharSet) args[0] == state->GL_charset
- || (XlcCharSet) args[0] == state->GR_charset))
- return -1;
-
- csptr = *((const char **) from);
- string_ptr = *((char **) to);
- csstr_len = *from_left;
- str_len = *to_left;
-
- while (csstr_len > 0 && str_len > 0) {
- ch = *((const unsigned char *) csptr++);
- csstr_len--;
- /* Citing ICCCM: "STRING as a type specifies the ISO Latin-1 character
- set plus the control characters TAB and NEWLINE." */
- if ((ch < 0x20 && ch != 0x00 && ch != 0x09 && ch != 0x0a)
- || (ch >= 0x7f && ch < 0xa0)) {
- unconv_num++;
- continue;
- }
- *((unsigned char *) string_ptr++) = ch;
- str_len--;
- }
-
- *from_left -= csptr - *((const char **) from);
- *from = (XPointer) csptr;
-
- *to_left -= string_ptr - *((char **) to);
- *to = (XPointer) string_ptr;
-
- return unconv_num;
-}
-
-
-static XlcConv
-create_conv(
- XlcConvMethods methods)
-{
- XlcConv conv;
-
- conv = Xmalloc(sizeof(XlcConvRec) + sizeof(StateRec));
- if (conv == NULL)
- return (XlcConv) NULL;
-
- conv->state = (XPointer) &conv[1];
-
- conv->methods = methods;
-
- init_state(conv);
-
- return conv;
-}
-
-static void
-close_converter(
- XlcConv conv)
-{
- /* conv->state is allocated together with conv, free both at once. */
- Xfree(conv);
-}
-
-
-static XlcConvMethodsRec cttocs_methods = {
- close_converter,
- cttocs,
- init_state
-};
-
-static XlcConv
-open_cttocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(&cttocs_methods);
-}
-
-
-static XlcConvMethodsRec cstoct_methods = {
- close_converter,
- cstoct,
- init_state
-};
-
-static XlcConv
-open_cstoct(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(&cstoct_methods);
-}
-
-
-static XlcConvMethodsRec strtocs_methods = {
- close_converter,
- strtocs,
- init_state
-};
-
-static XlcConv
-open_strtocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(&strtocs_methods);
-}
-
-
-static XlcConvMethodsRec cstostr_methods = {
- close_converter,
- cstostr,
- init_state
-};
-
-static XlcConv
-open_cstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(&cstostr_methods);
-}
-
-
-/* =========================== Initialization =========================== */
-
-Bool
-_XlcInitCTInfo(void)
-{
- if (ct_list == NULL) {
- const CTDataRec *ct_data;
- int num;
- XlcCharSet charset;
-
- /* Initialize ct_list. */
-
- num = sizeof(default_ct_data) / sizeof(CTDataRec);
- for (ct_data = default_ct_data; num > 0; ct_data++, num--) {
- charset = _XlcAddCT(ct_data->name, ct_data->ct_sequence);
- if (charset == NULL)
- continue;
- if (strncmp(charset->ct_sequence, "\x1b\x25\x2f", 3) != 0)
- charset->source = CSsrcStd;
- else
- charset->source = CSsrcXLC;
- }
-
- /* Register CompoundText and CharSet converters. */
-
- _XlcSetConverter((XLCd) NULL, XlcNCompoundText,
- (XLCd) NULL, XlcNCharSet,
- open_cttocs);
- _XlcSetConverter((XLCd) NULL, XlcNString,
- (XLCd) NULL, XlcNCharSet,
- open_strtocs);
-
- _XlcSetConverter((XLCd) NULL, XlcNCharSet,
- (XLCd) NULL, XlcNCompoundText,
- open_cstoct);
- _XlcSetConverter((XLCd) NULL, XlcNCharSet,
- (XLCd) NULL, XlcNString,
- open_cstostr);
- }
-
- return True;
-}
diff --git a/nx-X11/lib/X11/lcCharSet.c b/nx-X11/lib/X11/lcCharSet.c
deleted file mode 100644
index 0adf0adfc..000000000
--- a/nx-X11/lib/X11/lcCharSet.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XlcPublic.h"
-#include "XlcPubI.h"
-
-/* The list of all known XlcCharSets. They are identified by their name. */
-
-typedef struct _XlcCharSetListRec {
- XlcCharSet charset;
- struct _XlcCharSetListRec *next;
-} XlcCharSetListRec, *XlcCharSetList;
-
-static XlcCharSetList charset_list = NULL;
-
-/* Returns the charset with the given name (including side suffix).
- Returns NULL if not found. */
-XlcCharSet
-_XlcGetCharSet(
- const char *name)
-{
- XlcCharSetList list;
- XrmQuark xrm_name;
-
- xrm_name = XrmStringToQuark(name);
-
- for (list = charset_list; list; list = list->next) {
- if (xrm_name == list->charset->xrm_name)
- return (XlcCharSet) list->charset;
- }
-
- return (XlcCharSet) NULL;
-}
-
-/* Returns the charset with the given encoding (no side suffix) and
- responsible for at least the given side (XlcGL or XlcGR).
- Returns NULL if not found. */
-XlcCharSet
-_XlcGetCharSetWithSide(
- const char *encoding_name,
- XlcSide side)
-{
- XlcCharSetList list;
- XrmQuark xrm_encoding_name;
-
- xrm_encoding_name = XrmStringToQuark(encoding_name);
-
- for (list = charset_list; list; list = list->next) {
- if (list->charset->xrm_encoding_name == xrm_encoding_name
- && (list->charset->side == XlcGLGR || list->charset->side == side))
- return (XlcCharSet) list->charset;
- }
-
- return (XlcCharSet) NULL;
-}
-
-/* Registers an XlcCharSet in the list of character sets.
- Returns True if successful. */
-Bool
-_XlcAddCharSet(
- XlcCharSet charset)
-{
- XlcCharSetList list;
-
- if (_XlcGetCharSet(charset->name))
- return False;
-
- list = Xmalloc(sizeof(XlcCharSetListRec));
- if (list == NULL)
- return False;
-
- list->charset = charset;
- list->next = charset_list;
- charset_list = list;
-
- return True;
-}
-
-/* List of resources for XlcCharSet. */
-static XlcResource resources[] = {
- { XlcNName, NULLQUARK, sizeof(char *),
- XOffsetOf(XlcCharSetRec, name), XlcGetMask },
- { XlcNEncodingName, NULLQUARK, sizeof(char *),
- XOffsetOf(XlcCharSetRec, encoding_name), XlcGetMask },
- { XlcNSide, NULLQUARK, sizeof(XlcSide),
- XOffsetOf(XlcCharSetRec, side), XlcGetMask },
- { XlcNCharSize, NULLQUARK, sizeof(int),
- XOffsetOf(XlcCharSetRec, char_size), XlcGetMask },
- { XlcNSetSize, NULLQUARK, sizeof(int),
- XOffsetOf(XlcCharSetRec, set_size), XlcGetMask },
- { XlcNControlSequence, NULLQUARK, sizeof(char *),
- XOffsetOf(XlcCharSetRec, ct_sequence), XlcGetMask }
-};
-
-/* Retrieves a number of attributes of an XlcCharSet.
- Return NULL if successful, otherwise the name of the first argument
- specifiying a nonexistent attribute. */
-static char *
-get_values(
- XlcCharSet charset,
- XlcArgList args,
- int num_args)
-{
- if (resources[0].xrm_name == NULLQUARK)
- _XlcCompileResourceList(resources, XlcNumber(resources));
-
- return _XlcGetValues((XPointer) charset, resources, XlcNumber(resources),
- args, num_args, XlcGetMask);
-}
-
-/* Retrieves a number of attributes of an XlcCharSet.
- Return NULL if successful, otherwise the name of the first argument
- specifiying a nonexistent attribute. */
-char *
-_XlcGetCSValues(XlcCharSet charset, ...)
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
-
- va_start(var, charset);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, charset);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- ret = get_values(charset, args, num_args);
-
- Xfree(args);
-
- return ret;
-}
-
-/* Creates a new XlcCharSet, given its name (including side suffix) and
- Compound Text ESC sequence (normally at most 4 bytes). */
-XlcCharSet
-_XlcCreateDefaultCharSet(
- const char *name,
- const char *ct_sequence)
-{
- XlcCharSet charset;
- int name_len, ct_sequence_len;
- const char *colon;
- char *tmp;
-
- charset = Xcalloc(1, sizeof(XlcCharSetRec));
- if (charset == NULL)
- return (XlcCharSet) NULL;
-
- name_len = strlen(name);
- ct_sequence_len = strlen(ct_sequence);
-
- /* Fill in name and xrm_name. */
- tmp = Xmalloc(name_len + 1 + ct_sequence_len + 1);
- if (tmp == NULL) {
- Xfree(charset);
- return (XlcCharSet) NULL;
- }
- memcpy(tmp, name, name_len+1);
- charset->name = tmp;
- charset->xrm_name = XrmStringToQuark(charset->name);
-
- /* Fill in encoding_name and xrm_encoding_name. */
- if ((colon = strchr(charset->name, ':')) != NULL) {
- unsigned int length = colon - charset->name;
- char *encoding_tmp = Xmalloc(length + 1);
- if (encoding_tmp == NULL) {
- Xfree((char *) charset->name);
- Xfree(charset);
- return (XlcCharSet) NULL;
- }
- memcpy(encoding_tmp, charset->name, length);
- encoding_tmp[length] = '\0';
- charset->encoding_name = encoding_tmp;
- charset->xrm_encoding_name = XrmStringToQuark(charset->encoding_name);
- } else {
- charset->encoding_name = charset->name;
- charset->xrm_encoding_name = charset->xrm_name;
- }
-
- /* Fill in ct_sequence. */
- tmp += name_len + 1;
- memcpy(tmp, ct_sequence, ct_sequence_len+1);
- charset->ct_sequence = tmp;
-
- /* Fill in side, char_size, set_size. */
- if (!_XlcParseCharSet(charset))
- /* If ct_sequence is not usable in Compound Text, remove it. */
- charset->ct_sequence = "";
-
- return (XlcCharSet) charset;
-}
diff --git a/nx-X11/lib/X11/lcConv.c b/nx-X11/lib/X11/lcConv.c
deleted file mode 100644
index 7d9a4738c..000000000
--- a/nx-X11/lib/X11/lcConv.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include <stdio.h>
-
-typedef struct _XlcConverterListRec {
- XLCd from_lcd;
- const char *from;
- XrmQuark from_type;
- XLCd to_lcd;
- const char *to;
- XrmQuark to_type;
- XlcOpenConverterProc converter;
- struct _XlcConverterListRec *next;
-} XlcConverterListRec, *XlcConverterList;
-
-static XlcConverterList conv_list = NULL;
-
-static void
-close_converter(
- XlcConv conv)
-{
- (*conv->methods->close)(conv);
-}
-
-static XlcConv
-get_converter(
- XLCd from_lcd,
- XrmQuark from_type,
- XLCd to_lcd,
- XrmQuark to_type)
-{
- XlcConverterList list, prev = NULL;
-
- for (list = conv_list; list; list = list->next) {
- if (list->from_lcd == from_lcd && list->to_lcd == to_lcd
- && list->from_type == from_type && list->to_type == to_type) {
-
- if (prev && prev != conv_list) { /* XXX */
- prev->next = list->next;
- list->next = conv_list;
- conv_list = list;
- }
-
- return (*list->converter)(from_lcd, list->from, to_lcd, list->to);
- }
-
- prev = list;
- }
-
- return (XlcConv) NULL;
-}
-
-Bool
-_XlcSetConverter(
- XLCd from_lcd,
- const char *from,
- XLCd to_lcd,
- const char *to,
- XlcOpenConverterProc converter)
-{
- XlcConverterList list;
- XrmQuark from_type, to_type;
-
- from_type = XrmStringToQuark(from);
- to_type = XrmStringToQuark(to);
-
- for (list = conv_list; list; list = list->next) {
- if (list->from_lcd == from_lcd && list->to_lcd == to_lcd
- && list->from_type == from_type && list->to_type == to_type) {
-
- list->converter = converter;
- return True;
- }
- }
-
- list = Xmalloc(sizeof(XlcConverterListRec));
- if (list == NULL)
- return False;
-
- list->from_lcd = from_lcd;
- list->from = from;
- list->from_type = from_type;
- list->to_lcd = to_lcd;
- list->to = to;
- list->to_type = to_type;
- list->converter = converter;
- list->next = conv_list;
- conv_list = list;
-
- return True;
-}
-
-typedef struct _ConvRec {
- XlcConv from_conv;
- XlcConv to_conv;
-} ConvRec, *Conv;
-
-static int
-indirect_convert(
- XlcConv lc_conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- Conv conv = (Conv) lc_conv->state;
- XlcConv from_conv = conv->from_conv;
- XlcConv to_conv = conv->to_conv;
- XlcCharSet charset;
- char buf[BUFSIZ], *cs;
- XPointer tmp_args[1];
- int cs_left, ret, length, unconv_num = 0;
-
- if (from == NULL || *from == NULL) {
- if (from_conv->methods->reset)
- (*from_conv->methods->reset)(from_conv);
-
- if (to_conv->methods->reset)
- (*to_conv->methods->reset)(to_conv);
-
- return 0;
- }
-
- while (*from_left > 0) {
- cs = buf;
- cs_left = BUFSIZ;
- tmp_args[0] = (XPointer) &charset;
-
- ret = (*from_conv->methods->convert)(from_conv, from, from_left, &cs,
- &cs_left, tmp_args, 1);
- if (ret < 0)
- break;
-
- unconv_num += ret;
-
- length = cs - buf;
- if (length > 0) {
- cs_left = length;
- cs = buf;
-
- tmp_args[0] = (XPointer) charset;
-
- ret = (*to_conv->methods->convert)(to_conv, &cs, &cs_left, to, to_left,
- tmp_args, 1);
- if (ret < 0) {
- unconv_num += length / (charset->char_size > 0 ? charset->char_size : 1);
- continue;
- }
-
- unconv_num += ret;
-
- if (*to_left < 1)
- break;
- }
- }
-
- return unconv_num;
-}
-
-static void
-close_indirect_converter(
- XlcConv lc_conv)
-{
- Conv conv = (Conv) lc_conv->state;
-
- if (conv) {
- if (conv->from_conv)
- close_converter(conv->from_conv);
- if (conv->to_conv)
- close_converter(conv->to_conv);
-
- Xfree(conv);
- }
-
- Xfree(lc_conv);
-}
-
-static void
-reset_indirect_converter(
- XlcConv lc_conv)
-{
- Conv conv = (Conv) lc_conv->state;
-
- if (conv) {
- if (conv->from_conv && conv->from_conv->methods->reset)
- (*conv->from_conv->methods->reset)(conv->from_conv);
- if (conv->to_conv && conv->to_conv->methods->reset)
- (*conv->to_conv->methods->reset)(conv->to_conv);
- }
-}
-
-static XlcConvMethodsRec conv_methods = {
- close_indirect_converter,
- indirect_convert,
- reset_indirect_converter
-} ;
-
-static XlcConv
-open_indirect_converter(
- XLCd from_lcd,
- const char *from,
- XLCd to_lcd,
- const char *to)
-{
- XlcConv lc_conv, from_conv, to_conv;
- Conv conv;
- XrmQuark from_type, to_type;
- static XrmQuark QChar, QCharSet, QCTCharSet = (XrmQuark) 0;
-
- if (QCTCharSet == (XrmQuark) 0) {
- QCTCharSet = XrmStringToQuark(XlcNCTCharSet);
- QCharSet = XrmStringToQuark(XlcNCharSet);
- QChar = XrmStringToQuark(XlcNChar);
- }
-
- from_type = XrmStringToQuark(from);
- to_type = XrmStringToQuark(to);
-
- if (from_type == QCharSet || from_type == QChar || to_type == QCharSet ||
- to_type == QChar)
- return (XlcConv) NULL;
-
- lc_conv = Xmalloc(sizeof(XlcConvRec));
- if (lc_conv == NULL)
- return (XlcConv) NULL;
-
- lc_conv->methods = &conv_methods;
-
- lc_conv->state = Xcalloc(1, sizeof(ConvRec));
- if (lc_conv->state == NULL)
- goto err;
-
- conv = (Conv) lc_conv->state;
-
- from_conv = get_converter(from_lcd, from_type, from_lcd, QCTCharSet);
- if (from_conv == NULL)
- from_conv = get_converter(from_lcd, from_type, from_lcd, QCharSet);
- if (from_conv == NULL)
- from_conv = get_converter((XLCd)NULL, from_type, (XLCd)NULL, QCharSet);
- if (from_conv == NULL)
- from_conv = get_converter(from_lcd, from_type, from_lcd, QChar);
- if (from_conv == NULL)
- goto err;
- conv->from_conv = from_conv;
-
- to_conv = get_converter(to_lcd, QCTCharSet, to_lcd, to_type);
- if (to_conv == NULL)
- to_conv = get_converter(to_lcd, QCharSet, to_lcd, to_type);
- if (to_conv == NULL)
- to_conv = get_converter((XLCd) NULL, QCharSet, (XLCd) NULL, to_type);
- if (to_conv == NULL)
- goto err;
- conv->to_conv = to_conv;
-
- return lc_conv;
-
-err:
- close_indirect_converter(lc_conv);
-
- return (XlcConv) NULL;
-}
-
-XlcConv
-_XlcOpenConverter(
- XLCd from_lcd,
- const char *from,
- XLCd to_lcd,
- const char *to)
-{
- XlcConv conv;
- XrmQuark from_type, to_type;
-
- from_type = XrmStringToQuark(from);
- to_type = XrmStringToQuark(to);
-
- if ((conv = get_converter(from_lcd, from_type, to_lcd, to_type)))
- return conv;
-
- return open_indirect_converter(from_lcd, from, to_lcd, to);
-}
-
-void
-_XlcCloseConverter(
- XlcConv conv)
-{
- close_converter(conv);
-}
-
-int
-_XlcConvert(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- return (*conv->methods->convert)(conv, from, from_left, to, to_left, args,
- num_args);
-}
-
-void
-_XlcResetConverter(
- XlcConv conv)
-{
- if (conv->methods->reset)
- (*conv->methods->reset)(conv);
-}
diff --git a/nx-X11/lib/X11/lcDB.c b/nx-X11/lib/X11/lcDB.c
deleted file mode 100644
index cc14bed72..000000000
--- a/nx-X11/lib/X11/lcDB.c
+++ /dev/null
@@ -1,1327 +0,0 @@
-/*
- *
- * Copyright IBM Corporation 1993
- *
- * All Rights Reserved
- *
- * License to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of IBM not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND
- * NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL
- * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
-*/
-/*
- * (c) Copyright 1995 FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-
-
-
-#ifndef NOT_X_ENV
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xresource.h>
-#include "Xlibint.h"
-#include "XlcPubI.h"
-
-#else /* NOT_X_ENV */
-
-#define Xmalloc malloc
-#define Xrealloc realloc
-#define Xfree free
-
-#endif /* NOT_X_ENV */
-
-/* specifying NOT_X_ENV allows users to just use
- the database parsing routine. */
-/* For UDC/VW */
-#ifndef BUFSIZE
-#define BUFSIZE 2048
-#endif
-
-#ifdef COMMENT
-#ifdef BUFSIZE
-#undef BUFSIZE
-#endif
-#define BUFSIZE 6144 /* 2048*3 */
-#endif
-
-#include <stdio.h>
-
-typedef struct _DatabaseRec {
- char *category;
- char *name;
- char **value;
- int value_num;
- struct _DatabaseRec *next;
-} DatabaseRec, *Database;
-
-typedef enum {
- S_NULL, /* outside category */
- S_CATEGORY, /* inside category */
- S_NAME, /* has name, expecting values */
- S_VALUE
-} ParseState;
-
-typedef enum {
- T_NEWLINE,
- T_COMMENT,
- T_SEMICOLON,
- T_DOUBLE_QUOTE,
- T_LEFT_BRACE,
- T_RIGHT_BRACE,
- T_SPACE,
- T_TAB,
- T_BACKSLASH,
- T_NUMERIC_HEX,
- T_NUMERIC_DEC,
- T_NUMERIC_OCT,
- T_DEFAULT
-} Token;
-
-typedef struct {
- Token token; /* token id */
- int len; /* length of token sequence */
-} TokenTable;
-
-static int f_newline (const char *str, Token token, Database *db);
-static int f_comment (const char *str, Token token, Database *db);
-static int f_semicolon (const char *str, Token token, Database *db);
-static int f_double_quote (const char *str, Token token, Database *db);
-static int f_left_brace (const char *str, Token token, Database *db);
-static int f_right_brace (const char *str, Token token, Database *db);
-static int f_white (const char *str, Token token, Database *db);
-static int f_backslash (const char *str, Token token, Database *db);
-static int f_numeric (const char *str, Token token, Database *db);
-static int f_default (const char *str, Token token, Database *db);
-
-static const TokenTable token_tbl[] = {
- { T_NEWLINE, 1 },
- { T_COMMENT, 1 },
- { T_SEMICOLON, 1 },
- { T_DOUBLE_QUOTE, 1 },
- { T_LEFT_BRACE, 1 },
- { T_RIGHT_BRACE, 1 },
- { T_SPACE, 1 },
- { T_TAB, 1 },
- { T_BACKSLASH, 1 },
- { T_NUMERIC_HEX, 2 },
- { T_NUMERIC_DEC, 2 },
- { T_NUMERIC_OCT, 2 },
- { T_DEFAULT, 1 } /* any character */
-};
-
-#define SYM_CR '\r'
-#define SYM_NEWLINE '\n'
-#define SYM_COMMENT '#'
-#define SYM_SEMICOLON ';'
-#define SYM_DOUBLE_QUOTE '"'
-#define SYM_LEFT_BRACE '{'
-#define SYM_RIGHT_BRACE '}'
-#define SYM_SPACE ' '
-#define SYM_TAB '\t'
-#define SYM_BACKSLASH '\\'
-
-/************************************************************************/
-
-#define MAX_NAME_NEST 64
-
-typedef struct {
- ParseState pre_state;
- char *category;
- char *name[MAX_NAME_NEST];
- int nest_depth;
- char **value;
- int value_len;
- int value_num;
- int bufsize; /* bufMaxSize >= bufsize >= 0 */
- int bufMaxSize; /* default : BUFSIZE */
- char *buf;
-} DBParseInfo;
-
-static DBParseInfo parse_info;
-
-static void
-init_parse_info (void)
-{
- static int allocated /* = 0 */;
- char *ptr;
- int size;
- if (!allocated) {
- bzero(&parse_info, sizeof(DBParseInfo));
- parse_info.buf = Xmalloc(BUFSIZE);
- parse_info.bufMaxSize = BUFSIZE;
- allocated = 1;
- return;
- }
- ptr = parse_info.buf;
- size = parse_info.bufMaxSize;
- bzero(&parse_info, sizeof(DBParseInfo));
- parse_info.buf = ptr;
- parse_info.bufMaxSize = size;
-}
-
-static void
-clear_parse_info (void)
-{
- int i;
- char *ptr;
- int size;
- parse_info.pre_state = S_NULL;
- if (parse_info.category != NULL) {
- Xfree(parse_info.category);
- }
- for (i = 0; i <= parse_info.nest_depth; ++i) {
- if (parse_info.name[i]) {
- Xfree(parse_info.name[i]);
- }
- }
- if (parse_info.value) {
- if (*parse_info.value) {
- Xfree(*parse_info.value);
- }
- Xfree(parse_info.value);
- }
- ptr = parse_info.buf;
- size = parse_info.bufMaxSize;
- bzero(&parse_info, sizeof(DBParseInfo));
- parse_info.buf = ptr;
- parse_info.bufMaxSize = size;
-}
-
-static Bool
-realloc_parse_info(
- int len)
-{
- char *p;
- int newsize = BUFSIZE * ((parse_info.bufsize + len)/BUFSIZE + 1);
-
- p = Xrealloc(parse_info.buf, newsize);
- if (p == NULL)
- return False;
- parse_info.bufMaxSize = newsize;
- parse_info.buf = p;
-
- return True;
-}
-
-/************************************************************************/
-
-typedef struct _Line {
- char *str;
- int cursize;
- int maxsize;
- int seq;
-} Line;
-
-static void
-free_line(
- Line *line)
-{
- if (line->str != NULL) {
- Xfree(line->str);
- }
- bzero(line, sizeof(Line));
-}
-
-static int
-realloc_line(
- Line *line,
- int size)
-{
- char *str = line->str;
-
- if (str != NULL) {
- str = Xrealloc(str, size);
- } else {
- str = Xmalloc(size);
- }
- if (str == NULL) {
- /* malloc error */
- if (line->str != NULL) {
- Xfree(line->str);
- }
- bzero(line, sizeof(Line));
- return 0;
- }
- line->str = str;
- line->maxsize = size;
- return 1;
-}
-
-#define iswhite(ch) ((ch) == SYM_SPACE || (ch) == SYM_TAB)
-
-static void
-zap_comment(
- char *str,
- int *quoted)
-{
- char *p = str;
-#ifdef never
- *quoted = 0;
- if (*p == SYM_COMMENT) {
- int len = strlen(str);
- if (p[len - 1] == SYM_NEWLINE || p[len - 1] == SYM_CR) {
- *p++ = SYM_NEWLINE;
- }
- *p = '\0';
- }
-#else
- while (*p) {
- if (*p == SYM_DOUBLE_QUOTE) {
- if (p == str || p[-1] != SYM_BACKSLASH) {
- /* unescaped double quote changes quoted state. */
- *quoted = *quoted ? 0 : 1;
- }
- }
- if (*p == SYM_COMMENT && !*quoted) {
- int pos = p - str;
- if (pos == 0 ||
- (iswhite(p[-1]) && (pos == 1 || p[-2] != SYM_BACKSLASH))) {
- int len = strlen(p);
- if (len > 0 && (p[len - 1] == SYM_NEWLINE || p[len-1] == SYM_CR)) {
- /* newline is the identifier for finding end of value.
- therefore, it should not be removed. */
- *p++ = SYM_NEWLINE;
- }
- *p = '\0';
- break;
- }
- }
- ++p;
- }
-#endif
-}
-
-static int
-read_line(
- FILE *fd,
- Line *line)
-{
- char buf[BUFSIZE], *p;
- int len;
- int quoted = 0; /* quoted by double quote? */
- char *str;
- int cur;
-
- str = line->str;
- cur = line->cursize = 0;
-
- while ((p = fgets(buf, BUFSIZE, fd)) != NULL) {
- ++line->seq;
- zap_comment(p, &quoted); /* remove comment line */
- len = strlen(p);
- if (len == 0) {
- if (cur > 0) {
- break;
- }
- continue;
- }
- if (cur + len + 1 > line->maxsize) {
- /* need to reallocate buffer. */
- if (! realloc_line(line, line->maxsize + BUFSIZE)) {
- return -1; /* realloc error. */
- }
- str = line->str;
- }
- strncpy(str + cur, p, len);
-
- cur += len;
- str[cur] = '\0';
- if (!quoted && cur > 1 && str[cur - 2] == SYM_BACKSLASH &&
- (str[cur - 1] == SYM_NEWLINE || str[cur-1] == SYM_CR)) {
- /* the line is ended backslash followed by newline.
- need to concatinate the next line. */
- cur -= 2;
- str[cur] = '\0';
- } else if (len < BUFSIZE - 1 || buf[len - 1] == SYM_NEWLINE ||
- buf[len - 1] == SYM_CR) {
- /* the line is shorter than BUFSIZE. */
- break;
- }
- }
- if (quoted) {
- /* error. still in quoted state. */
- return -1;
- }
- return line->cursize = cur;
-}
-
-/************************************************************************/
-
-static Token
-get_token(
- const char *str)
-{
- switch (*str) {
- case SYM_NEWLINE:
- case SYM_CR: return T_NEWLINE;
- case SYM_COMMENT: return T_COMMENT;
- case SYM_SEMICOLON: return T_SEMICOLON;
- case SYM_DOUBLE_QUOTE: return T_DOUBLE_QUOTE;
- case SYM_LEFT_BRACE: return T_LEFT_BRACE;
- case SYM_RIGHT_BRACE: return T_RIGHT_BRACE;
- case SYM_SPACE: return T_SPACE;
- case SYM_TAB: return T_TAB;
- case SYM_BACKSLASH:
- switch (str[1]) {
- case 'x': return T_NUMERIC_HEX;
- case 'd': return T_NUMERIC_DEC;
- case 'o': return T_NUMERIC_OCT;
- }
- return T_BACKSLASH;
- default:
- return T_DEFAULT;
- }
-}
-
-static int
-get_word(
- const char *str,
- char *word)
-{
- const char *p = str;
- char *w = word;
- Token token;
- int token_len;
-
- while (*p != '\0') {
- token = get_token(p);
- token_len = token_tbl[token].len;
- if (token == T_BACKSLASH) {
- p += token_len;
- if (*p == '\0')
- break;
- token = get_token(p);
- token_len = token_tbl[token].len;
- } else if (token != T_COMMENT && token != T_DEFAULT) {
- break;
- }
- strncpy(w, p, token_len);
- p += token_len; w += token_len;
- }
- *w = '\0';
- return p - str; /* return number of scanned chars */
-}
-
-static int
-get_quoted_word(
- const char *str,
- char *word)
-{
- const char *p = str;
- char *w = word;
- Token token;
- int token_len;
-
- if (*p == SYM_DOUBLE_QUOTE) {
- ++p;
- }
- while (*p != '\0') {
- token = get_token(p);
- token_len = token_tbl[token].len;
- if (token == T_DOUBLE_QUOTE) {
- p += token_len;
- goto found;
- }
- if (token == T_BACKSLASH) {
- p += token_len;
- if (*p == '\0') {
- break;
- }
- token = get_token(p);
- token_len = token_tbl[token].len;
- }
- strncpy(w, p, token_len);
- p += token_len; w += token_len;
- }
- /* error. cannot detect next double quote */
- return 0;
-
- found:;
- *w = '\0';
- return p - str;
-}
-
-/************************************************************************/
-
-static int
-append_value_list (void)
-{
- char **value_list = parse_info.value;
- char *value;
- int value_num = parse_info.value_num;
- int value_len = parse_info.value_len;
- char *str = parse_info.buf;
- int len = parse_info.bufsize;
- char *p;
-
- if (len < 1) {
- return 1; /* return with no error */
- }
-
- if (value_list == (char **)NULL) {
- value_list = Xmalloc(sizeof(char *) * 2);
- *value_list = NULL;
- } else {
- char **prev_list = value_list;
-
- value_list = (char **)
- Xrealloc(value_list, sizeof(char *) * (value_num + 2));
- if (value_list == NULL) {
- Xfree(prev_list);
- }
- }
- if (value_list == (char **)NULL)
- goto err2;
-
- value = *value_list;
- if (value == NULL) {
- value = Xmalloc(value_len + len + 1);
- } else {
- char *prev_value = value;
-
- value = Xrealloc(value, value_len + len + 1);
- if (value == NULL) {
- Xfree(prev_value);
- }
- }
- if (value == NULL) {
- goto err1;
- }
- if (value != *value_list) {
- int i;
- ssize_t delta;
- delta = value - *value_list;
- *value_list = value;
- for (i = 1; i < value_num; ++i) {
- value_list[i] += delta;
- }
- }
-
- value_list[value_num] = p = &value[value_len];
- value_list[value_num + 1] = NULL;
- strncpy(p, str, len);
- p[len] = 0;
-
- parse_info.value = value_list;
- parse_info.value_num = value_num + 1;
- parse_info.value_len = value_len + len + 1;
- parse_info.bufsize = 0;
- return 1;
-
- err1:
- if (value_list) {
- Xfree((char **)value_list);
- }
- if (value) {
- Xfree(value);
- }
- err2:
- parse_info.value = (char **)NULL;
- parse_info.value_num = 0;
- parse_info.value_len = 0;
- parse_info.bufsize = 0;
- return 0;
-}
-
-static int
-construct_name(
- char *name,
- int size)
-{
- int i;
- int len = 0;
- char *p = name;
-
- for (i = 0; i <= parse_info.nest_depth; ++i) {
- len += strlen(parse_info.name[i]) + 1;
- }
- if (len >= size)
- return 0;
-
- strcpy(p, parse_info.name[0]);
- p += strlen(parse_info.name[0]);
- for (i = 1; i <= parse_info.nest_depth; ++i) {
- *p++ = '.';
- strcpy(p, parse_info.name[i]);
- p += strlen(parse_info.name[i]);
- }
- return *name != '\0';
-}
-
-static int
-store_to_database(
- Database *db)
-{
- Database new = (Database)NULL;
- char name[BUFSIZE];
-
- if (parse_info.pre_state == S_VALUE) {
- if (! append_value_list()) {
- goto err;
- }
- }
-
- if (parse_info.name[parse_info.nest_depth] == NULL) {
- goto err;
- }
-
- new = Xcalloc(1, sizeof(DatabaseRec));
- if (new == (Database)NULL) {
- goto err;
- }
-
- new->category = strdup(parse_info.category);
- if (new->category == NULL) {
- goto err;
- }
-
- if (! construct_name(name, sizeof(name))) {
- goto err;
- }
- new->name = strdup(name);
- if (new->name == NULL) {
- goto err;
- }
- new->next = *db;
- new->value = parse_info.value;
- new->value_num = parse_info.value_num;
- *db = new;
-
- Xfree(parse_info.name[parse_info.nest_depth]);
- parse_info.name[parse_info.nest_depth] = NULL;
-
- parse_info.value = (char **)NULL;
- parse_info.value_num = 0;
- parse_info.value_len = 0;
-
- return 1;
-
- err:
- if (new) {
- if (new->category) {
- Xfree(new->category);
- }
- if (new->name) {
- Xfree(new->name);
- }
- Xfree(new);
- }
- if (parse_info.value) {
- if (*parse_info.value) {
- Xfree(*parse_info.value);
- }
- Xfree((char **)parse_info.value);
- parse_info.value = (char **)NULL;
- parse_info.value_num = 0;
- parse_info.value_len = 0;
- }
- return 0;
-}
-
-#define END_MARK "END"
-#define END_MARK_LEN 3 /*strlen(END_MARK)*/
-
-static int
-check_category_end(
- const char *str)
-{
- const char *p;
- int len;
-
- p = str;
- if (strncmp(p, END_MARK, END_MARK_LEN)) {
- return 0;
- }
- p += END_MARK_LEN;
-
- while (iswhite(*p)) {
- ++p;
- }
- len = strlen(parse_info.category);
- if (strncmp(p, parse_info.category, len)) {
- return 0;
- }
- p += len;
- return p - str;
-}
-
-/************************************************************************/
-
-static int
-f_newline(
- const char *str,
- Token token,
- Database *db)
-{
- switch (parse_info.pre_state) {
- case S_NULL:
- case S_CATEGORY:
- break;
- case S_NAME:
- return 0; /* no value */
- case S_VALUE:
- if (!store_to_database(db))
- return 0;
- parse_info.pre_state = S_CATEGORY;
- break;
- default:
- return 0;
- }
- return token_tbl[token].len;
-}
-
-static int
-f_comment(
- const char *str,
- Token token,
- Database *db)
-{
- /* NOTE: comment is already handled in read_line(),
- so this function is not necessary. */
-
- const char *p = str;
-
- while (*p != SYM_NEWLINE && *p != SYM_CR && *p != '\0') {
- ++p; /* zap to the end of line */
- }
- return p - str;
-}
-
-static int
-f_white(
- const char *str,
- Token token,
- Database *db)
-{
- const char *p = str;
-
- while (iswhite(*p)) {
- ++p;
- }
- return p - str;
-}
-
-static int
-f_semicolon(
- const char *str,
- Token token,
- Database *db)
-{
- switch (parse_info.pre_state) {
- case S_NULL:
- case S_CATEGORY:
- case S_NAME:
- return 0;
- case S_VALUE:
- if (! append_value_list())
- return 0;
- parse_info.pre_state = S_VALUE;
- break;
- default:
- return 0;
- }
- return token_tbl[token].len;
-}
-
-static int
-f_left_brace(
- const char *str,
- Token token,
- Database *db)
-{
- switch (parse_info.pre_state) {
- case S_NULL:
- case S_CATEGORY:
- case S_VALUE:
- return 0;
- case S_NAME:
- if (parse_info.name[parse_info.nest_depth] == NULL
- || parse_info.nest_depth + 1 > MAX_NAME_NEST)
- return 0;
- ++parse_info.nest_depth;
- parse_info.pre_state = S_CATEGORY;
- break;
- default:
- return 0;
- }
- return token_tbl[token].len;
-}
-
-static int
-f_right_brace(
- const char *str,
- Token token,
- Database *db)
-{
- if (parse_info.nest_depth < 1)
- return 0;
-
- switch (parse_info.pre_state) {
- case S_NULL:
- case S_NAME:
- return 0;
- case S_VALUE:
- if (! store_to_database(db))
- return 0;
- /* fall into next case */
- case S_CATEGORY:
- if (parse_info.name[parse_info.nest_depth] != NULL) {
- Xfree(parse_info.name[parse_info.nest_depth]);
- parse_info.name[parse_info.nest_depth] = NULL;
- }
- --parse_info.nest_depth;
- parse_info.pre_state = S_CATEGORY;
- break;
- default:
- return 0;
- }
- return token_tbl[token].len;
-}
-
-static int
-f_double_quote(
- const char *str,
- Token token,
- Database *db)
-{
- char word[BUFSIZE];
- char* wordp;
- int len;
-
- if ((len = strlen (str)) < sizeof word)
- wordp = word;
- else
- wordp = Xmalloc (len + 1);
- if (wordp == NULL)
- return 0;
-
- len = 0;
- switch (parse_info.pre_state) {
- case S_NULL:
- case S_CATEGORY:
- goto err;
- case S_NAME:
- case S_VALUE:
- len = get_quoted_word(str, wordp);
- if (len < 1)
- goto err;
- if ((parse_info.bufsize + (int)strlen(wordp) + 1)
- >= parse_info.bufMaxSize) {
- if (realloc_parse_info(strlen(wordp)+1) == False) {
- goto err;
- }
- }
- strcpy(&parse_info.buf[parse_info.bufsize], wordp);
- parse_info.bufsize += strlen(wordp);
- parse_info.pre_state = S_VALUE;
- break;
- default:
- goto err;
- }
- if (wordp != word)
- Xfree (wordp);
- return len; /* including length of token */
-
-err:
- if (wordp != word)
- Xfree (wordp);
- return 0;
-}
-
-static int
-f_backslash(
- const char *str,
- Token token,
- Database *db)
-{
- return f_default(str, token, db);
-}
-
-static int
-f_numeric(
- const char *str,
- Token token,
- Database *db)
-{
- char word[BUFSIZE];
- const char *p;
- char* wordp;
- int len;
- int token_len;
-
- if ((len = strlen (str)) < sizeof word)
- wordp = word;
- else
- wordp = Xmalloc (len + 1);
- if (wordp == NULL)
- return 0;
-
- switch (parse_info.pre_state) {
- case S_NULL:
- case S_CATEGORY:
- goto err;
- case S_NAME:
- case S_VALUE:
- token_len = token_tbl[token].len;
- p = str + token_len;
- len = get_word(p, wordp);
- if (len < 1)
- goto err;
- if ((parse_info.bufsize + token_len + (int)strlen(wordp) + 1)
- >= parse_info.bufMaxSize) {
- if (realloc_parse_info(token_len + strlen(wordp) + 1) == False)
- goto err;
- }
- strncpy(&parse_info.buf[parse_info.bufsize], str, token_len);
- strcpy(&parse_info.buf[parse_info.bufsize + token_len], wordp);
- parse_info.bufsize += token_len + strlen(wordp);
- parse_info.pre_state = S_VALUE;
- break;
- default:
- goto err;
- }
- if (wordp != word)
- Xfree (wordp);
- return len + token_len;
-
-err:
- if (wordp != word)
- Xfree (wordp);
- return 0;
-}
-
-static int
-f_default(
- const char *str,
- Token token,
- Database *db)
-{
- char word[BUFSIZE], *p;
- char* wordp;
- int len;
-
- if ((len = strlen (str)) < sizeof word)
- wordp = word;
- else
- wordp = Xmalloc (len + 1);
- if (wordp == NULL)
- return 0;
-
- len = get_word(str, wordp);
- if (len < 1)
- goto err;
-
- switch (parse_info.pre_state) {
- case S_NULL:
- if (parse_info.category != NULL)
- goto err;
- p = strdup(wordp);
- if (p == NULL)
- goto err;
- parse_info.category = p;
- parse_info.pre_state = S_CATEGORY;
- break;
- case S_CATEGORY:
- if (parse_info.nest_depth == 0) {
- if (check_category_end(str)) {
- /* end of category is detected.
- clear context and zap to end of this line */
- clear_parse_info();
- len = strlen(str);
- break;
- }
- }
- p = strdup(wordp);
- if (p == NULL)
- goto err;
- if (parse_info.name[parse_info.nest_depth] != NULL) {
- Xfree(parse_info.name[parse_info.nest_depth]);
- }
- parse_info.name[parse_info.nest_depth] = p;
- parse_info.pre_state = S_NAME;
- break;
- case S_NAME:
- case S_VALUE:
- if ((parse_info.bufsize + (int)strlen(wordp) + 1)
- >= parse_info.bufMaxSize) {
- if (realloc_parse_info(strlen(wordp) + 1) == False)
- goto err;
- }
- strcpy(&parse_info.buf[parse_info.bufsize], wordp);
- parse_info.bufsize += strlen(wordp);
- parse_info.pre_state = S_VALUE;
- break;
- default:
- goto err;
- }
- if (wordp != word)
- Xfree (wordp);
- return len;
-
-err:
- if (wordp != word)
- Xfree (wordp);
- return 0;
-}
-
-/************************************************************************/
-
-#ifdef DEBUG
-static void
-PrintDatabase(
- Database db)
-{
- Database p = db;
- int i = 0, j;
-
- printf("***\n*** BEGIN Database\n***\n");
- while (p) {
- printf("%3d: ", i++);
- printf("%s, %s, ", p->category, p->name);
- printf("\t[%d: ", p->value_num);
- for (j = 0; j < p->value_num; ++j) {
- printf("%s, ", p->value[j]);
- }
- printf("]\n");
- p = p->next;
- }
- printf("***\n*** END Database\n***\n");
-}
-#endif
-
-static void
-DestroyDatabase(
- Database db)
-{
- Database p = db;
-
- while (p) {
- if (p->category != NULL) {
- Xfree(p->category);
- }
- if (p->name != NULL) {
- Xfree(p->name);
- }
- if (p->value != (char **)NULL) {
- if (*p->value != NULL) {
- Xfree(*p->value);
- }
- Xfree(p->value);
- }
- db = p->next;
- Xfree(p);
- p = db;
- }
-}
-
-static int
-CountDatabase(
- Database db)
-{
- Database p = db;
- int cnt = 0;
-
- while (p) {
- ++cnt;
- p = p->next;
- }
- return cnt;
-}
-
-static Database
-CreateDatabase(
- char *dbfile)
-{
- Database db = (Database)NULL;
- FILE *fd;
- Line line;
- char *p;
- Token token;
- int len;
- int error = 0;
-
- fd = _XFopenFile(dbfile, "r");
- if (fd == (FILE *)NULL)
- return NULL;
-
- bzero(&line, sizeof(Line));
- init_parse_info();
-
- do {
- int rc = read_line(fd, &line);
- if (rc < 0) {
- error = 1;
- break;
- } else if (rc == 0) {
- break;
- }
- p = line.str;
- while (*p) {
- int (*parse_proc)(const char *str, Token token, Database *db) = NULL;
-
- token = get_token(p);
-
- switch (token_tbl[token].token) {
- case T_NEWLINE:
- parse_proc = f_newline;
- break;
- case T_COMMENT:
- parse_proc = f_comment;
- break;
- case T_SEMICOLON:
- parse_proc = f_semicolon;
- break;
- case T_DOUBLE_QUOTE:
- parse_proc = f_double_quote;
- break;
- case T_LEFT_BRACE:
- parse_proc = f_left_brace;
- break;
- case T_RIGHT_BRACE:
- parse_proc = f_right_brace;
- break;
- case T_SPACE:
- case T_TAB:
- parse_proc = f_white;
- break;
- case T_BACKSLASH:
- parse_proc = f_backslash;
- break;
- case T_NUMERIC_HEX:
- case T_NUMERIC_DEC:
- case T_NUMERIC_OCT:
- parse_proc = f_numeric;
- break;
- case T_DEFAULT:
- parse_proc = f_default;
- break;
- }
-
- len = parse_proc(p, token, &db);
-
- if (len < 1) {
- error = 1;
- break;
- }
- p += len;
- }
- } while (!error);
-
- if (parse_info.pre_state != S_NULL) {
- clear_parse_info();
- error = 1;
- }
- if (error) {
-#ifdef DEBUG
- fprintf(stderr, "database format error at line %d.\n", line.seq);
-#endif
- DestroyDatabase(db);
- db = (Database)NULL;
- }
-
- fclose(fd);
- free_line(&line);
-
-#ifdef DEBUG
- PrintDatabase(db);
-#endif
-
- return db;
-}
-
-/************************************************************************/
-
-#ifndef NOT_X_ENV
-
-/* locale framework functions */
-
-typedef struct _XlcDatabaseRec {
- XrmQuark category_q;
- XrmQuark name_q;
- Database db;
- struct _XlcDatabaseRec *next;
-} XlcDatabaseRec, *XlcDatabase;
-
-typedef struct _XlcDatabaseListRec {
- XrmQuark name_q;
- XlcDatabase lc_db;
- Database database;
- int ref_count;
- struct _XlcDatabaseListRec *next;
-} XlcDatabaseListRec, *XlcDatabaseList;
-
-/* database cache list (per file) */
-static XlcDatabaseList _db_list = (XlcDatabaseList)NULL;
-
-/************************************************************************/
-/* _XlcGetResource(lcd, category, class, value, count) */
-/*----------------------------------------------------------------------*/
-/* This function retrieves XLocale database information. */
-/************************************************************************/
-void
-_XlcGetResource(
- XLCd lcd,
- const char *category,
- const char *class,
- char ***value,
- int *count)
-{
- XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
-
- (*methods->get_resource)(lcd, category, class, value, count);
- return;
-}
-
-/************************************************************************/
-/* _XlcGetLocaleDataBase(lcd, category, class, value, count) */
-/*----------------------------------------------------------------------*/
-/* This function retrieves XLocale database information. */
-/************************************************************************/
-void
-_XlcGetLocaleDataBase(
- XLCd lcd,
- const char *category,
- const char *name,
- char ***value,
- int *count)
-{
- XlcDatabase lc_db = (XlcDatabase)XLC_PUBLIC(lcd, xlocale_db);
- XrmQuark category_q, name_q;
-
- category_q = XrmStringToQuark(category);
- name_q = XrmStringToQuark(name);
- for (; lc_db->db; ++lc_db) {
- if (category_q == lc_db->category_q && name_q == lc_db->name_q) {
- *value = lc_db->db->value;
- *count = lc_db->db->value_num;
- return;
- }
- }
- *value = (char **)NULL;
- *count = 0;
-}
-
-/************************************************************************/
-/* _XlcDestroyLocaleDataBase(lcd) */
-/*----------------------------------------------------------------------*/
-/* This function destroy the XLocale Database that bound to the */
-/* specified lcd. If the XLocale Database is refered from some */
-/* other lcd, this function just decreases reference count of */
-/* the database. If no locale refers the database, this function */
-/* remove it from the cache list and free work area. */
-/************************************************************************/
-void
-_XlcDestroyLocaleDataBase(
- XLCd lcd)
-{
- XlcDatabase lc_db = (XlcDatabase)XLC_PUBLIC(lcd, xlocale_db);
- XlcDatabaseList p, prev;
-
- for (p = _db_list, prev = (XlcDatabaseList)NULL; p;
- prev = p, p = p->next) {
- if (p->lc_db == lc_db) {
- if ((-- p->ref_count) < 1) {
- if (p->lc_db != (XlcDatabase)NULL) {
- Xfree(p->lc_db);
- }
- DestroyDatabase(p->database);
- if (prev == (XlcDatabaseList)NULL) {
- _db_list = p->next;
- } else {
- prev->next = p->next;
- }
- Xfree((char*)p);
- }
- break;
- }
- }
- XLC_PUBLIC(lcd, xlocale_db) = (XPointer)NULL;
-}
-
-/************************************************************************/
-/* _XlcCreateLocaleDataBase(lcd) */
-/*----------------------------------------------------------------------*/
-/* This function create an XLocale database which correspond to */
-/* the specified XLCd. */
-/************************************************************************/
-XPointer
-_XlcCreateLocaleDataBase(
- XLCd lcd)
-{
- XlcDatabaseList list, new;
- Database p, database = (Database)NULL;
- XlcDatabase lc_db = (XlcDatabase)NULL;
- XrmQuark name_q;
- char *name;
- int i, n;
-
- name = _XlcFileName(lcd, "locale");
- if (name == NULL)
- return (XPointer)NULL;
-
- name_q = XrmStringToQuark(name);
- for (list = _db_list; list; list = list->next) {
- if (name_q == list->name_q) {
- list->ref_count++;
- Xfree (name);
- return XLC_PUBLIC(lcd, xlocale_db) = (XPointer)list->lc_db;
- }
- }
-
- database = CreateDatabase(name);
- if (database == (Database)NULL) {
- Xfree (name);
- return (XPointer)NULL;
- }
- n = CountDatabase(database);
- lc_db = Xcalloc(n + 1, sizeof(XlcDatabaseRec));
- if (lc_db == (XlcDatabase)NULL)
- goto err;
- for (p = database, i = 0; p && i < n; p = p->next, ++i) {
- lc_db[i].category_q = XrmStringToQuark(p->category);
- lc_db[i].name_q = XrmStringToQuark(p->name);
- lc_db[i].db = p;
- }
-
- new = Xmalloc(sizeof(XlcDatabaseListRec));
- if (new == (XlcDatabaseList)NULL) {
- goto err;
- }
- new->name_q = name_q;
- new->lc_db = lc_db;
- new->database = database;
- new->ref_count = 1;
- new->next = _db_list;
- _db_list = new;
-
- Xfree (name);
- return XLC_PUBLIC(lcd, xlocale_db) = (XPointer)lc_db;
-
- err:
- DestroyDatabase(database);
- if (lc_db != (XlcDatabase)NULL) {
- Xfree(lc_db);
- }
- Xfree (name);
- return (XPointer)NULL;
-}
-
-#endif /* NOT_X_ENV */
diff --git a/nx-X11/lib/X11/lcDefConv.c b/nx-X11/lib/X11/lcDefConv.c
deleted file mode 100644
index 2096d871b..000000000
--- a/nx-X11/lib/X11/lcDefConv.c
+++ /dev/null
@@ -1,806 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * 2000
- * Modifier: Ivan Pascal The XFree86 Project
- */
-
-/*
- * The default locale loader.
- * Supports: one byte per char (iso8859 like) locales.
- * How: converts bytes to wide characters in a 1:1 manner.
- * Platforms: all systems.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcGeneric.h"
-
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 6
-#endif
-
-#if !defined(X_LOCALE)
-#define STDCVT
-#endif
-
-#define GR 0x80
-#define GL 0x7f
-
-typedef struct _StateRec *State;
-typedef struct _StateRec {
- CodeSet GL_codeset;
- CodeSet GR_codeset;
- wchar_t wc_mask;
- wchar_t wc_encode_mask;
- Bool (*MBtoWC) (State state, const char *ch, wchar_t *wc);
- Bool (*WCtoMB) (State state, wchar_t wc, char *ch);
-} StateRec;
-
-static
-Bool MBtoWCdef(
- State state,
- const char *ch,
- wchar_t *wc)
-{
- wchar_t wc_encoding;
- CodeSet codeset = (*ch & GR) ? state->GR_codeset : state->GL_codeset;
- if (!codeset)
- return False;
- wc_encoding = codeset->wc_encoding;
- *wc = ((wchar_t) *ch & state->wc_mask) | wc_encoding;
- return True;
-}
-
-#ifdef STDCVT
-static
-Bool MBtoWCstd(
- State state,
- const char *ch,
- wchar_t *wc)
-{
- return (mbtowc(wc, ch, 1) == 1);
-}
-#endif
-
-static
-Bool WCtoMBdef(
- State state,
- wchar_t wc,
- char *ch)
-{
- wchar_t wc_encoding = wc & state->wc_encode_mask;
- CodeSet codeset;
-
- codeset = state->GL_codeset;
- if (codeset && (wc_encoding == codeset->wc_encoding)) {
- *ch = wc & state->wc_mask;
- return True;
- }
- codeset = state->GR_codeset;
- if (codeset && (wc_encoding == codeset->wc_encoding)) {
- *ch = (wc & state->wc_mask) | GR;
- return True;
- }
- return False;
-}
-
-#ifdef STDCVT
-static
-Bool WCtoMBstd(
- State state,
- wchar_t wc,
- char *ch)
-{
- return (wctomb(ch, wc) == 1);
-}
-#endif
-
-static
-XlcCharSet get_charset(
- State state,
- char side)
-{
- CodeSet codeset = side ? state->GR_codeset : state->GL_codeset;
- if (codeset) {
- int i;
- XlcCharSet charset;
- for (i = 0; i < codeset->num_charsets; i++) {
- charset = codeset->charset_list[i];
- if (*charset->ct_sequence != '\0')
- return charset;
- }
- return *(codeset->charset_list);
- }
- return (XlcCharSet) NULL;
-}
-
-static int
-def_mbstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src;
- wchar_t *dst = (wchar_t *) *to;
- State state = (State) conv->state;
- int unconv = 0;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const char *) *from;
-
- while (*from_left && *to_left) {
- (*from_left)--;
- if (state->MBtoWC (state, src++, dst)) {
- dst++;
- (*to_left)--;
- } else {
- unconv++;
- }
- }
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-def_wcstombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const wchar_t *src;
- char *dst = (char *) *to;
- State state = (State) conv->state;
- char ch[MB_LEN_MAX];
- int unconv = 0;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const wchar_t *) *from;
-
- while (*from_left && *to_left) {
- (*from_left)--;
- if (state->WCtoMB (state, *src++, ch)) {
- *dst++ = *ch;
- (*to_left)--;
- } else {
- unconv++;
- }
- }
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-mbstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src;
- char *dst = (char *) *to;
- CodeSet codeset;
- State state = (State) conv->state;
- char ch;
- int unconv = 0;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const char *) *from;
-
- while (*from_left && *to_left) {
- ch = *src++;
- (*from_left)--;
-
- codeset = (ch & GR) ? state->GR_codeset : state->GL_codeset;
- if (codeset && codeset->string_encoding) {
- *dst++ = ch;
- (*to_left)--;
- } else {
- unconv++;
- }
- }
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-wcstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const wchar_t *src;
- char *dst = (char *) *to;
- CodeSet codeset;
- State state = (State) conv->state;
- char ch[MB_LEN_MAX];
- int unconv = 0;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const wchar_t *) *from;
-
- while (*from_left && *to_left) {
- (*from_left)--;
- if (state->WCtoMB (state, *src++, ch)) {
- codeset = (*ch & GR) ? state->GR_codeset : state->GL_codeset;
- if (codeset && codeset->string_encoding) {
- *dst++ = *ch;
- (*to_left)--;
- } else {
- unconv++;
- }
- } else {
- unconv++;
- }
- }
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-mbstocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src;
- char *dst = (char *) *to;
- int length;
- State state = (State) conv->state;
- char cur_side;
- int unconv = 0;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const char *) *from;
- length = min(*from_left, *to_left);
-
- cur_side = *src & GR;
- while (length) {
- if ((char) (*src & GR) != cur_side)
- break;
- *dst++ = *src++;
- length--;
- }
-
- if (num_args > 0) {
- XlcCharSet charset = get_charset(state, cur_side);
- if (charset) {
- *((XlcCharSet *) args[0]) = charset;
- } else {
- dst = *to;
- unconv = -1;
- }
- }
- *from_left -= src - (char *) *from;
- *to_left -= dst - (char *) *to;
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-wcstocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const wchar_t *src;
- char *dst = (char *) *to;
- State state = (State) conv->state;
- char cur_side = 0, ch[MB_LEN_MAX];
- int unconv = 0;
- Bool found = False;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const wchar_t *) *from;
-
- while (*from_left) {
- if ((found = state->WCtoMB (state, *src, ch)))
- break;
- unconv++;
- src++;
- (*from_left)--;
- }
-
- if (found) {
- cur_side = *ch & GR;
- while (*from_left && *to_left) {
- (*from_left)--;
- if (state->WCtoMB (state, *src++, ch)) {
- if ((char) (*ch & GR) != cur_side) {
- src--;
- (*from_left)++;
- break;
- } else {
- *dst++ = *ch;
- (*to_left)--;
- }
- } else {
- unconv++;
- }
- }
- } else {
- unconv++;
- }
-
- if (num_args > 0) {
- XlcCharSet charset = get_charset(state, cur_side);
- if (charset) {
- *((XlcCharSet *) args[0]) = charset;
- } else {
- unconv = -1;
- }
- }
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-cstombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src;
- char *dst = (char *) *to;
- CodeSet codeset;
- XlcCharSet charset;
- State state = (State) conv->state;
- unsigned char cur_side = 0;
- int i;
- Bool found = False;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const char *) *from;
-
- if (num_args > 0) {
- charset = (XlcCharSet) args[0];
- if (charset == NULL)
- return -1;
- } else {
- return -1;
- }
-
- if ((charset->side == XlcGL) || (charset->side == XlcGLGR)) {
- codeset = state->GL_codeset;
- if (codeset) {
- for (i = 0; i < codeset->num_charsets; i++)
- if (charset == codeset->charset_list[i]) {
- found = True;
- cur_side = 0;
- break;
- }
- }
- }
- if (!found && ((charset->side == XlcGR) || (charset->side == XlcGLGR))) {
- codeset = state->GR_codeset;
- if (codeset) {
- for (i = 0; i < codeset->num_charsets; i++)
- if (charset == codeset->charset_list[i]) {
- found = True;
- cur_side = GR;
- break;
- }
- }
- }
- if (found) {
- int length = min(*from_left, *to_left);
- while (length) {
- *dst++ = *src++ | cur_side;
- length--;
- }
- } else {
- return -1;
- }
-
- *from_left -= src - (char *) *from;
- *to_left -= dst - (char *) *to;
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return 0;
-}
-
-static int
-cstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src;
- wchar_t *dst = (wchar_t *) *to;
- CodeSet codeset;
- XlcCharSet charset;
- State state = (State) conv->state;
- Bool found = False;
- int i, unconv = 0;
- unsigned char cur_side = 0;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const char *) *from;
-
- if (num_args > 0) {
- charset = (XlcCharSet) args[0];
- if (charset == NULL)
- return -1;
- } else {
- return -1;
- }
-
- if ((charset->side == XlcGL) || (charset->side == XlcGLGR)) {
- codeset = state->GL_codeset;
- if (codeset) {
- for (i = 0; i < codeset->num_charsets; i++)
- if (charset == codeset->charset_list[i]) {
- found = True;
- cur_side = 0;
- break;
- }
- }
- }
- if (!found && ((charset->side == XlcGR) || (charset->side == XlcGLGR))) {
- codeset = state->GR_codeset;
- if (codeset) {
- for (i = 0; i < codeset->num_charsets; i++)
- if (charset == codeset->charset_list[i]) {
- found = True;
- cur_side = GR;
- break;
- }
- }
- }
- if (found) {
- char ch;
- while (*from_left && *to_left) {
- ch = *src++ | cur_side;
- (*from_left)--;
- if (state->MBtoWC (state, &ch, dst)) {
- dst++;
- (*to_left)--;
- } else {
- unconv++;
- }
- }
- } else {
- return -1;
- }
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return unconv;
-}
-
-static int
-strtombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src;
- char *dst = (char *) *to;
- int length;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const char *) *from;
- length = min(*from_left, *to_left);
- while (length) {
- *dst++ = *src++;
- length--;
- }
-
- *from_left -= src - (char *) *from;
- *to_left -= dst - (char *) *to;
- *from = (XPointer) src;
- *to = (XPointer) dst;
- return 0;
-}
-
-static void
-close_converter(
- XlcConv conv)
-{
-
- Xfree(conv->state);
- Xfree(conv);
-}
-
-static XlcConv
-create_conv(
- XLCd lcd,
- XlcConvMethods methods)
-{
- XlcConv conv;
- State state;
-
- conv = Xcalloc(1, sizeof(XlcConvRec));
- if (conv == NULL)
- return (XlcConv) NULL;
-
- state = Xmalloc(sizeof(StateRec));
- if (state == NULL) {
- close_converter(conv);
- return (XlcConv) NULL;
- }
- state->GL_codeset = XLC_GENERIC(lcd, initial_state_GL);
- state->GR_codeset = XLC_GENERIC(lcd, initial_state_GR);
- state->wc_mask = (1 << XLC_GENERIC(lcd, wc_shift_bits)) - 1;
- state->wc_encode_mask = XLC_GENERIC(lcd, wc_encode_mask);
-
-#ifdef STDCVT
- if (XLC_GENERIC(lcd, use_stdc_env) == True)
- state->MBtoWC = &MBtoWCstd;
- else
-#endif
- state->MBtoWC = &MBtoWCdef;
-
-#ifdef STDCVT
- if (XLC_GENERIC(lcd, use_stdc_env) == True)
- state->WCtoMB = &WCtoMBstd;
- else
-#endif
- state->WCtoMB = &WCtoMBdef;
-
- conv->methods = methods;
- conv->state = (XPointer) state;
-
- return conv;
-}
-
-static XlcConvMethodsRec mbstowcs_methods = {
- close_converter,
- def_mbstowcs,
- NULL
-};
-
-static XlcConv
-open_mbstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstowcs_methods);
-}
-
-static XlcConvMethodsRec mbstostr_methods = {
- close_converter,
- mbstostr,
- NULL
-};
-
-static XlcConv
-open_mbstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstostr_methods);
-}
-
-static XlcConvMethodsRec mbstocs_methods = {
- close_converter,
- mbstocs,
- NULL
-};
-
-static XlcConv
-open_mbstocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstocs_methods);
-}
-
-static XlcConvMethodsRec wcstombs_methods = {
- close_converter,
- def_wcstombs,
- NULL
-};
-
-static XlcConv
-open_wcstombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstombs_methods);
-}
-
-static XlcConvMethodsRec wcstostr_methods = {
- close_converter,
- wcstostr,
- NULL
-};
-
-static XlcConv
-open_wcstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstostr_methods);
-}
-
-static XlcConvMethodsRec wcstocs_methods = {
- close_converter,
- wcstocs,
- NULL
-};
-
-static XlcConv
-open_wcstocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstocs_methods);
-}
-
-static XlcConvMethodsRec strtombs_methods = {
- close_converter,
- strtombs,
- NULL
-};
-
-static XlcConv
-open_strtombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &strtombs_methods);
-}
-
-static XlcConvMethodsRec cstombs_methods = {
- close_converter,
- cstombs,
- NULL
-};
-
-static XlcConv
-open_cstombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &cstombs_methods);
-}
-
-static XlcConvMethodsRec cstowcs_methods = {
- close_converter,
- cstowcs,
- NULL
-};
-
-static XlcConv
-open_cstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &cstowcs_methods);
-}
-
-XLCd
-_XlcDefaultLoader(
- const char *name)
-{
- XLCd lcd;
-
- lcd = _XlcCreateLC(name, _XlcGenericMethods);
- if (lcd == NULL)
- return lcd;
-
- if (XLC_PUBLIC(lcd, mb_cur_max) != 1){
- _XlcDestroyLC(lcd);
- return (XLCd) NULL;
- }
-
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_mbstowcs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_mbstostr);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_mbstocs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_mbstocs);
-
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
-
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtombs);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_mbstowcs);
-
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstombs);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
-
- _XlcAddUtf8Converters(lcd);
-
- return lcd;
-}
diff --git a/nx-X11/lib/X11/lcFile.c b/nx-X11/lib/X11/lcFile.c
deleted file mode 100644
index cf03a90a7..000000000
--- a/nx-X11/lib/X11/lcFile.c
+++ /dev/null
@@ -1,711 +0,0 @@
-/*
- *
- * Copyright IBM Corporation 1993
- *
- * All Rights Reserved
- *
- * License to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of IBM not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND
- * NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL
- * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include <nx-X11/Xos.h>
-#include <unistd.h>
-
-/************************************************************************/
-
-#define iscomment(ch) ((ch) == '#' || (ch) == '\0')
-#if defined(WIN32)
-#define isreadable(f) (_XAccessFile(f))
-#else
-#define isreadable(f) ((access((f), R_OK) != -1) ? 1 : 0)
-#endif
-
-#define LC_PATHDELIM ':'
-
-#define XLC_BUFSIZE 256
-
-#include "pathmax.h"
-
-#define NUM_LOCALEDIR 64
-
-/* Splits a NUL terminated line into constituents, at colons and newline
- characters. Leading whitespace is removed from constituents. The
- constituents are stored at argv[0..argsize-1]. The number of stored
- constituents (<= argsize) is returned. The line is destructively
- modified. */
-static int
-parse_line(
- char *line,
- char **argv,
- int argsize)
-{
- int argc = 0;
- char *p = line;
-
- while (argc < argsize) {
- while (isspace(*p)) {
- ++p;
- }
- if (*p == '\0') {
- break;
- }
- argv[argc++] = p;
- while (*p != ':' && *p != '\n' && *p != '\0') {
- ++p;
- }
- if (*p == '\0') {
- break;
- }
- *p++ = '\0';
- }
-
- return argc;
-}
-
-#if defined(WIN32)
-
-/* this is parse_line but skips drive letters at the beginning of the entry */
-static int
-parse_line1(
- char *line,
- char **argv,
- int argsize)
-{
- int argc = 0;
- char *p = line;
-
- while (argc < argsize) {
- while (isspace(*p)) {
- ++p;
- }
- if (*p == '\0') {
- break;
- }
- argv[argc++] = p;
- if (isalpha(*p) && p[1] == ':') {
- p+= 2; /* skip drive letters */
- }
- while (*p != ':' && *p != '\n' && *p != '\0') {
- ++p;
- }
- if (*p == '\0') {
- break;
- }
- *p++ = '\0';
- }
-
- return argc;
-}
-
-#endif /* WIN32 */
-
-/* Splits a colon separated list of directories, and returns the constituent
- paths (without trailing slash). At most argsize constituents are stored
- at argv[0..argsize-1]. The number of stored constituents is returned. */
-static int
-_XlcParsePath(
- char *path,
- char **argv,
- int argsize)
-{
- char *p = path;
- int n, i;
-
-#if !defined(WIN32)
- n = parse_line(path, argv, argsize);
-#else
- n = parse_line1(path, argv, argsize);
-#endif
- for (i = 0; i < n; ++i) {
- int len;
- p = argv[i];
- len = strlen(p);
- if (len > 0 && p[len - 1] == '/') {
- /* eliminate trailing slash */
- p[len - 1] = '\0';
- }
- }
- return n;
-}
-
-#ifndef XLOCALEDIR
-#define XLOCALEDIR "/usr/lib/X11/locale"
-#endif
-
-void
-xlocaledir(
- char *buf,
- int buf_len)
-{
- char *p = buf;
- int len = 0;
-
-#ifndef NO_XLOCALEDIR
- char *dir;
- int priv = 1;
-
- dir = getenv("XLOCALEDIR");
-
- if (dir) {
-#ifndef WIN32
- /*
- * Only use the user-supplied path if the process isn't priviledged.
- */
- if (getuid() == geteuid() && getgid() == getegid()) {
-#if defined(HASSETUGID)
- priv = issetugid();
-#elif defined(HASGETRESUID)
- {
- uid_t ruid, euid, suid;
- gid_t rgid, egid, sgid;
- if ((getresuid(&ruid, &euid, &suid) == 0) &&
- (getresgid(&rgid, &egid, &sgid) == 0))
- priv = (euid != suid) || (egid != sgid);
- }
-#else
- /*
- * If there are saved ID's the process might still be priviledged
- * even though the above test succeeded. If issetugid() and
- * getresgid() aren't available, test this by trying to set
- * euid to 0.
- *
- * Note: this only protects setuid-root clients. It doesn't
- * protect other setuid or any setgid clients. If this tradeoff
- * isn't acceptable, set DisableXLocaleDirEnv to YES in host.def.
- */
- unsigned int oldeuid;
- oldeuid = geteuid();
- if (seteuid(0) != 0) {
- priv = 0;
- } else {
- if (seteuid(oldeuid) == -1) {
- /* XXX ouch, coudn't get back to original uid
- what can we do ??? */
- _exit(127);
- }
- priv = 1;
- }
-#endif
- }
-#else
- priv = 0;
-#endif
- if (!priv) {
- len = strlen(dir);
- strncpy(p, dir, buf_len);
- if (len < buf_len) {
- p[len++] = LC_PATHDELIM;
- p += len;
- }
- }
- }
-#endif /* NO_XLOCALEDIR */
-
- if (len < buf_len)
- strncpy(p, XLOCALEDIR, buf_len - len);
- buf[buf_len-1] = '\0';
-}
-
-static void
-xlocalelibdir(
- char *buf,
- int buf_len)
-{
- char *p = buf;
- int len = 0;
-
-#ifndef NO_XLOCALEDIR
- char *dir;
- int priv = 1;
-
- dir = getenv("XLOCALELIBDIR");
-
- if (dir) {
-#ifndef WIN32
- /*
- * Only use the user-supplied path if the process isn't priviledged.
- */
- if (getuid() == geteuid() && getgid() == getegid()) {
-#if defined(HASSETUGID)
- priv = issetugid();
-#elif defined(HASGETRESUID)
- {
- uid_t ruid, euid, suid;
- gid_t rgid, egid, sgid;
- if ((getresuid(&ruid, &euid, &suid) == 0) &&
- (getresgid(&rgid, &egid, &sgid) == 0))
- priv = (euid != suid) || (egid != sgid);
- }
-#else
- /*
- * If there are saved ID's the process might still be priviledged
- * even though the above test succeeded. If issetugid() and
- * getresgid() aren't available, test this by trying to set
- * euid to 0.
- *
- * Note: this only protects setuid-root clients. It doesn't
- * protect other setuid or any setgid clients. If this tradeoff
- * isn't acceptable, set DisableXLocaleDirEnv to YES in host.def.
- */
- unsigned int oldeuid;
- oldeuid = geteuid();
- if (seteuid(0) != 0) {
- priv = 0;
- } else {
- if (seteuid(oldeuid) == -1) {
- /* XXX ouch, coudn't get back to original uid
- what can we do ??? */
- _exit(127);
- }
- priv = 1;
- }
-#endif
- }
-#else
- priv = 0;
-#endif
- if (!priv) {
- len = strlen(dir);
- strncpy(p, dir, buf_len);
- if (len < buf_len) {
- p[len++] = LC_PATHDELIM;
- p += len;
- }
- }
- }
-#endif /* NO_XLOCALEDIR */
-
- if (len < buf_len)
- strncpy(p, XLOCALELIBDIR, buf_len - len);
- buf[buf_len-1] = '\0';
-}
-
-/* Mapping direction */
-typedef enum {
- LtoR, /* Map first field to second field */
- RtoL /* Map second field to first field */
-} MapDirection;
-
-static char *
-resolve_name(
- const char *lc_name,
- char *file_name,
- MapDirection direction)
-{
- FILE *fp;
- char buf[XLC_BUFSIZE], *name = NULL;
-
- fp = _XFopenFile (file_name, "r");
- if (fp == NULL)
- return NULL;
-
- while (fgets(buf, XLC_BUFSIZE, fp) != NULL) {
- char *p = buf;
- int n;
- char *args[2], *from, *to;
- while (isspace(*p)) {
- ++p;
- }
- if (iscomment(*p)) {
- continue;
- }
- n = parse_line(p, args, 2); /* get first 2 fields */
- if (n != 2) {
- continue;
- }
- if (direction == LtoR) {
- from = args[0], to = args[1]; /* left to right */
- } else {
- from = args[1], to = args[0]; /* right to left */
- }
- if (! strcmp(from, lc_name)) {
- name = strdup(to);
- break;
- }
- }
- fclose(fp);
- return name;
-}
-
-#define c_tolower(ch) ((ch) >= 'A' && (ch) <= 'Z' ? (ch) - 'A' + 'a' : (ch))
-
-static char *
-lowercase(
- char *dst,
- const char *src)
-{
- const char *s;
- char *t;
-
- for (s = src, t = dst; *s; ++s, ++t)
- *t = c_tolower(*s);
- *t = '\0';
- return dst;
-}
-
-/*
- * normalize_lcname(): remove any '_' and '-' and convert any character
- * to lower case after the <language>_<territory> part. If result is identical
- * to argument, free result and
- * return NULL.
- */
-static char *
-normalize_lcname (const char *name)
-{
- char *p, *ret;
- const char *tmp = name;
-
- p = ret = Xmalloc(strlen(name) + 1);
- if (!p)
- return NULL;
-
- if (tmp) {
- while (*tmp && *tmp != '.' && *tmp != '@')
- *p++ = *tmp++;
- while (*tmp) {
- if (*tmp != '-')
- *p++ = c_tolower(*tmp);
- tmp++;
- }
- }
- *p = '\0';
-
- if (strcmp(ret, name) == 0) {
- Xfree(ret);
- return NULL;
- }
-
- return ret;
-}
-
-/************************************************************************/
-char *
-_XlcFileName(
- XLCd lcd,
- const char *category)
-{
- char *siname;
- char cat[XLC_BUFSIZE], dir[XLC_BUFSIZE];
- int i, n;
- char *args[NUM_LOCALEDIR];
- char *file_name = NULL;
-
- if (lcd == (XLCd)NULL)
- return NULL;
-
- siname = XLC_PUBLIC(lcd, siname);
-
- if (category)
- lowercase(cat, category);
- else
- cat[0] = '\0';
- xlocaledir(dir,XLC_BUFSIZE);
- n = _XlcParsePath(dir, args, NUM_LOCALEDIR);
- for (i = 0; i < n; ++i) {
- char buf[PATH_MAX], *name;
-
- if (args[i] == NULL)
- continue;
-
- name = NULL;
- if (snprintf(buf, PATH_MAX, "%s/%s.dir", args[i], cat) < PATH_MAX) {
- name = resolve_name(siname, buf, RtoL);
- }
- if (name == NULL) {
- continue;
- }
- if (*name == '/') {
- /* supposed to be absolute path name */
- file_name = name;
- } else {
- if (snprintf(buf, PATH_MAX, "%s/%s", args[i], name) < PATH_MAX)
- file_name = strdup(buf);
- else
- file_name = NULL;
- Xfree(name);
- }
- if (file_name && isreadable(file_name)) {
- break;
- }
- Xfree(file_name);
- file_name = NULL;
- /* Then, try with next dir */
- }
- return file_name;
-}
-
-/************************************************************************/
-#ifndef LOCALE_ALIAS
-#define LOCALE_ALIAS "locale.alias"
-#endif
-
-int
-_XlcResolveLocaleName(
- const char* lc_name,
- XLCdPublicPart* pub)
-{
- char dir[PATH_MAX], buf[PATH_MAX], *name = NULL;
- char *dst;
- int i, n, sinamelen;
- char *args[NUM_LOCALEDIR];
- static const char locale_alias[] = LOCALE_ALIAS;
- char *tmp_siname;
- char *nlc_name = NULL;
-
- xlocaledir (dir, PATH_MAX);
- n = _XlcParsePath(dir, args, NUM_LOCALEDIR);
- for (i = 0; i < n; ++i) {
- if (args[i] == NULL)
- continue;
-
- if (snprintf (buf, PATH_MAX, "%s/%s", args[i], locale_alias)
- < PATH_MAX) {
- name = resolve_name (lc_name, buf, LtoR);
- if (!name) {
- if (!nlc_name)
- nlc_name = normalize_lcname(lc_name);
- if (nlc_name)
- name = resolve_name (nlc_name, buf, LtoR);
- }
- }
- if (name != NULL) {
- break;
- }
- }
- Xfree(nlc_name);
-
- if (name == NULL) {
- /* vendor locale name == Xlocale name, no expansion of alias */
- pub->siname = strdup (lc_name);
- } else {
- pub->siname = name;
- }
-
- sinamelen = strlen (pub->siname);
- if (sinamelen == 1 && pub->siname[0] == 'C') {
- pub->language = pub->siname;
- pub->territory = pub->codeset = NULL;
- return 1;
- }
-
- /*
- * pub->siname is in the format <lang>_<terr>.<codeset>, typical would
- * be "en_US.ISO8859-1", "en_US.utf8", "ru_RU.KOI-8", or ja_JP.SJIS,
- * although it could be ja.SJIS too.
- */
- tmp_siname = Xrealloc (pub->siname, 2 * (sinamelen + 1));
- if (tmp_siname == NULL) {
- return 0;
- }
- pub->siname = tmp_siname;
-
- /* language */
- dst = &pub->siname[sinamelen + 1];
- strcpy (dst, pub->siname);
- pub->language = dst;
-
- /* territory */
- dst = strchr (dst, '_');
- if (dst) {
- *dst = '\0';
- pub->territory = ++dst;
- } else
- dst = &pub->siname[sinamelen + 1];
-
- /* codeset */
- dst = strchr (dst, '.');
- if (dst) {
- *dst = '\0';
- pub->codeset = ++dst;
- }
-
- return (pub->siname[0] != '\0') ? 1 : 0;
-}
-
-/************************************************************************/
-int
-_XlcResolveI18NPath(char *buf, int buf_len)
-{
- if (buf != NULL) {
- xlocaledir(buf, buf_len);
- }
- return 1;
-}
-
-char *
-_XlcLocaleDirName(char *dir_name, size_t dir_len, const char *lc_name)
-{
- char dir[PATH_MAX], buf[PATH_MAX];
- int i, n;
- char *args[NUM_LOCALEDIR];
- static char locale_alias[] = LOCALE_ALIAS;
- char *target_name = NULL;
- char *target_dir = NULL;
- char *nlc_name = NULL;
- static char* last_dir_name = 0;
- static size_t last_dir_len = 0;
- static char* last_lc_name = 0;
-
- if (last_lc_name != 0 && strcmp (last_lc_name, lc_name) == 0
- && dir_len >= last_dir_len) {
- strcpy (dir_name, last_dir_name);
- return dir_name;
- }
-
- xlocaledir (dir, PATH_MAX);
- n = _XlcParsePath(dir, args, NUM_LOCALEDIR);
- for (i = 0; i < n; ++i) {
- char *name = NULL;
-
- if (args[i] == NULL)
- continue;
-
- if (snprintf (buf, PATH_MAX, "%s/%s", args[i], locale_alias)
- < PATH_MAX) {
- name = resolve_name(lc_name, buf, LtoR);
- if (!name) {
- if (!nlc_name)
- nlc_name = normalize_lcname(lc_name);
- if (nlc_name)
- name = resolve_name (nlc_name, buf, LtoR);
- }
- }
-
- /* look at locale.dir */
-
- target_dir = args[i];
- if (snprintf(buf, PATH_MAX, "%s/locale.dir", target_dir) < PATH_MAX) {
- /* If name is not an alias, use lc_name for locale.dir search */
- target_name = resolve_name(name ? name : lc_name, buf, RtoL);
- }
- Xfree(name);
- name = NULL;
- if (target_name != NULL) {
- char *p = 0;
- if ((p = strstr(target_name, "/XLC_LOCALE"))) {
- *p = '\0';
- break;
- }
- Xfree(target_name);
- target_name = NULL;
- }
- }
- Xfree(nlc_name);
-
- if (target_name == NULL)
- /* vendor locale name == Xlocale name, no expansion of alias */
- snprintf(dir_name, dir_len, "%s/%s", args[0], lc_name);
- else
- snprintf(dir_name, dir_len, "%s/%s", target_dir, target_name);
-
- Xfree(target_name);
- Xfree (last_dir_name);
- Xfree (last_lc_name);
-
- last_dir_len = strlen (dir_name) + 1;
- last_dir_name = Xmalloc (last_dir_len);
- strcpy (last_dir_name, dir_name);
- last_lc_name = strdup (lc_name);
-
- return dir_name;
-}
-
-char *
-_XlcLocaleLibDirName(char *dir_name, size_t dir_len, const char *lc_name)
-{
- char dir[PATH_MAX], buf[PATH_MAX];
- int i, n;
- char *args[NUM_LOCALEDIR];
- static char locale_alias[] = LOCALE_ALIAS;
- char *target_name = NULL;
- char *target_dir = NULL;
- char *nlc_name = NULL;
- static char* last_dir_name = 0;
- static size_t last_dir_len = 0;
- static char* last_lc_name = 0;
-
- if (last_lc_name != 0 && strcmp (last_lc_name, lc_name) == 0
- && dir_len >= last_dir_len) {
- strcpy (dir_name, last_dir_name);
- return dir_name;
- }
-
- xlocalelibdir (dir, PATH_MAX);
- n = _XlcParsePath(dir, args, NUM_LOCALEDIR);
- for (i = 0; i < n; ++i) {
- char *name = NULL;
-
- if (args[i] == NULL)
- continue;
-
- if (snprintf (buf, PATH_MAX, "%s/%s", args[i], locale_alias)
- < PATH_MAX) {
- name = resolve_name(lc_name, buf, LtoR);
- if (!name) {
- if (!nlc_name)
- nlc_name = normalize_lcname(lc_name);
- if (nlc_name)
- name = resolve_name (nlc_name, buf, LtoR);
- }
- }
-
- /* look at locale.dir */
-
- target_dir = args[i];
- if (snprintf(buf, PATH_MAX, "%s/locale.dir", target_dir) < PATH_MAX) {
- /* If name is not an alias, use lc_name for locale.dir search */
- target_name = resolve_name(name ? name : lc_name, buf, RtoL);
- }
- Xfree(name);
- name = NULL;
- if (target_name != NULL) {
- char *p = 0;
- if ((p = strstr(target_name, "/XLC_LOCALE"))) {
- *p = '\0';
- break;
- }
- Xfree(target_name);
- target_name = NULL;
- }
- }
- Xfree(nlc_name);
-
- if (target_name == NULL)
- /* vendor locale name == Xlocale name, no expansion of alias */
- snprintf(dir_name, dir_len, "%s/%s", args[0], lc_name);
- else
- snprintf(dir_name, dir_len, "%s/%s", target_dir, target_name);
- Xfree(target_name);
- Xfree (last_dir_name);
- Xfree (last_lc_name);
-
- last_dir_len = strlen (dir_name) + 1;
- last_dir_name = Xmalloc (last_dir_len);
- strcpy (last_dir_name, dir_name);
- last_lc_name = strdup (lc_name);
-
- return dir_name;
-}
diff --git a/nx-X11/lib/X11/lcGenConv.c b/nx-X11/lib/X11/lcGenConv.c
deleted file mode 100644
index 799f49a30..000000000
--- a/nx-X11/lib/X11/lcGenConv.c
+++ /dev/null
@@ -1,3112 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * (c) Copyright 1995 FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Masayoshi Shimamura FUJITSU LIMITED
- *
- */
-/*
- * 2000
- * Modifier: Ivan Pascal The XFree86 Project
- */
-
-/*
- * A generic locale loader for all kinds of ISO-2022 based codesets.
- * Supports: all locales.
- * How: Provides generic converters for ISO-2022 based codesets. Extensible as
- * far as ISO-2022 is extensible: codesets can be given by name in the
- * stream. Overall distinction between GL (0x00..0x7f) and GR (0x80..0xff).
- * In every chunk between escape sequences, the number of bytes per
- * character (char_size) is constant.
- * Platforms: all systems.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcGeneric.h"
-#include <stdio.h>
-
-#if !defined(X_LOCALE)
-#define STDCVT
-#endif
-
-typedef struct _CTDataRec {
- const char *name;
- const char *encoding; /* Compound Text encoding */
-} CTDataRec, *CTData;
-
-static CTDataRec directionality_data[] =
-{
- { "BEGIN_LEFT-TO-RIGHT_TEXT", "\2331]" },
- { "BEGIN_RIGHT-TO-LEFT_TEXT", "\2332]" },
- { "END_OF_STRING", "\233]" },
-};
-
-typedef struct _StateRec {
- XLCd lcd;
- /* CT state */
- XlcCharSet charset; /* charset of current state */
- XlcCharSet GL_charset; /* charset of initial state in GL */
- XlcCharSet GR_charset; /* charset of initial state in GR */
- /* MB shift state */
- CodeSet GL_codeset;
- CodeSet GR_codeset;
-} StateRec, *State;
-
-#define GR 0x80 /* begins right-side (non-ascii) region */
-#define GL 0x7f /* ends left-side (ascii) region */
-#define ESC 0x1b
-#define CSI 0x9b
-#define STX 0x02
-
-#define isrightside(c) ((c) & GR)
-#define isleftside(c) (!isrightside(c))
-
-/* Forward declarations for local routines. */
-static int mbstocts (XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args);
-static int ctstombs (XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args);
-static int cstombs (XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args);
-
-/* ------------------------------------------------------------------------- */
-/* Misc */
-/* ------------------------------------------------------------------------- */
-
-static int
-compare(
- const char *src,
- const char *encoding,
- int length)
-{
- const char *start = src;
-
- while (length-- > 0) {
- if (*src++ != *encoding++)
- return 0;
- if (*encoding == '\0')
- return src - start;
- }
-
- return 0;
-}
-
-static unsigned long
-conv_to_dest(
- Conversion conv,
- unsigned long code)
-{
- int i;
- int conv_num = conv->conv_num;
- FontScope convlist = conv->convlist;
-
- for (i = 0; i < conv_num; i++) {
- if (convlist[i].start <= code && code <= convlist[i].end) {
- switch (convlist[i].shift_direction) {
- case '+':
- return(code + convlist[i].shift);
- case '-':
- return(code - convlist[i].shift);
- default:
- return(code);
- }
- }
- }
-
- return(code);
-}
-
-static unsigned long
-conv_to_source(
- Conversion conv,
- unsigned long code)
-{
- int i;
- int conv_num;
- FontScope convlist;
- unsigned long start_p;
- unsigned long start_m;
- unsigned long end_p;
- unsigned long end_m;
-
- if (!conv)
- return(code);
-
- conv_num = conv->conv_num;
- convlist = conv->convlist;
-
- for (i = 0; i < conv_num; i++) {
- switch (convlist[i].shift_direction) {
- case '+':
- start_p = convlist[i].start + convlist[i].shift;
- end_p = convlist[i].end + convlist[i].shift;
- if (start_p <= code && code <= end_p)
- return(code - convlist[i].shift);
- break;
- case '-':
- start_m = convlist[i].start - convlist[i].shift;
- end_m = convlist[i].end - convlist[i].shift;
- if (start_m <= code && code <= end_m)
- return(code + convlist[i].shift);
- break;
- default:
- continue;
- }
- }
-
- return(code);
-}
-
-static unsigned long
-mb_to_gi(
- unsigned long mb,
- CodeSet codeset)
-{
- int i;
- unsigned long mb_tmp, mask = 0;
-
- if (codeset->mbconv) {
- mb_tmp = conv_to_dest(codeset->mbconv, mb);
- if (mb_tmp != mb)
- return(mb_tmp);
- }
-
- if (codeset->side == XlcC0 || codeset->side == XlcGL ||
- codeset->side == XlcC1 || codeset->side == XlcGR) {
-
- for (i = 0; i < codeset->length; i++)
- mask = (mask << 8) | GL;
- mb = mb & mask;
- }
-
- return(mb);
-}
-
-static unsigned long
-gi_to_mb(
- unsigned long glyph_index,
- CodeSet codeset)
-{
- int i;
- unsigned long mask = 0;
-
- if (codeset->side == XlcC1 || codeset->side == XlcGR) {
- for (i = 0; i < codeset->length; i++)
- mask = (mask << 8) | GR;
- glyph_index = glyph_index | mask;
- }
-
- if (codeset->mbconv)
- return( conv_to_source(codeset->mbconv, glyph_index) );
-
- return(glyph_index);
-}
-
-static Bool
-gi_to_wc(
- XLCd lcd,
- unsigned long glyph_index,
- CodeSet codeset,
- wchar_t *wc)
-{
- unsigned char mask = 0;
- unsigned long wc_encoding = codeset->wc_encoding;
- int length = codeset->length;
- unsigned long wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
-
- mask = (1 << wc_shift_bits) - 1 ;
-
- for (*wc = 0, length--; length >= 0; length--)
- *wc = (*wc << wc_shift_bits) | ((glyph_index >> (length * 8 )) & mask);
-
- *wc = *wc | wc_encoding;
-
- return(True);
-}
-
-static Bool
-wc_to_gi(
- XLCd lcd,
- wchar_t wc,
- unsigned long *glyph_index,
- CodeSet *codeset)
-{
- int i;
- unsigned char mask = 0;
- unsigned long wc_encoding;
- unsigned long wc_encode_mask = XLC_GENERIC(lcd, wc_encode_mask);
- unsigned long wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
- int codeset_num = XLC_GENERIC(lcd, codeset_num);
- CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
-
- wc_encoding = wc & wc_encode_mask;
- for (*codeset = NULL, i = 0; i < codeset_num; i++) {
- if (wc_encoding == codeset_list[i]->wc_encoding) {
- *codeset = codeset_list[i];
- break;
- }
- }
- if (*codeset == NULL)
- return(False);
-
- mask = (1 << wc_shift_bits) - 1 ;
-
- wc = wc & ~wc_encode_mask;
- for (*glyph_index = 0, i = (*codeset)->length - 1; i >= 0; i--)
- *glyph_index = (*glyph_index << 8) |
- ( ((unsigned long)wc >> (i * wc_shift_bits)) & mask );
-
- return(True);
-}
-
-static CodeSet
-mb_parse_codeset(
- State state,
- int num,
- const char **inbufptr,
- int *from_left)
-{
- int len;
- int from_len = (*from_left) + 1;
- const char *src = (*inbufptr) - 1;
- ParseInfo *mb_parse_list = XLC_GENERIC(state->lcd, mb_parse_list);
- ParseInfo parse_info;
- CodeSet codeset;
-
- for (--num ; (parse_info = mb_parse_list[num]) != NULL; num++) {
- len = compare(src, parse_info->encoding, from_len);
- if (len > 0) {
- codeset = parse_info->codeset;
- if (parse_info->type == E_LSL)
- state->GL_codeset = codeset;
- else if (parse_info->type == E_LSR)
- state->GR_codeset = codeset;
- --len;
- *inbufptr += len;
- *from_left -= len;
- return codeset;
- }
- }
- return (CodeSet) NULL;
-}
-
-static CodeSet
-byteM_parse_codeset(
- XLCd lcd,
- const char *inbufptr)
-{
- unsigned char ch;
- CodeSet codeset;
- ByteInfoList byteM;
- ByteInfoListRec byteM_rec;
- ByteInfo byteinfo;
- ByteInfoRec byteinfo_rec;
- Bool hit = False;
- int i, j, k;
-
- int codeset_num = XLC_GENERIC(lcd, codeset_num);
- CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
-
- for (i = 0; i < codeset_num; i++) {
- codeset = codeset_list[i];
- byteM = codeset->byteM;
- if (codeset->side != XlcNONE || byteM == NULL)
- continue;
-
- for (j = 0; j < codeset->length; j++) {
- ch = *((const unsigned char *)(inbufptr + j));
- byteM_rec = byteM[j];
- byteinfo = byteM_rec.byteinfo;
-
- for (hit = False, k = 0; k < byteM_rec.byteinfo_num; k++) {
- byteinfo_rec = byteinfo[k];
- if (byteinfo_rec.start <= ch && ch <= byteinfo_rec.end) {
- hit = True;
- break;
- }
- }
-
- if (!hit)
- break;
- }
-
- if (hit)
- return(codeset);
- }
-
- return(NULL);
-}
-
-#define GLGR_parse_codeset(ch) \
- (isrightside(ch) ? (state->GR_codeset) : \
- (state->GL_codeset) )
-
-static XlcCharSet
-gi_parse_charset(
- unsigned long glyph_index,
- CodeSet codeset)
-{
- int i;
- XlcCharSet *charset_list = codeset->charset_list;
- int num_charsets = codeset->num_charsets;
- ExtdSegment ctextseg = codeset->ctextseg;
- XlcCharSet charset = NULL;
- int area_num;
- FontScope area;
-
- /* lockup ct sequence */
- for (i = 0; i < num_charsets; i++) {
- charset = charset_list[i];
- if (*charset->ct_sequence != '\0')
- break;
- }
- if (i >= num_charsets)
- return(NULL);
-
- if (charset->source != CSsrcStd)
- return (charset);
-
- if (!ctextseg)
- return(charset);
-
- area = ctextseg->area;
- area_num = ctextseg->area_num;
-
- for (i = 0; i < area_num; i++) {
-
- if (area[i].start <= glyph_index && glyph_index <= area[i].end) {
-
- charset = ctextseg->charset;
-
- if (*charset->ct_sequence == '\0')
- return(NULL);
-
- break;
- }
- }
-
- return(charset);
-}
-
-static Bool
-ct_parse_csi(
- const char *inbufptr,
- int *ctr_seq_len)
-{
- int i;
- int num = sizeof(directionality_data) / sizeof(directionality_data[0]);
-
- for (i = 0; i < num; i++) {
- if ( !(*ctr_seq_len = strlen(directionality_data[i].encoding)) )
- continue;
-
- if ( strncmp(inbufptr, directionality_data[i].encoding,
- *ctr_seq_len) == 0)
- return(True);
- }
-
- return(False);
-}
-
-static int
-cmp_esc_sequence(
- const char *inbufptr,
- XlcCharSet charset)
-{
- int seq_len, name_len, total_len;
- unsigned char byte_m, byte_l;
- const char *ct_sequence = charset->ct_sequence;
- const char *encoding_name = charset->encoding_name;
-
- /* check esc sequence */
- if ( !(seq_len = strlen(ct_sequence) ) )
- return(0);
- if ( strncmp(inbufptr, ct_sequence, seq_len) != 0)
- return(0);
-
- /* Standard Character Set Encoding ? */
- if (charset->source == CSsrcStd)
- return(seq_len);
-
- /*
- * Non-Standard Character Set Encoding
- *
- * +--- ---+-----+-----+-----+---- ----+-----+-----+------- ------+
- * | ctseq | M | L | encoding name | STX | contents |
- * +--- ---+-----+-----+-----+---- ----+-----+-----+------- ------+
- * 4bytes 1byte 1byte variable length 1byte variable length
- * | |
- * +----------------------------------------------+
- * rest length = ((M - 128) * 128) + (L - 128)
- */
-
- /* get length of encoding name */
- inbufptr += seq_len;
- byte_m = *inbufptr++;
- byte_l = *inbufptr++;
- name_len = strlen(encoding_name);
-
- if (((byte_m - 128) * 128 + (byte_l - 128) - 1) < name_len)
- return(0);
-
- if ( _XlcNCompareISOLatin1(inbufptr, encoding_name, name_len) != 0 )
- return(0);
-
- /* check STX (Start of Text) */
- inbufptr = inbufptr + name_len;
- if ( *inbufptr != STX )
- return(0);
-
- total_len = seq_len + name_len + 3;
- return(total_len);
-}
-
-static Bool
-ct_parse_charset(
- XLCd lcd,
- const char *inbufptr,
- XlcCharSet *charset,
- int *ctr_seq_len)
-{
- int i, j;
- ExtdSegment ctextseg;
- int num_charsets;
- XlcCharSet *charset_list;
- CodeSet codeset;
- int codeset_num = XLC_GENERIC(lcd, codeset_num);
- CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
- int segment_conv_num = XLC_GENERIC(lcd, segment_conv_num);
- SegConv segment_conv = XLC_GENERIC(lcd, segment_conv);
-
- /* get charset from XLC_XLOCALE by escape sequence */
-
- for (i = 0; i < codeset_num; i++) {
- codeset = codeset_list[i];
-
- num_charsets = codeset->num_charsets;
- charset_list = codeset->charset_list;
- ctextseg = codeset->ctextseg;
-
- for (j = 0; j < num_charsets; j++) {
- *charset = charset_list[j];
- if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
- return(True);
- }
-
- if (ctextseg) {
- *charset = ctextseg->charset;
- if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
- return(True);
- }
- }
-
- /* get charset from XLC_SEGMENTCONVERSION by escape sequence */
-
- if (!segment_conv)
- return(False);
-
- for (i = 0; i < segment_conv_num; i++) {
- *charset = segment_conv[i].source;
- if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
- return(True);
- *charset = segment_conv[i].dest;
- if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
- return(True);
- }
-
- return(False);
-}
-
-static Bool
-segment_conversion(
- XLCd lcd,
- XlcCharSet *charset,
- unsigned long *glyph_index)
-{
- int i;
- int segment_conv_num = XLC_GENERIC(lcd, segment_conv_num);
- SegConv segment_conv = XLC_GENERIC(lcd, segment_conv);
- FontScopeRec range;
- ConversionRec conv_rec;
-
- if (!segment_conv)
- return(True);
-
- for (i = 0; i < segment_conv_num; i++) {
- if (segment_conv[i].source == *charset)
- break;
- }
-
- if (i >= segment_conv_num)
- return(True);
-
- range = segment_conv[i].range;
- if (*glyph_index < range.start || range.end < *glyph_index)
- return(True);
-
- *charset = segment_conv[i].dest;
- conv_rec.conv_num = segment_conv[i].conv_num;
- conv_rec.convlist = segment_conv[i].conv;
- *glyph_index = conv_to_dest(&conv_rec, *glyph_index);
-
- return(True);
-}
-
-static CodeSet
-_XlcGetCodeSetFromName(
- XLCd lcd,
- const char *name)
-{
- int i, j;
- XlcCharSet charset;
- int num_charsets;
- XlcCharSet *charset_list;
- CodeSet codeset;
-
- int codeset_num = XLC_GENERIC(lcd, codeset_num);
- CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
-
- for (i = 0; i < codeset_num; i++) {
- codeset = codeset_list[i];
-
- num_charsets = codeset->num_charsets;
- charset_list = codeset->charset_list;
-
- for (j = 0; j < num_charsets; j++) {
- charset = charset_list[j];
-
- if (!strlen(charset->name))
- continue;
- if ( strcmp(charset->name, name) == 0)
- return(codeset);
- }
- }
-
- return(NULL);
-}
-
-static Bool
-_XlcGetCodeSetFromCharSet(
- XLCd lcd,
- XlcCharSet charset,
- CodeSet *codeset,
- unsigned long *glyph_index)
-{
- int j, num;
- CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
- XlcCharSet *charset_list;
- int codeset_num, num_charsets;
- Conversion ctconv;
- unsigned long glyph_index_tmp = 0;
- ExtdSegment ctextseg;
-
- codeset_num = XLC_GENERIC(lcd, codeset_num);
-
- for (num = 0 ; num < codeset_num; num++) {
- *codeset = codeset_list[num];
- ctconv = (*codeset)->ctconv;
- ctextseg = (*codeset)->ctextseg;
-
- num_charsets = (*codeset)->num_charsets;
- charset_list = (*codeset)->charset_list;
-
- glyph_index_tmp = conv_to_source(ctconv, *glyph_index);
-
- if (charset->source == CSsrcStd) {
-
- /* Standard Character Set Encoding */
- if (glyph_index_tmp == *glyph_index) {
- for (j = 0; j < num_charsets; j++) {
- if (charset_list[j] == charset) {
- goto end_loop;
- }
- }
- }
-
- } else {
-
- /* Non-Standard Character Set Encoding */
- for (j = 0; j < num_charsets; j++) {
- if (charset_list[j] == charset) {
- goto end_loop;
- }
- }
-
- if (glyph_index_tmp != *glyph_index) {
- if (ctextseg && ctextseg->charset == charset) {
- goto end_loop;
- }
- }
-
- }
-
- }
-
-end_loop:
- if (num < codeset_num) {
- *glyph_index = glyph_index_tmp;
- return(True);
- }
-
- return(False);
-}
-
-#define check_string_encoding(codeset) (codeset->string_encoding)
-
-static void
-output_ulong_value(
- char *outbufptr,
- unsigned long code,
- int length,
- XlcSide side)
-{
- int i;
-
- for (i = (length - 1) * 8; i >= 0; i -= 8) {
- *outbufptr = ( code >> i) & 0xff;
-
- if (side == XlcC0 || side == XlcGL) {
- *outbufptr = *outbufptr & GL;
- } else if (side == XlcC1 || side == XlcGR) {
- *outbufptr = *outbufptr | GR;
- }
-
- outbufptr++;
- }
-}
-
-/* -------------------------------------------------------------------------- */
-/* Init */
-/* -------------------------------------------------------------------------- */
-
-static XlcCharSet default_GL_charset = 0;
-static XlcCharSet default_GR_charset = 0;
-
-static void
-init_state(
- XlcConv conv)
-{
- State state = (State) conv->state;
-
- /* for CT */
- state->charset = NULL;
- state->GL_charset = default_GL_charset;
- state->GR_charset = default_GR_charset;
-
- /* for MB shift state */
- state->GL_codeset = XLC_GENERIC(state->lcd, initial_state_GL);
- state->GR_codeset = XLC_GENERIC(state->lcd, initial_state_GR);
-}
-
-/* -------------------------------------------------------------------------- */
-/* Convert */
-/* -------------------------------------------------------------------------- */
-
-static int
-mbstowcs_org(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned char ch;
- unsigned long mb = 0;
- wchar_t wc;
-
- int length = 0, len_left = 0;
- int unconv_num = 0;
- int num;
-
- CodeSet codeset = NULL;
-
- const char *inbufptr;
- wchar_t *outbufptr = (wchar_t *) *to;
- int from_size = *from_left;
-
- unsigned char *mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
-
- if (from == NULL || *from == NULL) {
- _XlcResetConverter(conv);
- return( 0 );
- }
-
- inbufptr = *from;
-
- while (*from_left && *to_left) {
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- if (outbufptr) {*outbufptr++ = L'\0';}
- (*to_left)--;
-
- /* error check */
- if (len_left) {
- unconv_num += (length - len_left);
- len_left = 0;
- }
-
- continue;
- }
-
- /* same mb char data */
- if (len_left)
- goto output_one_wc;
-
- /* next mb char data for single shift ? */
- if (mb_parse_table && (num = mb_parse_table[ch]) ) {
- codeset = mb_parse_codeset(state, num, &inbufptr, from_left);
- if (codeset != NULL) {
- length = len_left = codeset->length;
- mb = 0;
- continue;
- }
- }
-
- /* next mb char data for byteM ? */
- if ((codeset = byteM_parse_codeset(lcd, (inbufptr - 1))))
- goto next_mb_char;
-
- /* next mb char data for GL or GR side ? */
- if ((codeset = GLGR_parse_codeset(ch)))
- goto next_mb_char;
-
- /* can't find codeset for the ch */
- unconv_num++;
- continue;
-
-next_mb_char:
- length = len_left = codeset->length;
- mb = 0;
-
-output_one_wc:
- mb = (mb << 8) | ch; /* 1 byte left shift */
- len_left--;
-
- /* last of one mb char data */
- if (!len_left) {
- gi_to_wc(lcd, mb_to_gi(mb, codeset), codeset, &wc);
- if (outbufptr) {*outbufptr++ = wc;}
- (*to_left)--;
- }
-
- } /* end of while */
-
- /* error check on last char */
- if (len_left) {
- inbufptr -= (length - len_left);
- (*from_left) += (length - len_left);
- unconv_num += (length - len_left);
- }
-
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-stdc_mbstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const char *src = *((const char **) from);
- wchar_t *dst = *((wchar_t **) to);
- int src_left = *from_left;
- int dst_left = *to_left;
- int length, unconv_num = 0;
-
- while (src_left > 0 && dst_left > 0) {
- length = mbtowc(dst, src, src_left);
-
- if (length > 0) {
- src += length;
- src_left -= length;
- if (dst)
- dst++;
- dst_left--;
- } else if (length < 0) {
- src++;
- src_left--;
- unconv_num++;
- } else {
- /* null ? */
- src++;
- src_left--;
- if (dst)
- *dst++ = L'\0';
- dst_left--;
- }
- }
-
- *from = (XPointer) src;
- if (dst)
- *to = (XPointer) dst;
- *from_left = src_left;
- *to_left = dst_left;
-
- return unconv_num;
-}
-
-static int
-wcstombs_org(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- char *encoding;
- unsigned long mb, glyph_index;
- wchar_t wc;
-
- int length;
- int unconv_num = 0;
-
- CodeSet codeset;
-
- const wchar_t *inbufptr = (const wchar_t *) *from;
- char *outbufptr = *to;
- int from_size = *from_left;
-
- const char *default_string = XLC_PUBLIC(lcd, default_string);
- int defstr_len = strlen(default_string);
-
-
- while (*from_left && *to_left) {
-
- wc = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!wc) {
- if (outbufptr) {*outbufptr++ = '\0';}
- (*to_left)--;
-
- continue;
- }
-
- /* convert */
- if ( !wc_to_gi(lcd, wc, &glyph_index, &codeset) ) {
-
- /* output default_string of XDefaultString() */
- if (*to_left < defstr_len)
- break;
- if (outbufptr) {
- strncpy((char *)outbufptr, default_string, defstr_len);
- outbufptr += defstr_len;
- }
- (*to_left) -= defstr_len;
-
- unconv_num++;
-
- } else {
- mb = gi_to_mb(glyph_index, codeset);
- if (codeset->parse_info) {
- Bool need_shift = False;
- switch (codeset->parse_info->type) {
- case E_LSL :
- if (codeset != state->GL_codeset) {
- need_shift = True;
- state->GL_codeset = codeset;
- }
- break;
- case E_LSR :
- if (codeset != state->GR_codeset) {
- need_shift = True;
- state->GR_codeset = codeset;
- }
- break;
- /* case E_SS */
- default:
- need_shift = True;
- }
-
- /* output shift sequence */
- if (need_shift) {
- encoding = codeset->parse_info->encoding;
- length = strlen(encoding);
- if (*to_left < length)
- break;
- if (outbufptr) {
- strncpy((char *)outbufptr, encoding, length);
- outbufptr += length;
- }
- (*to_left) -= length;
- }
- }
-
- /* output characters */
- length = codeset->length;
- if (*to_left < length)
- break;
-
- if (outbufptr) {
- output_ulong_value(outbufptr, mb, length, XlcNONE);
- outbufptr += length;
- }
-
- (*to_left) -= length;
- }
-
- } /* end of while */
-
- *from = (XPointer) ((const wchar_t *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-stdc_wcstombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const wchar_t *src = *((const wchar_t **) from);
- char *dst = *((char **) to);
- int src_left = *from_left;
- int dst_left = *to_left;
- int length, unconv_num = 0;
-
- while (src_left > 0 && dst_left >= MB_CUR_MAX) {
- length = wctomb(dst, *src); /* XXX */
-
- if (length > 0) {
- src++;
- src_left--;
- if (dst)
- dst += length;
- dst_left -= length;
- } else if (length < 0) {
- src++;
- src_left--;
- unconv_num++;
- }
- }
-
- *from = (XPointer) src;
- if (dst)
- *to = (XPointer) dst;
- *from_left = src_left;
- *to_left = dst_left;
-
- return unconv_num;
-}
-
-static int
-wcstocts(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned long glyph_index;
- wchar_t wc;
-
- int total_len, seq_len, name_len;
- int unconv_num = 0;
- Bool first_flag = True, standard_flag;
- XlcSide side;
-
- CodeSet codeset;
- XlcCharSet charset, old_charset = NULL;
- const char *ct_sequence;
-
- const wchar_t *inbufptr = (const wchar_t *) *from;
- char *outbufptr = *to;
- int from_size = *from_left;
- char *ext_seg_len = NULL;
-
- while (*from_left && *to_left) {
-
- wc = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!wc) {
- if (outbufptr) {*outbufptr++ = '\0';}
- (*to_left)--;
-
- continue;
- }
-
- /* convert */
- if ( !wc_to_gi(lcd, wc, &glyph_index, &codeset) ) {
- unconv_num++;
- continue;
- }
-
- /* parse charset */
- if ( !(charset = gi_parse_charset(glyph_index, codeset)) ) {
- unconv_num++;
- continue;
- }
-
- /* Standard Character Set Encoding ? */
- standard_flag = charset->source == CSsrcStd ? True : False;
-
- /*
- * Non-Standard Character Set Encoding
- *
- * +-----+-----+-----+-----+-----+-----+-----+---- ----+-----+-----+
- * | esc sequence | M | L | encoding name | STX |
- * +-----+-----+-----+-----+-----+-----+-----+---- ----+-----+-----+
- * 4bytes 1byte 1byte variable length 1byte
- * | |
- * +-----------------------------------------+
- * name length = ((M - 128) * 128) + (L - 128)
- */
-
- /* make encoding data */
- ct_sequence = charset->ct_sequence;
- side = charset->side;
- seq_len = strlen(ct_sequence);
- if (standard_flag) {
- name_len = 0;
- total_len = seq_len;
- } else {
- name_len = strlen(charset->encoding_name) + 1;
- total_len = seq_len + name_len + 2;
- }
-
- /* output escape sequence of CT */
- if ( (charset != old_charset) &&
- !(first_flag && charset->string_encoding) ){
-
- if ( (ext_seg_len != NULL) && outbufptr) {
- int i = (outbufptr - ext_seg_len) - 2;
- *ext_seg_len++ = i / 128 + 128;
- *ext_seg_len = i % 128 + 128;
- ext_seg_len = NULL;
- }
-
- if (*to_left < total_len + 1) {
- unconv_num++;
- break;
- }
-
- if (outbufptr) {
- strcpy((char *)outbufptr, ct_sequence);
- outbufptr += seq_len;
-
- if (!standard_flag) {
- const char *i = charset->encoding_name;
- ext_seg_len = outbufptr;
- outbufptr += 2;
- for (; *i ; i++)
- *outbufptr++ = ((*i >= 'A') && (*i <= 'Z')) ?
- *i - 'A' + 'a' : *i;
- *outbufptr++ = STX;
- }
- }
-
- (*to_left) -= total_len;
-
- first_flag = False;
- old_charset = charset;
- }
-
- /* output glyph index */
- if (codeset->ctconv)
- glyph_index = conv_to_dest(codeset->ctconv, glyph_index);
- if (*to_left < charset->char_size) {
- unconv_num++;
- break;
- }
-
- if (outbufptr) {
- output_ulong_value(outbufptr, glyph_index, charset->char_size, side);
- outbufptr += charset->char_size;
- }
-
- (*to_left) -= charset->char_size;
-
- } /* end of while */
-
- if ( (ext_seg_len != NULL) && outbufptr) {
- int i = (outbufptr - ext_seg_len) - 2;
- *ext_seg_len++ = i / 128 + 128;
- *ext_seg_len = i % 128 + 128;
- }
-
- *from = (XPointer) ((const wchar_t *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-stdc_wcstocts(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left) * MB_CUR_MAX;
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = stdc_wcstombs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = buf_ptr1 - buf_ptr2;
-
- unconv_num2 = mbstocts(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-ctstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned char ch;
- unsigned long glyph_index = 0;
- wchar_t wc;
-
- int ctr_seq_len = 0, gi_len_left = 0, gi_len = 0;
- int unconv_num = 0;
-
- CodeSet codeset = NULL;
- XlcCharSet charset_tmp;
-
- const char *inbufptr;
- wchar_t *outbufptr = (wchar_t *) *to;
- int from_size = *from_left;
-
- _XlcResetConverter(conv); /* ??? */
-
- if (from == NULL || *from == NULL) {
- _XlcResetConverter(conv);
- return( 0 );
- }
- inbufptr = *from;
-
- while (*from_left && *to_left) {
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- if (outbufptr) {*outbufptr++ = L'\0';}
- (*to_left)--;
-
- /* error check */
- if (gi_len_left) {
- unconv_num += (gi_len - gi_len_left);
- gi_len_left = 0;
- }
-
- continue;
- }
-
- /* same glyph_index data */
- if (gi_len_left)
- goto output_one_wc;
-
- /* control sequence ? */
- if (ch == CSI) {
- if ( !ct_parse_csi(inbufptr - 1, &ctr_seq_len) )
- goto skip_the_seg;
-
- if (*from_left + 1 < ctr_seq_len) {
- inbufptr--;
- (*from_left)++;
- unconv_num += *from_left;
- break;
- }
-
- /* skip the control sequence */
- inbufptr += (ctr_seq_len - 1);
- *from_left -= (ctr_seq_len - 1);
-
- continue;
- }
-
- /* escape sequence ? */
- if (ch == ESC) {
- if ( !ct_parse_charset(lcd,
- inbufptr - 1, &state->charset, &ctr_seq_len) )
- goto skip_the_seg;
-
- if (state->charset->side == XlcC0 ||
- state->charset->side == XlcGL)
- {
- state->GL_charset = state->charset;
- }
- else if (state->charset->side == XlcC1 ||
- state->charset->side == XlcGR)
- {
- state->GR_charset = state->charset;
- }
- else if (state->charset->side == XlcGLGR)
- {
- state->GL_charset = state->charset;
- state->GR_charset = state->charset;
- }
-
- if (*from_left + 1 < ctr_seq_len) {
- inbufptr--;
- (*from_left)++;
- unconv_num += *from_left;
- break;
- }
-
- /* skip the escape sequence */
- inbufptr += (ctr_seq_len - 1);
- *from_left -= (ctr_seq_len - 1);
-
- continue;
- }
-
- /* check current state */
- if (isleftside(ch))
- state->charset = state->GL_charset;
- else
- state->charset = state->GR_charset;
-
- gi_len = gi_len_left = state->charset->char_size;
- glyph_index = 0;
-
-output_one_wc:
- if (state->charset->side == XlcC1 || state->charset->side == XlcGR)
- glyph_index = (glyph_index << 8) | (ch & GL);
- else
- glyph_index = (glyph_index << 8) | ch;
-
- gi_len_left--;
-
- /* last of one glyph_index data */
- if (!gi_len_left) {
-
- /* segment conversion */
- charset_tmp = state->charset;
- segment_conversion(lcd, &charset_tmp, &glyph_index);
-
- /* get codeset */
- if ( !_XlcGetCodeSetFromCharSet(lcd, charset_tmp,
- &codeset, &glyph_index) ) {
- unconv_num += gi_len;
- continue;
- }
-
- /* convert glyph index to wicd char */
- gi_to_wc(lcd, glyph_index, codeset, &wc);
- if (outbufptr) {*outbufptr++ = wc;}
- (*to_left)--;
- }
-
- continue;
-
-skip_the_seg:
- /* skip until next escape or control sequence */
- while ( *from_left ) {
- ch = *inbufptr++;
- (*from_left)--;
- unconv_num++;
-
- if (ch == ESC || ch == CSI) {
- inbufptr--;
- (*from_left)++;
- unconv_num--;
- break;
- }
- }
-
- if ( !(*from_left) )
- break;
-
- } /* end of while */
-
- /* error check on last char */
- if (gi_len_left) {
- inbufptr -= (gi_len - gi_len_left);
- (*from_left) += (gi_len - gi_len_left);
- unconv_num += (gi_len - gi_len_left);
- }
-
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-cstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned char ch;
- unsigned long glyph_index = 0;
- wchar_t wc;
- int gi_len_left = 0, gi_len = 0;
-
- int unconv_num = 0;
-
- CodeSet codeset = NULL;
- XlcCharSet charset, charset_tmp;
-
- const char *inbufptr;
- wchar_t *outbufptr = (wchar_t *) *to;
- int from_size = *from_left;
-
- if (from == NULL || *from == NULL) {
- return( 0 );
- }
-
- inbufptr = *from;
-
- charset = (XlcCharSet) args[0];
-
- while (*from_left && *to_left) {
-
- if (!gi_len_left) {
- gi_len_left = gi_len = charset->char_size;
- glyph_index = 0;
- }
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- if (outbufptr) {*outbufptr++ = L'\0';}
- (*to_left)--;
-
- /* error check */
- if (gi_len_left) {
- unconv_num += (gi_len - gi_len_left);
- gi_len_left = 0;
- }
- continue;
- }
-
- if (charset->side == XlcC1 || charset->side == XlcGR)
- glyph_index = (glyph_index << 8) | (ch & GL);
- else
- glyph_index = (glyph_index << 8) | ch;
-
- gi_len_left--;
-
- /* last of one glyph_index data */
- if (!gi_len_left) {
-
- /* segment conversion */
- charset_tmp = charset;
- segment_conversion(lcd, &charset_tmp, &glyph_index);
-
- /* get codeset */
- if ( !_XlcGetCodeSetFromCharSet(lcd, charset_tmp,
- &codeset, &glyph_index) ) {
- unconv_num += gi_len;
- continue;
- }
-
- /* convert glyph index to wicd char */
- gi_to_wc(lcd, glyph_index, codeset, &wc);
- if (outbufptr) {*outbufptr++ = wc;}
- (*to_left)--;
- }
-
- } /* end of while */
-
- /* error check on last char */
- if (gi_len_left) {
- inbufptr -= (gi_len - gi_len_left);
- (*from_left) += (gi_len - gi_len_left);
- unconv_num += (gi_len - gi_len_left);
- }
-
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-stdc_ctstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left) * MB_CUR_MAX;
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = ctstombs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = buf_ptr1 - buf_ptr2;
-
- unconv_num2 = stdc_mbstowcs(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-stdc_cstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left) * MB_CUR_MAX;
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = cstombs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = buf_ptr1 - buf_ptr2;
-
- unconv_num2 = stdc_mbstowcs(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-mbstocts(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * sizeof(wchar_t));
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left);
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = mbstowcs_org(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = (buf_ptr1 - buf_ptr2) / sizeof(wchar_t);
-
- unconv_num2 += wcstocts(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-mbstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned char ch;
- unsigned long mb = 0;
-
- int length = 0, len_left = 0;
- int unconv_num = 0;
- int num;
-
- CodeSet codeset = NULL;
-
- const char *inbufptr;
- char *outbufptr = *to;
- int from_size = *from_left;
-
- unsigned char *mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
-
- if (from == NULL || *from == NULL) {
- _XlcResetConverter(conv);
- return( 0 );
- }
-
- inbufptr = *from;
-
- while (*from_left && *to_left) {
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- if (outbufptr) {*outbufptr++ = '\0';}
- (*to_left)--;
-
- /* error check */
- if (len_left) {
- unconv_num += (length - len_left);
- len_left = 0;
- }
-
- continue;
- }
-
- /* same mb char data */
- if (len_left)
- goto output_one_mb;
-
- /* next mb char data for single shift ? */
- if (mb_parse_table && (num = mb_parse_table[ch]) ) {
- codeset = mb_parse_codeset(state, num, &inbufptr, from_left);
- if (codeset != NULL) {
- length = len_left = codeset->length;
- mb = 0;
- continue;
- }
- }
-
- /* next char data : byteM ? */
- if ((codeset = byteM_parse_codeset(lcd, (inbufptr - 1))))
- goto next_mb_char;
-
- /* next char data : GL or GR side ? */
- if ((codeset = GLGR_parse_codeset(ch)))
- goto next_mb_char;
-
- /* can't find codeset for the ch */
- unconv_num++;
- continue;
-
-next_mb_char:
- length = len_left = codeset->length;
- mb = 0;
-
-output_one_mb:
- mb = (mb << 8) | ch; /* 1 byte left shift */
- len_left--;
-
- /* last of one mb char data */
- if (!len_left) {
- if (check_string_encoding(codeset)) {
- if (outbufptr) {*outbufptr++ = mb & 0xff;}
- (*to_left)--;
- } else {
- unconv_num++;
- }
- }
-
- } /* end of while */
-
- /* error check on last char */
- if (len_left) {
- inbufptr -= (length - len_left);
- (*from_left) += (length - len_left);
- unconv_num += (length - len_left);
- }
-
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-mbtocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned char ch;
- unsigned long mb = 0;
- unsigned long glyph_index;
-
- int length = 0, len_left = 0, char_len;
- int unconv_num = 0;
- int num;
- XlcSide side;
-
- CodeSet codeset = NULL;
- XlcCharSet charset = NULL;
-
- const char *inbufptr;
- char *outbufptr = *to;
- int from_size = *from_left;
-
- unsigned char *mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
-
- if (from == NULL || *from == NULL) {
- _XlcResetConverter(conv);
- return( 0 );
- }
-
- inbufptr = *from;
-
- while (*from_left && *to_left) {
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- unconv_num = 1;
- if (len_left)
- unconv_num += (length - len_left);
- break;
- }
-
- /* same mb char data */
- if (len_left)
- goto output;
-
- /* next mb char data for single shift ? */
- if (mb_parse_table && (num = mb_parse_table[ch]) ) {
- codeset = mb_parse_codeset(state, num, &inbufptr, from_left);
- if (codeset != NULL) {
- length = len_left = codeset->length;
- mb = 0;
- continue;
- }
- }
-
- /* next mb char data for byteM ? */
- if ((codeset = byteM_parse_codeset(lcd, (inbufptr - 1))))
- goto next_mb_char;
-
- /* next mb char data for GL or GR side ? */
- if ((codeset = GLGR_parse_codeset(ch)))
- goto next_mb_char;
-
- /* can't find codeset for the ch */
- unconv_num = 1;
- break;
-
-next_mb_char:
- length = len_left = codeset->length;
- mb = 0;
-
-output:
- mb = (mb << 8) | ch; /* 1 byte left shift */
- len_left--;
-
- /* last of one mb char data */
- if (!len_left) {
- glyph_index = mb_to_gi(mb, codeset);
- if (!(charset = gi_parse_charset(glyph_index, codeset))) {
- unconv_num = length;
- break;
- }
- char_len = charset->char_size;
- side = charset->side;
-
- /* output glyph index */
- if (codeset->ctconv)
- glyph_index = conv_to_dest(codeset->ctconv, glyph_index);
- if (*to_left < char_len) {
- unconv_num = length;
- break;
- }
-
- if (outbufptr) {
- output_ulong_value(outbufptr, glyph_index, char_len, side);
- outbufptr += char_len;
- }
-
- (*to_left) -= char_len;
-
- break;
- }
-
- } /* end of while */
-
- /* error end */
- if (unconv_num) {
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
- return -1;
- }
-
- /* normal end */
- *from = (XPointer) inbufptr;
- *to = (XPointer) outbufptr;
-
- if (num_args > 0)
- *((XlcCharSet *) args[0]) = charset;
-
- return 0;
-}
-
-static int
-mbstocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- int ret;
- XlcCharSet charset_old, charset = NULL;
- XPointer tmp_args[1];
-
- const char *inbufptr;
- int in_left;
- char *outbufptr;
- int out_left;
- tmp_args[0] = (XPointer) &charset;
-
- ret = mbtocs(conv, from, from_left, to, to_left, tmp_args, 1);
- charset_old = charset;
-
- while ( ret == 0 && *from_left && *to_left) {
- inbufptr = *from;
- in_left = *from_left;
- outbufptr = *to;
- out_left = *to_left;
- ret = mbtocs(conv, from, from_left, to, to_left, tmp_args, 1);
- if (charset_old != charset) {
- *from = (XPointer) inbufptr;
- *from_left = in_left;
- *to = (XPointer) outbufptr;
- *to_left = out_left;
- break;
- }
- }
-
- if (num_args > 0)
- *((XlcCharSet *) args[0]) = charset_old;
-
- /* error end */
- if (ret != 0)
- return( -1 );
-
- return(0);
-}
-
-static int
-wcstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- char *encoding;
- unsigned long mb, glyph_index;
- wchar_t wc;
-
- int length;
- int unconv_num = 0;
-
- CodeSet codeset;
-
- const wchar_t *inbufptr = (const wchar_t *) *from;
- char *outbufptr = *to;
- int from_size = *from_left;
-
- const char *default_string = XLC_PUBLIC(lcd, default_string);
- int defstr_len = strlen(default_string);
-
- while (*from_left && *to_left) {
-
- wc = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!wc) {
- if (outbufptr) {*outbufptr++ = '\0';}
- (*to_left)--;
-
- continue;
- }
-
- /* convert */
- if ( !wc_to_gi(lcd, wc, &glyph_index, &codeset) ) {
-
- /* output default_string of XDefaultString() */
- if (*to_left < defstr_len)
- break;
- if (outbufptr) {
- strncpy((char *)outbufptr, default_string, defstr_len);
- outbufptr += defstr_len;
- }
- (*to_left) -= defstr_len;
-
- unconv_num++;
-
- } else {
- mb = gi_to_mb(glyph_index, codeset);
-
- if (check_string_encoding(codeset)) {
- if (codeset->parse_info) {
- Bool need_shift = False;
- switch (codeset->parse_info->type) {
- case E_LSL :
- if (codeset != state->GL_codeset) {
- need_shift = True;
- state->GL_codeset = codeset;
- }
- break;
- case E_LSR :
- if (codeset != state->GR_codeset) {
- need_shift = True;
- state->GR_codeset = codeset;
- }
- break;
- /* case E_SS */
- default:
- need_shift = True;
- }
-
- /* output shift sequence */
- if (need_shift) {
- encoding = codeset->parse_info->encoding;
- length = strlen(encoding);
- if (*to_left < length)
- break;
-
- if (outbufptr) {
- strncpy((char *)outbufptr, encoding, length);
- outbufptr += length;
- }
- (*to_left) -= length;
- }
- }
-
- /* output characters */
- length = codeset->length;
- if (*to_left < length)
- break;
-
- if (outbufptr) {
- output_ulong_value(outbufptr, mb, length, XlcNONE);
- outbufptr += length;
- }
-
- (*to_left) -= length;
- } else {
- unconv_num++;
- }
- }
-
- } /* end of while */
-
- *from = (XPointer) ((const wchar_t *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-stdc_wcstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left) * MB_CUR_MAX;
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = stdc_wcstombs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = buf_ptr1 - buf_ptr2;
-
- unconv_num2 = mbstostr(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-wctocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- wchar_t wc;
- unsigned long glyph_index;
-
- int char_len;
- int unconv_num = 0;
- XlcSide side;
-
- CodeSet codeset;
- XlcCharSet charset = NULL;
-
- const wchar_t *inbufptr = (const wchar_t *) *from;
- char *outbufptr = *to;
- int from_size = *from_left;
-
- if (*from_left && *to_left) {
-
- wc = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!wc) {
- unconv_num = 1;
- goto end;
- }
-
- /* convert */
- if ( !wc_to_gi(lcd, wc, &glyph_index, &codeset) ) {
- unconv_num = 1;
- goto end;
- }
-
- if ( !(charset = gi_parse_charset(glyph_index, codeset)) ) {
- unconv_num = 1;
- goto end;
- }
- char_len = charset->char_size;
- side = charset->side;
-
- /* output glyph index */
- if (codeset->ctconv)
- glyph_index = conv_to_dest(codeset->ctconv, glyph_index);
- if (*to_left < char_len) {
- unconv_num++;
- goto end;
- }
-
- if (outbufptr) {
- output_ulong_value(outbufptr, glyph_index, char_len, side);
- outbufptr += char_len;
- }
-
- (*to_left) -= char_len;
-
- }
-
-end:
-
- /* error end */
- if (unconv_num) {
- *from = (XPointer) ((const wchar_t *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
- return -1;
- }
-
- /* normal end */
- *from = (XPointer) inbufptr;
- *to = (XPointer) outbufptr;
-
- if (num_args > 0)
- *((XlcCharSet *) args[0]) = charset;
-
- return 0;
-}
-
-static int
-stdc_wctocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const wchar_t *src = *((const wchar_t **) from);
- wchar_t wch;
- XPointer tmp_from, save_from = *from;
- char tmp[32];
- int length, ret, src_left = *from_left;
- int from_size = *from_left;
-
- if (src_left > 0 && *to_left > 0) {
- if ((wch = *src)) {
- length = wctomb(tmp, wch);
- } else {
- goto end;
- }
-
- if (length < 0)
- goto end;
-
- tmp_from = (XPointer) tmp;
- ret = mbtocs(conv, &tmp_from, &length, to, to_left, args, num_args);
- if (ret < 0)
- goto end;
-
- src++;
- src_left--;
- }
-
-end:
- /* error end */
- if (save_from == (XPointer) src) {
- *from = (XPointer) ((const wchar_t *) *from + from_size);
- *from_left = 0;
- return -1;
- }
-
- /* normal end */
- *from = (XPointer) src;
- *from_left = src_left;
-
- return 0;
-}
-
-static int
-wcstocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- int ret;
- XlcCharSet charset_old, charset = NULL;
- XPointer tmp_args[1];
-
- const wchar_t *inbufptr;
- int in_left;
- XPointer outbufptr;
- int out_left;
- tmp_args[0] = (XPointer) &charset;
-
- ret = wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
- charset_old = charset;
-
- while ( ret == 0 && *from_left && *to_left) {
- inbufptr = (const wchar_t *) *from;
- in_left = *from_left;
- outbufptr = *to;
- out_left = *to_left;
- ret = wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
- if (charset_old != charset) {
- *from = (XPointer) inbufptr;
- *from_left = in_left;
- *to = (XPointer) outbufptr;
- *to_left = out_left;
- break;
- }
- }
-
- if (num_args > 0)
- *((XlcCharSet *) args[0]) = charset_old;
-
- /* error end */
- if (ret != 0)
- return( -1 );
-
- return(0);
-}
-
-#ifdef STDCVT
-
-static int
-stdc_wcstocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- int ret;
- XlcCharSet charset_old, charset = NULL;
- XPointer tmp_args[1];
-
- const wchar_t *inbufptr;
- int in_left;
- XPointer outbufptr;
- int out_left;
- tmp_args[0] = (XPointer) &charset;
-
- ret = stdc_wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
- charset_old = charset;
-
- while ( ret == 0 && *from_left && *to_left ) {
- inbufptr = (const wchar_t *) *from;
- in_left = *from_left;
- outbufptr = *to;
- out_left = *to_left;
- ret = stdc_wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
- if (charset_old != charset) {
- *from = (XPointer) inbufptr;
- *from_left = in_left;
- *to = (XPointer) outbufptr;
- *to_left = out_left;
- break;
- }
- }
-
- if (num_args > 0)
- *((XlcCharSet *) args[0]) = charset_old;
-
- /* error end */
- if (ret != 0)
- return( -1 );
-
- return(0);
-}
-
-#endif
-
-static int
-ctstombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * sizeof(wchar_t));
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left);
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = ctstowcs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = (buf_ptr1 - buf_ptr2) / sizeof(wchar_t);
-
- unconv_num2 += wcstombs_org(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-cstombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * sizeof(wchar_t));
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left);
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = cstowcs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = (buf_ptr1 - buf_ptr2) / sizeof(wchar_t);
-
- unconv_num2 += wcstombs_org(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-static int
-strtombs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- char *encoding;
- unsigned long mb, glyph_index;
- unsigned char ch;
-
- int length;
- int unconv_num = 0;
-
- CodeSet codeset;
-
- const char *inbufptr = *from;
- char *outbufptr = *to;
- int from_size = *from_left;
-
- while (*from_left && *to_left) {
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- if (outbufptr) {*outbufptr++ = '\0';}
- (*to_left)--;
-
- continue;
- }
-
- /* convert */
- if (isleftside(ch)) {
- glyph_index = ch;
- codeset = _XlcGetCodeSetFromName(lcd, "ISO8859-1:GL");
- } else {
- glyph_index = ch & GL;
- codeset = _XlcGetCodeSetFromName(lcd, "ISO8859-1:GR");
- }
-
- if (!codeset) {
- unconv_num++;
- continue;
- }
-
- mb = gi_to_mb(glyph_index, codeset);
- if (codeset->parse_info) {
- Bool need_shift = False;
- switch (codeset->parse_info->type) {
- case E_LSL :
- if (codeset != state->GL_codeset) {
- need_shift = True;
- state->GL_codeset = codeset;
- }
- break;
- case E_LSR :
- if (codeset != state->GR_codeset) {
- need_shift = True;
- state->GR_codeset = codeset;
- }
- break;
- /* case E_SS */
- default:
- need_shift = True;
- }
-
- /* output shift sequence */
- if (need_shift) {
- encoding = codeset->parse_info->encoding;
- length = strlen(encoding);
- if (*to_left < length)
- break;
- if (outbufptr) {
- strncpy((char *)outbufptr, encoding, length);
- outbufptr += length;
- }
- (*to_left) -= length;
- }
- }
-
- /* output characters */
- length = codeset->length;
- if (*to_left < length)
- break;
-
- if (outbufptr) {
- output_ulong_value(outbufptr, mb, length, XlcNONE);
- outbufptr += length;
- }
-
- (*to_left) -= length;
-
- } /* end of while */
-
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-strtowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- State state = (State) conv->state;
- XLCd lcd = state->lcd;
-
- unsigned char ch;
- unsigned long glyph_index;
- wchar_t wc;
-
- int unconv_num = 0;
- CodeSet codeset;
-
- const char *inbufptr = *from;
- wchar_t *outbufptr = (wchar_t *)*to;
- int from_size = *from_left;
-
- while (*from_left && *to_left) {
-
- ch = *inbufptr++;
- (*from_left)--;
-
- /* null ? */
- if (!ch) {
- if (outbufptr) {*outbufptr++ = L'\0';}
- (*to_left)--;
-
- continue;
- }
-
- /* convert */
- if (isleftside(ch)) {
- glyph_index = ch;
- codeset = _XlcGetCodeSetFromName(lcd, "ISO8859-1:GL");
- } else {
- glyph_index = ch & GL;
- codeset = _XlcGetCodeSetFromName(lcd, "ISO8859-1:GR");
- }
-
- if (!codeset) {
- unconv_num++;
- continue;
- }
-
- gi_to_wc(lcd, glyph_index, codeset, &wc);
- if (outbufptr) {*outbufptr++ = wc;}
- (*to_left)--;
-
- } /* end of while */
-
- *from = (XPointer) ((const char *) *from + from_size);
- *from_left = 0;
- *to = (XPointer) outbufptr;
-
- return unconv_num;
-}
-
-static int
-stdc_strtowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- char *buf_ptr1 = buf;
- int buf_left1 = (*from_left) * MB_CUR_MAX;
- char *buf_ptr2 = buf_ptr1;
- int buf_left2;
- int unconv_num1 = 0, unconv_num2 = 0;
-
- unconv_num1 = strtombs(conv,
- from, from_left, &buf_ptr1, &buf_left1, args, num_args);
- if (unconv_num1 < 0)
- goto ret;
-
- buf_left2 = buf_ptr1 - buf_ptr2;
-
- unconv_num2 = stdc_mbstowcs(conv,
- &buf_ptr2, &buf_left2, to, to_left, args, num_args);
- if (unconv_num2 < 0)
- goto ret;
-
-ret:
- Xfree(buf);
-
- return (unconv_num1 + unconv_num2);
-}
-
-/* -------------------------------------------------------------------------- */
-/* Close */
-/* -------------------------------------------------------------------------- */
-
-static void
-close_converter(
- XlcConv conv)
-{
- Xfree(conv->state);
- Xfree(conv->methods);
- Xfree(conv);
-}
-
-/* -------------------------------------------------------------------------- */
-/* Open */
-/* -------------------------------------------------------------------------- */
-
-static XlcConv
-create_conv(
- XLCd lcd,
- XlcConvMethods methods)
-{
- XlcConv conv;
- State state;
-
- conv = Xcalloc(1, sizeof(XlcConvRec));
- if (conv == NULL)
- return (XlcConv) NULL;
-
- conv->methods = Xmalloc(sizeof(XlcConvMethodsRec));
- if (conv->methods == NULL)
- goto err;
- *conv->methods = *methods;
- conv->methods->reset = init_state;
-
- conv->state = Xcalloc(1, sizeof(StateRec));
- if (conv->state == NULL)
- goto err;
-
- state = (State) conv->state;
- state->lcd = lcd;
-
- _XlcResetConverter(conv);
-
- return conv;
-
-err:
- close_converter(conv);
-
- return (XlcConv) NULL;
-}
-
-static XlcConvMethodsRec mbstocts_methods = {
- close_converter,
- mbstocts,
- NULL
-};
-
-static XlcConv
-open_mbstocts(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstocts_methods);
-}
-
-static XlcConvMethodsRec mbstostr_methods = {
- close_converter,
- mbstostr,
- NULL
-};
-
-static XlcConv
-open_mbstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstostr_methods);
-}
-
-static XlcConvMethodsRec mbstocs_methods = {
- close_converter,
- mbstocs,
- NULL
-};
-
-static XlcConv
-open_mbstocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstocs_methods);
-}
-
-static XlcConvMethodsRec mbtocs_methods = {
- close_converter,
- mbtocs,
- NULL
-};
-
-static XlcConv
-open_mbtocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbtocs_methods);
-}
-
-static XlcConvMethodsRec ctstombs_methods = {
- close_converter,
- ctstombs,
- NULL
-};
-
-static XlcConv
-open_ctstombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &ctstombs_methods);
-}
-
-static XlcConvMethodsRec cstombs_methods = {
- close_converter,
- cstombs,
- NULL
-};
-
-static XlcConv
-open_cstombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &cstombs_methods);
-}
-
-static XlcConvMethodsRec strtombs_methods = {
- close_converter,
- strtombs,
- NULL
-};
-
-static XlcConv
-open_strtombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &strtombs_methods);
-}
-
-#ifdef STDCVT
-
-static XlcConvMethodsRec stdc_mbstowcs_methods = {
- close_converter,
- stdc_mbstowcs,
- NULL
-};
-
-static XlcConv
-open_stdc_mbstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_mbstowcs_methods);
-}
-
-static XlcConvMethodsRec stdc_wcstombs_methods = {
- close_converter,
- stdc_wcstombs,
- NULL
-};
-
-static XlcConv
-open_stdc_wcstombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_wcstombs_methods);
-}
-
-static XlcConvMethodsRec stdc_wcstocts_methods = {
- close_converter,
- stdc_wcstocts,
- NULL
-};
-
-static XlcConv
-open_stdc_wcstocts(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_wcstocts_methods);
-}
-
-static XlcConvMethodsRec stdc_wcstostr_methods = {
- close_converter,
- stdc_wcstostr,
- NULL
-};
-
-static XlcConv
-open_stdc_wcstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_wcstostr_methods);
-}
-
-static XlcConvMethodsRec stdc_wcstocs_methods = {
- close_converter,
- stdc_wcstocs,
- NULL
-};
-
-static XlcConv
-open_stdc_wcstocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_wcstocs_methods);
-}
-
-static XlcConvMethodsRec stdc_wctocs_methods = {
- close_converter,
- stdc_wctocs,
- NULL
-};
-
-static XlcConv
-open_stdc_wctocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_wctocs_methods);
-}
-
-static XlcConvMethodsRec stdc_ctstowcs_methods = {
- close_converter,
- stdc_ctstowcs,
- NULL
-};
-
-static XlcConv
-open_stdc_ctstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_ctstowcs_methods);
-}
-
-static XlcConvMethodsRec stdc_cstowcs_methods = {
- close_converter,
- stdc_cstowcs,
- NULL
-};
-
-static XlcConv
-open_stdc_cstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_cstowcs_methods);
-}
-
-static XlcConvMethodsRec stdc_strtowcs_methods = {
- close_converter,
- stdc_strtowcs,
- NULL
-};
-
-static XlcConv
-open_stdc_strtowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &stdc_strtowcs_methods);
-}
-
-#endif /* STDCVT */
-
-static XlcConvMethodsRec mbstowcs_methods = {
- close_converter,
- mbstowcs_org,
- NULL
-};
-
-static XlcConv
-open_mbstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &mbstowcs_methods);
-}
-
-static XlcConvMethodsRec wcstombs_methods = {
- close_converter,
- wcstombs_org,
- NULL
-};
-
-static XlcConv
-open_wcstombs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstombs_methods);
-}
-
-static XlcConvMethodsRec wcstocts_methods = {
- close_converter,
- wcstocts,
- NULL
-};
-
-static XlcConv
-open_wcstocts(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstocts_methods);
-}
-
-static XlcConvMethodsRec wcstostr_methods = {
- close_converter,
- wcstostr,
- NULL
-};
-
-static XlcConv
-open_wcstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstostr_methods);
-}
-
-static XlcConvMethodsRec wcstocs_methods = {
- close_converter,
- wcstocs,
- NULL
-};
-
-static XlcConv
-open_wcstocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wcstocs_methods);
-}
-
-static XlcConvMethodsRec wctocs_methods = {
- close_converter,
- wctocs,
- NULL
-};
-
-static XlcConv
-open_wctocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &wctocs_methods);
-}
-
-static XlcConvMethodsRec ctstowcs_methods = {
- close_converter,
- ctstowcs,
- NULL
-};
-
-static XlcConv
-open_ctstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &ctstowcs_methods);
-}
-
-static XlcConvMethodsRec cstowcs_methods = {
- close_converter,
- cstowcs,
- NULL
-};
-
-static XlcConv
-open_cstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &cstowcs_methods);
-}
-
-static XlcConvMethodsRec strtowcs_methods = {
- close_converter,
- strtowcs,
- NULL
-};
-
-static XlcConv
-open_strtowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &strtowcs_methods);
-}
-
-/* -------------------------------------------------------------------------- */
-/* Loader */
-/* -------------------------------------------------------------------------- */
-
-XLCd
-_XlcGenericLoader(
- const char *name)
-{
- XLCd lcd;
-#ifdef STDCVT
- XLCdGenericPart *gen;
-#endif
-
- lcd = _XlcCreateLC(name, _XlcGenericMethods);
-
- if (lcd == NULL)
- return lcd;
-
- default_GL_charset = _XlcGetCharSet("ISO8859-1:GL");
- default_GR_charset = _XlcGetCharSet("ISO8859-1:GR");
-
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCompoundText, open_mbstocts);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_mbstostr);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_mbstocs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_mbtocs);
- _XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte, open_ctstombs);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtombs);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstombs);
-
-#ifdef STDCVT
- gen = XLC_GENERIC_PART(lcd);
-
- if (gen->use_stdc_env != True) {
-#endif
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_mbstowcs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCompoundText, open_wcstocts);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wctocs);
- _XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar, open_ctstowcs);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
-#ifdef STDCVT
- }
-#endif
-
-#ifdef STDCVT
- if (gen->use_stdc_env == True) {
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_stdc_mbstowcs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_stdc_wcstombs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCompoundText, open_stdc_wcstocts);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_stdc_wcstostr);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_stdc_wcstocs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_stdc_wctocs);
- _XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar, open_stdc_ctstowcs);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_stdc_strtowcs);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_stdc_cstowcs);
- }
-#endif
-
- _XlcAddUtf8Converters(lcd);
-
- return lcd;
-}
diff --git a/nx-X11/lib/X11/lcGeneric.c b/nx-X11/lib/X11/lcGeneric.c
deleted file mode 100644
index 58ee5d27c..000000000
--- a/nx-X11/lib/X11/lcGeneric.c
+++ /dev/null
@@ -1,1171 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * (c) Copyright 1995 FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XlcGeneric.h"
-
-static XLCd create (const char *name, XLCdMethods methods);
-static Bool initialize (XLCd lcd);
-static void destroy (XLCd lcd);
-
-static XLCdPublicMethodsRec genericMethods = {
- { NULL }, /* use default methods */
- {
- NULL,
- create,
- initialize,
- destroy,
- NULL
- }
-};
-
-XLCdMethods _XlcGenericMethods = (XLCdMethods) &genericMethods;
-
-static XLCd
-create(
- const char *name,
- XLCdMethods methods)
-{
- XLCd lcd;
- XLCdPublicMethods new;
-
- lcd = Xcalloc(1, sizeof(XLCdRec));
- if (lcd == NULL)
- return (XLCd) NULL;
-
- lcd->core = Xcalloc(1, sizeof(XLCdGenericRec));
- if (lcd->core == NULL)
- goto err;
-
- new = Xmalloc(sizeof(XLCdPublicMethodsRec));
- if (new == NULL)
- goto err;
- memcpy(new,methods,sizeof(XLCdPublicMethodsRec));
- lcd->methods = (XLCdMethods) new;
-
- return lcd;
-
-err:
- Xfree(lcd);
- return (XLCd) NULL;
-}
-
-static Bool
-string_to_encoding(
- const char *str,
- char *encoding)
-{
- char *next;
- long value;
- int base;
-
- while (*str) {
- if (*str == '\\') {
- switch (*(str + 1)) {
- case 'x':
- case 'X':
- base = 16;
- break;
- default:
- base = 8;
- break;
- }
- value = strtol(str + 2, &next, base);
- if (str + 2 != next) {
- *((unsigned char *) encoding++) = (unsigned char) value;
- str = next;
- continue;
- }
- }
- *encoding++ = *str++;
- }
-
- *encoding = '\0';
-
- return True;
-}
-
-static Bool
-string_to_ulong(
- const char *str,
- unsigned long *value)
-{
- const char *tmp1 = str;
- int base;
-
- if (*tmp1++ != '\\') {
- tmp1--;
- base = 10;
- } else {
- switch (*tmp1++) {
- case 'x':
- base = 16;
- break;
- case 'o':
- base = 8;
- break;
- case 'd':
- base = 10;
- break;
- default:
- return(False);
- }
- }
- *value = (unsigned long) strtol(tmp1, NULL, base);
- return(True);
-}
-
-
-static Bool
-add_charset(
- CodeSet codeset,
- XlcCharSet charset)
-{
- XlcCharSet *new_list;
- int num;
-
- if ((num = codeset->num_charsets))
- new_list = Xrealloc(codeset->charset_list,
- (num + 1) * sizeof(XlcCharSet));
- else
- new_list = Xmalloc(sizeof(XlcCharSet));
-
- if (new_list == NULL)
- return False;
-
- new_list[num] = charset;
- codeset->charset_list = new_list;
- codeset->num_charsets = num + 1;
-
- return True;
-}
-
-static CodeSet
-add_codeset(
- XLCdGenericPart *gen)
-{
- CodeSet new, *new_list;
- int num;
-
- new = Xcalloc(1, sizeof(CodeSetRec));
- if (new == NULL)
- return NULL;
-
- if ((num = gen->codeset_num))
- new_list = Xrealloc(gen->codeset_list,
- (num + 1) * sizeof(CodeSet));
- else
- new_list = Xmalloc(sizeof(CodeSet));
-
- if (new_list == NULL)
- goto err;
-
- new_list[num] = new;
- gen->codeset_list = new_list;
- gen->codeset_num = num + 1;
-
- return new;
-
-err:
- Xfree(new);
-
- return NULL;
-}
-
-static Bool
-add_parse_list(
- XLCdGenericPart *gen,
- EncodingType type,
- const char *encoding,
- CodeSet codeset)
-{
- ParseInfo new, *new_list;
- char *str;
- unsigned char ch;
- int num;
-
- str = strdup(encoding);
- if (str == NULL)
- return False;
-
- new = Xcalloc(1, sizeof(ParseInfoRec));
- if (new == NULL)
- goto err;
-
- if (gen->mb_parse_table == NULL) {
- gen->mb_parse_table = Xcalloc(1, 256); /* 2^8 */
- if (gen->mb_parse_table == NULL)
- goto err;
- }
-
- if ((num = gen->mb_parse_list_num))
- new_list = Xrealloc(gen->mb_parse_list,
- (num + 2) * sizeof(ParseInfo));
- else {
- new_list = Xmalloc(2 * sizeof(ParseInfo));
- }
-
- if (new_list == NULL)
- goto err;
-
- new_list[num] = new;
- new_list[num + 1] = NULL;
- gen->mb_parse_list = new_list;
- gen->mb_parse_list_num = num + 1;
-
- ch = (unsigned char) *str;
- if (gen->mb_parse_table[ch] == 0)
- gen->mb_parse_table[ch] = num + 1;
-
- new->type = type;
- new->encoding = str;
- new->codeset = codeset;
-
- if (codeset->parse_info == NULL)
- codeset->parse_info = new;
-
- return True;
-
-err:
- Xfree(str);
-
- Xfree(new);
-
- return False;
-}
-
-static void
-free_charset(
- XLCd lcd)
-{
- XLCdGenericPart *gen = XLC_GENERIC_PART(lcd);
- ParseInfo *parse_info;
- int num;
-
- Xfree(gen->mb_parse_table);
- if ((num = gen->mb_parse_list_num) > 0) {
- for (parse_info = gen->mb_parse_list; num-- > 0; parse_info++) {
- Xfree((*parse_info)->encoding);
- Xfree(*parse_info);
- }
- Xfree(gen->mb_parse_list);
- }
-
- if ((num = gen->codeset_num) > 0)
- Xfree(gen->codeset_list);
-}
-
-/* For VW/UDC */
-
-#define FORWARD (unsigned long)'+'
-#define BACKWARD (unsigned long)'-'
-
-static const char *
-getscope(
- const char *str,
- FontScope scp)
-{
- unsigned long start = 0;
- unsigned long end = 0;
- unsigned long dest = 0;
- unsigned long shift = 0;
- unsigned long direction = 0;
- sscanf(str,"[\\x%lx,\\x%lx]->\\x%lx", &start, &end, &dest);
- if (dest) {
- if (dest >= start) {
- shift = dest - start;
- direction = FORWARD ;
- } else {
- shift = start - dest;
- direction = BACKWARD;
- }
- }
- scp->start = start ;
- scp->end = end ;
- scp->shift = shift ;
- scp->shift_direction
- = direction ;
- /* .......... */
- while (*str) {
- if (*str == ',' && *(str+1) == '[')
- break;
- str++;
- }
- return str+1;
-}
-
-static int
-count_scopemap(
- const char *str)
-{
- const char *ptr;
- int num=0;
- for (ptr=str; *ptr; ptr++) {
- if (*ptr == ']') {
- num++;
- }
- }
- return num;
-}
-
-FontScope
-_XlcParse_scopemaps(
- const char *str,
- int *size)
-{
- int num=0,i;
- FontScope scope,sc_ptr;
- const char *str_sc;
-
- num = count_scopemap(str);
- scope = Xmalloc(num * sizeof(FontScopeRec));
- if (scope == NULL)
- return NULL;
-
- for (i=0, str_sc=str, sc_ptr=scope; i < num; i++, sc_ptr++) {
- str_sc = getscope(str_sc, sc_ptr);
- }
- *size = num;
- return scope;
-}
-
-void
-_XlcDbg_printValue(
- const char *str,
- char **value,
- int num)
-{
-/*
- int i;
- for (i = 0; i < num; i++)
- fprintf(stderr, "%s value[%d] = %s\n", str, i, value[i]);
-*/
-}
-
-static void
-dmpscope(
- const char* name,
- FontScope sc,
- int num)
-{
-/*
- int i;
- fprintf(stderr, "dmpscope %s\n", name);
- for (i=0; i<num; i++)
- fprintf(stderr,"%x %x %x %x \n",
- sc[i].start,
- sc[i].end,
- sc[i].shift,
- sc[i].shift_direction);
- fprintf(stderr, "dmpscope end\n");
-*/
-}
-
-static XlcCharSet
-srch_charset_define(
- const char *name,
- int *new)
-{
- XlcCharSet charset;
-
- *new = 0;
- charset = _XlcGetCharSet(name);
- if (charset == NULL &&
- (charset = _XlcCreateDefaultCharSet(name, ""))) {
- _XlcAddCharSet(charset);
- *new = 1;
- charset->source = CSsrcXLC;
- }
- return charset;
-}
-
-static void
-read_charset_define(
- XLCd lcd,
- XLCdGenericPart *gen)
-{
- int i;
- char csd[16], cset_name[256];
- char name[BUFSIZ];
- XlcCharSet charsetd;
- char **value;
- int num, new = 0;
- XlcSide side = XlcUnknown;
- char *tmp;
-
- for (i=0; ; i++) { /* loop start */
- charsetd = 0;
- snprintf(csd, sizeof(csd), "csd%d", i);
-
- /* charset_name */
- snprintf(name, sizeof(name), "%s.%s", csd, "charset_name");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- _XlcDbg_printValue(name,value,num);
- if (num > 0) {
- /* hackers will get truncated -- C'est la vie */
- strncpy(cset_name,value[0], sizeof cset_name - 1);
- cset_name[(sizeof cset_name) - 1] = '\0';
- snprintf(name, sizeof(name), "%s.%s", csd , "side");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
- side = XlcGLGR;
- } else if (!_XlcNCompareISOLatin1(value[0], "GL", 2)) {
- side = XlcGL;
- strcat(cset_name,":GL");
- } else {
- side = XlcGR;
- strcat(cset_name,":GR");
- }
- if (charsetd == NULL &&
- (charsetd = srch_charset_define(cset_name,&new)) == NULL)
- return;
- }
- } else {
- if (i == 0)
- continue;
- else
- break;
- }
- if (new) {
- tmp = strdup(cset_name);
- if (tmp == NULL)
- return;
- charsetd->name = tmp;
- }
- /* side */
- charsetd->side = side ;
- /* length */
- snprintf(name, sizeof(name), "%s.%s", csd, "length");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- charsetd->char_size = atoi(value[0]);
- }
- /* gc_number */
- snprintf(name, sizeof(name), "%s.%s", csd, "gc_number");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- charsetd->set_size = atoi(value[0]);
- }
- /* string_encoding */
- snprintf(name, sizeof(name), "%s.%s", csd, "string_encoding");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- if (!strcmp("False",value[0])) {
- charsetd->string_encoding = False;
- } else {
- charsetd->string_encoding = True;
- }
- }
- /* sequence */
- snprintf(name, sizeof(name), "%s.%s", csd, "sequence");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
-/*
- if (charsetd->ct_sequence) {
- Xfree(charsetd->ct_sequence);
- }
-*/
- tmp = Xmalloc(strlen(value[0])+1);
- if (tmp == NULL)
- return;
- charsetd->ct_sequence = tmp;
- string_to_encoding(value[0],tmp);
- }
- /* encoding_name */
- snprintf(name, sizeof(name), "%s.%s", csd, "encoding_name");
- _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
-/*
- if (charsetd->encoding_name) {
- Xfree(charsetd->encoding_name);
- }
-*/
- tmp = strdup(value[0]);
- charsetd->encoding_name = tmp;
- charsetd->xrm_encoding_name = XrmStringToQuark(tmp);
- }
- _XlcAddCT(charsetd->name, charsetd->ct_sequence);
- }
-}
-
-static SegConv
-add_conversion(
- XLCdGenericPart *gen)
-{
- SegConv new_list;
- int num;
-
- if ((num = gen->segment_conv_num) > 0) {
- new_list = Xrealloc(gen->segment_conv,
- (num + 1) * sizeof(SegConvRec));
- } else {
- new_list = Xmalloc(sizeof(SegConvRec));
- }
-
- if (new_list == NULL)
- return NULL;
-
- gen->segment_conv = new_list;
- gen->segment_conv_num = num + 1;
-
- return &new_list[num];
-
-}
-
-static void
-read_segmentconversion(
- XLCd lcd,
- XLCdGenericPart *gen)
-{
- int i;
- char conv[16];
- char name[BUFSIZ];
- char **value;
- int num,new;
- SegConv conversion;
- for (i=0 ; ; i++) { /* loop start */
- conversion = 0;
- snprintf(conv, sizeof(conv), "conv%d", i);
-
- /* length */
- snprintf(name, sizeof(name), "%s.%s", conv, "length");
- _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
- if (num > 0) {
- if (conversion == NULL &&
- (conversion = add_conversion(gen)) == NULL) {
- return;
- }
- _XlcDbg_printValue(name,value,num);
- } else {
- if (i == 0)
- continue;
- else
- break;
- }
- conversion->length = atoi(value[0]);
-
- /* source_encoding */
- snprintf(name, sizeof(name), "%s.%s", conv, "source_encoding");
- _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
- if (num > 0) {
- char *tmp;
- _XlcDbg_printValue(name,value,num);
- tmp = strdup(value[0]);
- if (tmp == NULL)
- return;
- conversion->source_encoding = tmp;
- conversion->source = srch_charset_define(tmp,&new);
- }
- /* destination_encoding */
- snprintf(name, sizeof(name), "%s.%s", conv, "destination_encoding");
- _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
- if (num > 0) {
- char *tmp;
- _XlcDbg_printValue(name,value,num);
- tmp = strdup(value[0]);
- if (tmp == NULL)
- return;
- conversion->destination_encoding = tmp;
- conversion->dest = srch_charset_define(tmp,&new);
- }
- /* range */
- snprintf(name, sizeof(name), "%s.%s", conv, "range");
- _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- sscanf(value[0],"\\x%lx,\\x%lx",
- &(conversion->range.start), &(conversion->range.end));
- }
- /* conversion */
- snprintf(name, sizeof(name), "%s.%s", conv, "conversion");
- _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- conversion->conv =
- _XlcParse_scopemaps(value[0],&conversion->conv_num);
- }
- } /* loop end */
-}
-
-static ExtdSegment
-create_ctextseg(
- char **value,
- int num)
-{
- ExtdSegment ret;
- char* ptr;
- char* cset_name = NULL;
- size_t cset_len;
- int i,new;
- FontScope scope;
- ret = Xmalloc(sizeof(ExtdSegmentRec));
- if (ret == NULL)
- return NULL;
- ret->name = strdup(value[0]);
- if (ret->name == NULL) {
- Xfree (ret);
- return NULL;
- }
- cset_len = strlen(ret->name) + 1;
- cset_name = Xmalloc (cset_len);
- if (cset_name == NULL) {
- Xfree (ret->name);
- Xfree (ret);
- return NULL;
- }
- if (strchr(value[0],':')) {
- ptr = strchr(ret->name,':');
- *ptr = '\0';
- ptr++;
- if (!_XlcNCompareISOLatin1(ptr, "GL", 2)) {
- ret->side = XlcGL;
- snprintf(cset_name, cset_len, "%s:%s", ret->name, "GL");
- } else {
- ret->side = XlcGR;
- snprintf(cset_name, cset_len, "%s:%s", ret->name, "GR");
- }
- } else {
- ret->side = XlcGLGR;
- strcpy(cset_name,ret->name);
- }
- ret->area = Xmalloc((num - 1)*sizeof(FontScopeRec));
- if (ret->area == NULL) {
- Xfree (cset_name);
- Xfree (ret->name);
- Xfree (ret);
- return NULL;
- }
- ret->area_num = num - 1;
- scope = ret->area ;
- for (i = 1; i < num; i++) {
- sscanf(value[i],"\\x%lx,\\x%lx",
- &scope[i-1].start, &scope[i-1].end);
- }
- ret->charset = srch_charset_define(cset_name,&new);
- Xfree (cset_name);
-
- return ret;
-}
-/* For VW/UDC end */
-
-static Bool
-load_generic(
- XLCd lcd)
-{
- XLCdGenericPart *gen = XLC_GENERIC_PART(lcd);
- char **value;
- int num;
- unsigned long l;
- int i;
- int M,ii;
- XlcCharSet charset;
-
- gen->codeset_num = 0;
-
- /***** wc_encoding_mask *****/
- _XlcGetResource(lcd, "XLC_XLOCALE", "wc_encoding_mask", &value, &num);
- if (num > 0) {
- if (string_to_ulong(value[0], &l) == False)
- goto err;
- gen->wc_encode_mask = l;
- }
- /***** wc_shift_bits *****/
- _XlcGetResource(lcd, "XLC_XLOCALE", "wc_shift_bits", &value, &num);
- if (num > 0)
- gen->wc_shift_bits = atoi(value[0]);
- if (gen->wc_shift_bits < 1)
- gen->wc_shift_bits = 8;
- /***** use_stdc_env *****/
- _XlcGetResource(lcd, "XLC_XLOCALE", "use_stdc_env", &value, &num);
- if (num > 0 && !_XlcCompareISOLatin1(value[0], "True"))
- gen->use_stdc_env = True;
- else
- gen->use_stdc_env = False;
- /***** force_convert_to_mb *****/
- _XlcGetResource(lcd, "XLC_XLOCALE", "force_convert_to_mb", &value, &num);
- if (num > 0 && !_XlcCompareISOLatin1(value[0], "True"))
- gen->force_convert_to_mb = True;
- else
- gen->force_convert_to_mb = False;
-
- for (i = 0; ; i++) {
- CodeSetRec *codeset = NULL;
- char cs[16];
- char name[BUFSIZ];
-
- snprintf(cs, sizeof(cs), "cs%d", i);
-
- /***** codeset.side *****/
- snprintf(name, sizeof(name), "%s.%s", cs , "side");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- char *tmp;
-
- if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
- goto err;
-
- /* 3.4.1 side */
- if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
- codeset->side = XlcNONE;
- } else if (!_XlcNCompareISOLatin1(value[0], "GL", 2)) {
- codeset->side = XlcGL;
- } else {
- codeset->side = XlcGR;
- }
-
- tmp = strrchr(value[0], ':');
- if (tmp != NULL && !_XlcCompareISOLatin1(tmp + 1, "Default")) {
- if (codeset->side == XlcGR)
- gen->initial_state_GR = codeset;
- else
- gen->initial_state_GL = codeset;
- }
- }
-
- /***** codeset.length *****/
- snprintf(name, sizeof(name), "%s.%s", cs , "length");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
- goto err;
- codeset->length = atoi(value[0]);
- if (codeset->length < 1)
- codeset->length = 1;
- }
-
- /***** codeset.mb_encoding *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "mb_encoding");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- static struct {
- const char *str;
- EncodingType type;
- } shifts[] = {
- {"<SS>", E_SS},
- {"<LSL>", E_LSL},
- {"<LSR>", E_LSR},
- {0}
- };
- int j;
-
- if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
- goto err;
- for ( ; num-- > 0; value++) {
- char encoding[256];
- char *tmp = *value;
- EncodingType type = E_SS; /* for BC */
- for (j = 0; shifts[j].str; j++) {
- if (!_XlcNCompareISOLatin1(tmp, shifts[j].str,
- strlen(shifts[j].str))) {
- type = shifts[j].type;
- tmp += strlen(shifts[j].str);
- break;
- }
- }
- if (strlen (tmp) > sizeof encoding ||
- string_to_encoding(tmp, encoding) == False)
- goto err;
- add_parse_list(gen, type, encoding, codeset);
- }
- }
-
- /***** codeset.wc_encoding *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "wc_encoding");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
- goto err;
- if (string_to_ulong(value[0], &l) == False)
- goto err;
- codeset->wc_encoding = l;
- }
-
- /***** codeset.ct_encoding *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "ct_encoding");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- char *encoding;
-
- if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
- goto err;
- for ( ; num-- > 0; value++) {
- if (strlen (*value) > sizeof name)
- goto err;
- string_to_encoding(*value, name);
- charset = NULL;
- if ((encoding = strchr(name, ':')) &&
- (encoding = strchr(encoding + 1, ':'))) {
- *encoding++ = '\0';
- charset = _XlcAddCT(name, encoding);
- }
- if (charset == NULL) {
- charset = _XlcGetCharSet(name);
- if (charset == NULL &&
- (charset = _XlcCreateDefaultCharSet(name, ""))) {
- charset->side = codeset->side;
- charset->char_size = codeset->length;
- _XlcAddCharSet(charset);
- }
- }
- if (charset) {
- if (add_charset(codeset, charset) == False)
- goto err;
- }
- }
- }
-
- if (codeset == NULL)
- break;
- codeset->cs_num = i;
- /* For VW/UDC */
- /***** 3.4.2 byteM (1 <= M <= length)*****/
- for (M=1; M-1 < codeset->length; M++) {
- unsigned long start,end;
- ByteInfo tmpb;
-
- snprintf(name, sizeof(name),"%s.%s%d",cs,"byte",M);
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
-
- if (M == 1) {
- if (num < 1) {
- codeset->byteM = NULL;
- break ;
- }
- codeset->byteM = Xmalloc(
- (codeset->length)*sizeof(ByteInfoListRec));
- if (codeset->byteM == NULL) {
- goto err;
- }
- }
-
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- (codeset->byteM)[M-1].M = M;
- (codeset->byteM)[M-1].byteinfo_num = num;
- (codeset->byteM)[M-1].byteinfo =
- Xmalloc(num * sizeof(ByteInfoRec));
- for (ii = 0 ; ii < num ; ii++) {
- tmpb = (codeset->byteM)[M-1].byteinfo ;
- /* default 0x00 - 0xff */
- sscanf(value[ii],"\\x%lx,\\x%lx",&start,&end);
- tmpb[ii].start = (unsigned char)start;
- tmpb[ii].end = (unsigned char)end;
- }
- }
- /* .... */
- }
-
-
- /***** codeset.mb_conversion *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "mb_conversion");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- codeset->mbconv = Xmalloc(sizeof(ConversionRec));
- codeset->mbconv->convlist =
- _XlcParse_scopemaps(value[0],&(codeset->mbconv->conv_num));
- dmpscope("mb_conv",codeset->mbconv->convlist,
- codeset->mbconv->conv_num);
- /* [\x%x,\x%x]->\x%x,... */
- }
- /***** codeset.ct_conversion *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "ct_conversion");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- codeset->ctconv = Xmalloc(sizeof(ConversionRec));
- codeset->ctconv->convlist =
- _XlcParse_scopemaps(value[0],&(codeset->ctconv->conv_num));
- dmpscope("ctconv",codeset->ctconv->convlist,
- codeset->ctconv->conv_num);
- /* [\x%x,\x%x]->\x%x,... */
- }
- /***** codeset.ct_conversion_file *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "ct_conversion_file");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- /* [\x%x,\x%x]->\x%x,... */
- }
- /***** codeset.ct_extended_segment *****/
- snprintf(name, sizeof(name), "%s.%s", cs, "ct_extended_segment");
- _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if (num > 0) {
- _XlcDbg_printValue(name,value,num);
- codeset->ctextseg = create_ctextseg(value,num);
- /* [\x%x,\x%x]->\x%x,... */
- }
- /* For VW/UDC end */
-
- }
-
- read_charset_define(lcd,gen); /* For VW/UDC */
- read_segmentconversion(lcd,gen); /* For VW/UDC */
-
- if (gen->initial_state_GL == NULL) {
- CodeSetRec *codeset;
- for (i = 0; i < gen->codeset_num; i++) {
- codeset = gen->codeset_list[i];
- if (codeset->side == XlcGL)
- gen->initial_state_GL = codeset;
- }
- }
-
- if (gen->initial_state_GR == NULL) {
- CodeSetRec *codeset;
- for (i = 0; i < gen->codeset_num; i++) {
- codeset = gen->codeset_list[i];
- if (codeset->side == XlcGR)
- gen->initial_state_GR = codeset;
- }
- }
-
- for (i = 0; i < gen->codeset_num; i++) {
- CodeSetRec *codeset = gen->codeset_list[i];
- for (ii = 0; ii < codeset->num_charsets; ii++) {
- charset = codeset->charset_list[ii];
- if (! strcmp(charset->encoding_name, "ISO8859-1"))
- charset->string_encoding = True;
- if ( charset->string_encoding )
- codeset->string_encoding = True;
- }
- }
- return True;
-
-err:
- free_charset(lcd);
-
- return False;
-}
-
-#ifdef USE_DYNAMIC_LC
-/* override the open_om and open_im methods which were set by
- super_class's initialize method() */
-
-static Bool
-initialize_core(
- XLCd lcd)
-{
- _XInitDynamicOM(lcd);
-
- _XInitDynamicIM(lcd);
-
- return True;
-}
-#endif
-
-static Bool
-initialize(XLCd lcd)
-{
- XLCdPublicMethods superclass = (XLCdPublicMethods) _XlcPublicMethods;
-
- XLC_PUBLIC_METHODS(lcd)->superclass = superclass;
-
- if (superclass->pub.initialize) {
- if ((*superclass->pub.initialize)(lcd) == False)
- return False;
- }
-
-#ifdef USE_DYNAMIC_LC
- if (initialize_core(lcd) == False)
- return False;
-#endif
-
- if (load_generic(lcd) == False)
- return False;
-
- return True;
-}
-
-/* VW/UDC start 95.01.08 */
-static void
-freeByteM(
- CodeSet codeset)
-{
- int i;
- ByteInfoList blst;
- if (codeset->byteM == NULL) {
- return ;
- }
- blst = codeset->byteM;
- for (i = 0; i < codeset->length; i++) {
- Xfree(blst[i].byteinfo);
- blst[i].byteinfo = NULL;
- }
- Xfree(codeset->byteM);
- codeset->byteM = NULL;
-}
-
-static void
-freeConversion(
- CodeSet codeset)
-{
- Conversion mbconv,ctconv;
- if (codeset->mbconv) {
- mbconv = codeset->mbconv;
- /* ... */
- Xfree(mbconv->convlist);
- mbconv->convlist = NULL;
-
- Xfree(mbconv);
- codeset->mbconv = NULL;
- }
- if (codeset->ctconv) {
- ctconv = codeset->ctconv;
- /* ... */
- Xfree(ctconv->convlist);
- ctconv->convlist = NULL;
-
- Xfree(ctconv);
- codeset->ctconv = NULL;
- }
-}
-
-static void
-freeExtdSegment(
- CodeSet codeset)
-{
- ExtdSegment ctextseg;
- if (codeset->ctextseg == NULL) {
- return;
- }
- ctextseg = codeset->ctextseg;
- Xfree(ctextseg->name);
- ctextseg->name = NULL;
-
- Xfree(ctextseg->area);
- ctextseg->area = NULL;
-
- Xfree(codeset->ctextseg);
- codeset->ctextseg = NULL;
-}
-
-static void
-freeParseInfo(
- CodeSet codeset)
-{
- ParseInfo parse_info;
- if (codeset->parse_info == NULL) {
- return;
- }
- parse_info = codeset->parse_info;
-
- Xfree(parse_info->encoding);
- parse_info->encoding = NULL;
-
- Xfree(codeset->parse_info);
- codeset->parse_info = NULL;
-}
-
-static void
-destroy_CodeSetList(
- XLCdGenericPart *gen)
-{
- CodeSet *codeset = gen->codeset_list;
- int i;
- if (gen->codeset_num == 0) {
- return;
- }
- for (i=0;i<gen->codeset_num;i++) {
- freeByteM(codeset[i]);
- freeConversion(codeset[i]);
- freeExtdSegment(codeset[i]);
- freeParseInfo(codeset[i]);
-
- Xfree(codeset[i]->charset_list);
- codeset[i]->charset_list = NULL;
-
- Xfree(codeset[i]); codeset[i]=NULL;
- }
- Xfree(codeset); gen->codeset_list = NULL;
-}
-
-static void
-destroy_SegConv(
- XLCdGenericPart *gen)
-{
- SegConv seg = gen->segment_conv;
- int i;
-
- if (gen->segment_conv_num == 0) {
- return;
- }
- for (i=0;i<gen->segment_conv_num;i++) {
-
- Xfree(seg[i].source_encoding);
- seg[i].source_encoding = NULL;
-
- Xfree(seg[i].destination_encoding);
- seg[i].destination_encoding = NULL;
-
- Xfree(seg[i].conv);
- seg[i].conv = NULL;
- }
- Xfree(seg); gen->segment_conv = NULL;
-}
-
-static void
-destroy_gen(
- XLCd lcd)
-{
- XLCdGenericPart *gen = XLC_GENERIC_PART(lcd);
- destroy_SegConv(gen);
- destroy_CodeSetList(gen);
-
- Xfree(gen->mb_parse_table);
- gen->mb_parse_table = NULL;
-
- Xfree(gen->mb_parse_list);
- gen->mb_parse_list = NULL;
-
-}
-/* VW/UDC end 95.01.08 */
-
-static void
-destroy(
- XLCd lcd)
-{
- XLCdPublicMethods superclass = XLC_PUBLIC_METHODS(lcd)->superclass;
-
- destroy_gen(lcd); /* ADD 1996.01.08 */
- if (superclass && superclass->pub.destroy)
- (*superclass->pub.destroy)(lcd);
-}
diff --git a/nx-X11/lib/X11/lcInit.c b/nx-X11/lib/X11/lcInit.c
deleted file mode 100644
index e3092f77d..000000000
--- a/nx-X11/lib/X11/lcInit.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-Copyright 1985, 1986, 1987, 1991, 1998 The Open Group
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions: The above copyright notice and this
-permission notice shall be included in all copies or substantial
-portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
-EVEN IF ADVISED IN ADVANCE OF THE POSSIBILITY OF SUCH DAMAGES.
-
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-X Window System is a trademark of The Open Group
-
-OSF/1, OSF/Motif and Motif are registered trademarks, and OSF, the OSF
-logo, LBX, X Window System, and Xinerama are trademarks of the Open
-Group. All other trademarks and registered trademarks mentioned herein
-are the property of their respective owners. No right, title or
-interest in or to any trademark, service mark, logo or trade name of
-Sun Microsystems, Inc. or its licensors is granted.
-
-*/
-/*
- * Copyright 2000 Oracle and/or its affiliates. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * (c) Copyright 1995 FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Masayoshi Shimamura FUJITSU LIMITED
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-#ifdef USE_DYNAMIC_LC
-#undef USE_DEFAULT_LOADER
-#undef USE_GENERIC_LOADER
-#undef USE_UTF8_LOADER
-#else
-#define USE_GENERIC_LOADER
-#define USE_DEFAULT_LOADER
-#define USE_UTF8_LOADER
-#endif
-
-/*
- * The _XlcInitLoader function initializes the locale object loader list
- * with vendor specific manner.
- */
-
-void
-_XlcInitLoader(void)
-{
-
-#ifdef USE_DYNAMIC_LC
- _XlcAddLoader(_XlcDynamicLoad, XlcHead);
-#else /* USE_DYNAMIC_LC */
-
-#ifdef USE_GENERIC_LOADER
- _XlcAddLoader(_XlcGenericLoader, XlcHead);
-#endif
-
-#ifdef USE_DEFAULT_LOADER
- _XlcAddLoader(_XlcDefaultLoader, XlcHead);
-#endif
-
-#ifdef USE_UTF8_LOADER
- _XlcAddLoader(_XlcUtf8Loader, XlcHead);
-#endif
-
-#ifdef USE_DYNAMIC_LOADER
- _XlcAddLoader(_XlcDynamicLoader, XlcHead);
-#endif
-
-#endif /* USE_DYNAMIC_LC */
-}
-
-void
-_XlcDeInitLoader(void)
-{
-
-#ifdef USE_DYNAMIC_LC
- _XlcRemoveLoader(_XlcDynamicLoad);
-#else /* USE_DYNAMIC_LC */
-
-#ifdef USE_GENERIC_LOADER
- _XlcRemoveLoader(_XlcGenericLoader);
-#endif
-
-#ifdef USE_DEFAULT_LOADER
- _XlcRemoveLoader(_XlcDefaultLoader);
-#endif
-
-#ifdef USE_UTF8_LOADER
- _XlcRemoveLoader(_XlcUtf8Loader);
-#endif
-
-#ifdef USE_DYNAMIC_LOADER
- _XlcRemoveLoader(_XlcDynamicLoader);
-#endif
-
-#endif /* USE_DYNAMIC_LC */
-}
diff --git a/nx-X11/lib/X11/lcPrTxt.c b/nx-X11/lib/X11/lcPrTxt.c
deleted file mode 100644
index e62e94e80..000000000
--- a/nx-X11/lib/X11/lcPrTxt.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xatom.h>
-
-static XPointer *
-alloc_list(
- Bool is_wide_char,
- int count,
- int nitems)
-{
- if (is_wide_char) {
- wchar_t **wstr_list;
-
- wstr_list = Xmalloc(count * sizeof(wchar_t *));
- if (wstr_list == NULL)
- return (XPointer *) NULL;
-
- *wstr_list = Xmalloc(nitems * sizeof(wchar_t));
- if (*wstr_list == NULL) {
- Xfree(wstr_list);
- return (XPointer *) NULL;
- }
-
- return (XPointer *) wstr_list;
- } else {
- char **str_list;
-
- str_list = Xmalloc(count * sizeof(char *));
- if (str_list == NULL)
- return (XPointer *) NULL;
-
- *str_list = Xmalloc(nitems);
- if (*str_list == NULL) {
- Xfree(str_list);
- return (XPointer *) NULL;
- }
-
- return (XPointer *) str_list;
- }
-}
-
-static void
-copy_list(
- Bool is_wide_char,
- XPointer text,
- XPointer *list,
- int count)
-{
- int length;
-
- if (is_wide_char) {
- wchar_t *wc_text, *wstr, **wstr_list;
-
- wc_text = (wchar_t *) text;
- wstr_list = (wchar_t **) list;
-
- for (wstr = *wstr_list; count > 0; count--, wstr_list++) {
- _Xwcscpy(wstr, wc_text);
- *wstr_list = wstr;
- length = _Xwcslen(wstr) + 1;
- wstr += length;
- wc_text += length;
- }
- } else {
- char *mb_text, *str, **str_list;
-
- mb_text = (char *) text;
- str_list = (char **) list;
-
- for (str = *str_list; count > 0; count--, str_list++) {
- strcpy(str, mb_text);
- *str_list = str;
- length = strlen(str) + 1;
- str += length;
- mb_text += length;
- }
- }
-}
-
-static int
-_XTextPropertyToTextList(
- XLCd lcd,
- Display *dpy,
- const XTextProperty *text_prop,
- const char *to_type,
- XPointer **list_ret,
- int *count_ret)
-{
- XlcConv conv = NULL;
- const char *from_type;
- XPointer from, to, buf;
- char *str_ptr, *last_ptr;
- Atom encoding;
- int from_left, to_left, buf_len, ret, len;
- int unconv_num, nitems = text_prop->nitems;
- Bool is_wide_char = False, do_strcpy = False;
-
- if (strcmp(XlcNWideChar, to_type) == 0)
- is_wide_char = True;
-
- if (nitems <= 0) {
- *list_ret = NULL;
- *count_ret = 0;
- return Success;
- }
-
- if (text_prop->format != 8)
- return XConverterNotFound;
-
- encoding = text_prop->encoding;
- if (encoding == XA_STRING)
- from_type = XlcNString;
- else if (encoding == XInternAtom(dpy, "UTF8_STRING", False))
- from_type = XlcNUtf8String;
- else if (encoding == XInternAtom(dpy, "COMPOUND_TEXT", False))
- from_type = XlcNCompoundText;
- else if (encoding == XInternAtom(dpy, XLC_PUBLIC(lcd, encoding_name), False))
- from_type = XlcNMultiByte;
- else
- return XConverterNotFound;
-
- if (is_wide_char) {
- buf_len = (text_prop->nitems + 1) * sizeof(wchar_t);
- } else {
- if (strcmp(to_type, XlcNUtf8String) == 0)
- buf_len = text_prop->nitems * 6 + 1;
- else
- buf_len = text_prop->nitems * XLC_PUBLIC(lcd, mb_cur_max) + 1;
- }
- buf = Xmalloc(buf_len);
- if (buf == NULL)
- return XNoMemory;
- to = buf;
- to_left = buf_len;
-
- /* can be XlcNMultiByte to XlcNMultiByte,
- or XlcNUtf8String to XlcNUtf8String */
- if (!strcmp(from_type, to_type)) {
- do_strcpy = True;
- } else {
- conv = _XlcOpenConverter(lcd, from_type, lcd, to_type);
- if (conv == NULL) {
- Xfree(buf);
- return XConverterNotFound;
- }
- }
-
- last_ptr = str_ptr = (char *) text_prop->value;
- unconv_num = *count_ret = 0;
-
- while (1) {
- if (nitems == 0 || *str_ptr == 0) {
- from = (XPointer) last_ptr;
- from_left = str_ptr - last_ptr;
- last_ptr = str_ptr;
-
- if (do_strcpy) {
- len = min(from_left, to_left);
- strncpy(to, from, len);
- from += len;
- to += len;
- from_left -= len;
- to_left -= len;
- ret = 0;
- } else {
- ret = _XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0);
- }
-
- if (ret < 0)
- continue;
-
- unconv_num += ret;
- (*count_ret)++;
-
- if (nitems == 0)
- break;
- last_ptr = ++str_ptr;
- if (is_wide_char) {
- *((wchar_t *)to) = (wchar_t) 0;
- to += sizeof(wchar_t);
- to_left -= sizeof(wchar_t);
- } else {
- *((char *)to) = '\0';
- to++;
- to_left--;
- }
- if (! do_strcpy)
- _XlcResetConverter(conv);
- } else
- str_ptr++;
-
- nitems--;
- }
-
- if (! do_strcpy)
- _XlcCloseConverter(conv);
-
- if (is_wide_char) {
- *((wchar_t *) to) = (wchar_t) 0;
- to_left -= sizeof(wchar_t);
- } else {
- *((char *) to) = '\0';
- to_left--;
- }
-
- *list_ret = alloc_list(is_wide_char, *count_ret, buf_len - to_left);
- if (*list_ret)
- copy_list(is_wide_char, buf, *list_ret, *count_ret);
-
- Xfree(buf);
-
- return unconv_num;
-}
-
-int
-_XmbTextPropertyToTextList(
- XLCd lcd,
- Display *dpy,
- const XTextProperty *text_prop,
- char ***list_ret,
- int *count_ret)
-{
- return _XTextPropertyToTextList(lcd, dpy, text_prop, XlcNMultiByte,
- (XPointer **) list_ret, count_ret);
-}
-
-int
-_XwcTextPropertyToTextList(
- XLCd lcd,
- Display *dpy,
- const XTextProperty *text_prop,
- wchar_t ***list_ret,
- int *count_ret)
-{
- return _XTextPropertyToTextList(lcd, dpy, text_prop, XlcNWideChar,
- (XPointer **) list_ret, count_ret);
-}
-
-int
-_Xutf8TextPropertyToTextList(
- XLCd lcd,
- Display *dpy,
- const XTextProperty *text_prop,
- char ***list_ret,
- int *count_ret)
-{
- return _XTextPropertyToTextList(lcd, dpy, text_prop, XlcNUtf8String,
- (XPointer **) list_ret, count_ret);
-}
-
-void
-_XwcFreeStringList(
- XLCd lcd,
- wchar_t **list)
-{
- if (list) {
- Xfree(*list);
- Xfree(list);
- }
-}
diff --git a/nx-X11/lib/X11/lcPubWrap.c b/nx-X11/lib/X11/lcPubWrap.c
deleted file mode 100644
index 3119918c6..000000000
--- a/nx-X11/lib/X11/lcPubWrap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-
-char *
-_XGetLCValues(XLCd lcd, ...)
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
- XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
-
- va_start(var, lcd);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- va_start(var, lcd);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- ret = (*methods->get_values)(lcd, args, num_args);
-
- Xfree(args);
-
- return ret;
-}
-
-void
-_XlcDestroyLC(
- XLCd lcd)
-{
- XLCdPublicMethods methods = (XLCdPublicMethods) lcd->methods;
-
- (*methods->pub.destroy)(lcd);
-}
-
-XLCd
-_XlcCreateLC(
- const char *name,
- XLCdMethods methods)
-{
- XLCdPublicMethods pub_methods = (XLCdPublicMethods) methods;
- XLCd lcd;
-
- lcd = (*pub_methods->pub.create)(name, methods);
- if (lcd == NULL)
- return (XLCd) NULL;
-
- if (lcd->core->name == NULL) {
- lcd->core->name = strdup(name);
- if (lcd->core->name == NULL)
- goto err;
- }
-
- if (lcd->methods == NULL)
- lcd->methods = methods;
-
- if ((*pub_methods->pub.initialize)(lcd) == False)
- goto err;
-
- return lcd;
-
-err:
- _XlcDestroyLC(lcd);
-
- return (XLCd) NULL;
-}
diff --git a/nx-X11/lib/X11/lcPublic.c b/nx-X11/lib/X11/lcPublic.c
deleted file mode 100644
index 98a7435fd..000000000
--- a/nx-X11/lib/X11/lcPublic.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XlcPubI.h"
-
-static const char *
-default_string(
- XLCd lcd)
-{
- return XLC_PUBLIC(lcd, default_string);
-}
-
-static XLCd create (const char *name, XLCdMethods methods);
-static Bool initialize (XLCd lcd);
-static void destroy (XLCd lcd);
-static char *get_values (XLCd lcd, XlcArgList args, int num_args);
-
-static XLCdPublicMethodsRec publicMethods = {
- {
- destroy,
- _XlcDefaultMapModifiers,
- NULL,
- NULL,
- _XrmDefaultInitParseInfo,
- _XmbTextPropertyToTextList,
- _XwcTextPropertyToTextList,
- _Xutf8TextPropertyToTextList,
- _XmbTextListToTextProperty,
- _XwcTextListToTextProperty,
- _Xutf8TextListToTextProperty,
- _XwcFreeStringList,
- default_string,
- NULL,
- NULL
- },
- {
- NULL,
- create,
- initialize,
- destroy,
- get_values,
- _XlcGetLocaleDataBase
- }
-};
-
-XLCdMethods _XlcPublicMethods = (XLCdMethods) &publicMethods;
-
-static XLCd
-create(
- const char *name,
- XLCdMethods methods)
-{
- XLCd lcd;
- XLCdPublicMethods new;
-
- lcd = Xcalloc(1, sizeof(XLCdRec));
- if (lcd == NULL)
- return (XLCd) NULL;
-
- lcd->core = Xcalloc(1, sizeof(XLCdPublicRec));
- if (lcd->core == NULL)
- goto err;
-
- new = Xmalloc(sizeof(XLCdPublicMethodsRec));
- if (new == NULL)
- goto err;
- memcpy(new,methods,sizeof(XLCdPublicMethodsRec));
- lcd->methods = (XLCdMethods) new;
-
- return lcd;
-
-err:
- Xfree(lcd);
- return (XLCd) NULL;
-}
-
-static Bool
-load_public(
- XLCd lcd)
-{
- XLCdPublicPart *pub = XLC_PUBLIC_PART(lcd);
- char **values;
- const char *str;
- int num;
-
- if(_XlcCreateLocaleDataBase(lcd) == NULL)
- return False;
-
- _XlcGetResource(lcd, "XLC_XLOCALE", "mb_cur_max", &values, &num);
- if (num > 0) {
- pub->mb_cur_max = atoi(values[0]);
- if (pub->mb_cur_max < 1)
- pub->mb_cur_max = 1;
- } else
- pub->mb_cur_max = 1;
-
- _XlcGetResource(lcd, "XLC_XLOCALE", "state_depend_encoding", &values, &num);
- if (num > 0 && !_XlcCompareISOLatin1(values[0], "True"))
- pub->is_state_depend = True;
- else
- pub->is_state_depend = False;
-
- _XlcGetResource(lcd, "XLC_XLOCALE", "encoding_name", &values, &num);
- str = (num > 0) ? values[0] : "STRING";
- pub->encoding_name = strdup(str);
- if (pub->encoding_name == NULL)
- return False;
-
- return True;
-}
-
-static Bool
-initialize_core(
- XLCd lcd)
-{
- XLCdMethods methods = lcd->methods;
- XLCdMethods core = &publicMethods.core;
-
- if (methods->close == NULL)
- methods->close = core->close;
-
- if (methods->map_modifiers == NULL)
- methods->map_modifiers = core->map_modifiers;
-
- if (methods->open_om == NULL)
-#ifdef USE_DYNAMIC_LC
- _XInitDefaultOM(lcd);
-#else
- _XInitOM(lcd);
-#endif
-
- if (methods->open_im == NULL)
-#ifdef USE_DYNAMIC_LC
- _XInitDefaultIM(lcd);
-#else
- _XInitIM(lcd);
-#endif
-
- if (methods->init_parse_info == NULL)
- methods->init_parse_info = core->init_parse_info;
-
- if (methods->mb_text_prop_to_list == NULL)
- methods->mb_text_prop_to_list = core->mb_text_prop_to_list;
-
- if (methods->wc_text_prop_to_list == NULL)
- methods->wc_text_prop_to_list = core->wc_text_prop_to_list;
-
- if (methods->utf8_text_prop_to_list == NULL)
- methods->utf8_text_prop_to_list = core->utf8_text_prop_to_list;
-
- if (methods->mb_text_list_to_prop == NULL)
- methods->mb_text_list_to_prop = core->mb_text_list_to_prop;
-
- if (methods->wc_text_list_to_prop == NULL)
- methods->wc_text_list_to_prop = core->wc_text_list_to_prop;
-
- if (methods->utf8_text_list_to_prop == NULL)
- methods->utf8_text_list_to_prop = core->utf8_text_list_to_prop;
-
- if (methods->wc_free_string_list == NULL)
- methods->wc_free_string_list = core->wc_free_string_list;
-
- if (methods->default_string == NULL)
- methods->default_string = core->default_string;
-
- return True;
-}
-
-static Bool
-initialize(
- XLCd lcd)
-{
- XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
- XLCdPublicMethodsPart *pub_methods = &publicMethods.pub;
- XLCdPublicPart *pub = XLC_PUBLIC_PART(lcd);
- char *name;
-#if !defined(X_LOCALE)
- int len;
- char sinamebuf[256];
- char* siname;
-#endif
-
- _XlcInitCTInfo();
-
- if (initialize_core(lcd) == False)
- return False;
-
- name = lcd->core->name;
-#if !defined(X_LOCALE)
- /*
- * _XlMapOSLocaleName will return the same string or a substring
- * of name, so strlen(name) is okay
- */
- if ((len = strlen(name)) < sizeof sinamebuf)
- siname = sinamebuf;
- else
- siname = Xmalloc (len + 1);
- if (siname == NULL)
- return False;
- name = _XlcMapOSLocaleName(name, siname);
-#endif
- /* _XlcResolveLocaleName will lookup the SI's name for the locale */
- if (_XlcResolveLocaleName(name, pub) == 0) {
-#if !defined(X_LOCALE)
- if (siname != sinamebuf) Xfree (siname);
-#endif
- return False;
- }
-#if !defined(X_LOCALE)
- if (siname != sinamebuf)
- Xfree (siname);
-#endif
-
- if (pub->default_string == NULL)
- pub->default_string = "";
-
- if (methods->get_values == NULL)
- methods->get_values = pub_methods->get_values;
-
- if (methods->get_resource == NULL)
- methods->get_resource = pub_methods->get_resource;
-
- return load_public(lcd);
-}
-
-static void
-destroy_core(
- XLCd lcd)
-{
- if (lcd) {
- if (lcd->core) {
- Xfree(lcd->core->name);
- Xfree(lcd->core);
- }
- Xfree(lcd->methods);
- Xfree(lcd);
- }
-}
-
-static void
-destroy(
- XLCd lcd)
-{
- XLCdPublicPart *pub = XLC_PUBLIC_PART(lcd);
-
- _XlcDestroyLocaleDataBase(lcd);
-
- Xfree(pub->siname);
- Xfree(pub->encoding_name);
-
- destroy_core(lcd);
-}
-
-static XlcResource resources[] = {
- { XlcNCodeset, NULLQUARK, sizeof(char *),
- XOffsetOf(XLCdPublicRec, pub.codeset), XlcGetMask },
- { XlcNDefaultString, NULLQUARK, sizeof(char *),
- XOffsetOf(XLCdPublicRec, pub.default_string), XlcGetMask },
- { XlcNEncodingName, NULLQUARK, sizeof(char *),
- XOffsetOf(XLCdPublicRec, pub.encoding_name), XlcGetMask },
- { XlcNLanguage, NULLQUARK, sizeof(char *),
- XOffsetOf(XLCdPublicRec, pub.language), XlcGetMask },
- { XlcNMbCurMax, NULLQUARK, sizeof(int),
- XOffsetOf(XLCdPublicRec, pub.mb_cur_max), XlcGetMask },
- { XlcNStateDependentEncoding, NULLQUARK, sizeof(Bool),
- XOffsetOf(XLCdPublicRec, pub.is_state_depend), XlcGetMask },
- { XlcNTerritory, NULLQUARK, sizeof(char *),
- XOffsetOf(XLCdPublicRec, pub.territory), XlcGetMask }
-};
-
-static char *
-get_values(
- XLCd lcd,
- XlcArgList args,
- int num_args)
-{
- XLCdPublic pub = (XLCdPublic) lcd->core;
-
- if (resources[0].xrm_name == NULLQUARK)
- _XlcCompileResourceList(resources, XlcNumber(resources));
-
- return _XlcGetValues((XPointer) pub, resources, XlcNumber(resources), args,
- num_args, XlcGetMask);
-}
diff --git a/nx-X11/lib/X11/lcRM.c b/nx-X11/lib/X11/lcRM.c
deleted file mode 100644
index bdc20f21d..000000000
--- a/nx-X11/lib/X11/lcRM.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- * Bug fixes: Bruno Haible XFree86 Inc.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include <stdio.h>
-
-/*
- * Default implementation of methods for Xrm parsing.
- */
-
-/* ======================= Unibyte implementation ======================= */
-
-/* Only for efficiency, to speed up things. */
-
-/* This implementation must keep the locale, for lcname. */
-typedef struct _UbStateRec {
- XLCd lcd;
-} UbStateRec, *UbState;
-
-/* Sets the state to the initial state.
- Initiates a sequence of calls to mbchar. */
-static void
-ub_mbinit(
- XPointer state)
-{
-}
-
-/* Transforms one multibyte character, and return a 'char' in the same
- parsing class. Returns the number of consumed bytes in *lenp. */
-static char
-ub_mbchar(
- XPointer state,
- const char *str,
- int *lenp)
-{
- *lenp = 1;
- return *str;
-}
-
-/* Terminates a sequence of calls to mbchar. */
-static void
-ub_mbfinish(
- XPointer state)
-{
-}
-
-/* Returns the name of the state's locale, as a static string. */
-static const char *
-ub_lcname(
- XPointer state)
-{
- return ((UbState) state)->lcd->core->name;
-}
-
-/* Frees the state, which was allocated by _XrmDefaultInitParseInfo. */
-static void
-ub_destroy(
- XPointer state)
-{
- _XCloseLC(((UbState) state)->lcd);
- Xfree(state);
-}
-
-static const XrmMethodsRec ub_methods = {
- ub_mbinit,
- ub_mbchar,
- ub_mbfinish,
- ub_lcname,
- ub_destroy
-};
-
-/* ======================= Multibyte implementation ======================= */
-
-/* This implementation uses an XlcConv from XlcNMultiByte to XlcNWideChar. */
-typedef struct _MbStateRec {
- XLCd lcd;
- XlcConv conv;
-} MbStateRec, *MbState;
-
-/* Sets the state to the initial state.
- Initiates a sequence of calls to mbchar. */
-static void
-mb_mbinit(
- XPointer state)
-{
- _XlcResetConverter(((MbState) state)->conv);
-}
-
-/* Transforms one multibyte character, and return a 'char' in the same
- parsing class. Returns the number of consumed bytes in *lenp. */
-static char
-mb_mbchar(
- XPointer state,
- const char *str,
- int *lenp)
-{
- XlcConv conv = ((MbState) state)->conv;
- const char *from;
- wchar_t *to, wc;
- int cur_max, i, from_left, to_left, ret;
-
- cur_max = XLC_PUBLIC(((MbState) state)->lcd, mb_cur_max);
-
- from = str;
- /* Determine from_left. Avoid overrun error which could occur if
- from_left > strlen(str). */
- from_left = cur_max;
- for (i = 0; i < cur_max; i++)
- if (str[i] == '\0') {
- from_left = i;
- break;
- }
- *lenp = from_left;
-
- to = &wc;
- to_left = 1;
-
- ret = _XlcConvert(conv, (XPointer *) &from, &from_left,
- (XPointer *) &to, &to_left, NULL, 0);
- *lenp -= from_left;
-
- if (ret < 0 || to_left > 0) {
- /* Invalid or incomplete multibyte character seen. */
- *lenp = 1;
- return 0x7f;
- }
- /* Return a 'char' equivalent to wc. */
- return (wc >= 0 && wc <= 0x7f ? wc : 0x7f);
-}
-
-/* Terminates a sequence of calls to mbchar. */
-static void
-mb_mbfinish(
- XPointer state)
-{
-}
-
-/* Returns the name of the state's locale, as a static string. */
-static const char *
-mb_lcname(
- XPointer state)
-{
- return ((MbState) state)->lcd->core->name;
-}
-
-/* Frees the state, which was allocated by _XrmDefaultInitParseInfo. */
-static void
-mb_destroy(
- XPointer state)
-{
- _XlcCloseConverter(((MbState) state)->conv);
- _XCloseLC(((MbState) state)->lcd);
- Xfree(state);
-}
-
-static const XrmMethodsRec mb_methods = {
- mb_mbinit,
- mb_mbchar,
- mb_mbfinish,
- mb_lcname,
- mb_destroy
-};
-
-/* ======================= Exported function ======================= */
-
-XrmMethods
-_XrmDefaultInitParseInfo(
- XLCd lcd,
- XPointer *rm_state)
-{
- if (XLC_PUBLIC(lcd, mb_cur_max) == 1) {
- /* Unibyte case. */
- UbState state = Xmalloc(sizeof(UbStateRec));
- if (state == NULL)
- return (XrmMethods) NULL;
-
- state->lcd = lcd;
-
- *rm_state = (XPointer) state;
- return &ub_methods;
- } else {
- /* Multibyte case. */
- MbState state = Xmalloc(sizeof(MbStateRec));
- if (state == NULL)
- return (XrmMethods) NULL;
-
- state->lcd = lcd;
- state->conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
- if (state->conv == NULL) {
- Xfree(state);
- return (XrmMethods) NULL;
- }
-
- *rm_state = (XPointer) state;
- return &mb_methods;
- }
-}
diff --git a/nx-X11/lib/X11/lcStd.c b/nx-X11/lib/X11/lcStd.c
deleted file mode 100644
index 9d452bcae..000000000
--- a/nx-X11/lib/X11/lcStd.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-
-int
-_Xlcmbtowc(
- XLCd lcd,
- wchar_t *wstr,
- char *str,
- int len)
-{
- static XLCd last_lcd = NULL;
- static XlcConv conv = NULL;
- XPointer from, to;
- int from_left, to_left;
- wchar_t tmp_wc;
-
- if (lcd == NULL) {
- lcd = _XlcCurrentLC();
- if (lcd == NULL)
- return -1;
- }
- if (str == NULL)
- return XLC_PUBLIC(lcd, is_state_depend);
-
- if (conv && lcd != last_lcd) {
- _XlcCloseConverter(conv);
- conv = NULL;
- }
-
- last_lcd = lcd;
-
- if (conv == NULL) {
- conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
- if (conv == NULL)
- return -1;
- }
-
- from = (XPointer) str;
- from_left = len;
- to = (XPointer) (wstr ? wstr : &tmp_wc);
- to_left = 1;
-
- if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
- return -1;
-
- return (len - from_left);
-}
-
-int
-_Xlcwctomb(
- XLCd lcd,
- char *str,
- wchar_t wc)
-{
- static XLCd last_lcd = NULL;
- static XlcConv conv = NULL;
- XPointer from, to;
- int from_left, to_left, length;
-
- if (lcd == NULL) {
- lcd = _XlcCurrentLC();
- if (lcd == NULL)
- return -1;
- }
- if (str == NULL)
- return XLC_PUBLIC(lcd, is_state_depend);
-
- if (conv && lcd != last_lcd) {
- _XlcCloseConverter(conv);
- conv = NULL;
- }
-
- last_lcd = lcd;
-
- if (conv == NULL) {
- conv = _XlcOpenConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte);
- if (conv == NULL)
- return -1;
- }
-
- from = (XPointer) &wc;
- from_left = 1;
- to = (XPointer) str;
- length = to_left = XLC_PUBLIC(lcd, mb_cur_max);
-
- if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
- return -1;
-
- return (length - to_left);
-}
-
-int
-_Xlcmbstowcs(
- XLCd lcd,
- wchar_t *wstr,
- char *str,
- int len)
-{
- XlcConv conv;
- XPointer from, to;
- int from_left, to_left, ret;
-
- if (lcd == NULL) {
- lcd = _XlcCurrentLC();
- if (lcd == NULL)
- return -1;
- }
-
- conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
- if (conv == NULL)
- return -1;
-
- from = (XPointer) str;
- from_left = strlen(str);
- to = (XPointer) wstr;
- to_left = len;
-
- if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
- ret = -1;
- else {
- ret = len - to_left;
- if (wstr && to_left > 0)
- wstr[ret] = (wchar_t) 0;
- }
-
- _XlcCloseConverter(conv);
-
- return ret;
-}
-
-int
-_Xlcwcstombs(
- XLCd lcd,
- char *str,
- wchar_t *wstr,
- int len)
-{
- XlcConv conv;
- XPointer from, to;
- int from_left, to_left, ret;
-
- if (lcd == NULL) {
- lcd = _XlcCurrentLC();
- if (lcd == NULL)
- return -1;
- }
-
- conv = _XlcOpenConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte);
- if (conv == NULL)
- return -1;
-
- from = (XPointer) wstr;
- from_left = _Xwcslen(wstr);
- to = (XPointer) str;
- to_left = len;
-
- if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
- ret = -1;
- else {
- ret = len - to_left;
- if (str && to_left > 0)
- str[ret] = '\0';
- }
-
- _XlcCloseConverter(conv);
-
- return ret;
-}
-
-
-int
-_Xmbtowc(
- wchar_t *wstr,
- char *str,
- int len
- )
-{
- return _Xlcmbtowc((XLCd) NULL, wstr, str, len);
-}
-
-int
-_Xmblen(
- char *str,
- int len
- )
-{
- return _Xmbtowc((wchar_t *) NULL, str, len);
-}
-
-int
-_Xwctomb(
- char *str,
- wchar_t wc)
-{
- return _Xlcwctomb((XLCd) NULL, str, wc);
-}
-
-int
-_Xmbstowcs(
- wchar_t *wstr,
- char *str,
- int len)
-{
- return _Xlcmbstowcs((XLCd) NULL, wstr, str, len);
-}
-
-int
-_Xwcstombs(
- char *str,
- wchar_t *wstr,
- int len)
-{
- return _Xlcwcstombs((XLCd) NULL, str, wstr, len);
-}
-
-wchar_t *
-_Xwcscpy(
- register wchar_t *wstr1, register wchar_t *wstr2)
-{
- wchar_t *wstr_tmp = wstr1;
-
- while ((*wstr1++ = *wstr2++))
- ;
-
- return wstr_tmp;
-}
-
-wchar_t *
-_Xwcsncpy(
- register wchar_t *wstr1, register wchar_t *wstr2,
- register int len)
-{
- wchar_t *wstr_tmp = wstr1;
-
- while (len-- > 0)
- if (!(*wstr1++ = *wstr2++))
- break;
-
- while (len-- > 0)
- *wstr1++ = (wchar_t) 0;
-
- return wstr_tmp;
-}
-
-int
-_Xwcslen(
- register wchar_t *wstr)
-{
- register wchar_t *wstr_ptr = wstr;
-
- while (*wstr_ptr)
- wstr_ptr++;
-
- return wstr_ptr - wstr;
-}
-
-int
-_Xwcscmp(
- register wchar_t *wstr1, register wchar_t *wstr2)
-{
- for ( ; *wstr1 && *wstr2; wstr1++, wstr2++)
- if (*wstr1 != *wstr2)
- break;
-
- return *wstr1 - *wstr2;
-}
-
-int
-_Xwcsncmp(
- register wchar_t *wstr1, register wchar_t *wstr2,
- register int len)
-{
- for ( ; *wstr1 && *wstr2 && len > 0; wstr1++, wstr2++, len--)
- if (*wstr1 != *wstr2)
- break;
-
- if (len <= 0)
- return 0;
-
- return *wstr1 - *wstr2;
-}
-
-
-int
-_Xlcmbstoutf8(
- XLCd lcd,
- char *ustr,
- const char *str,
- int len)
-{
- XlcConv conv;
- XPointer from, to;
- int from_left, to_left, ret;
-
- if (lcd == NULL) {
- lcd = _XlcCurrentLC();
- if (lcd == NULL)
- return -1;
- }
-
- conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNUtf8String);
- if (conv == NULL)
- return -1;
-
- from = (XPointer) str;
- from_left = strlen(str);
- to = (XPointer) ustr;
- to_left = len;
-
- if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
- ret = -1;
- else {
- ret = len - to_left;
- if (ustr && to_left > 0)
- ustr[ret] = '\0';
- }
-
- _XlcCloseConverter(conv);
-
- return ret;
-}
-
-int
-_Xmbstoutf8(
- char *ustr,
- const char *str,
- int len)
-{
- return _Xlcmbstoutf8((XLCd) NULL, ustr, str, len);
-}
diff --git a/nx-X11/lib/X11/lcTxtPr.c b/nx-X11/lib/X11/lcTxtPr.c
deleted file mode 100644
index cf25e3d0e..000000000
--- a/nx-X11/lib/X11/lcTxtPr.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xatom.h>
-#include <stdio.h>
-
-static int
-get_buf_size(
- Bool is_wide_char,
- XPointer list,
- int count)
-{
- int length = 0;
- char **mb_list;
- wchar_t **wc_list;
-
- if (list == NULL)
- return 0;
-
- if (is_wide_char) {
- wc_list = (wchar_t **) list;
- for ( ; count-- > 0; wc_list++) {
- if (*wc_list)
- length += _Xwcslen(*wc_list) + 1;
- }
- length *= 5; /* XXX */
- } else {
- mb_list = (char **) list;
- for ( ; count-- > 0; mb_list++) {
- if (*mb_list)
- length += strlen(*mb_list) + 1;
- }
- length *= 3; /* XXX */
- }
- length = (length / BUFSIZ + 1) * BUFSIZ; /* XXX */
-
- return length;
-}
-
-static int
-_XTextListToTextProperty(
- XLCd lcd,
- Display *dpy,
- const char *from_type,
- XPointer list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- Atom encoding;
- XlcConv conv;
- const char *to_type;
- char **mb_list = NULL;
- wchar_t **wc_list = NULL;
- XPointer from;
- char *to, *buf, *value;
- int from_left, to_left, buf_len, nitems, unconv_num = 0, ret, i;
- Bool is_wide_char = False;
-
- if (strcmp(XlcNWideChar, from_type) == 0)
- is_wide_char = True;
-
- buf_len = get_buf_size(is_wide_char, list, count);
- if ((buf = Xmalloc(buf_len)) == NULL)
- return XNoMemory;
-
- switch (style) {
- case XStringStyle:
- case XStdICCTextStyle:
- encoding = XA_STRING;
- to_type = XlcNString;
- break;
- case XUTF8StringStyle:
- encoding = XInternAtom(dpy, "UTF8_STRING", False);
- to_type = XlcNUtf8String;
- break;
- case XCompoundTextStyle:
- encoding = XInternAtom(dpy, "COMPOUND_TEXT", False);
- to_type = XlcNCompoundText;
- break;
- case XTextStyle:
- encoding = XInternAtom(dpy, XLC_PUBLIC(lcd, encoding_name), False);
- to_type = XlcNMultiByte;
- if (is_wide_char == False) {
- nitems = 0;
- mb_list = (char **) list;
- to = buf;
- for (i = 0; i < count && buf_len > 0; i++) {
- if (*mb_list)
- strcpy(to, *mb_list);
- else
- *to = '\0';
- from_left = (*mb_list ? strlen(*mb_list) : 0) + 1;
- nitems += from_left;
- to += from_left;
- mb_list++;
- }
- unconv_num = 0;
- goto done;
- }
- break;
- default:
- Xfree(buf);
- return XConverterNotFound;
- }
-
- if (count < 1) {
- nitems = 0;
- goto done;
- }
-
-retry:
- conv = _XlcOpenConverter(lcd, from_type, lcd, to_type);
- if (conv == NULL) {
- Xfree(buf);
- return XConverterNotFound;
- }
-
- if (is_wide_char)
- wc_list = (wchar_t **) list;
- else
- mb_list = (char **) list;
-
- to = buf;
- to_left = buf_len;
-
- unconv_num = 0;
-
- for (i = 1; to_left > 0; i++) {
- if (is_wide_char) {
- from = (XPointer) *wc_list;
- from_left = _Xwcslen(*wc_list);
- wc_list++;
- } else {
- from = (XPointer) *mb_list;
- from_left = (*mb_list ? strlen(*mb_list) : 0);
- mb_list++;
- }
-
- ret = _XlcConvert(conv, &from, &from_left, (XPointer *) &to, &to_left,
- NULL, 0);
-
- if (ret < 0)
- continue;
-
- if (ret > 0 && style == XStdICCTextStyle && encoding == XA_STRING) {
- _XlcCloseConverter(conv);
- encoding = XInternAtom(dpy, "COMPOUND_TEXT", False);
- to_type = XlcNCompoundText;
- goto retry;
- }
-
- unconv_num += ret;
- *to++ = '\0';
- to_left--;
-
- if (i >= count)
- break;
-
- _XlcResetConverter(conv);
- }
-
- _XlcCloseConverter(conv);
-
- nitems = to - buf;
-done:
- if (nitems <= 0)
- nitems = 1;
- value = Xmalloc(nitems);
- if (value == NULL) {
- Xfree(buf);
- return XNoMemory;
- }
- if (nitems == 1)
- *value = 0;
- else
- memcpy(value, buf, nitems);
- nitems--;
- Xfree(buf);
-
- text_prop->value = (unsigned char *) value;
- text_prop->encoding = encoding;
- text_prop->format = 8;
- text_prop->nitems = nitems;
-
- return unconv_num;
-}
-
-int
-_XmbTextListToTextProperty(
- XLCd lcd,
- Display *dpy,
- char **list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- return _XTextListToTextProperty(lcd, dpy, XlcNMultiByte, (XPointer) list,
- count, style, text_prop);
-}
-
-int
-_XwcTextListToTextProperty(
- XLCd lcd,
- Display *dpy,
- wchar_t **list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- return _XTextListToTextProperty(lcd, dpy, XlcNWideChar, (XPointer) list,
- count, style, text_prop);
-}
-
-int
-_Xutf8TextListToTextProperty(
- XLCd lcd,
- Display *dpy,
- char **list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- return _XTextListToTextProperty(lcd, dpy, XlcNUtf8String, (XPointer) list,
- count, style, text_prop);
-}
diff --git a/nx-X11/lib/X11/lcUTF8.c b/nx-X11/lib/X11/lcUTF8.c
deleted file mode 100644
index 5899338f1..000000000
--- a/nx-X11/lib/X11/lcUTF8.c
+++ /dev/null
@@ -1,2389 +0,0 @@
-/******************************************************************
-
- Copyright 1993 by SunSoft, Inc.
- Copyright 1999-2000 by Bruno Haible
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the names of SunSoft, Inc. and
-Bruno Haible not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. SunSoft, Inc. and Bruno Haible make no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-SunSoft Inc. AND Bruno Haible DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL SunSoft, Inc. OR Bruno Haible BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/*
- * This file contains:
- *
- * I. Conversion routines CompoundText/CharSet <--> Unicode/UTF-8.
- *
- * Used for three purposes:
- * 1. The UTF-8 locales, see below.
- * 2. Unicode aware applications for which the use of 8-bit character
- * sets is an anachronism.
- * 3. For conversion from keysym to locale encoding.
- *
- * II. Conversion files for an UTF-8 locale loader.
- * Supports: all locales with codeset UTF-8.
- * How: Provides converters for UTF-8.
- * Platforms: all systems.
- *
- * The loader itself is located in lcUTF8.c.
- */
-
-/*
- * The conversion from UTF-8 to CompoundText is realized in a very
- * conservative way. Recall that CompoundText data is used for inter-client
- * communication purposes. We distinguish three classes of clients:
- * - Clients which accept only those pieces of CompoundText which belong to
- * the character set understood by the current locale.
- * (Example: clients which are linked to an older X11 library.)
- * - Clients which accept CompoundText with multiple character sets and parse
- * it themselves.
- * (Example: emacs, xemacs.)
- * - Clients which rely entirely on the X{mb,wc}TextPropertyToTextList
- * functions for the conversion of CompoundText to their current locale's
- * multi-byte/wide-character format.
- * For best interoperation, the UTF-8 to CompoundText conversion proceeds as
- * follows. For every character, it first tests whether the character is
- * representable in the current locale's original (non-UTF-8) character set.
- * If not, it goes through the list of predefined character sets for
- * CompoundText and tests if the character is representable in that character
- * set. If so, it encodes the character using its code within that character
- * set. If not, it uses an UTF-8-in-CompoundText encapsulation. Since
- * clients of the first and second kind ignore such encapsulated text,
- * this encapsulation is kept to a minimum and terminated as early as possible.
- *
- * In a distant future, when clients of the first and second kind will have
- * disappeared, we will be able to stuff UTF-8 data directly in CompoundText
- * without first going through the list of predefined character sets.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include "XlcGeneric.h"
-
-static XlcConv
-create_conv(
- XLCd lcd,
- XlcConvMethods methods)
-{
- XlcConv conv;
-
- conv = Xmalloc(sizeof(XlcConvRec));
- if (conv == (XlcConv) NULL)
- return (XlcConv) NULL;
-
- conv->methods = methods;
- conv->state = NULL;
-
- return conv;
-}
-
-static void
-close_converter(
- XlcConv conv)
-{
- Xfree(conv);
-}
-
-/* Replacement character for invalid multibyte sequence or wide character. */
-#define BAD_WCHAR ((ucs4_t) 0xfffd)
-#define BAD_CHAR '?'
-
-/***************************************************************************/
-/* Part I: Conversion routines CompoundText/CharSet <--> Unicode/UTF-8.
- *
- * Note that this code works in any locale. We store Unicode values in
- * `ucs4_t' variables, but don't pass them to the user.
- *
- * This code has to support all character sets that are used for CompoundText,
- * nothing more, nothing less. See the table in lcCT.c.
- * Since the conversion _to_ CompoundText is likely to need the tables for all
- * character sets at once, we don't use dynamic loading (of tables or shared
- * libraries through iconv()). Use a fixed set of tables instead.
- *
- * We use statically computed tables, not dynamically allocated arrays,
- * because it's more memory efficient: Different processes using the same
- * libX11 shared library share the "text" and read-only "data" sections.
- */
-
-typedef unsigned int ucs4_t;
-#define conv_t XlcConv
-
-typedef struct _Utf8ConvRec {
- const char *name;
- XrmQuark xrm_name;
- int (* cstowc) (XlcConv, ucs4_t *, unsigned char const *, int);
- int (* wctocs) (XlcConv, unsigned char *, ucs4_t, int);
-} Utf8ConvRec, *Utf8Conv;
-
-/*
- * int xxx_cstowc (XlcConv conv, ucs4_t *pwc, unsigned char const *s, int n)
- * converts the byte sequence starting at s to a wide character. Up to n bytes
- * are available at s. n is >= 1.
- * Result is number of bytes consumed (if a wide character was read),
- * or 0 if invalid, or -1 if n too small.
- *
- * int xxx_wctocs (XlcConv conv, unsigned char *r, ucs4_t wc, int n)
- * converts the wide character wc to the character set xxx, and stores the
- * result beginning at r. Up to n bytes may be written at r. n is >= 1.
- * Result is number of bytes written, or 0 if invalid, or -1 if n too small.
- */
-
-/* Return code if invalid. (xxx_mbtowc, xxx_wctomb) */
-#define RET_ILSEQ 0
-/* Return code if only a shift sequence of n bytes was read. (xxx_mbtowc) */
-#define RET_TOOFEW(n) (-1-(n))
-/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */
-#define RET_TOOSMALL -1
-
-/*
- * The tables below are bijective. It would be possible to extend the
- * xxx_wctocs tables to do some transliteration (e.g. U+201C,U+201D -> 0x22)
- * but *only* with characters not contained in any other table, and *only*
- * when the current locale is not an UTF-8 locale.
- */
-
-#include "lcUniConv/utf8.h"
-#include "lcUniConv/ucs2be.h"
-#include "lcUniConv/iso8859_1.h"
-#include "lcUniConv/iso8859_2.h"
-#include "lcUniConv/iso8859_3.h"
-#include "lcUniConv/iso8859_4.h"
-#include "lcUniConv/iso8859_5.h"
-#include "lcUniConv/iso8859_6.h"
-#include "lcUniConv/iso8859_7.h"
-#include "lcUniConv/iso8859_8.h"
-#include "lcUniConv/iso8859_9.h"
-#include "lcUniConv/iso8859_10.h"
-#include "lcUniConv/iso8859_11.h"
-#include "lcUniConv/iso8859_13.h"
-#include "lcUniConv/iso8859_14.h"
-#include "lcUniConv/iso8859_15.h"
-#include "lcUniConv/iso8859_16.h"
-#include "lcUniConv/iso8859_9e.h"
-#include "lcUniConv/jisx0201.h"
-#include "lcUniConv/tis620.h"
-#include "lcUniConv/koi8_r.h"
-#include "lcUniConv/koi8_u.h"
-#include "lcUniConv/koi8_c.h"
-#include "lcUniConv/armscii_8.h"
-#include "lcUniConv/cp1133.h"
-#include "lcUniConv/mulelao.h"
-#include "lcUniConv/viscii.h"
-#include "lcUniConv/tcvn.h"
-#include "lcUniConv/georgian_academy.h"
-#include "lcUniConv/georgian_ps.h"
-#include "lcUniConv/cp1251.h"
-#include "lcUniConv/cp1255.h"
-#include "lcUniConv/cp1256.h"
-#include "lcUniConv/tatar_cyr.h"
-
-typedef struct {
- unsigned short indx; /* index into big table */
- unsigned short used; /* bitmask of used entries */
-} Summary16;
-
-#include "lcUniConv/gb2312.h"
-#include "lcUniConv/jisx0208.h"
-#include "lcUniConv/jisx0212.h"
-#include "lcUniConv/ksc5601.h"
-#include "lcUniConv/big5.h"
-#include "lcUniConv/big5_emacs.h"
-#include "lcUniConv/big5hkscs.h"
-#include "lcUniConv/gbk.h"
-
-static Utf8ConvRec all_charsets[] = {
- /* The ISO10646-1/UTF-8 entry occurs twice, once at the beginning
- (for lookup speed), once at the end (as a fallback). */
- { "ISO10646-1", NULLQUARK,
- utf8_mbtowc, utf8_wctomb
- },
-
- { "ISO8859-1", NULLQUARK,
- iso8859_1_mbtowc, iso8859_1_wctomb
- },
- { "ISO8859-2", NULLQUARK,
- iso8859_2_mbtowc, iso8859_2_wctomb
- },
- { "ISO8859-3", NULLQUARK,
- iso8859_3_mbtowc, iso8859_3_wctomb
- },
- { "ISO8859-4", NULLQUARK,
- iso8859_4_mbtowc, iso8859_4_wctomb
- },
- { "ISO8859-5", NULLQUARK,
- iso8859_5_mbtowc, iso8859_5_wctomb
- },
- { "ISO8859-6", NULLQUARK,
- iso8859_6_mbtowc, iso8859_6_wctomb
- },
- { "ISO8859-7", NULLQUARK,
- iso8859_7_mbtowc, iso8859_7_wctomb
- },
- { "ISO8859-8", NULLQUARK,
- iso8859_8_mbtowc, iso8859_8_wctomb
- },
- { "ISO8859-9", NULLQUARK,
- iso8859_9_mbtowc, iso8859_9_wctomb
- },
- { "ISO8859-10", NULLQUARK,
- iso8859_10_mbtowc, iso8859_10_wctomb
- },
- { "ISO8859-11", NULLQUARK,
- iso8859_11_mbtowc, iso8859_11_wctomb
- },
- { "ISO8859-13", NULLQUARK,
- iso8859_13_mbtowc, iso8859_13_wctomb
- },
- { "ISO8859-14", NULLQUARK,
- iso8859_14_mbtowc, iso8859_14_wctomb
- },
- { "ISO8859-15", NULLQUARK,
- iso8859_15_mbtowc, iso8859_15_wctomb
- },
- { "ISO8859-16", NULLQUARK,
- iso8859_16_mbtowc, iso8859_16_wctomb
- },
- { "JISX0201.1976-0", NULLQUARK,
- jisx0201_mbtowc, jisx0201_wctomb
- },
- { "TIS620-0", NULLQUARK,
- tis620_mbtowc, tis620_wctomb
- },
- { "GB2312.1980-0", NULLQUARK,
- gb2312_mbtowc, gb2312_wctomb
- },
- { "JISX0208.1983-0", NULLQUARK,
- jisx0208_mbtowc, jisx0208_wctomb
- },
- { "JISX0208.1990-0", NULLQUARK,
- jisx0208_mbtowc, jisx0208_wctomb
- },
- { "JISX0212.1990-0", NULLQUARK,
- jisx0212_mbtowc, jisx0212_wctomb
- },
- { "KSC5601.1987-0", NULLQUARK,
- ksc5601_mbtowc, ksc5601_wctomb
- },
- { "KOI8-R", NULLQUARK,
- koi8_r_mbtowc, koi8_r_wctomb
- },
- { "KOI8-U", NULLQUARK,
- koi8_u_mbtowc, koi8_u_wctomb
- },
- { "KOI8-C", NULLQUARK,
- koi8_c_mbtowc, koi8_c_wctomb
- },
- { "TATAR-CYR", NULLQUARK,
- tatar_cyr_mbtowc, tatar_cyr_wctomb
- },
- { "ARMSCII-8", NULLQUARK,
- armscii_8_mbtowc, armscii_8_wctomb
- },
- { "IBM-CP1133", NULLQUARK,
- cp1133_mbtowc, cp1133_wctomb
- },
- { "MULELAO-1", NULLQUARK,
- mulelao_mbtowc, mulelao_wctomb
- },
- { "VISCII1.1-1", NULLQUARK,
- viscii_mbtowc, viscii_wctomb
- },
- { "TCVN-5712", NULLQUARK,
- tcvn_mbtowc, tcvn_wctomb
- },
- { "GEORGIAN-ACADEMY", NULLQUARK,
- georgian_academy_mbtowc, georgian_academy_wctomb
- },
- { "GEORGIAN-PS", NULLQUARK,
- georgian_ps_mbtowc, georgian_ps_wctomb
- },
- { "ISO8859-9E", NULLQUARK,
- iso8859_9e_mbtowc, iso8859_9e_wctomb
- },
- { "MICROSOFT-CP1251", NULLQUARK,
- cp1251_mbtowc, cp1251_wctomb
- },
- { "MICROSOFT-CP1255", NULLQUARK,
- cp1255_mbtowc, cp1255_wctomb
- },
- { "MICROSOFT-CP1256", NULLQUARK,
- cp1256_mbtowc, cp1256_wctomb
- },
- { "BIG5-0", NULLQUARK,
- big5_mbtowc, big5_wctomb
- },
- { "BIG5-E0", NULLQUARK,
- big5_0_mbtowc, big5_0_wctomb
- },
- { "BIG5-E1", NULLQUARK,
- big5_1_mbtowc, big5_1_wctomb
- },
- { "GBK-0", NULLQUARK,
- gbk_mbtowc, gbk_wctomb
- },
- { "BIG5HKSCS-0", NULLQUARK,
- big5hkscs_mbtowc, big5hkscs_wctomb
- },
-
- /* The ISO10646-1/UTF-8 entry occurs twice, once at the beginning
- (for lookup speed), once at the end (as a fallback). */
- { "ISO10646-1", NULLQUARK,
- utf8_mbtowc, utf8_wctomb
- },
-
- /* Encoding ISO10646-1 for fonts means UCS2-like encoding
- so for conversion to FontCharSet we need this record */
- { "ISO10646-1", NULLQUARK,
- ucs2be_mbtowc, ucs2be_wctomb
- }
-};
-
-#define charsets_table_size (sizeof(all_charsets)/sizeof(all_charsets[0]))
-#define all_charsets_count (charsets_table_size - 1)
-#define ucs2_conv_index (charsets_table_size - 1)
-
-static void
-init_all_charsets (void)
-{
- Utf8Conv convptr;
- int i;
-
- for (convptr = all_charsets, i = charsets_table_size; i > 0; convptr++, i--)
- convptr->xrm_name = XrmStringToQuark(convptr->name);
-}
-
-#define lazy_init_all_charsets() \
- do { \
- if (all_charsets[0].xrm_name == NULLQUARK) \
- init_all_charsets(); \
- } while (0)
-
-/* from XlcNCharSet to XlcNUtf8String */
-
-static int
-cstoutf8(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XlcCharSet charset;
- const char *name;
- Utf8Conv convptr;
- int i;
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- if (num_args < 1)
- return -1;
-
- charset = (XlcCharSet) args[0];
- name = charset->encoding_name;
- /* not charset->name because the latter has a ":GL"/":GR" suffix */
-
- for (convptr = all_charsets, i = all_charsets_count-1; i > 0; convptr++, i--)
- if (!strcmp(convptr->name, name))
- break;
- if (i == 0)
- return -1;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend) {
- ucs4_t wc;
- int consumed;
- int count;
-
- consumed = convptr->cstowc(conv, &wc, src, srcend-src);
- if (consumed == RET_ILSEQ)
- return -1;
- if (consumed == RET_TOOFEW(0))
- break;
-
- count = utf8_wctomb(NULL, dst, wc, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- count = utf8_wctomb(NULL, dst, BAD_WCHAR, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- unconv_num++;
- }
- src += consumed;
- dst += count;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_cstoutf8 = {
- close_converter,
- cstoutf8,
- NULL
-};
-
-static XlcConv
-open_cstoutf8(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- lazy_init_all_charsets();
- return create_conv(from_lcd, &methods_cstoutf8);
-}
-
-/* from XlcNUtf8String to XlcNCharSet */
-
-static XlcConv
-create_tocs_conv(
- XLCd lcd,
- XlcConvMethods methods)
-{
- XlcConv conv;
- CodeSet *codeset_list;
- int codeset_num;
- int charset_num;
- int i, j, k;
- Utf8Conv *preferred;
-
- lazy_init_all_charsets();
-
- codeset_list = XLC_GENERIC(lcd, codeset_list);
- codeset_num = XLC_GENERIC(lcd, codeset_num);
-
- charset_num = 0;
- for (i = 0; i < codeset_num; i++)
- charset_num += codeset_list[i]->num_charsets;
- if (charset_num > all_charsets_count-1)
- charset_num = all_charsets_count-1;
-
- conv = Xmalloc(sizeof(XlcConvRec)
- + (charset_num + 1) * sizeof(Utf8Conv));
- if (conv == (XlcConv) NULL)
- return (XlcConv) NULL;
- preferred = (Utf8Conv *) ((char *) conv + sizeof(XlcConvRec));
-
- /* Loop through all codesets mentioned in the locale. */
- charset_num = 0;
- for (i = 0; i < codeset_num; i++) {
- XlcCharSet *charsets = codeset_list[i]->charset_list;
- int num_charsets = codeset_list[i]->num_charsets;
- for (j = 0; j < num_charsets; j++) {
- const char *name = charsets[j]->encoding_name;
- /* If it wasn't already encountered... */
- for (k = charset_num-1; k >= 0; k--)
- if (!strcmp(preferred[k]->name, name))
- break;
- if (k < 0) {
- /* Look it up in all_charsets[]. */
- for (k = 0; k < all_charsets_count-1; k++)
- if (!strcmp(all_charsets[k].name, name)) {
- /* Add it to the preferred set. */
- preferred[charset_num++] = &all_charsets[k];
- break;
- }
- }
- }
- }
- preferred[charset_num] = (Utf8Conv) NULL;
-
- conv->methods = methods;
- conv->state = (XPointer) preferred;
-
- return conv;
-}
-
-static void
-close_tocs_converter(
- XlcConv conv)
-{
- /* conv->state is allocated together with conv, free both at once. */
- Xfree(conv);
-}
-
-/*
- * Converts a Unicode character to an appropriate character set. The NULL
- * terminated array of preferred character sets is passed as first argument.
- * If successful, *charsetp is set to the character set that was used, and
- * *sidep is set to the character set side (XlcGL or XlcGR).
- */
-static int
-charset_wctocs(
- Utf8Conv *preferred,
- Utf8Conv *charsetp,
- XlcSide *sidep,
- XlcConv conv,
- unsigned char *r,
- ucs4_t wc,
- int n)
-{
- int count;
- Utf8Conv convptr;
- int i;
-
- for (; *preferred != (Utf8Conv) NULL; preferred++) {
- convptr = *preferred;
- count = convptr->wctocs(conv, r, wc, n);
- if (count == RET_TOOSMALL)
- return RET_TOOSMALL;
- if (count != RET_ILSEQ) {
- *charsetp = convptr;
- *sidep = (*r < 0x80 ? XlcGL : XlcGR);
- return count;
- }
- }
- for (convptr = all_charsets+1, i = all_charsets_count-1; i > 0; convptr++, i--) {
- count = convptr->wctocs(conv, r, wc, n);
- if (count == RET_TOOSMALL)
- return RET_TOOSMALL;
- if (count != RET_ILSEQ) {
- *charsetp = convptr;
- *sidep = (*r < 0x80 ? XlcGL : XlcGR);
- return count;
- }
- }
- return RET_ILSEQ;
-}
-
-static int
-utf8tocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- Utf8Conv *preferred_charsets;
- XlcCharSet last_charset = NULL;
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- preferred_charsets = (Utf8Conv *) conv->state;
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- ucs4_t wc;
- int consumed;
- int count;
-
- consumed = utf8_mbtowc(NULL, &wc, src, srcend-src);
- if (consumed == RET_TOOFEW(0))
- break;
- if (consumed == RET_ILSEQ) {
- src++;
- unconv_num++;
- continue;
- }
-
- count = charset_wctocs(preferred_charsets, &chosen_charset, &chosen_side, conv, dst, wc, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- src += consumed;
- unconv_num++;
- continue;
- }
-
- if (last_charset == NULL) {
- last_charset =
- _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- if (last_charset == NULL) {
- src += consumed;
- unconv_num++;
- continue;
- }
- } else {
- if (!(last_charset->xrm_encoding_name == chosen_charset->xrm_name
- && (last_charset->side == XlcGLGR
- || last_charset->side == chosen_side)))
- break;
- }
- src += consumed;
- dst += count;
- }
-
- if (last_charset == NULL)
- return -1;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = last_charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_utf8tocs = {
- close_tocs_converter,
- utf8tocs,
- NULL
-};
-
-static XlcConv
-open_utf8tocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tocs_conv(from_lcd, &methods_utf8tocs);
-}
-
-/* from XlcNUtf8String to XlcNChar */
-
-static int
-utf8tocs1(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- Utf8Conv *preferred_charsets;
- XlcCharSet last_charset = NULL;
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- preferred_charsets = (Utf8Conv *) conv->state;
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- ucs4_t wc;
- int consumed;
- int count;
-
- consumed = utf8_mbtowc(NULL, &wc, src, srcend-src);
- if (consumed == RET_TOOFEW(0))
- break;
- if (consumed == RET_ILSEQ) {
- src++;
- unconv_num++;
- continue;
- }
-
- count = charset_wctocs(preferred_charsets, &chosen_charset, &chosen_side, conv, dst, wc, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- src += consumed;
- unconv_num++;
- continue;
- }
-
- if (last_charset == NULL) {
- last_charset =
- _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- if (last_charset == NULL) {
- src += consumed;
- unconv_num++;
- continue;
- }
- } else {
- if (!(last_charset->xrm_encoding_name == chosen_charset->xrm_name
- && (last_charset->side == XlcGLGR
- || last_charset->side == chosen_side)))
- break;
- }
- src += consumed;
- dst += count;
- break;
- }
-
- if (last_charset == NULL)
- return -1;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = last_charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_utf8tocs1 = {
- close_tocs_converter,
- utf8tocs1,
- NULL
-};
-
-static XlcConv
-open_utf8tocs1(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tocs_conv(from_lcd, &methods_utf8tocs1);
-}
-
-/* from XlcNUtf8String to XlcNString */
-
-static int
-utf8tostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend) {
- unsigned char c;
- ucs4_t wc;
- int consumed;
-
- consumed = utf8_mbtowc(NULL, &wc, src, srcend-src);
- if (consumed == RET_TOOFEW(0))
- break;
- if (dst == dstend)
- break;
- if (consumed == RET_ILSEQ) {
- consumed = 1;
- c = BAD_CHAR;
- unconv_num++;
- } else {
- if ((wc & ~(ucs4_t)0xff) != 0) {
- c = BAD_CHAR;
- unconv_num++;
- } else
- c = (unsigned char) wc;
- }
- *dst++ = c;
- src += consumed;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_utf8tostr = {
- close_converter,
- utf8tostr,
- NULL
-};
-
-static XlcConv
-open_utf8tostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_utf8tostr);
-}
-
-/* from XlcNString to XlcNUtf8String */
-
-static int
-strtoutf8(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
-
- while (src < srcend) {
- int count = utf8_wctomb(NULL, dst, *src, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- dst += count;
- src++;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return 0;
-}
-
-static XlcConvMethodsRec methods_strtoutf8 = {
- close_converter,
- strtoutf8,
- NULL
-};
-
-static XlcConv
-open_strtoutf8(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_strtoutf8);
-}
-
-/* Support for the input methods. */
-
-XPointer
-_Utf8GetConvByName(
- const char *name)
-{
- XrmQuark xrm_name;
- Utf8Conv convptr;
- int i;
-
- if (name == NULL)
- return (XPointer) NULL;
-
- lazy_init_all_charsets();
- xrm_name = XrmStringToQuark(name);
-
- for (convptr = all_charsets, i = all_charsets_count-1; i > 0; convptr++, i--)
- if (convptr->xrm_name == xrm_name)
- return (XPointer) convptr->wctocs;
- return (XPointer) NULL;
-}
-
-/* from XlcNUcsChar to XlcNChar, needed for input methods */
-
-static XlcConv
-create_ucstocs_conv(
- XLCd lcd,
- XlcConvMethods methods)
-{
-
- if (XLC_PUBLIC_PART(lcd)->codeset
- && _XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "UTF-8") == 0) {
- XlcConv conv;
- Utf8Conv *preferred;
-
- lazy_init_all_charsets();
-
- conv = Xmalloc(sizeof(XlcConvRec) + 2 * sizeof(Utf8Conv));
- if (conv == (XlcConv) NULL)
- return (XlcConv) NULL;
- preferred = (Utf8Conv *) ((char *) conv + sizeof(XlcConvRec));
-
- preferred[0] = &all_charsets[0]; /* ISO10646 */
- preferred[1] = (Utf8Conv) NULL;
-
- conv->methods = methods;
- conv->state = (XPointer) preferred;
-
- return conv;
- } else {
- return create_tocs_conv(lcd, methods);
- }
-}
-
-static int
-charset_wctocs_exactly(
- Utf8Conv *preferred,
- Utf8Conv *charsetp,
- XlcSide *sidep,
- XlcConv conv,
- unsigned char *r,
- ucs4_t wc,
- int n)
-{
- int count;
- Utf8Conv convptr;
-
- for (; *preferred != (Utf8Conv) NULL; preferred++) {
- convptr = *preferred;
- count = convptr->wctocs(conv, r, wc, n);
- if (count == RET_TOOSMALL)
- return RET_TOOSMALL;
- if (count != RET_ILSEQ) {
- *charsetp = convptr;
- *sidep = (*r < 0x80 ? XlcGL : XlcGR);
- return count;
- }
- }
- return RET_ILSEQ;
-}
-
-static int
-ucstocs1(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- ucs4_t const *src;
- unsigned char *dst = (unsigned char *) *to;
- int unconv_num = 0;
- Utf8Conv *preferred_charsets = (Utf8Conv *) conv->state;
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- XlcCharSet charset = NULL;
- int count;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (ucs4_t const *) *from;
-
- count = charset_wctocs_exactly(preferred_charsets, &chosen_charset,
- &chosen_side, conv, dst, *src, *to_left);
- if (count < 1) {
- unconv_num++;
- count = 0;
- } else {
- charset = _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- }
- if (charset == NULL)
- return -1;
-
- *from = (XPointer) ++src;
- (*from_left)--;
- *to = (XPointer) dst;
- *to_left -= count;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_ucstocs1 = {
- close_tocs_converter,
- ucstocs1,
- NULL
-};
-
-static XlcConv
-open_ucstocs1(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_ucstocs_conv(from_lcd, &methods_ucstocs1);
-}
-
-/* from XlcNUcsChar to XlcNUtf8String, needed for input methods */
-
-static int
-ucstoutf8(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- const ucs4_t *src;
- const ucs4_t *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (const ucs4_t *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend) {
- int count = utf8_wctomb(NULL, dst, *src, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ)
- unconv_num++;
- src++;
- dst += count;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_ucstoutf8 = {
- close_converter,
- ucstoutf8,
- NULL
-};
-
-static XlcConv
-open_ucstoutf8(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_ucstoutf8);
-}
-
-/* Registers UTF-8 converters for a non-UTF-8 locale. */
-void
-_XlcAddUtf8Converters(
- XLCd lcd)
-{
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String, open_cstoutf8);
- _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNCharSet, open_utf8tocs);
- _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNChar, open_utf8tocs1);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNUtf8String, open_strtoutf8);
- _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNString, open_utf8tostr);
- _XlcSetConverter(lcd, XlcNUcsChar, lcd, XlcNChar, open_ucstocs1);
- _XlcSetConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String, open_ucstoutf8);
-}
-
-/***************************************************************************/
-/* Part II: UTF-8 locale loader conversion files
- *
- * Here we can assume that "multi-byte" is UTF-8 and that `wchar_t' is Unicode.
- */
-
-/* from XlcNMultiByte to XlcNWideChar */
-
-static int
-utf8towcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- wchar_t *dst;
- wchar_t *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (wchar_t *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- ucs4_t wc;
- int consumed = utf8_mbtowc(NULL, &wc, src, srcend-src);
- if (consumed == RET_TOOFEW(0))
- break;
- if (consumed == RET_ILSEQ) {
- src++;
- *dst = BAD_WCHAR;
- unconv_num++;
- } else {
- src += consumed;
- *dst = wc;
- }
- dst++;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_utf8towcs = {
- close_converter,
- utf8towcs,
- NULL
-};
-
-static XlcConv
-open_utf8towcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_utf8towcs);
-}
-
-/* from XlcNWideChar to XlcNMultiByte */
-
-static int
-wcstoutf8(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- wchar_t const *src;
- wchar_t const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (wchar_t const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend) {
- int count = utf8_wctomb(NULL, dst, *src, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- count = utf8_wctomb(NULL, dst, BAD_WCHAR, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- unconv_num++;
- }
- dst += count;
- src++;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_wcstoutf8 = {
- close_converter,
- wcstoutf8,
- NULL
-};
-
-static XlcConv
-open_wcstoutf8(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_wcstoutf8);
-}
-
-/* from XlcNString to XlcNWideChar */
-
-static int
-our_strtowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- wchar_t *dst;
- wchar_t *dstend;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (wchar_t *) *to;
- dstend = dst + *to_left;
-
- while (src < srcend && dst < dstend)
- *dst++ = (wchar_t) *src++;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return 0;
-}
-
-static XlcConvMethodsRec methods_strtowcs = {
- close_converter,
- our_strtowcs,
- NULL
-};
-
-static XlcConv
-open_strtowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_strtowcs);
-}
-
-/* from XlcNWideChar to XlcNString */
-
-static int
-our_wcstostr(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- wchar_t const *src;
- wchar_t const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (wchar_t const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- unsigned int wc = *src++;
- if (wc < 0x80)
- *dst = wc;
- else {
- *dst = BAD_CHAR;
- unconv_num++;
- }
- dst++;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_wcstostr = {
- close_converter,
- our_wcstostr,
- NULL
-};
-
-static XlcConv
-open_wcstostr(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_wcstostr);
-}
-
-/* from XlcNCharSet to XlcNWideChar */
-
-static int
-cstowcs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XlcCharSet charset;
- const char *name;
- Utf8Conv convptr;
- int i;
- unsigned char const *src;
- unsigned char const *srcend;
- wchar_t *dst;
- wchar_t *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- if (num_args < 1)
- return -1;
-
- charset = (XlcCharSet) args[0];
- name = charset->encoding_name;
- /* not charset->name because the latter has a ":GL"/":GR" suffix */
-
- for (convptr = all_charsets, i = all_charsets_count-1; i > 0; convptr++, i--)
- if (!strcmp(convptr->name, name))
- break;
- if (i == 0)
- return -1;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (wchar_t *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- unsigned int wc;
- int consumed;
-
- consumed = convptr->cstowc(conv, &wc, src, srcend-src);
- if (consumed == RET_ILSEQ)
- return -1;
- if (consumed == RET_TOOFEW(0))
- break;
-
- *dst++ = wc;
- src += consumed;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_cstowcs = {
- close_converter,
- cstowcs,
- NULL
-};
-
-static XlcConv
-open_cstowcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- lazy_init_all_charsets();
- return create_conv(from_lcd, &methods_cstowcs);
-}
-
-/* from XlcNWideChar to XlcNCharSet */
-
-static int
-wcstocs(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- Utf8Conv *preferred_charsets;
- XlcCharSet last_charset = NULL;
- wchar_t const *src;
- wchar_t const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- preferred_charsets = (Utf8Conv *) conv->state;
- src = (wchar_t const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- wchar_t wc = *src;
- int count;
-
- count = charset_wctocs(preferred_charsets, &chosen_charset, &chosen_side, conv, dst, wc, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- src++;
- unconv_num++;
- continue;
- }
-
- if (last_charset == NULL) {
- last_charset =
- _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- if (last_charset == NULL) {
- src++;
- unconv_num++;
- continue;
- }
- } else {
- if (!(last_charset->xrm_encoding_name == chosen_charset->xrm_name
- && (last_charset->side == XlcGLGR
- || last_charset->side == chosen_side)))
- break;
- }
- src++;
- dst += count;
- }
-
- if (last_charset == NULL)
- return -1;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = last_charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_wcstocs = {
- close_tocs_converter,
- wcstocs,
- NULL
-};
-
-static XlcConv
-open_wcstocs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tocs_conv(from_lcd, &methods_wcstocs);
-}
-
-/* from XlcNWideChar to XlcNChar */
-
-static int
-wcstocs1(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- Utf8Conv *preferred_charsets;
- XlcCharSet last_charset = NULL;
- wchar_t const *src;
- wchar_t const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- preferred_charsets = (Utf8Conv *) conv->state;
- src = (wchar_t const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- wchar_t wc = *src;
- int count;
-
- count = charset_wctocs(preferred_charsets, &chosen_charset, &chosen_side, conv, dst, wc, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- src++;
- unconv_num++;
- continue;
- }
-
- if (last_charset == NULL) {
- last_charset =
- _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- if (last_charset == NULL) {
- src++;
- unconv_num++;
- continue;
- }
- } else {
- if (!(last_charset->xrm_encoding_name == chosen_charset->xrm_name
- && (last_charset->side == XlcGLGR
- || last_charset->side == chosen_side)))
- break;
- }
- src++;
- dst += count;
- break;
- }
-
- if (last_charset == NULL)
- return -1;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = last_charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec methods_wcstocs1 = {
- close_tocs_converter,
- wcstocs1,
- NULL
-};
-
-static XlcConv
-open_wcstocs1(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tocs_conv(from_lcd, &methods_wcstocs1);
-}
-
-/* trivial, no conversion */
-
-static int
-identity(
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
-
- while (src < srcend && dst < dstend)
- *dst++ = *src++;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return 0;
-}
-
-static XlcConvMethodsRec methods_identity = {
- close_converter,
- identity,
- NULL
-};
-
-static XlcConv
-open_identity(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_conv(from_lcd, &methods_identity);
-}
-
-/* from MultiByte/WideChar to FontCharSet. */
-/* They really use converters to CharSet
- * but with different create_conv procedure. */
-
-static XlcConv
-create_tofontcs_conv(
- XLCd lcd,
- XlcConvMethods methods)
-{
- XlcConv conv;
- int i, num, k, count;
- char **value, buf[20];
- Utf8Conv *preferred;
-
- lazy_init_all_charsets();
-
- for (i = 0, num = 0;; i++) {
- snprintf(buf, sizeof(buf), "fs%d.charset.name", i);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1) {
- snprintf(buf, sizeof(buf), "fs%d.charset", i);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1)
- break;
- }
- num += count;
- }
-
- conv = Xmalloc(sizeof(XlcConvRec) + (num + 1) * sizeof(Utf8Conv));
- if (conv == (XlcConv) NULL)
- return (XlcConv) NULL;
- preferred = (Utf8Conv *) ((char *) conv + sizeof(XlcConvRec));
-
- /* Loop through all fontsets mentioned in the locale. */
- for (i = 0, num = 0;; i++) {
- snprintf(buf, sizeof(buf), "fs%d.charset.name", i);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1) {
- snprintf(buf, sizeof(buf), "fs%d.charset", i);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1)
- break;
- }
- while (count-- > 0) {
- XlcCharSet charset = _XlcGetCharSet(*value++);
- const char *name;
-
- if (charset == (XlcCharSet) NULL)
- continue;
-
- name = charset->encoding_name;
- /* If it wasn't already encountered... */
- for (k = num - 1; k >= 0; k--)
- if (!strcmp(preferred[k]->name, name))
- break;
- if (k < 0) {
- /* For fonts "ISO10646-1" means ucs2, not utf8.*/
- if (!strcmp("ISO10646-1", name)) {
- preferred[num++] = &all_charsets[ucs2_conv_index];
- continue;
- }
- /* Look it up in all_charsets[]. */
- for (k = 0; k < all_charsets_count-1; k++)
- if (!strcmp(all_charsets[k].name, name)) {
- /* Add it to the preferred set. */
- preferred[num++] = &all_charsets[k];
- break;
- }
- }
- }
- }
- preferred[num] = (Utf8Conv) NULL;
-
- conv->methods = methods;
- conv->state = (XPointer) preferred;
-
- return conv;
-}
-
-static XlcConv
-open_wcstofcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tofontcs_conv(from_lcd, &methods_wcstocs);
-}
-
-static XlcConv
-open_utf8tofcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tofontcs_conv(from_lcd, &methods_utf8tocs);
-}
-
-/* ========================== iconv Stuff ================================ */
-
-/* from XlcNCharSet to XlcNMultiByte */
-
-static int
-iconv_cstombs(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- XlcCharSet charset;
- char const *name;
- Utf8Conv convptr;
- int i;
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- if (num_args < 1)
- return -1;
-
- charset = (XlcCharSet) args[0];
- name = charset->encoding_name;
- /* not charset->name because the latter has a ":GL"/":GR" suffix */
-
- for (convptr = all_charsets, i = all_charsets_count-1; i > 0; convptr++, i--)
- if (!strcmp(convptr->name, name))
- break;
- if (i == 0)
- return -1;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend) {
- ucs4_t wc;
- int consumed;
- int count;
-
- consumed = convptr->cstowc(conv, &wc, src, srcend-src);
- if (consumed == RET_ILSEQ)
- return -1;
- if (consumed == RET_TOOFEW(0))
- break;
-
- /* Use stdc iconv to convert widechar -> multibyte */
-
- count = wctomb((char *)dst, wc);
- if (count == 0)
- break;
- if (count == -1) {
- count = wctomb((char *)dst, BAD_WCHAR);
- if (count == 0)
- break;
- unconv_num++;
- }
- src += consumed;
- dst += count;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-
-}
-
-static XlcConvMethodsRec iconv_cstombs_methods = {
- close_converter,
- iconv_cstombs,
- NULL
-};
-
-static XlcConv
-open_iconv_cstombs(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- lazy_init_all_charsets();
- return create_conv(from_lcd, &iconv_cstombs_methods);
-}
-
-static int
-iconv_mbstocs(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- Utf8Conv *preferred_charsets;
- XlcCharSet last_charset = NULL;
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- preferred_charsets = (Utf8Conv *) conv->state;
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- wchar_t wc;
- int consumed;
- int count;
-
- /* Uses stdc iconv to convert multibyte -> widechar */
-
- consumed = mbtowc(&wc, (const char *)src, srcend-src);
- if (consumed == 0)
- break;
- if (consumed == -1) {
- src++;
- unconv_num++;
- continue;
- }
-
- count = charset_wctocs(preferred_charsets, &chosen_charset, &chosen_side, conv, dst, wc, dstend-dst);
-
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- src += consumed;
- unconv_num++;
- continue;
- }
-
- if (last_charset == NULL) {
- last_charset =
- _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- if (last_charset == NULL) {
- src += consumed;
- unconv_num++;
- continue;
- }
- } else {
- if (!(last_charset->xrm_encoding_name == chosen_charset->xrm_name
- && (last_charset->side == XlcGLGR
- || last_charset->side == chosen_side)))
- break;
- }
- src += consumed;
- dst += count;
- }
-
- if (last_charset == NULL)
- return -1;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = last_charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec iconv_mbstocs_methods = {
- close_tocs_converter,
- iconv_mbstocs,
- NULL
-};
-
-static XlcConv
-open_iconv_mbstocs(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- return create_tocs_conv(from_lcd, &iconv_mbstocs_methods);
-}
-
-/* from XlcNMultiByte to XlcNChar */
-
-static int
-iconv_mbtocs(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- Utf8Conv *preferred_charsets;
- XlcCharSet last_charset = NULL;
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- preferred_charsets = (Utf8Conv *) conv->state;
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend && dst < dstend) {
- Utf8Conv chosen_charset = NULL;
- XlcSide chosen_side = XlcNONE;
- wchar_t wc;
- int consumed;
- int count;
-
- /* Uses stdc iconv to convert multibyte -> widechar */
-
- consumed = mbtowc(&wc, (const char *)src, srcend-src);
- if (consumed == 0)
- break;
- if (consumed == -1) {
- src++;
- unconv_num++;
- continue;
- }
-
- count = charset_wctocs(preferred_charsets, &chosen_charset, &chosen_side, conv, dst, wc, dstend-dst);
- if (count == RET_TOOSMALL)
- break;
- if (count == RET_ILSEQ) {
- src += consumed;
- unconv_num++;
- continue;
- }
-
- if (last_charset == NULL) {
- last_charset =
- _XlcGetCharSetWithSide(chosen_charset->name, chosen_side);
- if (last_charset == NULL) {
- src += consumed;
- unconv_num++;
- continue;
- }
- } else {
- if (!(last_charset->xrm_encoding_name == chosen_charset->xrm_name
- && (last_charset->side == XlcGLGR
- || last_charset->side == chosen_side)))
- break;
- }
- src += consumed;
- dst += count;
- }
-
- if (last_charset == NULL)
- return -1;
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- if (num_args >= 1)
- *((XlcCharSet *)args[0]) = last_charset;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec iconv_mbtocs_methods = {
- close_tocs_converter,
- iconv_mbtocs,
- NULL
-};
-
-static XlcConv
-open_iconv_mbtocs(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- return create_tocs_conv(from_lcd, &iconv_mbtocs_methods );
-}
-
-/* from XlcNMultiByte to XlcNString */
-
-static int
-iconv_mbstostr(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
- int unconv_num;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
- unconv_num = 0;
-
- while (src < srcend) {
- unsigned char c;
- wchar_t wc;
- int consumed;
-
- /* Uses stdc iconv to convert multibyte -> widechar */
-
- consumed = mbtowc(&wc, (const char *)src, srcend-src);
- if (consumed == 0)
- break;
- if (dst == dstend)
- break;
- if (consumed == -1) {
- consumed = 1;
- c = BAD_CHAR;
- unconv_num++;
- } else {
- if ((wc & ~(wchar_t)0xff) != 0) {
- c = BAD_CHAR;
- unconv_num++;
- } else
- c = (unsigned char) wc;
- }
- *dst++ = c;
- src += consumed;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec iconv_mbstostr_methods = {
- close_converter,
- iconv_mbstostr,
- NULL
-};
-
-static XlcConv
-open_iconv_mbstostr(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- return create_conv(from_lcd, &iconv_mbstostr_methods);
-}
-
-/* from XlcNString to XlcNMultiByte */
-static int
-iconv_strtombs(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- unsigned char const *src;
- unsigned char const *srcend;
- unsigned char *dst;
- unsigned char *dstend;
-
- if (from == NULL || *from == NULL)
- return 0;
-
- src = (unsigned char const *) *from;
- srcend = src + *from_left;
- dst = (unsigned char *) *to;
- dstend = dst + *to_left;
-
- while (src < srcend) {
- int count = wctomb((char *)dst, *src);
- if (count < 0)
- break;
- dst += count;
- src++;
- }
-
- *from = (XPointer) src;
- *from_left = srcend - src;
- *to = (XPointer) dst;
- *to_left = dstend - dst;
-
- return 0;
-}
-
-static XlcConvMethodsRec iconv_strtombs_methods= {
- close_converter,
- iconv_strtombs,
- NULL
-};
-
-static XlcConv
-open_iconv_strtombs(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- return create_conv(from_lcd, &iconv_strtombs_methods);
-}
-
-/***************************************************************************/
-/* Part II: An iconv locale loader.
- *
- *Here we can assume that "multi-byte" is iconv and that `wchar_t' is Unicode.
- */
-
-/* from XlcNMultiByte to XlcNWideChar */
-static int
-iconv_mbstowcs(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- char *src = *((char **) from);
- wchar_t *dst = *((wchar_t **) to);
- int src_left = *from_left;
- int dst_left = *to_left;
- int length, unconv_num = 0;
-
- while (src_left > 0 && dst_left > 0) {
- length = mbtowc(dst, src, src_left);
-
- if (length > 0) {
- src += length;
- src_left -= length;
- if (dst)
- dst++;
- dst_left--;
- } else if (length < 0) {
- src++;
- src_left--;
- unconv_num++;
- } else {
- /* null ? */
- src++;
- src_left--;
- if (dst)
- *dst++ = L'\0';
- dst_left--;
- }
- }
-
- *from = (XPointer) src;
- if (dst)
- *to = (XPointer) dst;
- *from_left = src_left;
- *to_left = dst_left;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec iconv_mbstowcs_methods = {
- close_converter,
- iconv_mbstowcs,
- NULL
-} ;
-
-static XlcConv
-open_iconv_mbstowcs(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- return create_conv(from_lcd, &iconv_mbstowcs_methods);
-}
-
-static int
-iconv_wcstombs(XlcConv conv, XPointer *from, int *from_left,
- XPointer *to, int *to_left, XPointer *args, int num_args)
-{
- wchar_t *src = *((wchar_t **) from);
- char *dst = *((char **) to);
- int src_left = *from_left;
- int dst_left = *to_left;
- int length, unconv_num = 0;
-
- while (src_left > 0 && dst_left >= MB_CUR_MAX) {
- length = wctomb(dst, *src); /* XXX */
-
- if (length > 0) {
- src++;
- src_left--;
- if (dst)
- dst += length;
- dst_left -= length;
- } else if (length < 0) {
- src++;
- src_left--;
- unconv_num++;
- }
- }
-
- *from = (XPointer) src;
- if (dst)
- *to = (XPointer) dst;
- *from_left = src_left;
- *to_left = dst_left;
-
- return unconv_num;
-}
-
-static XlcConvMethodsRec iconv_wcstombs_methods = {
- close_converter,
- iconv_wcstombs,
- NULL
-} ;
-
-static XlcConv
-open_iconv_wcstombs(XLCd from_lcd, const char *from_type, XLCd to_lcd, const char *to_type)
-{
- return create_conv(from_lcd, &iconv_wcstombs_methods);
-}
-
-static XlcConv
-open_iconv_mbstofcs(
- XLCd from_lcd,
- const char *from_type,
- XLCd to_lcd,
- const char *to_type)
-{
- return create_tofontcs_conv(from_lcd, &iconv_mbstocs_methods);
-}
-
-/* Registers UTF-8 converters for a UTF-8 locale. */
-
-void
-_XlcAddUtf8LocaleConverters(
- XLCd lcd)
-{
- /* Register elementary converters. */
-
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_utf8towcs);
-
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstoutf8);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
-
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
-
- /* Register converters for XlcNCharSet. This implicitly provides
- * converters from and to XlcNCompoundText. */
-
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstoutf8);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_utf8tocs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_utf8tocs1);
-
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wcstocs1);
-
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtoutf8);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_utf8tostr);
- _XlcSetConverter(lcd, XlcNUtf8String, lcd, XlcNMultiByte, open_identity);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNUtf8String, open_identity);
-
- /* Register converters for XlcNFontCharSet */
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNFontCharSet, open_utf8tofcs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNFontCharSet, open_wcstofcs);
-}
-
-void
-_XlcAddGB18030LocaleConverters(
- XLCd lcd)
-{
-
- /* Register elementary converters. */
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_iconv_mbstowcs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_iconv_wcstombs);
-
- /* Register converters for XlcNCharSet. This implicitly provides
- * converters from and to XlcNCompoundText. */
-
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_iconv_cstombs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_iconv_mbstocs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_iconv_mbtocs);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_iconv_strtombs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_iconv_mbstostr);
-
- /* Register converters for XlcNFontCharSet */
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNFontCharSet, open_iconv_mbstofcs);
-
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wcstocs1);
-
- /* Register converters for XlcNFontCharSet */
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNFontCharSet, open_wcstofcs);
-}
diff --git a/nx-X11/lib/X11/lcUTF8Load.c b/nx-X11/lib/X11/lcUTF8Load.c
deleted file mode 100644
index 82ea3b54d..000000000
--- a/nx-X11/lib/X11/lcUTF8Load.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/******************************************************************
-
- Copyright 1993 by SunSoft, Inc.
- Copyright 1999-2000 by Bruno Haible
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the names of SunSoft, Inc. and
-Bruno Haible not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission. SunSoft, Inc. and Bruno Haible make no representations
-about the suitability of this software for any purpose. It is
-provided "as is" without express or implied warranty.
-
-SunSoft Inc. AND Bruno Haible DISCLAIM ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS, IN NO EVENT SHALL SunSoft, Inc. OR Bruno Haible BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/*
- * This file contains the UTF-8 locale loader.
- * Supports: all locales with codeset UTF-8.
- * Platforms: all systems.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include "Xlibint.h"
-#include "XlcPubI.h"
-#include "XlcGeneric.h"
-
-XLCd
-_XlcUtf8Loader(
- const char *name)
-{
- XLCd lcd;
-
- lcd = _XlcCreateLC(name, _XlcGenericMethods);
- if (lcd == (XLCd) NULL)
- return lcd;
-
- /* The official IANA name for UTF-8 is "UTF-8" in upper case with a dash. */
- if (!XLC_PUBLIC_PART(lcd)->codeset) {
- _XlcDestroyLC(lcd);
- return (XLCd) NULL;
- }
- else if (!_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "UTF-8")) {
- _XlcAddUtf8LocaleConverters(lcd);
- }
- else if (!_XlcCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "GB18030")) {
- _XlcAddGB18030LocaleConverters(lcd);
- }
- else {
- _XlcDestroyLC(lcd);
- return (XLCd) NULL;
- }
-
- _XlcAddUtf8Converters(lcd);
-
- return lcd;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/armscii_8.h b/nx-X11/lib/X11/lcUniConv/armscii_8.h
deleted file mode 100644
index 567bfeac2..000000000
--- a/nx-X11/lib/X11/lcUniConv/armscii_8.h
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/*
- * ARMSCII-8
- */
-
-static const unsigned short armscii_8_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0xfffd, 0x0587, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab,
- 0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x058a, 0x2026, 0x055c,
- /* 0xb0 */
- 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
- 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
- /* 0xc0 */
- 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b,
- 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f,
- /* 0xd0 */
- 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
- 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
- /* 0xe0 */
- 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b,
- 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
- /* 0xf0 */
- 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
- 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055a, 0xfffd,
-};
-
-static int
-armscii_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = armscii_8_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char armscii_8_page00[8] = {
- 0xa5, 0xa4, 0x2a, 0x2b, 0xab, 0xac, 0xa9, 0x2f, /* 0x28-0x2f */
-};
-static const unsigned char armscii_8_page00_1[32] = {
- 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
-};
-static const unsigned char armscii_8_page05[96] = {
- 0x00, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, /* 0x30-0x37 */
- 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, /* 0x38-0x3f */
- 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, /* 0x40-0x47 */
- 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, /* 0x48-0x4f */
- 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0xfe, 0xb0, 0xaf, 0xaa, 0xb1, 0x00, /* 0x58-0x5f */
- 0x00, 0xb3, 0xb5, 0xb7, 0xb9, 0xbb, 0xbd, 0xbf, /* 0x60-0x67 */
- 0xc1, 0xc3, 0xc5, 0xc7, 0xc9, 0xcb, 0xcd, 0xcf, /* 0x68-0x6f */
- 0xd1, 0xd3, 0xd5, 0xd7, 0xd9, 0xdb, 0xdd, 0xdf, /* 0x70-0x77 */
- 0xe1, 0xe3, 0xe5, 0xe7, 0xe9, 0xeb, 0xed, 0xef, /* 0x78-0x7f */
- 0xf1, 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfd, 0xa2, /* 0x80-0x87 */
- 0x00, 0xa3, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
-};
-static const unsigned char armscii_8_page20[24] = {
- 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x20-0x27 */
-};
-
-static int
-armscii_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0028) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x0028 && wc < 0x0030)
- c = armscii_8_page00[wc-0x0028];
- else if (wc >= 0x0030 && wc < 0x00a0)
- c = wc;
- else if (wc >= 0x00a0 && wc < 0x00c0)
- c = armscii_8_page00_1[wc-0x00a0];
- else if (wc >= 0x0530 && wc < 0x0590)
- c = armscii_8_page05[wc-0x0530];
- else if (wc >= 0x2010 && wc < 0x2028)
- c = armscii_8_page20[wc-0x2010];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/big5.h b/nx-X11/lib/X11/lcUniConv/big5.h
deleted file mode 100644
index db439088b..000000000
--- a/nx-X11/lib/X11/lcUniConv/big5.h
+++ /dev/null
@@ -1,4141 +0,0 @@
-
-/*
- * BIG5
- */
-
-static const unsigned short big5_2uni_pagea1[6121] = {
- /* 0xa1 */
- 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2022, 0xff1b, 0xff1a,
- 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xff64, 0xfe52,
- 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31,
- 0x2014, 0xfe33, 0xfffd, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35,
- 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39,
- 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d,
- 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41,
- 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b,
- 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d,
- 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7,
- 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605,
- 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105,
- 0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e,
- 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7,
- 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267,
- 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65,
- 0xfe66, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf,
- 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642,
- 0x2641, 0x2609, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197,
- 0x2199, 0x2198, 0x2225, 0x2223, 0xfffd,
- /* 0xa2 */
- 0xfffd, 0xff0f, 0xff3c, 0xff04, 0x00a5, 0x3012, 0x00a2, 0x00a3,
- 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5,
- 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4,
- 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7,
- 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586,
- 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a,
- 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500,
- 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e,
- 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3,
- 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12,
- 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160,
- 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168,
- 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027,
- 0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd, 0xff21, 0xff22, 0xff23,
- 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b,
- 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33,
- 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41,
- 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49,
- 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51,
- 0xff52, 0xff53, 0xff54, 0xff55, 0xff56,
- /* 0xa3 */
- 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394,
- 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c,
- 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5,
- 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4,
- 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc,
- 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5,
- 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108,
- 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110,
- 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118,
- 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120,
- 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
- 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa4 */
- 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c,
- 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b,
- 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a,
- 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e,
- 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f,
- 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8,
- 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2,
- 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11,
- 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88,
- 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3,
- 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141,
- 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206, 0x5207,
- 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348, 0x5347,
- 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec, 0x5929,
- 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a, 0x5c6f,
- 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208, 0x6236,
- 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9, 0x65e5,
- 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb, 0x6bd4,
- 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b, 0x7247,
- 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19,
- /* 0xa5 */
- 0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e,
- 0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4,
- 0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9,
- 0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317,
- 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e,
- 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8,
- 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1,
- 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x592e,
- 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, 0x5de7,
- 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, 0x5f17,
- 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, 0x65e6,
- 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, 0x6c11,
- 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, 0x7389,
- 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, 0x7531,
- 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, 0x77db,
- 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e, 0x4e1f,
- 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5, 0x4eff,
- 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11, 0x4f0f,
- 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01, 0x4f0b,
- 0x5149, 0x5147, 0x5146, 0x5148, 0x5168,
- /* 0xa6 */
- 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216,
- 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f,
- 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d,
- 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd,
- 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919,
- 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979,
- 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89,
- 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x5f0f,
- 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210, 0x6263,
- 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed, 0x66f2,
- 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21, 0x6b64,
- 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60, 0x6c50,
- 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f, 0x725d,
- 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd, 0x8001,
- 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b, 0x808c,
- 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f, 0x826e,
- 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f, 0x9621,
- 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e, 0x4f34,
- 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a, 0x4f38,
- 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63,
- /* 0xa7 */
- 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48,
- 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225,
- 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac,
- 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426,
- 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b,
- 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436,
- 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea,
- 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x5747,
- 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, 0x599d,
- 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, 0x59a4,
- 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, 0x5b8c,
- 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e, 0x5c90,
- 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87, 0x5e8a,
- 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79, 0x5fd8,
- 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea, 0x6212,
- 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289, 0x626d,
- 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f, 0x6298,
- 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b, 0x6538,
- 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751, 0x675c,
- 0x6756, 0x675e, 0x6749, 0x6746, 0x6760,
- /* 0xa8 */
- 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81,
- 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70,
- 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e,
- 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076,
- 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2,
- 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3,
- 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093,
- 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x828b,
- 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55, 0x8c9d,
- 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0, 0x8fc2,
- 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa, 0x90a6,
- 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631, 0x962a,
- 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e, 0x4eab,
- 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c, 0x4f9b,
- 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69, 0x4f7b,
- 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152, 0x5155,
- 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b, 0x5238,
- 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be, 0x52bb,
- 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378, 0x5379,
- 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475,
- /* 0xa9 */
- 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492,
- 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462,
- 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a,
- 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947,
- 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae,
- 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af,
- 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a,
- 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x5c46,
- 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3, 0x5e18,
- 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a, 0x5e97,
- 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29, 0x5f80,
- 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5, 0x5fff,
- 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015, 0x6021,
- 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f, 0x623e,
- 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2, 0x62b9,
- 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8, 0x62a8,
- 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5, 0x62da,
- 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce, 0x653e,
- 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606, 0x6602,
- 0x660e, 0x6600, 0x660f, 0x6615, 0x660a,
- /* 0xaa */
- 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c,
- 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f,
- 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a,
- 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3,
- 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe,
- 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9,
- 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1,
- 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x7095,
- 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238, 0x7248,
- 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0, 0x73a9,
- 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599, 0x759a,
- 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e, 0x7940,
- 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe, 0x7f54,
- 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1, 0x80a1,
- 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe, 0x820d,
- 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9, 0x82b1,
- 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be, 0x82b7,
- 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1,
- 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577, 0x9580,
- 0x961c, 0x9640, 0x963f, 0x963b, 0x9644,
- /* 0xab */
- 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae,
- 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd,
- 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0,
- 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192,
- 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b,
- 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b,
- 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8,
- 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x54c4,
- 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7, 0x54bf,
- 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce, 0x57ae,
- 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc, 0x59d8,
- 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da, 0x59e6,
- 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2, 0x5ba5,
- 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2, 0x5df7,
- 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa, 0x5f08,
- 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c,
- 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028, 0x604d,
- 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b, 0x606a,
- 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301,
- 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7,
- /* 0xac */
- 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545,
- 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f,
- 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1,
- 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef,
- 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de,
- 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83,
- 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32,
- 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x6d3b,
- 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27, 0x6d38,
- 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba, 0x70b3,
- 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230, 0x7272,
- 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca, 0x73bb,
- 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f, 0x754c,
- 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3, 0x7678,
- 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5, 0x7701,
- 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707, 0x77dc,
- 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948, 0x7947,
- 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81, 0x7aff,
- 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07, 0x7d04,
- 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004,
- /* 0xad */
- 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3,
- 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd,
- 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6,
- 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301,
- 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306,
- 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4,
- 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4,
- 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x8fed,
- 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3, 0x914b,
- 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d, 0x9762,
- 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db, 0x98df,
- 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023, 0x4fef,
- 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c, 0x501f,
- 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028, 0x4ff1,
- 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d, 0x502a,
- 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2, 0x51cd,
- 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b, 0x525d,
- 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510, 0x5501,
- 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514, 0x54e9,
- 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea,
- /* 0xae */
- 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2,
- 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a,
- 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20,
- 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0,
- 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04,
- 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8,
- 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab,
- 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x6063,
- 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084, 0x609f,
- 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247, 0x62f3,
- 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342, 0x6346,
- 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b, 0x6328,
- 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5, 0x6642,
- 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641, 0x66f8,
- 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846, 0x6853,
- 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851,
- 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a, 0x6845,
- 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27,
- 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87,
- 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93,
- /* 0xaf */
- 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a,
- 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9,
- 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8,
- 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de,
- 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7,
- 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b,
- 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728,
- 0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x7825,
- 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960, 0x795f,
- 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3, 0x79e7,
- 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9, 0x7b06,
- 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20, 0x7d22,
- 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b,
- 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018, 0x8015,
- 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105,
- 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a,
- 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b,
- 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a, 0x8338,
- 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339, 0x8336,
- 0x8317, 0x8340, 0x8331, 0x8328, 0x8343,
- /* 0xb0 */
- 0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3,
- 0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18,
- 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16,
- 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77,
- 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7,
- 0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095,
- 0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd,
- 0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x965b,
- 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac, 0x9aa8,
- 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d, 0x505c,
- 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076, 0x504e,
- 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d,
- 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8,
- 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3,
- 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543,
- 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538,
- 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708,
- 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4,
- 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36,
- 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40,
- /* 0xb1 */
- 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5,
- 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60,
- 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22,
- 0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2,
- 0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5,
- 0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97,
- 0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3,
- 0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5,
- 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df,
- 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7,
- 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa,
- 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384,
- 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b,
- 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559, 0x6557,
- 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac,
- 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668,
- 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2,
- 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0,
- 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8,
- 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba,
- /* 0xb2 */
- 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2,
- 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb,
- 0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5,
- 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea,
- 0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf,
- 0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d,
- 0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405,
- 0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7,
- 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4,
- 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db,
- 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843,
- 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20,
- 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92,
- 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c,
- 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31,
- 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a,
- 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124,
- 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398,
- 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393,
- 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c,
- /* 0xb3 */
- 0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4,
- 0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e,
- 0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f,
- 0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b,
- 0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa,
- 0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019,
- 0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015,
- 0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8,
- 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7,
- 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678, 0x9670,
- 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0,
- 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5,
- 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096,
- 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269,
- 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7,
- 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594,
- 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2,
- 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599,
- 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821,
- 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960,
- /* 0xb4 */
- 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71,
- 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c,
- 0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43,
- 0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9,
- 0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c,
- 0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1,
- 0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3,
- 0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2,
- 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4,
- 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562,
- 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676,
- 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f,
- 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df,
- 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb,
- 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb,
- 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e,
- 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67,
- 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24,
- 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a,
- 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb,
- /* 0xb5 */
- 0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f,
- 0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c,
- 0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a,
- 0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f,
- 0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2,
- 0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c,
- 0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c,
- 0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97,
- 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52,
- 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e,
- 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66,
- 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052,
- 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146,
- 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403,
- 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1,
- 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2,
- 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df,
- 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0,
- 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, 0x8a3b,
- 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41,
- /* 0xb6 */
- 0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56,
- 0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb,
- 0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85,
- 0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb,
- 0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031,
- 0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163,
- 0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d,
- 0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593,
- 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686,
- 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7,
- 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea,
- 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd,
- 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be,
- 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d,
- 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8,
- 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4,
- 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712,
- 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b,
- 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1,
- 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc,
- /* 0xb7 */
- 0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9,
- 0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148,
- 0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c,
- 0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137,
- 0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d,
- 0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417,
- 0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688,
- 0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a,
- 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968,
- 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b,
- 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf,
- 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5,
- 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4,
- 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164,
- 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, 0x715e,
- 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, 0x733f,
- 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, 0x743f,
- 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, 0x7601,
- 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, 0x76df,
- 0x775b, 0x776b, 0x7766, 0x775e, 0x7763,
- /* 0xb8 */
- 0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee,
- 0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891,
- 0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c,
- 0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77,
- 0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93,
- 0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a,
- 0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084,
- 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179,
- 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431,
- 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435,
- 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f,
- 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702,
- 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc,
- 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3,
- 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c,
- 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c,
- 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca,
- 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1,
- 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4, 0x8de6,
- 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a,
- /* 0xb9 */
- 0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c,
- 0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e,
- 0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237,
- 0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264,
- 0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a,
- 0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca,
- 0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810,
- 0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd,
- 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e,
- 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da,
- 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, 0x51f3,
- 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, 0x5617,
- 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, 0x5616,
- 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, 0x587e,
- 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, 0x5925,
- 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, 0x5ad7,
- 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, 0x5be5,
- 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, 0x5d84,
- 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, 0x5ed6,
- 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147,
- /* 0xba */
- 0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158,
- 0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f,
- 0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1,
- 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995,
- 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab,
- 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3,
- 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4,
- 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff,
- 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b,
- 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7,
- 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292,
- 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d,
- 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1,
- 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7,
- 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e, 0x7a31,
- 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b, 0x7b75,
- 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84, 0x7cb9,
- 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe, 0x7da0,
- 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf, 0x7db5,
- 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac,
- /* 0xbb */
- 0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150,
- 0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa,
- 0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4,
- 0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3,
- 0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722,
- 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902,
- 0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6,
- 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x8aaa,
- 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, 0x8c8d,
- 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, 0x8dfc,
- 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, 0x905c,
- 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, 0x9118,
- 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280, 0x9285,
- 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c, 0x9291,
- 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699, 0x969c,
- 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6, 0x9817,
- 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909, 0x99c1,
- 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6, 0x9cf3,
- 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5, 0x50f9,
- 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc,
- /* 0xbc */
- 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e,
- 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e,
- 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e,
- 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb,
- 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb,
- 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2,
- 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7,
- 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x617c,
- 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, 0x61ac,
- 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, 0x6479,
- 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493, 0x6495,
- 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac, 0x6499,
- 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab, 0x66b4,
- 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19, 0x69fd,
- 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed, 0x6a11,
- 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c, 0x6f84,
- 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78, 0x6f6e,
- 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5, 0x6f6f,
- 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256, 0x729b,
- 0x734e, 0x7357, 0x7469, 0x748b, 0x7483,
- /* 0xbd */
- 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626,
- 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c,
- 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5,
- 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b,
- 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7,
- 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb,
- 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9,
- 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x7fe9,
- 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198, 0x8517,
- 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511, 0x8523,
- 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782, 0x8774,
- 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757, 0x874c,
- 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913, 0x8915,
- 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb, 0x8af8,
- 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6,
- 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6,
- 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1,
- 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22, 0x8e0f,
- 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f,
- 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e,
- /* 0xbe */
- 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d,
- 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb,
- 0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2,
- 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707,
- 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c,
- 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df,
- 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef,
- 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x9d03,
- 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118, 0x5114,
- 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293, 0x52f3,
- 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a, 0x5668,
- 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1, 0x58be,
- 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0, 0x5c0e,
- 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6, 0x61be,
- 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb, 0x64bc,
- 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2, 0x64d4,
- 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7, 0x66b8,
- 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39, 0x6a44,
- 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48, 0x6b59,
- 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1,
- /* 0xbf */
- 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6,
- 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8,
- 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368,
- 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d,
- 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f,
- 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e,
- 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4,
- 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x7e11,
- 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, 0x7f79,
- 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, 0x81a8,
- 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548, 0x8568,
- 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783, 0x879f,
- 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925, 0x892b,
- 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1, 0x8b00,
- 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7, 0x8aed,
- 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4, 0x8e44,
- 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f, 0x8f38,
- 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072, 0x907c,
- 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333, 0x932f,
- 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a,
- /* 0xc0 */
- 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7,
- 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713,
- 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b,
- 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b,
- 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb,
- 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12,
- 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121,
- 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x568f,
- 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24, 0x5b7a,
- 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b, 0x5f4c,
- 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232, 0x6234,
- 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec, 0x64f1,
- 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80, 0x6a94,
- 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97, 0x6a90,
- 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf,
- 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec, 0x6fe1,
- 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee, 0x71e6,
- 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246, 0x7370,
- 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642, 0x764c,
- 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac,
- /* 0xc1 */
- 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901,
- 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7,
- 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9,
- 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b,
- 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35,
- 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070,
- 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf,
- 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x8584,
- 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587, 0x85a8,
- 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6, 0x87ab,
- 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944, 0x8938,
- 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a, 0x8b20,
- 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd,
- 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48, 0x8e4a,
- 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d, 0x9084,
- 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c, 0x934d,
- 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318, 0x937e,
- 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb, 0x95cc,
- 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0,
- 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01,
- /* 0xc2 */
- 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b,
- 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2,
- 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233,
- 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7,
- 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2,
- 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe,
- 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8,
- 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x7652,
- 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61, 0x7a62,
- 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e, 0x7c23,
- 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52,
- 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf,
- 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba,
- 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986, 0x89b2,
- 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05, 0x8e59,
- 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49, 0x8f4d,
- 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394, 0x938a,
- 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398, 0x939a,
- 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc, 0x96d9,
- 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6,
- /* 0xc3 */
- 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba,
- 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03,
- 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8,
- 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133,
- 0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2,
- 0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5,
- 0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d,
- 0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x737a,
- 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661, 0x77c7,
- 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d,
- 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a, 0x7f85,
- 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd, 0x85ea,
- 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d, 0x87f9,
- 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c, 0x8b58,
- 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a,
- 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54,
- 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1,
- 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd,
- 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a,
- 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e,
- /* 0xc4 */
- 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d,
- 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a,
- 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7,
- 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6,
- 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727,
- 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662,
- 0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c,
- 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x7e82,
- 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611, 0x85fa,
- 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964, 0x89ba,
- 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f,
- 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb, 0x9418,
- 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951, 0x99a8,
- 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79, 0x9eb5,
- 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138, 0x56c1,
- 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe, 0x651d,
- 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2, 0x704c,
- 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50, 0x7e8f,
- 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821,
- 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74,
- /* 0xc5 */
- 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf,
- 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b,
- 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957,
- 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d,
- 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19,
- 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9,
- 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61,
- 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x79b3,
- 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f, 0x89fc,
- 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148, 0x9444,
- 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955,
- 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b,
- 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6,
- 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca,
- 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638,
- 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460, 0x9464,
- 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4,
- 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1,
- 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88,
- 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92,
- /* 0xc6 */
- 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744,
- 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa,
- 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063,
- 0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470,
- 0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a,
- 0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5,
- 0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f,
- 0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x30fe,
- 0x309d, 0x309e, 0x3005, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045,
- 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d,
- 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055,
- 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d,
- 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065,
- 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d,
- 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075,
- 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d,
- 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085,
- 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d,
- 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2,
- 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7,
- /* 0xc7 */
- 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af,
- 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7,
- 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf,
- 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7,
- 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf,
- 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7,
- 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df,
- 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7,
- 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef,
- 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x0414,
- 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b,
- 0x041c, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429,
- 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431,
- 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438,
- 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440,
- 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448,
- 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x2460,
- 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468,
- 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
- 0x247b, 0x247c, 0x247d,
-};
-static const unsigned short big5_2uni_pagec9[7652] = {
- /* 0xc9 */
- 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47,
- 0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e,
- 0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c,
- 0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3,
- 0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9,
- 0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723,
- 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73,
- 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36,
- 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a,
- 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00,
- 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04,
- 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6, 0x5322,
- 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, 0x572a,
- 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, 0x5977,
- 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, 0x5c7e,
- 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, 0x5fd4,
- 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, 0x6259,
- 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739, 0x6738,
- 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46, 0x6c52,
- 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b,
- /* 0xca */
- 0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f,
- 0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d,
- 0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624,
- 0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64,
- 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33,
- 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad,
- 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437,
- 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x543d,
- 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, 0x56e5,
- 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, 0x5940,
- 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, 0x598f,
- 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, 0x5c8f,
- 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, 0x5c95,
- 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, 0x5e8d,
- 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, 0x5fed,
- 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa, 0x5fef,
- 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c, 0x628e,
- 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270, 0x6281,
- 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0, 0x65f4,
- 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747,
- /* 0xcb */
- 0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b,
- 0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b,
- 0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95,
- 0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a,
- 0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5,
- 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594,
- 0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092,
- 0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x828a,
- 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, 0x90a5,
- 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, 0x4e33,
- 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, 0x4f74,
- 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, 0x4f79,
- 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, 0x4f82,
- 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, 0x5232,
- 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, 0x5392,
- 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, 0x546b,
- 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, 0x546f,
- 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, 0x56f9,
- 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, 0x5780,
- 0x5775, 0x577b, 0x5773, 0x5774, 0x5762,
- /* 0xcc */
- 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce,
- 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1,
- 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93,
- 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf,
- 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7,
- 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19,
- 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d,
- 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034,
- 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d,
- 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214,
- 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca,
- 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8, 0x653d,
- 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608, 0x65fb,
- 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610, 0x66f6,
- 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b, 0x6798,
- 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f, 0x6791,
- 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794, 0x6b25,
- 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb, 0x6cee,
- 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0, 0x6cc2,
- 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2,
- /* 0xcd */
- 0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0,
- 0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1,
- 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096,
- 0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9,
- 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1,
- 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8,
- 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1,
- 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x77f7,
- 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, 0x7cfd,
- 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, 0x8220,
- 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, 0x82a7,
- 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, 0x82a9,
- 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, 0x866d,
- 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, 0x8fd5,
- 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, 0x963d,
- 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2, 0x4fc9,
- 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3, 0x4fdb,
- 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244, 0x5249,
- 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399, 0x5398,
- 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf,
- /* 0xce */
- 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6,
- 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0,
- 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b,
- 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4,
- 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd,
- 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db,
- 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8,
- 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x5cde,
- 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4, 0x5ccf,
- 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21, 0x5e22,
- 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b, 0x5ea3,
- 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039, 0x6054,
- 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b, 0x604c,
- 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066, 0x606e,
- 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e, 0x6303,
- 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300, 0x6313,
- 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543, 0x65aa,
- 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626, 0x6622,
- 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e, 0x670f,
- 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba,
- /* 0xcf */
- 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb,
- 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee,
- 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc,
- 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9,
- 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6,
- 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d,
- 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04,
- 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x6d01,
- 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, 0x6d2c,
- 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, 0x70b1,
- 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, 0x724a,
- 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8, 0x72eb,
- 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2, 0x73c8,
- 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf, 0x73c7,
- 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee, 0x752e,
- 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708, 0x7703,
- 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7, 0x77e8,
- 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e, 0x7809,
- 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944, 0x79d5,
- 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80,
- /* 0xd0 */
- 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f,
- 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d,
- 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7,
- 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9,
- 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd,
- 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8,
- 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1,
- 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x82e4,
- 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c, 0x8673,
- 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04, 0x8a07,
- 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd, 0x90bf,
- 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4, 0x91d3,
- 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e, 0x5005,
- 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4, 0x5033,
- 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020, 0x5027,
- 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193, 0x51ca,
- 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252, 0x525e,
- 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526, 0x54e2,
- 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff, 0x5504,
- 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1,
- /* 0xd1 */
- 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b,
- 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6,
- 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9,
- 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15,
- 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad,
- 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1,
- 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa,
- 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x6041,
- 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083, 0x6095,
- 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246, 0x62f2,
- 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343, 0x63e4,
- 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334, 0x6358,
- 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351, 0x6338,
- 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3, 0x65c4,
- 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713, 0x681f,
- 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f, 0x6816,
- 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e, 0x6844,
- 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e, 0x684d,
- 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31, 0x6b34,
- 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4,
- /* 0xd2 */
- 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64,
- 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f,
- 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60,
- 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68,
- 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d,
- 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39,
- 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5,
- 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x7277,
- 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3, 0x72fb,
- 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7, 0x73e3,
- 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da, 0x73d7,
- 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521, 0x755b,
- 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf, 0x75b6,
- 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713, 0x7712,
- 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727, 0x7823,
- 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b, 0x7821,
- 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f, 0x795c,
- 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee, 0x79ed,
- 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85, 0x7a8b,
- 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10,
- /* 0xd3 */
- 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09,
- 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85,
- 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f,
- 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d,
- 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e,
- 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100,
- 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351,
- 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x8342,
- 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316, 0x8324,
- 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c, 0x8353,
- 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652, 0x86a2,
- 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697, 0x8686,
- 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7, 0x8695,
- 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844, 0x886d,
- 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f, 0x8883,
- 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4,
- 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3,
- 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6,
- 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8,
- 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150,
- /* 0xd4 */
- 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc,
- 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e,
- 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041,
- 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b,
- 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051,
- 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d,
- 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a,
- 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x550c,
- 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b, 0x5540,
- 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6, 0x57dc,
- 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b, 0x57f3,
- 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec, 0x57e1,
- 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1, 0x57e9,
- 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55, 0x5a67,
- 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65, 0x5a6c,
- 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44, 0x5a5b,
- 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70, 0x5a69,
- 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1,
- 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c,
- 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f,
- /* 0xd5 */
- 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1,
- 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96,
- 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3,
- 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db,
- 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365,
- 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397,
- 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375,
- 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x6378,
- 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd, 0x6665,
- 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879, 0x6887,
- 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956, 0x686f,
- 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877,
- 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e,
- 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b,
- 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38,
- 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab,
- 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6,
- 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5,
- 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0,
- 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9,
- /* 0xd6 */
- 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb,
- 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104,
- 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8,
- 0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f,
- 0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff,
- 0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401,
- 0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b,
- 0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x75cb,
- 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739, 0x772f,
- 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725, 0x773b,
- 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c, 0x7826,
- 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963, 0x796b,
- 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f, 0x7a94,
- 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22, 0x7b24,
- 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f,
- 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3,
- 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29,
- 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63,
- 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0,
- 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f,
- /* 0xd7 */
- 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119,
- 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127,
- 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232,
- 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4,
- 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9,
- 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e,
- 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387,
- 0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x86c2,
- 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3, 0x86b8,
- 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be, 0x8852,
- 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891, 0x88a1,
- 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4, 0x88ac,
- 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5, 0x8a30,
- 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d,
- 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf,
- 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1,
- 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef, 0x90ea,
- 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec, 0x90e9,
- 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4, 0x91f1,
- 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea,
- /* 0xd8 */
- 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c,
- 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5,
- 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083,
- 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087,
- 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8,
- 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f,
- 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6,
- 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x5819,
- 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825, 0x581c,
- 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838, 0x582d,
- 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a, 0x5aa2,
- 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae,
- 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b,
- 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd,
- 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37,
- 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e,
- 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42,
- 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45,
- 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9,
- 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114,
- /* 0xd9 */
- 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc,
- 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104,
- 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8,
- 0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5,
- 0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4,
- 0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0,
- 0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568,
- 0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x667c,
- 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672, 0x6701,
- 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea, 0x68f1,
- 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913, 0x6910,
- 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4, 0x6911,
- 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc, 0x68e8,
- 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de, 0x68e6,
- 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925, 0x68c7,
- 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95,
- 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47,
- 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b,
- 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40,
- 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e,
- /* 0xda */
- 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b,
- 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64,
- 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a,
- 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125,
- 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a,
- 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330,
- 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323,
- 0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x741a,
- 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429, 0x7420,
- 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1,
- 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da,
- 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e, 0x774b,
- 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c, 0x786d,
- 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e, 0x7862,
- 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c,
- 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44, 0x7b48,
- 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8,
- 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a,
- 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51,
- 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65,
- /* 0xdb */
- 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050,
- 0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d,
- 0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204,
- 0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423,
- 0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410,
- 0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5,
- 0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9,
- 0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x83d5,
- 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec, 0x83ee,
- 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8,
- 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb,
- 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856,
- 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6,
- 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998,
- 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59,
- 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51,
- 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe,
- 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3,
- 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8,
- 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa,
- /* 0xdc */
- 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6,
- 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f,
- 0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb,
- 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f,
- 0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226,
- 0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204,
- 0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216,
- 0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689,
- 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c,
- 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83,
- 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca,
- 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb,
- 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c,
- 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0,
- 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5,
- 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714,
- 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855,
- 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871,
- 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5,
- 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6,
- /* 0xdd */
- 0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90,
- 0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a,
- 0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0,
- 0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6,
- 0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a,
- 0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f,
- 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5,
- 0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433,
- 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423,
- 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a,
- 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e,
- 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695,
- 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966,
- 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a,
- 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935,
- 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969,
- 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c,
- 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952,
- 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, 0x6b48,
- 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc,
- /* 0xde */
- 0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0,
- 0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2,
- 0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6,
- 0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92,
- 0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca,
- 0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160,
- 0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142,
- 0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x7144,
- 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290, 0x728e,
- 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349, 0x7444,
- 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f, 0x7450,
- 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe,
- 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603,
- 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6,
- 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f,
- 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759,
- 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895,
- 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896,
- 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19,
- 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13,
- /* 0xdf */
- 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64,
- 0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70,
- 0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88,
- 0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b,
- 0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d,
- 0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb,
- 0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b,
- 0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144,
- 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1,
- 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451,
- 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459,
- 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434,
- 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b,
- 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c,
- 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433,
- 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450,
- 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d,
- 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6,
- 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0,
- 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4,
- /* 0xe0 */
- 0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f,
- 0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81,
- 0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66,
- 0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c,
- 0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0,
- 0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2,
- 0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00,
- 0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044,
- 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114,
- 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a,
- 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246,
- 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261,
- 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253,
- 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692,
- 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5,
- 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac,
- 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab,
- 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4,
- 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, 0x50d3,
- 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0,
- /* 0xe1 */
- 0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627,
- 0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613,
- 0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c,
- 0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a,
- 0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894,
- 0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea,
- 0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec,
- 0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3,
- 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77,
- 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f,
- 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc,
- 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6,
- 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153,
- 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165,
- 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b,
- 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d,
- 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b,
- 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459,
- 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705,
- 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9,
- /* 0xe2 */
- 0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999,
- 0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4,
- 0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3,
- 0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2,
- 0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f,
- 0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03,
- 0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19,
- 0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36,
- 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35,
- 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39,
- 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21,
- 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b,
- 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293,
- 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475,
- 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, 0x7590,
- 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, 0x76b8,
- 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, 0x777e,
- 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, 0x78ab,
- 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, 0x798a,
- 0x798b, 0x7996, 0x7995, 0x7994, 0x7993,
- /* 0xe3 */
- 0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f,
- 0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c,
- 0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e,
- 0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf,
- 0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1,
- 0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc,
- 0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9,
- 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024,
- 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c,
- 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce,
- 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd,
- 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2,
- 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6,
- 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db,
- 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740,
- 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741,
- 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712,
- 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724,
- 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2, 0x88fa,
- 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb,
- /* 0xe4 */
- 0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9,
- 0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96,
- 0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09,
- 0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06,
- 0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d,
- 0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124,
- 0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4,
- 0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6,
- 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e,
- 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286,
- 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, 0x928b,
- 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, 0x977e,
- 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, 0x97ce,
- 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, 0x999d,
- 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, 0x99c7,
- 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, 0x9b5f,
- 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, 0x50f8,
- 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, 0x510a,
- 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, 0x5635,
- 0x5641, 0x564a, 0x5649, 0x5646, 0x5658,
- /* 0xe5 */
- 0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a,
- 0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af,
- 0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7,
- 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05,
- 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93,
- 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d,
- 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2,
- 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b,
- 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d,
- 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485,
- 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f,
- 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2,
- 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af,
- 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4,
- 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe, 0x6a27,
- 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08, 0x69e6,
- 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18, 0x6a25,
- 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51, 0x6ba5,
- 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02, 0x6f41,
- 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92,
- /* 0xe6 */
- 0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96,
- 0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57,
- 0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67,
- 0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77,
- 0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a,
- 0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa,
- 0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e,
- 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x7362,
- 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, 0x7488,
- 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, 0x7619,
- 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, 0x769d,
- 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, 0x78bb,
- 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, 0x78c4,
- 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, 0x6b76,
- 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, 0x7bac,
- 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, 0x7ccc,
- 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, 0x7e03,
- 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, 0x7f76,
- 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec, 0x7fe6,
- 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f,
- /* 0xe7 */
- 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253,
- 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500,
- 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c,
- 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2,
- 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9,
- 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e,
- 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9,
- 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756,
- 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b,
- 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750,
- 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e, 0x875c,
- 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769, 0x885a,
- 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919, 0x8906,
- 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3, 0x89ed,
- 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1, 0x8ad4,
- 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8, 0x8ac3,
- 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5, 0x8cdf,
- 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c, 0x8da1,
- 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15, 0x8e1b,
- 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27,
- /* 0xe8 */
- 0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c,
- 0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073,
- 0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a,
- 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182,
- 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6,
- 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc,
- 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd,
- 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x92b5,
- 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae, 0x95b0,
- 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a, 0x978a,
- 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826, 0x9829,
- 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa, 0x9911,
- 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf, 0x99d3,
- 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7, 0x99cc,
- 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46, 0x9b43,
- 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70, 0x9b68,
- 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7, 0x9d07,
- 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83, 0x9ed3,
- 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111, 0x51de,
- 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e,
- /* 0xe9 */
- 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c,
- 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc,
- 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10,
- 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1,
- 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2,
- 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9,
- 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8,
- 0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x61bf,
- 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9, 0x64bd,
- 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f, 0x657c,
- 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf, 0x66bd,
- 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49, 0x6a67,
- 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b, 0x6a51,
- 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64, 0x6a50,
- 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e, 0x6a56,
- 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56, 0x6ba7,
- 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06, 0x6fad,
- 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4,
- 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba,
- 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8,
- /* 0xea */
- 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5,
- 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4,
- 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da,
- 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365,
- 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495,
- 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633,
- 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d,
- 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x7797,
- 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db, 0x78e1,
- 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48, 0x7a47,
- 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7,
- 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea,
- 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7,
- 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20,
- 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f,
- 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c,
- 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6,
- 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2,
- 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556, 0x8545,
- 0x856b, 0x854d, 0x8553, 0x8561, 0x8558,
- /* 0xeb */
- 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547,
- 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555,
- 0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c,
- 0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792,
- 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785,
- 0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789,
- 0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922,
- 0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2,
- 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0,
- 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91,
- 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c,
- 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45,
- 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36,
- 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079,
- 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190,
- 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306,
- 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301,
- 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9325,
- 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329,
- 0x9339, 0x9335, 0x932a, 0x9314, 0x930c,
- /* 0xec */
- 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd,
- 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9,
- 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0,
- 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929,
- 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea,
- 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa,
- 0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e,
- 0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d,
- 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d,
- 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87,
- 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126,
- 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c,
- 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f, 0x5681,
- 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23,
- 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2,
- 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5, 0x61bc,
- 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef, 0x64e9,
- 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6, 0x65da,
- 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b,
- 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e,
- /* 0xed */
- 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a,
- 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9,
- 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde,
- 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2,
- 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2,
- 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510,
- 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647,
- 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x77b4,
- 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb, 0x78fc,
- 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8, 0x7a5c,
- 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1,
- 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4,
- 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd,
- 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c,
- 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47,
- 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45,
- 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4,
- 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a,
- 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b,
- 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e,
- /* 0xee */
- 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e,
- 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582,
- 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668,
- 0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5,
- 0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af,
- 0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de,
- 0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937,
- 0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18,
- 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15,
- 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f,
- 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f,
- 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40,
- 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f,
- 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356,
- 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351,
- 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355,
- 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363,
- 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3,
- 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718,
- 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c,
- /* 0xef */
- 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a,
- 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933,
- 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1,
- 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb,
- 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01,
- 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1,
- 0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41,
- 0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45,
- 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d,
- 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff,
- 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e,
- 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c,
- 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed,
- 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff,
- 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db,
- 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6,
- 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9,
- 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014, 0x700e,
- 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201,
- 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376,
- /* 0xf0 */
- 0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2,
- 0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657,
- 0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c,
- 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac,
- 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d,
- 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56,
- 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53,
- 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x81d0,
- 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2, 0x85b3,
- 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce, 0x85c8,
- 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be,
- 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5,
- 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8,
- 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8, 0x87dd,
- 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951, 0x8949,
- 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47, 0x8b2f,
- 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36, 0x8b2e,
- 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99, 0x8c98,
- 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62, 0x8e60,
- 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67,
- /* 0xf1 */
- 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47,
- 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5,
- 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b,
- 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395,
- 0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4,
- 0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3,
- 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722,
- 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x97a2,
- 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850, 0x9851,
- 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b, 0x9a09,
- 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06, 0x9ac0,
- 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a, 0x9b4c,
- 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5, 0x9bb8,
- 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53, 0x9d4f,
- 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52,
- 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01,
- 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c,
- 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad,
- 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912,
- 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70,
- /* 0xf2 */
- 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e,
- 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1,
- 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd,
- 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016,
- 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c,
- 0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6,
- 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516,
- 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x7921,
- 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33, 0x7c3c,
- 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75, 0x7e78,
- 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68, 0x7f4b,
- 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078, 0x81d7,
- 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed, 0x85d9,
- 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8, 0x85d8,
- 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef, 0x85de,
- 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809, 0x880c,
- 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802, 0x8962,
- 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d, 0x8959,
- 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40,
- 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55,
- /* 0xf3 */
- 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a,
- 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d,
- 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51,
- 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad,
- 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec,
- 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3,
- 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da,
- 0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x97b3,
- 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859, 0x985d,
- 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947, 0x9943,
- 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b,
- 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2,
- 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0,
- 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec,
- 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81,
- 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b,
- 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85,
- 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68,
- 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d,
- 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2,
- /* 0xf4 */
- 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef,
- 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df,
- 0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9,
- 0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034,
- 0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b,
- 0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba,
- 0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd,
- 0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2,
- 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47,
- 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff,
- 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622, 0x85ff,
- 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605,
- 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813, 0x8816,
- 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68,
- 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84,
- 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143,
- 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb,
- 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419,
- 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412,
- 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff,
- /* 0xf5 */
- 0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df,
- 0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862,
- 0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c,
- 0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36,
- 0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10,
- 0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8,
- 0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f,
- 0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0,
- 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8,
- 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99,
- 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e,
- 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139,
- 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb,
- 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8,
- 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046,
- 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d,
- 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88,
- 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, 0x8618,
- 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, 0x862e,
- 0x8621, 0x8620, 0x8629, 0x861e, 0x8625,
- /* 0xf6 */
- 0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a,
- 0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45,
- 0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e,
- 0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b,
- 0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437,
- 0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a,
- 0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956,
- 0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f,
- 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b,
- 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21,
- 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe,
- 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac,
- 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a,
- 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31,
- 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb,
- 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520,
- 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056,
- 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5,
- 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71,
- 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a,
- /* 0xf7 */
- 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634,
- 0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826,
- 0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84,
- 0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a,
- 0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c,
- 0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449,
- 0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b,
- 0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49,
- 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55,
- 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c,
- 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde,
- 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9,
- 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35,
- 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299,
- 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201,
- 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12,
- 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383,
- 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640,
- 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e,
- 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe,
- /* 0xf8 */
- 0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64,
- 0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4,
- 0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52,
- 0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c,
- 0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4,
- 0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec,
- 0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3,
- 0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71,
- 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d,
- 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223,
- 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97,
- 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94,
- 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2,
- 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7,
- 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62,
- 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05,
- 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e,
- 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, 0x6b18,
- 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, 0x77d9,
- 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a,
- /* 0xf9 */
- 0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648,
- 0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5,
- 0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749,
- 0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10,
- 0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78,
- 0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2,
- 0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74,
- 0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4,
- 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e,
- 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, 0x9961,
- 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, 0x9f48,
- 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, 0x9481,
- 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f, 0x9483,
- 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a,
- 0x9ea4, 0x9f7e, 0x9f49, 0x9f98,
-};
-
-static int
-big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = s[0];
- if ((c1 >= 0xa1 && c1 <= 0xc7) || (c1 >= 0xc9 && c1 <= 0xf9)) {
- if (n >= 2) {
- unsigned char c2 = s[1];
- if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
- unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
- unsigned short wc = 0xfffd;
- if (i < 6280) {
- if (i < 6121)
- wc = big5_2uni_pagea1[i];
- } else {
- if (i < 13932)
- wc = big5_2uni_pagec9[i-6280];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short big5_2charset[13703] = {
- 0xa246, 0xa247, 0xa244, 0xa1b1, 0xa258, 0xa1d3, 0xa150, 0xa1d1,
- 0xa1d2, 0xa3be, 0xa3bc, 0xa3bd, 0xa3bf, 0xa3bb, 0xa344, 0xa345,
- 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, 0xa34d,
- 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0xa355,
- 0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa35c, 0xa35d,
- 0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365,
- 0xa366, 0xa367, 0xa368, 0xa369, 0xa36a, 0xa36b, 0xa36c, 0xa36d,
- 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, 0xc7b3, 0xc7b1,
- 0xc7b2, 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba,
- 0xc7bb, 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2,
- 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca,
- 0xc7cb, 0xc7cc, 0xc7cd, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3,
- 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db,
- 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3,
- 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7ce, 0xa156, 0xa158,
- 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, 0xa145, 0xa14c, 0xa14b, 0xa1ac,
- 0xa1ab, 0xa1b0, 0xa1c2, 0xa24a, 0xa1c1, 0xa24b, 0xa2b9, 0xa2ba,
- 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2,
- 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0xa1f8, 0xa1f9, 0xa1fb, 0xa1fa,
- 0xa1d4, 0xa1db, 0xa1e8, 0xa1e7, 0xa1fd, 0xa1fc, 0xa1e4, 0xa1e5,
- 0xa1ec, 0xa1ed, 0xa1ef, 0xa1ee, 0xa1e3, 0xa1dc, 0xa1da, 0xa1dd,
- 0xa1d8, 0xa1d9, 0xa1e6, 0xa1e9, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec,
- 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4,
- 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0xc7fb, 0xc7fc,
- 0xa277, 0xa278, 0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa275, 0xa274,
- 0xa273, 0xa272, 0xa271, 0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa27e,
- 0xa2a1, 0xa2a3, 0xa2a2, 0xa2ac, 0xa2ad, 0xa2ae, 0xa262, 0xa263,
- 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, 0xa270, 0xa26f,
- 0xa26e, 0xa26d, 0xa26c, 0xa26b, 0xa26a, 0xa276, 0xa279, 0xa1bd,
- 0xa1bc, 0xa1b6, 0xa1b5, 0xa1bf, 0xa1be, 0xa1bb, 0xa1ba, 0xa1b3,
- 0xa1b7, 0xa1b4, 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0xa1b9, 0xa1b8,
- 0xa1f3, 0xa1f0, 0xa1f2, 0xa1f1, 0xa140, 0xa142, 0xa143, 0xa1b2,
- 0xc6a4, 0xa171, 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179,
- 0xa17a, 0xa169, 0xa16a, 0xa245, 0xa165, 0xa166, 0xa1a9, 0xa1aa,
- 0xa2c3, 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca,
- 0xa2cb, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab,
- 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3,
- 0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb,
- 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c0, 0xc6c1, 0xc6c2, 0xc6c3,
- 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb,
- 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3,
- 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db,
- 0xc6dc, 0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3,
- 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb,
- 0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3,
- 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6a2, 0xc6a3, 0xc6f8, 0xc6f9,
- 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742,
- 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a,
- 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752,
- 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a,
- 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762,
- 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a,
- 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772,
- 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a,
- 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4,
- 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac,
- 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc6a1, 0xa374, 0xa375, 0xa376,
- 0xa377, 0xa378, 0xa379, 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e,
- 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8,
- 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0,
- 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8,
- 0xa3b9, 0xa3ba, 0xa1c0, 0xa255, 0xa256, 0xa250, 0xa251, 0xa252,
- 0xa254, 0xa257, 0xa253, 0xa1eb, 0xa1ea, 0xa24f, 0xa440, 0xa442,
- 0xa443, 0xc945, 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3,
- 0xc94f, 0xc94d, 0xa4a2, 0xa4a1, 0xa542, 0xa541, 0xa540, 0xa543,
- 0xa4fe, 0xa5e0, 0xa5e1, 0xa8c3, 0xa458, 0xa4a4, 0xc950, 0xa4a5,
- 0xc963, 0xa6ea, 0xcbb1, 0xa459, 0xa4a6, 0xa544, 0xc964, 0xc940,
- 0xa444, 0xa45b, 0xc947, 0xa45c, 0xa4a7, 0xa545, 0xa547, 0xa546,
- 0xa5e2, 0xa5e3, 0xa8c4, 0xadbc, 0xa441, 0xc941, 0xa445, 0xa45e,
- 0xa45d, 0xa5e4, 0xa8c5, 0xb0ae, 0xd44b, 0xb6c3, 0xdcb1, 0xdcb2,
- 0xa446, 0xa4a9, 0xa8c6, 0xa447, 0xc948, 0xa45f, 0xa4aa, 0xa4ac,
- 0xc951, 0xa4ad, 0xa4ab, 0xa5e5, 0xa8c7, 0xa8c8, 0xab45, 0xa460,
- 0xa4ae, 0xa5e6, 0xa5e8, 0xa5e7, 0xa6eb, 0xa8c9, 0xa8ca, 0xab46,
- 0xab47, 0xadbd, 0xdcb3, 0xf6d6, 0xa448, 0xa4b0, 0xa4af, 0xc952,
- 0xa4b1, 0xa4b7, 0xa4b2, 0xa4b3, 0xc954, 0xc953, 0xa4b5, 0xa4b6,
- 0xa4b4, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa549, 0xa550, 0xc96a,
- 0xc966, 0xc969, 0xa551, 0xa561, 0xc968, 0xa54e, 0xa54f, 0xa548,
- 0xc965, 0xc967, 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae,
- 0xa5f3, 0xc9b2, 0xa5f4, 0xa5f7, 0xa5e9, 0xc9b1, 0xa5f8, 0xc9b5,
- 0xc9b9, 0xc9b6, 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9, 0xa5ee, 0xc9ab,
- 0xa5f1, 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af, 0xa5ed, 0xc9ac,
- 0xa5eb, 0xc9b4, 0xc9b7, 0xc9ad, 0xca66, 0xa742, 0xa6f4, 0xca67,
- 0xa6f1, 0xa744, 0xa6f9, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7, 0xca60,
- 0xca68, 0xca64, 0xa6fa, 0xa6fd, 0xa6ee, 0xa747, 0xca5d, 0xcbbd,
- 0xa6ec, 0xa743, 0xa6ed, 0xa6f5, 0xa6f6, 0xca62, 0xca5e, 0xa6fb,
- 0xa6f3, 0xca5a, 0xa6ef, 0xca65, 0xa745, 0xa748, 0xa6f2, 0xa740,
- 0xa746, 0xa6f0, 0xca63, 0xa741, 0xca69, 0xca5c, 0xa6fe, 0xca5f,
- 0xca61, 0xa8d8, 0xcbbf, 0xcbcb, 0xa8d0, 0xcbcc, 0xa8cb, 0xa8d5,
- 0xa8ce, 0xcbb9, 0xa8d6, 0xcbb8, 0xcbbc, 0xcbc3, 0xcbc1, 0xa8de,
- 0xa8d9, 0xcbb3, 0xcbb5, 0xa8db, 0xa8cf, 0xcbb6, 0xcbc2, 0xcbc9,
- 0xa8d4, 0xcbbb, 0xcbb4, 0xa8d3, 0xcbb7, 0xa8d7, 0xcbba, 0xa8d2,
- 0xa8cd, 0xa8dc, 0xcbc4, 0xa8dd, 0xcbc8, 0xcbc6, 0xcbca, 0xa8da,
- 0xcbbe, 0xcbb2, 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0xab56,
- 0xab4a, 0xcde0, 0xcde8, 0xab49, 0xab51, 0xab5d, 0xcdee, 0xcdec,
- 0xcde7, 0xab4b, 0xcded, 0xcde3, 0xab59, 0xab50, 0xab58, 0xcdde,
- 0xcdea, 0xcde1, 0xab54, 0xcde2, 0xcddd, 0xab5b, 0xab4e, 0xab57,
- 0xab4d, 0xcddf, 0xcde4, 0xcdeb, 0xab55, 0xab52, 0xcde6, 0xab5a,
- 0xcde9, 0xcde5, 0xab4f, 0xab5c, 0xab53, 0xab4c, 0xab48, 0xcdef,
- 0xadd7, 0xadc1, 0xadd1, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4, 0xd0d5,
- 0xadc4, 0xadcd, 0xadda, 0xadce, 0xd0c9, 0xadc7, 0xd0ca, 0xaddc,
- 0xadd3, 0xadbe, 0xadbf, 0xd0dd, 0xb0bf, 0xadcc, 0xadcb, 0xd0cb,
- 0xadcf, 0xd45b, 0xadc6, 0xd0d6, 0xadd5, 0xadd4, 0xadca, 0xd0ce,
- 0xd0d7, 0xd0c8, 0xadc9, 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0xadc3,
- 0xadc2, 0xd0d9, 0xadd0, 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8,
- 0xd0db, 0xd0cd, 0xd0dc, 0xd0d1, 0xd0da, 0xd0d2, 0xadc8, 0xd463,
- 0xd457, 0xb0b3, 0xd45c, 0xd462, 0xb0b2, 0xd455, 0xb0b6, 0xd459,
- 0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, 0xd467, 0xd451, 0xb0ba,
- 0xd466, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f, 0xd45d, 0xd450,
- 0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0xd85b, 0xd45e, 0xd44d,
- 0xd45f, 0xb0c1, 0xd464, 0xb0c0, 0xd44c, 0xd454, 0xd465, 0xb0bc,
- 0xb0bb, 0xb0b8, 0xb0bd, 0xb0af, 0xb0b0, 0xb3c8, 0xd85e, 0xd857,
- 0xb3c5, 0xd85f, 0xd855, 0xd858, 0xb3c4, 0xd859, 0xb3c7, 0xd85d,
- 0xd853, 0xd852, 0xb3c9, 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c,
- 0xd85a, 0xd854, 0xb3c3, 0xd856, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd,
- 0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb,
- 0xdcc4, 0xdcbf, 0xb6cc, 0xdcb4, 0xb6c9, 0xdcb5, 0xdcbe, 0xdcbc,
- 0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, 0xdcbb, 0xdcc2, 0xdcb9, 0xdcc1,
- 0xb9b6, 0xb9b3, 0xb9b4, 0xe0f9, 0xe0f1, 0xb9b2, 0xb9af, 0xe0f2,
- 0xb9b1, 0xe0f5, 0xe0f7, 0xe0fe, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0,
- 0xb9ac, 0xe0f3, 0xb9b7, 0xe0f6, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc,
- 0xe0fb, 0xb9b5, 0xe0f4, 0xbbf8, 0xe4ec, 0xe4e9, 0xbbf9, 0xbbf7,
- 0xe4f0, 0xe4ed, 0xe4e6, 0xbbf6, 0xbbfa, 0xe4e7, 0xbbf5, 0xbbfd,
- 0xe4ea, 0xe4eb, 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef, 0xbeaa,
- 0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab, 0xe8f6, 0xbea8, 0xe8f7,
- 0xe8f4, 0xc076, 0xecbd, 0xc077, 0xecbb, 0xecbc, 0xecba, 0xecb9,
- 0xecbe, 0xc075, 0xefb8, 0xefb9, 0xe4e8, 0xefb7, 0xc078, 0xc35f,
- 0xf1eb, 0xf1ec, 0xc4d7, 0xc4d8, 0xf5c1, 0xf5c0, 0xc56c, 0xc56b,
- 0xf7d0, 0xa449, 0xa461, 0xa4b9, 0xa4b8, 0xa553, 0xa552, 0xa5fc,
- 0xa5fb, 0xa5fd, 0xa5fa, 0xa74a, 0xa749, 0xa74b, 0xa8e0, 0xa8df,
- 0xa8e1, 0xab5e, 0xa259, 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b,
- 0xd860, 0xa25d, 0xb9b8, 0xa25e, 0xa44a, 0xa4ba, 0xa5fe, 0xa8e2,
- 0xa44b, 0xa4bd, 0xa4bb, 0xa4bc, 0xa640, 0xa74c, 0xa8e4, 0xa8e3,
- 0xa8e5, 0xaddd, 0xbeac, 0xc94e, 0xa554, 0xa555, 0xa641, 0xca6a,
- 0xab60, 0xab5f, 0xd0e0, 0xd0df, 0xb0c3, 0xa4be, 0xc955, 0xcbcd,
- 0xab61, 0xade0, 0xadde, 0xaddf, 0xbead, 0xa556, 0xa642, 0xc9bc,
- 0xa74d, 0xa74e, 0xca6b, 0xcbce, 0xa8e6, 0xcbcf, 0xd0e2, 0xd0e3,
- 0xade3, 0xd0e4, 0xd0e1, 0xade4, 0xade2, 0xade1, 0xd0e5, 0xd468,
- 0xd861, 0xdcc5, 0xe140, 0xbbfe, 0xbeae, 0xe8f9, 0xa44c, 0xa45a,
- 0xb0c4, 0xb3cd, 0xb9b9, 0xc942, 0xa4bf, 0xa559, 0xa557, 0xa558,
- 0xa8e7, 0xa44d, 0xa44e, 0xa462, 0xa4c0, 0xa4c1, 0xa4c2, 0xc9be,
- 0xa55a, 0xc96b, 0xa646, 0xc9bf, 0xa644, 0xa645, 0xc9bd, 0xa647,
- 0xa643, 0xca6c, 0xaaec, 0xca6d, 0xca6e, 0xa750, 0xa74f, 0xa753,
- 0xa751, 0xa752, 0xa8ed, 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0xcbd0,
- 0xa8ee, 0xa8ea, 0xa8e9, 0xa8eb, 0xa8e8, 0xa8ef, 0xab63, 0xcdf0,
- 0xcbd3, 0xab68, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62,
- 0xd0e8, 0xade7, 0xd0eb, 0xade5, 0xd0e7, 0xade8, 0xade6, 0xade9,
- 0xd0e9, 0xd0ea, 0xd0e6, 0xd0ec, 0xb3d1, 0xb0c5, 0xd469, 0xd46b,
- 0xd46a, 0xd46c, 0xb0c6, 0xb3ce, 0xb3cf, 0xb3d0, 0xb6d0, 0xdcc7,
- 0xdcc6, 0xdcc8, 0xdcc9, 0xb6d1, 0xb6cf, 0xe141, 0xe142, 0xb9bb,
- 0xb9ba, 0xe35a, 0xbc40, 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3,
- 0xbc43, 0xbeaf, 0xbeb0, 0xf1ed, 0xf5c3, 0xf5c2, 0xf7d1, 0xa44f,
- 0xa55c, 0xa55b, 0xa648, 0xc9c0, 0xa755, 0xa756, 0xa754, 0xa757,
- 0xca6f, 0xca70, 0xa8f1, 0xcbd5, 0xa8f0, 0xcdf2, 0xab6c, 0xcdf3,
- 0xab6b, 0xab69, 0xab6a, 0xd0ed, 0xb0c7, 0xd46e, 0xb0ca, 0xd46d,
- 0xb1e5, 0xb0c9, 0xb0c8, 0xb3d4, 0xb3d3, 0xb3d2, 0xb6d2, 0xb6d5,
- 0xb6d6, 0xb6d4, 0xb6d3, 0xe143, 0xe144, 0xe4f5, 0xbc45, 0xe4f4,
- 0xbeb1, 0xecbf, 0xc079, 0xf1ee, 0xc455, 0xa463, 0xa4c3, 0xc956,
- 0xa4c4, 0xa4c5, 0xa55d, 0xa55e, 0xa649, 0xca71, 0xcbd6, 0xcbd7,
- 0xab6d, 0xd0ee, 0xb0cc, 0xb0cb, 0xd863, 0xd862, 0xa450, 0xa4c6,
- 0xa55f, 0xb0cd, 0xc943, 0xc96c, 0xa560, 0xc9c2, 0xa64b, 0xa64a,
- 0xc9c1, 0xa758, 0xadea, 0xd46f, 0xb6d7, 0xe145, 0xb9bc, 0xe8fa,
- 0xf3fd, 0xa4c7, 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, 0xb0cf, 0xa451,
- 0xa464, 0xa2cd, 0xa4ca, 0xa4c9, 0xa4c8, 0xa563, 0xa562, 0xc96d,
- 0xc9c3, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0xab6e, 0xb3d5, 0xa452,
- 0xa4cb, 0xa565, 0xa564, 0xca72, 0xa8f6, 0xc957, 0xa567, 0xa566,
- 0xa64c, 0xa64d, 0xca73, 0xa759, 0xa75a, 0xa8f7, 0xa8f8, 0xa8f9,
- 0xab6f, 0xcdf5, 0xadeb, 0xc944, 0xa4cc, 0xc9c4, 0xca74, 0xca75,
- 0xcbd9, 0xcbda, 0xcdf7, 0xcdf6, 0xcdf9, 0xcdf8, 0xab70, 0xd470,
- 0xaded, 0xd0ef, 0xadec, 0xd864, 0xb3d6, 0xd865, 0xe146, 0xb9bd,
- 0xbc46, 0xf1ef, 0xc958, 0xa568, 0xb0d1, 0xa453, 0xa465, 0xa4ce,
- 0xa4cd, 0xa4cf, 0xa8fb, 0xa8fa, 0xa8fc, 0xab71, 0xadee, 0xe8fb,
- 0xc24f, 0xa466, 0xa56a, 0xa579, 0xa574, 0xa56f, 0xa56e, 0xa575,
- 0xa573, 0xa56c, 0xa57a, 0xa56d, 0xa569, 0xa578, 0xa577, 0xa576,
- 0xa56b, 0xa572, 0xa571, 0xa57b, 0xa570, 0xa653, 0xa659, 0xa655,
- 0xa65b, 0xc9c5, 0xa658, 0xa64e, 0xa651, 0xa654, 0xa650, 0xa657,
- 0xa65a, 0xa64f, 0xa652, 0xa656, 0xa65c, 0xca7e, 0xca7b, 0xa767,
- 0xca7c, 0xa75b, 0xa75d, 0xa775, 0xa770, 0xcaa5, 0xca7d, 0xa75f,
- 0xa761, 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d,
- 0xca76, 0xa773, 0xa764, 0xa76e, 0xa76f, 0xca77, 0xa76c, 0xa76a,
- 0xa76b, 0xa771, 0xcaa1, 0xa75e, 0xa772, 0xcaa3, 0xa766, 0xa763,
- 0xca7a, 0xa762, 0xcaa6, 0xa765, 0xa769, 0xa760, 0xcaa2, 0xca79,
- 0xcbeb, 0xcbea, 0xa94f, 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee,
- 0xa950, 0xcbe1, 0xcbe5, 0xcbe9, 0xce49, 0xa94b, 0xce4d, 0xa8fd,
- 0xcbe6, 0xa8fe, 0xa94c, 0xa945, 0xa941, 0xcbe2, 0xa944, 0xa949,
- 0xa952, 0xcbe3, 0xcbdc, 0xa943, 0xcbdd, 0xcbdf, 0xa946, 0xa948,
- 0xcbdb, 0xcbe0, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0xa94a, 0xcbde,
- 0xa947, 0xa942, 0xa940, 0xcbec, 0xa94e, 0xce48, 0xcdfb, 0xce4b,
- 0xcdfd, 0xab78, 0xaba8, 0xab74, 0xaba7, 0xab7d, 0xaba4, 0xab72,
- 0xcdfc, 0xce43, 0xaba3, 0xce4f, 0xaba5, 0xab79, 0xce45, 0xce42,
- 0xab77, 0xcdfa, 0xaba6, 0xce4a, 0xab7c, 0xce4c, 0xaba9, 0xab73,
- 0xab7e, 0xab7b, 0xce40, 0xaba1, 0xce46, 0xce47, 0xab7a, 0xaba2,
- 0xab76, 0xab75, 0xcdfe, 0xce44, 0xce4e, 0xd144, 0xadfb, 0xd0f1,
- 0xd0f6, 0xadf4, 0xae40, 0xd0f4, 0xadef, 0xadf9, 0xadfe, 0xd0fb,
- 0xadfa, 0xadfd, 0xd0fe, 0xadf5, 0xd0f5, 0xd142, 0xd143, 0xadf7,
- 0xd141, 0xadf3, 0xae43, 0xd0f8, 0xadf1, 0xd146, 0xd0f9, 0xd0fd,
- 0xadf6, 0xae42, 0xd0fa, 0xadfc, 0xd140, 0xd147, 0xd4a1, 0xd145,
- 0xae44, 0xadf0, 0xd0fc, 0xd0f3, 0xadf8, 0xd0f2, 0xd0f7, 0xd0f0,
- 0xae41, 0xd477, 0xb0e4, 0xd4a7, 0xb0e2, 0xb0df, 0xd47c, 0xb0db,
- 0xd4a2, 0xb0e6, 0xd476, 0xd47b, 0xd47a, 0xadf2, 0xb0e1, 0xd4a5,
- 0xd4a8, 0xd473, 0xb3e8, 0xd4a9, 0xb0e7, 0xb0d9, 0xb0d6, 0xd47e,
- 0xb0d3, 0xd4a6, 0xb0da, 0xd4aa, 0xd474, 0xd4a4, 0xb0dd, 0xd475,
- 0xd478, 0xd47d, 0xb0de, 0xb0dc, 0xb0e8, 0xb0e3, 0xb0d7, 0xb1d2,
- 0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0xb0d4, 0xd471,
- 0xd472, 0xd86a, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, 0xb3d8,
- 0xd871, 0xb3de, 0xb3e4, 0xb5bd, 0xb3e2, 0xd86e, 0xb3ef, 0xb3db,
- 0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, 0xd866, 0xd873, 0xd86d,
- 0xb3e1, 0xd879, 0xb3dd, 0xb3f1, 0xb3ea, 0xb3df, 0xb3dc, 0xb3e7,
- 0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9, 0xd867,
- 0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0xb3ed, 0xb3e9, 0xb3e5,
- 0xd870, 0xb3eb, 0xdcd5, 0xdcd1, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5,
- 0xb6e6, 0xb6de, 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde,
- 0xb6dc, 0xdcd8, 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9,
- 0xdcdb, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0, 0xb6d8, 0xb6e4,
- 0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db, 0xa25f, 0xb6d9, 0xdcd4,
- 0xb6e2, 0xdcdd, 0xb9cd, 0xb9c8, 0xe155, 0xe151, 0xe14b, 0xb9c2,
- 0xb9be, 0xe154, 0xb9bf, 0xe14e, 0xe150, 0xe153, 0xb9c4, 0xb9cb,
- 0xb9c5, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, 0xb9cc, 0xe14a, 0xe14f,
- 0xb9c3, 0xe148, 0xb9c9, 0xb9c1, 0xb9c0, 0xe14d, 0xe152, 0xb9ca,
- 0xe147, 0xbc4d, 0xe547, 0xe544, 0xbc47, 0xbc53, 0xbc54, 0xbc4a,
- 0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0xe546, 0xbc49, 0xe548, 0xbc48,
- 0xe543, 0xe545, 0xbc4b, 0xe541, 0xe4fa, 0xe4f7, 0xd86b, 0xe4fd,
- 0xe4f6, 0xe4fc, 0xe4fb, 0xe4f8, 0xbc4f, 0xbc4e, 0xbc50, 0xe4fe,
- 0xbeb2, 0xe540, 0xe945, 0xe8fd, 0xbebe, 0xe942, 0xbeb6, 0xbeba,
- 0xe941, 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3, 0xbebd, 0xe943, 0xe8fe,
- 0xbebc, 0xe8fc, 0xbebb, 0xe944, 0xe940, 0xbc51, 0xbebf, 0xe946,
- 0xbeb7, 0xbeb4, 0xecc6, 0xecc8, 0xc07b, 0xecc9, 0xecc7, 0xecc5,
- 0xecc4, 0xc07d, 0xecc3, 0xc07e, 0xecc1, 0xecc2, 0xc07a, 0xc0a1,
- 0xc07c, 0xecc0, 0xc250, 0xefbc, 0xefba, 0xefbf, 0xefbd, 0xefbb,
- 0xefbe, 0xc360, 0xf1f2, 0xf1f3, 0xc456, 0xf1f4, 0xf1f0, 0xf1f5,
- 0xf1f1, 0xc251, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457,
- 0xc45a, 0xf5c5, 0xf5c6, 0xc4da, 0xc4d9, 0xc4db, 0xf5c4, 0xf6d8,
- 0xf6d7, 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8, 0xf8a6, 0xc5f1,
- 0xf8a5, 0xf8ee, 0xc949, 0xa57d, 0xa57c, 0xa65f, 0xa65e, 0xc9c7,
- 0xa65d, 0xc9c6, 0xa779, 0xcaa9, 0xcaa8, 0xa777, 0xa77a, 0xcaa7,
- 0xa778, 0xcbf0, 0xcbf1, 0xa954, 0xabaa, 0xd148, 0xd149, 0xae45,
- 0xae46, 0xd4ac, 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c, 0xb3f2,
- 0xb6e9, 0xb6ea, 0xdce1, 0xb9cf, 0xb9ce, 0xe549, 0xe948, 0xe947,
- 0xf96b, 0xa467, 0xc959, 0xc96e, 0xc96f, 0xa662, 0xa666, 0xc9c9,
- 0xa664, 0xa663, 0xc9c8, 0xa665, 0xa661, 0xa660, 0xc9ca, 0xa7a6,
- 0xa7a3, 0xa77d, 0xcaaa, 0xcaab, 0xa7a1, 0xcaad, 0xa77b, 0xcaae,
- 0xcaac, 0xa77e, 0xa7a2, 0xa7a5, 0xa7a4, 0xa77c, 0xcaaf, 0xa959,
- 0xcbfe, 0xa95b, 0xa95a, 0xcc40, 0xa958, 0xa957, 0xcbf5, 0xcbf4,
- 0xcbf2, 0xcbf7, 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8,
- 0xa956, 0xcbfb, 0xa95c, 0xcc41, 0xcbf9, 0xabab, 0xa955, 0xabac,
- 0xce54, 0xce5a, 0xabb2, 0xce58, 0xce5e, 0xce55, 0xce59, 0xce5b,
- 0xce5d, 0xce57, 0xce56, 0xce51, 0xce52, 0xabad, 0xabaf, 0xabae,
- 0xce53, 0xce5c, 0xabb1, 0xce50, 0xd153, 0xd152, 0xd157, 0xd14e,
- 0xd151, 0xd150, 0xd154, 0xd158, 0xae47, 0xae4a, 0xd14f, 0xd155,
- 0xae49, 0xd14a, 0xabb0, 0xd4ba, 0xd156, 0xd14d, 0xae48, 0xd14c,
- 0xd4b1, 0xb0ec, 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1, 0xd4bf,
- 0xd4c5, 0xd4c9, 0xd4c0, 0xd4b4, 0xd4bc, 0xd4ca, 0xd4c8, 0xd4be,
- 0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5, 0xd4b7, 0xb0f6, 0xb0f2,
- 0xd4ad, 0xd4c3, 0xd4b5, 0xd4b3, 0xd4c6, 0xb0f3, 0xd4cc, 0xb0ed,
- 0xb0ef, 0xd4bb, 0xd4b6, 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb,
- 0xd4c2, 0xd4c4, 0xd4ae, 0xd8a1, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2,
- 0xb3fb, 0xb3f9, 0xd8a4, 0xb3f6, 0xd8a8, 0xd8a3, 0xd8a5, 0xd87d,
- 0xb3f4, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, 0xb3f7, 0xb3f8, 0xd14b,
- 0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, 0xd8b0, 0xd8af, 0xd8b3,
- 0xdcef, 0xd8ac, 0xd8a7, 0xdce7, 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6,
- 0xdcea, 0xdce5, 0xb6ec, 0xb6f6, 0xdce2, 0xb6f0, 0xdce9, 0xb6ee,
- 0xb6ed, 0xdcec, 0xb6ef, 0xdcee, 0xdceb, 0xb6eb, 0xb6f5, 0xdcf0,
- 0xdce4, 0xdced, 0xdce3, 0xb6f1, 0xb6f3, 0xdce8, 0xdcf1, 0xe15d,
- 0xb9d0, 0xe163, 0xb9d5, 0xe15f, 0xe166, 0xe157, 0xb9d7, 0xb9d1,
- 0xe15c, 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0xb9d6, 0xe15a, 0xe160,
- 0xe165, 0xe156, 0xb9d4, 0xe15e, 0xe162, 0xe168, 0xe158, 0xe161,
- 0xb9d3, 0xe167, 0xe159, 0xbc59, 0xe54b, 0xbc57, 0xbc56, 0xe54d,
- 0xe552, 0xe54e, 0xe551, 0xbc5c, 0xbea5, 0xbc5b, 0xe54a, 0xe550,
- 0xbc5a, 0xe54f, 0xe54c, 0xbc58, 0xe94d, 0xe94f, 0xe94a, 0xbec1,
- 0xe94c, 0xbec0, 0xe94e, 0xbec3, 0xe950, 0xbec2, 0xe949, 0xe94b,
- 0xc0a5, 0xeccc, 0xc0a4, 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca,
- 0xc253, 0xc252, 0xf1f6, 0xf1f8, 0xf1f7, 0xc361, 0xc362, 0xc363,
- 0xf442, 0xc45b, 0xf7d3, 0xf7d2, 0xc5f2, 0xa468, 0xa4d0, 0xa7a7,
- 0xce5f, 0xb3fc, 0xb3fd, 0xdcf2, 0xb9d8, 0xe169, 0xe553, 0xc95a,
- 0xcab0, 0xcc42, 0xce60, 0xd159, 0xae4c, 0xf1f9, 0xc4dc, 0xa469,
- 0xa57e, 0xc970, 0xa667, 0xa668, 0xa95d, 0xb0f7, 0xb9da, 0xb9db,
- 0xb9d9, 0xa46a, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b, 0xa4d4, 0xa5a1,
- 0xc971, 0xa5a2, 0xa669, 0xa66a, 0xc9cb, 0xa7a8, 0xcab1, 0xa961,
- 0xcc43, 0xa95f, 0xa960, 0xa95e, 0xd15a, 0xabb6, 0xabb5, 0xabb7,
- 0xabb4, 0xce61, 0xa962, 0xabb3, 0xae4d, 0xae4e, 0xae4f, 0xd4cd,
- 0xb3fe, 0xd8b4, 0xb0f8, 0xb6f8, 0xb9dd, 0xb9dc, 0xe16a, 0xbc5d,
- 0xbec4, 0xefc0, 0xf6da, 0xf7d4, 0xa46b, 0xa5a3, 0xa5a4, 0xc9d1,
- 0xa66c, 0xa66f, 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, 0xc9cc,
- 0xa671, 0xa670, 0xa66d, 0xa66b, 0xc9ce, 0xa7b3, 0xa7b0, 0xcab6,
- 0xcab9, 0xcab8, 0xa7aa, 0xa7b2, 0xa7af, 0xcab5, 0xcab3, 0xa7ae,
- 0xa7a9, 0xa7ac, 0xcab4, 0xcabb, 0xcab7, 0xa7ad, 0xa7b1, 0xa7b4,
- 0xcab2, 0xcaba, 0xa7ab, 0xa967, 0xa96f, 0xcc4f, 0xcc48, 0xa970,
- 0xcc53, 0xcc44, 0xcc4b, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50,
- 0xa963, 0xcc51, 0xcc4a, 0xcc4d, 0xa972, 0xa969, 0xcc54, 0xcc52,
- 0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, 0xa96a, 0xa968,
- 0xa971, 0xa96d, 0xa965, 0xcc4e, 0xabb9, 0xabc0, 0xce6f, 0xabb8,
- 0xce67, 0xce63, 0xce73, 0xce62, 0xabbb, 0xce6c, 0xabbe, 0xabc1,
- 0xabbc, 0xce70, 0xabbf, 0xae56, 0xce76, 0xce64, 0xce66, 0xce6d,
- 0xce71, 0xce75, 0xce72, 0xce6b, 0xce6e, 0xce68, 0xabc3, 0xce6a,
- 0xce69, 0xce74, 0xabba, 0xce65, 0xabc2, 0xabbd, 0xae5c, 0xd162,
- 0xae5b, 0xd160, 0xae50, 0xae55, 0xd15f, 0xd15c, 0xd161, 0xae51,
- 0xd15b, 0xae54, 0xae52, 0xd163, 0xae53, 0xae57, 0xae58, 0xae5a,
- 0xae59, 0xd15d, 0xd15e, 0xd164, 0xd4d4, 0xb0f9, 0xd8c2, 0xd4d3,
- 0xd4e6, 0xb140, 0xd4e4, 0xb0fe, 0xb0fa, 0xd4ed, 0xd4dd, 0xd4e0,
- 0xb143, 0xd4ea, 0xd4e2, 0xb0fb, 0xb144, 0xd4e7, 0xd4e5, 0xd4d6,
- 0xd4eb, 0xd4df, 0xd4da, 0xd4d0, 0xd4ec, 0xd4dc, 0xd4cf, 0xb142,
- 0xd4e1, 0xd4ee, 0xd4de, 0xd4d2, 0xd4d7, 0xd4ce, 0xb141, 0xd4db,
- 0xd4d8, 0xb0fc, 0xd4d1, 0xd4e9, 0xb0fd, 0xd4d9, 0xd4d5, 0xd4e8,
- 0xb440, 0xd8bb, 0xd8b8, 0xd8c9, 0xd8bd, 0xd8ca, 0xb442, 0xd8c6,
- 0xd8c3, 0xd8c4, 0xd8c7, 0xd8cb, 0xd4e3, 0xd8cd, 0xdd47, 0xb443,
- 0xd8ce, 0xd8b6, 0xd8c0, 0xd8c5, 0xb441, 0xb444, 0xd8cc, 0xd8cf,
- 0xd8ba, 0xd8b7, 0xd8b9, 0xd8be, 0xd8bc, 0xb445, 0xd8c8, 0xd8bf,
- 0xd8c1, 0xd8b5, 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9,
- 0xdd44, 0xdd40, 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd,
- 0xb6fc, 0xdcfb, 0xdd41, 0xb6f9, 0xb741, 0xdcf4, 0xdcfe, 0xdcf3,
- 0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0xe16e, 0xb9e2,
- 0xb9e1, 0xb9e3, 0xe17a, 0xe170, 0xe176, 0xe16b, 0xe179, 0xe178,
- 0xe17c, 0xe175, 0xb9de, 0xe174, 0xb9e4, 0xe16d, 0xb9df, 0xe17b,
- 0xb9e0, 0xe16f, 0xe172, 0xe177, 0xe171, 0xe16c, 0xe173, 0xe555,
- 0xbc61, 0xe558, 0xe557, 0xe55a, 0xe55c, 0xbc5f, 0xe556, 0xe554,
- 0xe55d, 0xe55b, 0xe559, 0xe55f, 0xe55e, 0xbc63, 0xbc5e, 0xbc60,
- 0xbc62, 0xe560, 0xe957, 0xe956, 0xe955, 0xe958, 0xe951, 0xe952,
- 0xe95a, 0xe953, 0xbec5, 0xe95c, 0xe95b, 0xe954, 0xecd1, 0xc0a8,
- 0xeccf, 0xecd4, 0xecd3, 0xe959, 0xc0a7, 0xecd2, 0xecce, 0xecd6,
- 0xecd5, 0xc0a6, 0xecd0, 0xbec6, 0xc254, 0xefc1, 0xf1fa, 0xf1fb,
- 0xf1fc, 0xc45c, 0xc45d, 0xf443, 0xf5c8, 0xf5c7, 0xf6db, 0xf6dc,
- 0xf7d5, 0xf8a7, 0xa46c, 0xa46d, 0xa46e, 0xa4d5, 0xa5a5, 0xc9d3,
- 0xa672, 0xa673, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5, 0xa973, 0xcc55,
- 0xa975, 0xa974, 0xcc56, 0xabc4, 0xae5d, 0xd165, 0xd4f0, 0xb145,
- 0xb447, 0xd4ef, 0xb446, 0xb9e5, 0xe17d, 0xbec7, 0xc0a9, 0xecd7,
- 0xc45e, 0xc570, 0xc972, 0xa5a6, 0xc973, 0xa676, 0xa674, 0xa675,
- 0xa677, 0xa7ba, 0xa7b9, 0xcabc, 0xa7bb, 0xcabd, 0xcc57, 0xcc58,
- 0xa976, 0xa978, 0xa97a, 0xa977, 0xa97b, 0xa979, 0xabc8, 0xabc5,
- 0xabc7, 0xabc9, 0xabc6, 0xd166, 0xce77, 0xd168, 0xd167, 0xae63,
- 0xae5f, 0xae60, 0xae62, 0xae64, 0xae61, 0xae66, 0xae65, 0xb14a,
- 0xd4f2, 0xd4f1, 0xb149, 0xb148, 0xb147, 0xb14b, 0xb146, 0xd8d5,
- 0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0xb44b, 0xd8d4, 0xb448, 0xb44a,
- 0xd8d3, 0xdd48, 0xdd49, 0xdd4a, 0xb9e6, 0xb9ee, 0xe17e, 0xb9e8,
- 0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea, 0xb9e7, 0xb9eb, 0xbc66,
- 0xd8d0, 0xbc67, 0xbc65, 0xbc64, 0xe95d, 0xbec8, 0xecd8, 0xecd9,
- 0xc364, 0xc45f, 0xa46f, 0xa678, 0xabca, 0xd169, 0xae67, 0xb14e,
- 0xb14d, 0xb14c, 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470,
- 0xc95c, 0xa4d6, 0xc974, 0xc9d4, 0xa679, 0xa97c, 0xdd4b, 0xa471,
- 0xa4d7, 0xc9d5, 0xcabe, 0xcabf, 0xa7bc, 0xd8d8, 0xb44e, 0xdd4c,
- 0xc0aa, 0xa472, 0xa4a8, 0xa4d8, 0xc975, 0xa5a7, 0xa7c0, 0xa7bf,
- 0xa7bd, 0xa7be, 0xcc59, 0xa97e, 0xa9a1, 0xcc5a, 0xa97d, 0xabce,
- 0xce78, 0xabcd, 0xabcb, 0xabcc, 0xae6a, 0xae68, 0xd16b, 0xae69,
- 0xd16a, 0xae5e, 0xd4f3, 0xb150, 0xb151, 0xb14f, 0xb9f0, 0xe1a2,
- 0xbc68, 0xbc69, 0xe561, 0xc0ab, 0xefc2, 0xefc3, 0xc4dd, 0xf8a8,
- 0xc94b, 0xa4d9, 0xa473, 0xc977, 0xc976, 0xa67a, 0xc9d7, 0xc9d8,
- 0xc9d6, 0xc9d9, 0xcac7, 0xcac2, 0xcac4, 0xcac6, 0xcac3, 0xa7c4,
- 0xcac0, 0xcac1, 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3, 0xcac9,
- 0xcc68, 0xcc62, 0xcc5d, 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69,
- 0xcc6c, 0xcc67, 0xcc60, 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64,
- 0xcc5b, 0xcc5f, 0xcc6b, 0xa9a7, 0xa9a8, 0xcc5e, 0xcc6a, 0xa9a2,
- 0xa9a4, 0xceab, 0xcea4, 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b,
- 0xceac, 0xcea9, 0xce79, 0xabd0, 0xcea7, 0xcea8, 0xcea6, 0xce7c,
- 0xce7a, 0xabcf, 0xcea2, 0xce7e, 0xcea1, 0xcead, 0xae6f, 0xae6e,
- 0xd16c, 0xae6b, 0xd16e, 0xae70, 0xd16f, 0xae73, 0xae71, 0xd170,
- 0xceae, 0xd172, 0xae6d, 0xae6c, 0xd16d, 0xd171, 0xae72, 0xb153,
- 0xb152, 0xd4f5, 0xd4f9, 0xd4fb, 0xb154, 0xd4fe, 0xb158, 0xd541,
- 0xb15a, 0xb156, 0xb15e, 0xb15b, 0xd4f7, 0xb155, 0xd4f6, 0xd4f4,
- 0xd543, 0xd4f8, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d,
- 0xd4fa, 0xb159, 0xd544, 0xd540, 0xd8e7, 0xd8ee, 0xd8e3, 0xb451,
- 0xd8df, 0xd8ef, 0xd8d9, 0xd8ec, 0xd8ea, 0xd8e4, 0xd8ed, 0xd8e6,
- 0xd8de, 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da, 0xd8f1, 0xb452, 0xd8eb,
- 0xdd4f, 0xd8dd, 0xb44f, 0xd8e1, 0xb450, 0xd8e0, 0xd8e5, 0xd8e2,
- 0xd8e8, 0xdd53, 0xdd56, 0xdd4e, 0xdd50, 0xdd55, 0xdd54, 0xb743,
- 0xd8db, 0xdd52, 0xb744, 0xdd4d, 0xdd51, 0xe1a9, 0xe1b0, 0xe1a7,
- 0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, 0xe1a4, 0xe1a8, 0xe1a3, 0xb9f1,
- 0xe1a6, 0xb9f2, 0xe1ac, 0xe1ab, 0xe1aa, 0xe1af, 0xe565, 0xe567,
- 0xbc6b, 0xe568, 0xe563, 0xe562, 0xe56c, 0xe56a, 0xbc6a, 0xe56d,
- 0xe564, 0xe569, 0xe56b, 0xe566, 0xe961, 0xe966, 0xe960, 0xe965,
- 0xe95e, 0xe968, 0xe964, 0xe969, 0xe963, 0xe95f, 0xe967, 0xe96a,
- 0xe962, 0xecda, 0xc0af, 0xc0ad, 0xc0ac, 0xc0ae, 0xefc4, 0xf172,
- 0xf1fd, 0xf444, 0xf445, 0xc460, 0xf5c9, 0xc4de, 0xf5ca, 0xf6de,
- 0xc572, 0xc571, 0xf6dd, 0xc5c9, 0xf7d6, 0xa474, 0xa67b, 0xc9da,
- 0xcaca, 0xa8b5, 0xb15f, 0xa475, 0xa5aa, 0xa5a9, 0xa5a8, 0xa7c5,
- 0xae74, 0xdd57, 0xa476, 0xa477, 0xa478, 0xa4da, 0xabd1, 0xceaf,
- 0xb453, 0xa479, 0xc95d, 0xa5ab, 0xa5ac, 0xc978, 0xa67c, 0xcacb,
- 0xa7c6, 0xcacc, 0xa9ae, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d, 0xa9a9,
- 0xcc6f, 0xa9aa, 0xa9ad, 0xabd2, 0xabd4, 0xceb3, 0xceb0, 0xceb1,
- 0xceb2, 0xceb4, 0xabd3, 0xd174, 0xd173, 0xae76, 0xae75, 0xb162,
- 0xd546, 0xb161, 0xb163, 0xb160, 0xb455, 0xd545, 0xb456, 0xd8f3,
- 0xb457, 0xd8f2, 0xb454, 0xdd5a, 0xdd5c, 0xb745, 0xdd5b, 0xdd59,
- 0xdd58, 0xe1b4, 0xb9f7, 0xb9f5, 0xb9f6, 0xe1b2, 0xe1b3, 0xb9f3,
- 0xe571, 0xe56f, 0xbc6d, 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0xe96d,
- 0xe96b, 0xe96c, 0xe56e, 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6,
- 0xe96e, 0xf1fe, 0xa47a, 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0xa9af,
- 0xb746, 0xa4db, 0xa5ae, 0xabd5, 0xb458, 0xc979, 0xc97a, 0xc9dc,
- 0xa7c8, 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1, 0xa7c7,
- 0xa9b3, 0xa9b4, 0xa9b1, 0xa9b0, 0xceb8, 0xa9b2, 0xabd6, 0xceb7,
- 0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79, 0xd175, 0xd177, 0xae77,
- 0xd178, 0xae78, 0xd176, 0xceb5, 0xd547, 0xd54a, 0xd54b, 0xd548,
- 0xb167, 0xb166, 0xb164, 0xb165, 0xd549, 0xb168, 0xb45a, 0xb45b,
- 0xb45c, 0xdd5d, 0xdd5f, 0xdd61, 0xb748, 0xb747, 0xb459, 0xdd60,
- 0xdd5e, 0xe1b8, 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9,
- 0xe1b7, 0xe1b5, 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574,
- 0xbc71, 0xbc74, 0xe575, 0xbc6f, 0xbc73, 0xe973, 0xe971, 0xe970,
- 0xe972, 0xe96f, 0xc366, 0xf446, 0xf447, 0xf5cb, 0xf6df, 0xc655,
- 0xa9b5, 0xa7ca, 0xabd8, 0xa47b, 0xa4dc, 0xa5af, 0xc9dd, 0xa7cb,
- 0xcad2, 0xcebb, 0xabd9, 0xb9fa, 0xa47c, 0xa6a1, 0xb749, 0xa47d,
- 0xa4dd, 0xa4de, 0xa5b1, 0xa5b0, 0xc9de, 0xa6a2, 0xcad3, 0xa7cc,
- 0xcc71, 0xcc72, 0xcc73, 0xa9b6, 0xa9b7, 0xcc70, 0xa9b8, 0xabda,
- 0xcebc, 0xd17a, 0xae7a, 0xd179, 0xb169, 0xd54c, 0xb16a, 0xd54d,
- 0xb45d, 0xdd62, 0xe1bf, 0xe1be, 0xb9fb, 0xbc75, 0xe576, 0xbeca,
- 0xe974, 0xc0b1, 0xc573, 0xf7d8, 0xcc74, 0xcebd, 0xb16b, 0xd8f4,
- 0xb74a, 0xc255, 0xa7ce, 0xa7cd, 0xabdb, 0xd17b, 0xb16d, 0xb343,
- 0xb16e, 0xb16c, 0xb45e, 0xe1c0, 0xb9fc, 0xbc76, 0xc94c, 0xc9df,
- 0xcad5, 0xa7cf, 0xcad4, 0xa7d0, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb,
- 0xa9b9, 0xa9ba, 0xcc75, 0xabdd, 0xcebe, 0xabe0, 0xabdc, 0xabe2,
- 0xabde, 0xabdf, 0xabe1, 0xae7d, 0xae7c, 0xae7b, 0xd54f, 0xb16f,
- 0xb172, 0xb170, 0xd54e, 0xb175, 0xb171, 0xd550, 0xb174, 0xb173,
- 0xd8f6, 0xd8f5, 0xb461, 0xb45f, 0xb460, 0xd8f7, 0xb74b, 0xdd64,
- 0xb74c, 0xdd63, 0xe577, 0xbc78, 0xe1c1, 0xbc77, 0xb9fd, 0xecde,
- 0xe975, 0xc0b2, 0xecdd, 0xf240, 0xf448, 0xf449, 0xa4df, 0xa5b2,
- 0xc97b, 0xa7d2, 0xa7d4, 0xc9e2, 0xcad8, 0xcad7, 0xcad6, 0xc9e1,
- 0xc9e0, 0xa6a4, 0xa7d3, 0xa7d1, 0xa6a3, 0xa9bd, 0xcc78, 0xa9be,
- 0xcadd, 0xcadf, 0xcade, 0xcc79, 0xcada, 0xa7d8, 0xa7d6, 0xcad9,
- 0xcadb, 0xcae1, 0xa7d5, 0xcadc, 0xcae5, 0xa9c0, 0xcae2, 0xa7d7,
- 0xcae0, 0xcae3, 0xa9bf, 0xa9c1, 0xcae4, 0xccaf, 0xcca2, 0xcc7e,
- 0xccae, 0xcca9, 0xabe7, 0xa9c2, 0xccaa, 0xccad, 0xabe3, 0xccac,
- 0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, 0xcc7c, 0xcca5, 0xa9cd, 0xccb0,
- 0xabe4, 0xcca6, 0xabe5, 0xa9c9, 0xcca8, 0xcecd, 0xabe6, 0xcc7b,
- 0xa9ca, 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7, 0xcc7a, 0xccab,
- 0xa9c4, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5, 0xcebf, 0xcec0, 0xceca,
- 0xd1a1, 0xcecb, 0xabee, 0xcece, 0xcec4, 0xabed, 0xcec6, 0xcec7,
- 0xcec9, 0xabe9, 0xaea3, 0xcec5, 0xcec1, 0xaea4, 0xcecf, 0xae7e,
- 0xd17d, 0xcec8, 0xd17c, 0xcec3, 0xcecc, 0xabec, 0xaea1, 0xabf2,
- 0xaea2, 0xced0, 0xd17e, 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef,
- 0xaea5, 0xced1, 0xaea7, 0xabea, 0xcec2, 0xb176, 0xd1a4, 0xd1a6,
- 0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, 0xd1a3, 0xb178, 0xd551,
- 0xaead, 0xaeab, 0xd1ae, 0xd552, 0xd1a5, 0xaeac, 0xd1a9, 0xaeaf,
- 0xd1ab, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0xaea9, 0xb179, 0xd1a2,
- 0xb177, 0xb17a, 0xd555, 0xd55e, 0xb464, 0xb17c, 0xb1a3, 0xb465,
- 0xd560, 0xb1aa, 0xd8f9, 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554,
- 0xd562, 0xd565, 0xd949, 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac,
- 0xd55d, 0xd8f8, 0xd561, 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559,
- 0xb462, 0xd557, 0xd558, 0xb1a7, 0xb1a6, 0xd55b, 0xb1ab, 0xd55f,
- 0xb1a4, 0xd55c, 0xb1a9, 0xb466, 0xb463, 0xd8fb, 0xd55a, 0xb17d,
- 0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d, 0xd944, 0xb471, 0xdd65,
- 0xd946, 0xb753, 0xb469, 0xb46c, 0xd947, 0xd948, 0xd94e, 0xb473,
- 0xb754, 0xd94a, 0xd94f, 0xd943, 0xb75e, 0xb755, 0xb472, 0xd941,
- 0xd950, 0xb75d, 0xb470, 0xb74e, 0xd94d, 0xb474, 0xd945, 0xd8fe,
- 0xb46a, 0xd942, 0xd94b, 0xb74d, 0xb752, 0xb467, 0xd94c, 0xb750,
- 0xb468, 0xb75c, 0xe1c3, 0xdd70, 0xdd68, 0xe1c2, 0xdd6c, 0xdd6e,
- 0xdd6b, 0xb75b, 0xdd6a, 0xb75f, 0xe1d2, 0xb75a, 0xba40, 0xdd71,
- 0xe1c4, 0xb758, 0xdd69, 0xdd6d, 0xb9fe, 0xb74f, 0xdd66, 0xdd67,
- 0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f, 0xe1c8, 0xe1c9, 0xe1ce,
- 0xbc7d, 0xe1d5, 0xba47, 0xba46, 0xe1d0, 0xbc7c, 0xe1c5, 0xba45,
- 0xe1d4, 0xba43, 0xba44, 0xe1d1, 0xe5aa, 0xbc7a, 0xb46e, 0xe1d3,
- 0xbca3, 0xe1cb, 0xbc7b, 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7, 0xe1cd,
- 0xba48, 0xbc79, 0xba42, 0xe57a, 0xe1cf, 0xbca1, 0xbca4, 0xe1cc,
- 0xbc7e, 0xe579, 0xe57e, 0xbece, 0xe578, 0xe9a3, 0xe5a9, 0xbca8,
- 0xbca6, 0xbecc, 0xe5a6, 0xe5a2, 0xbcac, 0xe978, 0xbcaa, 0xe5a1,
- 0xe976, 0xe5a5, 0xe5a8, 0xe57d, 0xbcab, 0xbca5, 0xe977, 0xbecd,
- 0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, 0xe57c, 0xe57b,
- 0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0xe9a2, 0xe97e, 0xece1,
- 0xbed1, 0xe9a1, 0xe97c, 0xc0b4, 0xecdf, 0xe979, 0xe97b, 0xc0b5,
- 0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d, 0xbecf, 0xefcf, 0xefc7,
- 0xece7, 0xefc8, 0xece3, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2,
- 0xece6, 0xefd0, 0xefcc, 0xefce, 0xefc9, 0xefca, 0xefcd, 0xefcb,
- 0xc367, 0xc36a, 0xc369, 0xc368, 0xc461, 0xf44a, 0xc462, 0xf241,
- 0xc4df, 0xf5cc, 0xc4e0, 0xc574, 0xc5ca, 0xf7d9, 0xf7da, 0xf7db,
- 0xf9ba, 0xa4e0, 0xc97c, 0xa5b3, 0xa6a6, 0xa6a7, 0xa6a5, 0xa6a8,
- 0xa7da, 0xa7d9, 0xccb1, 0xa9cf, 0xa9ce, 0xd1af, 0xb1ad, 0xb1ae,
- 0xb475, 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0xe1d7,
- 0xe1d6, 0xba49, 0xe1d8, 0xe5ac, 0xbcae, 0xbed4, 0xc0b8, 0xc257,
- 0xc0b9, 0xa4e1, 0xcae6, 0xccb2, 0xa9d1, 0xa9d0, 0xa9d2, 0xabf3,
- 0xced2, 0xced3, 0xd1b0, 0xaeb0, 0xb1af, 0xb476, 0xd951, 0xa4e2,
- 0xa47e, 0xa4e3, 0xc97d, 0xa5b7, 0xa5b6, 0xa5b4, 0xa5b5, 0xa6ab,
- 0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3, 0xc9e4, 0xc9ea, 0xc9e6, 0xc9e8,
- 0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7, 0xa7e1, 0xa7ea, 0xa7e8, 0xcaf0,
- 0xcaed, 0xcaf5, 0xa7e6, 0xcaf6, 0xa7df, 0xcaf3, 0xa7e5, 0xcaef,
- 0xcaee, 0xa7e3, 0xcaf4, 0xa7e4, 0xa9d3, 0xa7de, 0xcaf1, 0xcae7,
- 0xa7db, 0xa7ee, 0xcaec, 0xcaf2, 0xa7e0, 0xa7e2, 0xcae8, 0xcae9,
- 0xcaea, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc,
- 0xa7e9, 0xa9e1, 0xccbe, 0xccb7, 0xa9dc, 0xa9ef, 0xccb3, 0xccba,
- 0xccbc, 0xccbf, 0xa9ea, 0xccbb, 0xccb4, 0xa9e8, 0xccb8, 0xccc0,
- 0xa9d9, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6, 0xa9d7, 0xa9d8, 0xa9d6,
- 0xa9ee, 0xa9e6, 0xa9e0, 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7,
- 0xa9f0, 0xced4, 0xa9e4, 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0xa9ec,
- 0xa9ed, 0xa9eb, 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0xceda, 0xac41,
- 0xabf8, 0xabfa, 0xac40, 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43,
- 0xced7, 0xcedf, 0xabfe, 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7,
- 0xabfb, 0xac42, 0xaeb3, 0xcee0, 0xabf9, 0xac45, 0xced9, 0xabfc,
- 0xaeb2, 0xabf6, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, 0xd1b2,
- 0xac44, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0xaec1, 0xd1be, 0xaebf,
- 0xaec0, 0xd1b4, 0xd1c4, 0xaeb6, 0xd566, 0xd1c6, 0xd1c0, 0xd1b7,
- 0xd1c9, 0xd1ba, 0xaebc, 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0xd1cb,
- 0xd1bf, 0xaeb8, 0xd1b8, 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, 0xd1cc,
- 0xaebb, 0xd1bc, 0xd1bb, 0xaec3, 0xaec2, 0xaeb4, 0xaeba, 0xaebd,
- 0xd1c8, 0xd1c2, 0xaeb7, 0xd1b3, 0xd1ca, 0xd1c1, 0xd1c3, 0xd1c7,
- 0xd567, 0xb1b7, 0xb1cb, 0xb1ca, 0xb1bf, 0xd579, 0xd575, 0xd572,
- 0xd5a6, 0xb1ba, 0xb1b2, 0xd577, 0xb4a8, 0xb1b6, 0xd5a1, 0xb1cc,
- 0xb1c9, 0xd57b, 0xd56a, 0xb1c8, 0xd5a3, 0xd569, 0xb1bd, 0xb1c1,
- 0xd5a2, 0xd573, 0xb1c2, 0xb1bc, 0xd568, 0xb478, 0xd5a5, 0xd571,
- 0xb1c7, 0xd574, 0xd5a4, 0xb1c6, 0xd952, 0xb1b3, 0xd56f, 0xb1b8,
- 0xb1c3, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e, 0xb1b0, 0xb1c4,
- 0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0xb1b1, 0xb1c0, 0xb1bb, 0xb1b9,
- 0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, 0xd954, 0xd953, 0xd56b,
- 0xd964, 0xb47a, 0xd96a, 0xd959, 0xd967, 0xdd77, 0xb47d, 0xd96b,
- 0xd96e, 0xb47c, 0xd95c, 0xd96d, 0xd96c, 0xb47e, 0xd955, 0xb479,
- 0xb4a3, 0xb4a1, 0xd969, 0xd95f, 0xb4a5, 0xd970, 0xd968, 0xd971,
- 0xb4ad, 0xb4ab, 0xd966, 0xd965, 0xd963, 0xd95d, 0xb4a4, 0xb4a2,
- 0xd1b9, 0xd956, 0xddb7, 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0xb4a6,
- 0xb4a7, 0xd958, 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961,
- 0xd95e, 0xb4ae, 0xb770, 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c,
- 0xddbb, 0xb769, 0xdd7a, 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e,
- 0xb76f, 0xdda5, 0xddb2, 0xddb8, 0xb76a, 0xb764, 0xdda3, 0xdd7d,
- 0xddba, 0xdda8, 0xdda9, 0xdd7e, 0xddb4, 0xddab, 0xddb5, 0xddad,
- 0xb765, 0xe1d9, 0xb768, 0xb766, 0xddb9, 0xddb0, 0xddac, 0xdda1,
- 0xba53, 0xddaf, 0xb76d, 0xdda7, 0xdda6, 0xb767, 0xb763, 0xe1ee,
- 0xddb3, 0xddae, 0xdda2, 0xe1e9, 0xe1da, 0xe1e5, 0xe1ec, 0xba51,
- 0xb4ac, 0xe1ea, 0xba4c, 0xba4b, 0xe1f1, 0xe1db, 0xe1e8, 0xe1dc,
- 0xe1e7, 0xba4f, 0xe1eb, 0xd962, 0xe1f2, 0xe1e3, 0xba52, 0xe5ba,
- 0xbcaf, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0, 0xe5ae, 0xe1df,
- 0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3, 0xba4e, 0xbcb1, 0xba50,
- 0xba55, 0xe1e1, 0xe1ed, 0xe1e6, 0xe5b1, 0xba4a, 0xbcb4, 0xe9aa,
- 0xe5b6, 0xe5b5, 0xe5b7, 0xe5b4, 0xbcb5, 0xbcbb, 0xbcb8, 0xbcb9,
- 0xe5af, 0xe5b2, 0xe5bc, 0xbcc1, 0xbcbf, 0xe5b3, 0xd95a, 0xbcb2,
- 0xe5b9, 0xe5b0, 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0xbcba,
- 0xbcbe, 0xbcc0, 0xbcbd, 0xbcbc, 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3,
- 0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, 0xbed6, 0xbedd, 0xe9ab,
- 0xbedb, 0xbed5, 0xbedc, 0xe9a8, 0xc0bb, 0xbed7, 0xbede, 0xc0ba,
- 0xe9a7, 0xe9a6, 0xbee0, 0xbee1, 0xe9a5, 0xe9a4, 0xc0bc, 0xe9ae,
- 0xbeda, 0xe9ac, 0xc0bd, 0xc0c2, 0xecea, 0xecec, 0xc0bf, 0xeced,
- 0xece9, 0xeceb, 0xc0c0, 0xc0c3, 0xece8, 0xc0be, 0xc0c1, 0xc259,
- 0xe9ad, 0xc258, 0xc25e, 0xefd4, 0xc25c, 0xc25d, 0xefd7, 0xefd3,
- 0xc25a, 0xefd1, 0xc36b, 0xefd5, 0xefd6, 0xefd2, 0xc25b, 0xf242,
- 0xf245, 0xf246, 0xf244, 0xf247, 0xc36c, 0xf243, 0xf44e, 0xc464,
- 0xf44d, 0xf44c, 0xf44b, 0xc463, 0xc465, 0xf5cd, 0xc4e2, 0xc4e1,
- 0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb, 0xc575, 0xf7dd, 0xf6e2, 0xf7dc,
- 0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9, 0xf8ef, 0xa4e4, 0xd972, 0xe9af,
- 0xa6ac, 0xcaf7, 0xa7f1, 0xa7ef, 0xa7f0, 0xccc1, 0xa9f1, 0xac46,
- 0xcee7, 0xcee8, 0xac47, 0xd1ce, 0xaec4, 0xaec5, 0xd1cd, 0xb1d3,
- 0xb1cf, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, 0xb1d4, 0xb1d0,
- 0xd976, 0xb1cd, 0xb4af, 0xb4b1, 0xb4b2, 0xd975, 0xd978, 0xb4b0,
- 0xd973, 0xd977, 0xd974, 0xb771, 0xddbc, 0xba56, 0xe1f4, 0xbee3,
- 0xbcc4, 0xe5bd, 0xbcc5, 0xbcc6, 0xe5bf, 0xe5be, 0xe5c0, 0xe9b1,
- 0xe9b0, 0xecef, 0xecee, 0xc0c4, 0xc0c5, 0xf248, 0xa4e5, 0xd979,
- 0xb4b4, 0xb4b3, 0xddbd, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, 0xaec6,
- 0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, 0xe1f5, 0xba57, 0xe9b2,
- 0xa4e7, 0xa5b8, 0xa9f2, 0xccc2, 0xcee9, 0xac48, 0xb1d9, 0xd97c,
- 0xb4b5, 0xb773, 0xe5c1, 0xe5c2, 0xecf0, 0xc25f, 0xf8f0, 0xa4e8,
- 0xccc3, 0xa9f3, 0xac49, 0xceea, 0xaec7, 0xd1d2, 0xd1d0, 0xd1d1,
- 0xaec8, 0xd1cf, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd, 0xb1da, 0xd97d,
- 0xd97e, 0xddbe, 0xba59, 0xba58, 0xecf1, 0xefd9, 0xf24a, 0xf249,
- 0xf44f, 0xc95e, 0xac4a, 0xa4e9, 0xa5b9, 0xa6ae, 0xa6ad, 0xa6af,
- 0xa6b0, 0xc9ee, 0xc9ed, 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9,
- 0xcafc, 0xa9f4, 0xccc9, 0xccc5, 0xccce, 0xa9fb, 0xa9f9, 0xccca,
- 0xccc6, 0xcccd, 0xa9f8, 0xaa40, 0xccc8, 0xccc4, 0xa9fe, 0xcccb,
- 0xa9f7, 0xcccc, 0xa9fa, 0xa9fc, 0xccd0, 0xcccf, 0xccc7, 0xa9f6,
- 0xa9f5, 0xa9fd, 0xceef, 0xcef5, 0xac50, 0xac4d, 0xceec, 0xcef1,
- 0xac53, 0xac4b, 0xcef0, 0xac4e, 0xac51, 0xcef3, 0xac4c, 0xcef8,
- 0xac4f, 0xac52, 0xceed, 0xcef2, 0xcef6, 0xceee, 0xceeb, 0xcef7,
- 0xcef4, 0xaed0, 0xaec9, 0xaecc, 0xaecf, 0xd1d5, 0xaeca, 0xd1d3,
- 0xaece, 0xaecb, 0xd1d6, 0xaecd, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad,
- 0xb1de, 0xb1e3, 0xd1d4, 0xd5aa, 0xd5ae, 0xb1e0, 0xd5a9, 0xb1e2,
- 0xb1e1, 0xd9a7, 0xd9a2, 0xb4b6, 0xb4ba, 0xb4b7, 0xd9a5, 0xd9a8,
- 0xb4b8, 0xb4b9, 0xb4be, 0xddc7, 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1,
- 0xb4bd, 0xd9a4, 0xb779, 0xddbf, 0xb776, 0xb777, 0xb775, 0xddc4,
- 0xddc3, 0xddc0, 0xb77b, 0xddc2, 0xb4bb, 0xddc6, 0xddc1, 0xb778,
- 0xb774, 0xb77a, 0xddc5, 0xba5c, 0xe1f8, 0xe1f7, 0xe1f6, 0xba5a,
- 0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0xbcc7, 0xe5c9, 0xe5c4, 0xbcca,
- 0xe5c6, 0xbcc9, 0xe5c3, 0xe5c7, 0xbee9, 0xbee6, 0xe9bb, 0xe9ba,
- 0xe9b9, 0xe9b4, 0xe9b5, 0xbee7, 0xbee4, 0xbee8, 0xe9b3, 0xbee5,
- 0xe9b6, 0xe9b7, 0xe9bc, 0xe9b8, 0xecf2, 0xc0c7, 0xefdc, 0xc0c6,
- 0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0xc36d, 0xf451, 0xf452,
- 0xc466, 0xf450, 0xc4e4, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0xa4ea,
- 0xa6b1, 0xa6b2, 0xa7f3, 0xccd1, 0xac54, 0xaed1, 0xb1e4, 0xb0d2,
- 0xb4bf, 0xb4c0, 0xb3cc, 0xd9a9, 0xb77c, 0xe1fa, 0xe1f9, 0xa4eb,
- 0xa6b3, 0xccd2, 0xaa42, 0xaa41, 0xcef9, 0xcefa, 0xd1d7, 0xd1d8,
- 0xaed2, 0xaed3, 0xaed4, 0xd5af, 0xb1e6, 0xb4c2, 0xb4c1, 0xddc8,
- 0xdf7a, 0xe1fb, 0xe9bd, 0xc261, 0xc467, 0xa4ec, 0xa5bc, 0xa5bd,
- 0xa5bb, 0xa5be, 0xa5ba, 0xa6b6, 0xc9f6, 0xa6b5, 0xa6b7, 0xc9f1,
- 0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4, 0xcafd,
- 0xa7fd, 0xcafe, 0xcb43, 0xa7fc, 0xcb47, 0xcb42, 0xcb45, 0xa7f5,
- 0xa7f6, 0xa7f7, 0xa7f8, 0xa840, 0xcb41, 0xa7fa, 0xa841, 0xcb40,
- 0xcb46, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, 0xa7fe, 0xaa57, 0xccd4,
- 0xaa43, 0xaa4d, 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53,
- 0xccd7, 0xaa49, 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4,
- 0xaa51, 0xaa4f, 0xcce5, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a,
- 0xaa50, 0xaa44, 0xccde, 0xccdd, 0xccd5, 0xaa52, 0xcce1, 0xccd6,
- 0xaa55, 0xcce8, 0xaa45, 0xaa4c, 0xccd9, 0xcce2, 0xaa54, 0xaa47,
- 0xaa4b, 0xcce0, 0xcf5b, 0xac5c, 0xac69, 0xcf56, 0xcf4c, 0xac62,
- 0xcf4a, 0xac5b, 0xcf45, 0xac65, 0xcf52, 0xcefe, 0xcf41, 0xcf44,
- 0xcefb, 0xcf51, 0xcf61, 0xac60, 0xcf46, 0xcf58, 0xcefd, 0xcf5f,
- 0xcf60, 0xcf63, 0xcf5a, 0xcf4b, 0xcf53, 0xac66, 0xac59, 0xac61,
- 0xac6d, 0xac56, 0xac58, 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40,
- 0xac6c, 0xac67, 0xcf49, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c,
- 0xcf54, 0xac5e, 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f,
- 0xcf55, 0xac57, 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d,
- 0xcf42, 0xcf5e, 0xcf57, 0xac55, 0xd1ec, 0xaeea, 0xd1ed, 0xd1e1,
- 0xaedf, 0xaeeb, 0xd1da, 0xd1e3, 0xd1eb, 0xd1d9, 0xd1f4, 0xaed5,
- 0xd1f3, 0xd1ee, 0xd1ef, 0xaedd, 0xaee8, 0xd1e5, 0xd1e6, 0xd1f0,
- 0xd1e7, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4, 0xaed6, 0xaeda,
- 0xd1f2, 0xd1de, 0xaee6, 0xaee2, 0xaee5, 0xaeec, 0xaedb, 0xaee7,
- 0xd1e9, 0xaee9, 0xaed8, 0xaed7, 0xd1db, 0xd1df, 0xaee0, 0xd1f1,
- 0xd1e8, 0xd1e0, 0xaee4, 0xaee1, 0xaed9, 0xaedc, 0xd5c4, 0xd5b4,
- 0xd5b5, 0xd5b9, 0xd5c8, 0xd5c5, 0xd5be, 0xd5bd, 0xb1ed, 0xd5c1,
- 0xd5d0, 0xd5b0, 0xd5d1, 0xd5c3, 0xd5d5, 0xd5c9, 0xb1ec, 0xd5c7,
- 0xb1e7, 0xb1fc, 0xb1f2, 0xb1f6, 0xb1f5, 0xd5b1, 0xd5ce, 0xd5d4,
- 0xd5cc, 0xd5d3, 0xd5c0, 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7,
- 0xd5cb, 0xb1f0, 0xd5ca, 0xd5b3, 0xb1f8, 0xb1fa, 0xd5cd, 0xb1fb,
- 0xb1e9, 0xd5ba, 0xd5cf, 0xb1ef, 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7,
- 0xd5bb, 0xb1f4, 0xd5b6, 0xb1e8, 0xb1f1, 0xb1ee, 0xd5bf, 0xaede,
- 0xd9c0, 0xb1eb, 0xb1f3, 0xd9c3, 0xd9d9, 0xd9ce, 0xb4d6, 0xb4d1,
- 0xd9bd, 0xb4d2, 0xd9cd, 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5,
- 0xb4c4, 0xd9b3, 0xb4c7, 0xb4c6, 0xb4d7, 0xd9ad, 0xd9cf, 0xd9d0,
- 0xb4c9, 0xb4c5, 0xd9bb, 0xb4d0, 0xd9b6, 0xd9d1, 0xb4cc, 0xd9c9,
- 0xd9d6, 0xd9b0, 0xd9b5, 0xd9af, 0xb4cb, 0xd9c2, 0xddde, 0xd9b1,
- 0xb4cf, 0xd9ba, 0xd9d2, 0xb4ca, 0xd9b7, 0xd9b4, 0xd9c5, 0xb4cd,
- 0xb4c3, 0xb4d9, 0xd9c8, 0xd9c7, 0xd9ac, 0xb4c8, 0xd9d4, 0xd9bc,
- 0xd9be, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5, 0xd9b2, 0xd9b9,
- 0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0xd9cc, 0xd9d8, 0xd9ae,
- 0xddf2, 0xb7a6, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0xddec, 0xddcb,
- 0xddd2, 0xddea, 0xddf4, 0xdddc, 0xddcf, 0xdde2, 0xdde7, 0xddd3,
- 0xdde4, 0xddd0, 0xddd7, 0xddd8, 0xb7a8, 0xddeb, 0xdde9, 0xddcc,
- 0xddee, 0xddef, 0xddf1, 0xb7ac, 0xb7a4, 0xd5b8, 0xddd4, 0xdde6,
- 0xddd5, 0xb7a1, 0xb7b1, 0xdded, 0xb7af, 0xb7ab, 0xddca, 0xb7a3,
- 0xddcd, 0xb7b0, 0xdddd, 0xddc9, 0xb7a9, 0xdde1, 0xddd1, 0xb7aa,
- 0xddda, 0xb77e, 0xb4d8, 0xdde3, 0xd9bf, 0xddce, 0xdde8, 0xb7a5,
- 0xdde5, 0xb7a2, 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0xb7a7, 0xdec6,
- 0xb7ae, 0xe24a, 0xe248, 0xe25e, 0xe246, 0xe258, 0xb77d, 0xba5f,
- 0xe242, 0xe25d, 0xe247, 0xe255, 0xba64, 0xba5d, 0xe25b, 0xe240,
- 0xe25a, 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, 0xba5e, 0xe24b,
- 0xe259, 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, 0xe243, 0xe1fc,
- 0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, 0xe253, 0xba66, 0xe245,
- 0xe250, 0xe24c, 0xe24e, 0xba60, 0xe25f, 0xba6e, 0xe24f, 0xe262,
- 0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256, 0xba69,
- 0xba62, 0xe252, 0xe25c, 0xe5d5, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de,
- 0xbccd, 0xe5e5, 0xe5d4, 0xbcd8, 0xe5db, 0xe5d0, 0xe5da, 0xbcd5,
- 0xe5ee, 0xe5eb, 0xe5dd, 0xe5ce, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8,
- 0xe5d3, 0xe5ca, 0xbcce, 0xbcd6, 0xe5e7, 0xbcd7, 0xe5cb, 0xe5ed,
- 0xe5e0, 0xe5e6, 0xbcd4, 0xe5e3, 0xe5ea, 0xbcd9, 0xbcd3, 0xe5dc,
- 0xe5cf, 0xe5ef, 0xe5cc, 0xe5e8, 0xbcd0, 0xe5d6, 0xe5d7, 0xbccf,
- 0xbccc, 0xe5d2, 0xbcd2, 0xbccb, 0xe5e9, 0xe5ec, 0xe5d9, 0xe9ca,
- 0xe9c2, 0xe9be, 0xbef6, 0xbeeb, 0xbef0, 0xbeec, 0xe9cc, 0xe9d7,
- 0xbeea, 0xe9c4, 0xe9cd, 0xe5df, 0xe9ce, 0xbef1, 0xe9dd, 0xbef5,
- 0xbef8, 0xe9c0, 0xbef4, 0xe9db, 0xe9dc, 0xe9d2, 0xe9d1, 0xe9c9,
- 0xe9d3, 0xe9da, 0xe9d9, 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0xe9c5,
- 0xe9d8, 0xbef7, 0xe9d6, 0xbef3, 0xbef2, 0xe9d0, 0xe9bf, 0xe9c1,
- 0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0xe9c6, 0xe9d4, 0xe9c7, 0xc0cf,
- 0xed45, 0xc0c8, 0xecf5, 0xed41, 0xc0ca, 0xed48, 0xecfc, 0xecf7,
- 0xed49, 0xecf3, 0xecfe, 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9,
- 0xed40, 0xecf4, 0xc0d0, 0xed47, 0xecf9, 0xc0cc, 0xecfb, 0xecf8,
- 0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46, 0xed42,
- 0xc263, 0xefe7, 0xc268, 0xc269, 0xc262, 0xefe6, 0xefe3, 0xefe4,
- 0xc266, 0xefde, 0xefe2, 0xc265, 0xefdf, 0xc267, 0xc264, 0xefdd,
- 0xefe1, 0xefe5, 0xf251, 0xf24e, 0xf257, 0xf256, 0xf254, 0xf24f,
- 0xc372, 0xf250, 0xc371, 0xc0cd, 0xf253, 0xc370, 0xf258, 0xf252,
- 0xf24d, 0xefe0, 0xc36f, 0xf24c, 0xf456, 0xf455, 0xf255, 0xc468,
- 0xf459, 0xf45a, 0xf454, 0xf458, 0xf453, 0xf5d1, 0xf457, 0xc4e7,
- 0xc4e5, 0xf5cf, 0xf5d2, 0xf5ce, 0xf5d0, 0xc4e6, 0xf6e5, 0xf6e6,
- 0xc576, 0xf6e4, 0xf7e2, 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0xc656,
- 0xf8f3, 0xf8f1, 0xf8f2, 0xf8f4, 0xf9bb, 0xa4ed, 0xa6b8, 0xaa59,
- 0xcce9, 0xcf64, 0xd1f5, 0xd1f7, 0xd1f6, 0xd1f8, 0xb1fd, 0xd5d7,
- 0xd1f9, 0xd5d6, 0xd5d8, 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd,
- 0xb4dc, 0xb4da, 0xd9dc, 0xddfa, 0xddf8, 0xddf7, 0xddf6, 0xddf5,
- 0xb7b2, 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb,
- 0xbcda, 0xe5f0, 0xe9df, 0xe9de, 0xe9e0, 0xbef9, 0xed4b, 0xc0d3,
- 0xefe8, 0xc26a, 0xf259, 0xc577, 0xa4ee, 0xa5bf, 0xa6b9, 0xa842,
- 0xaa5a, 0xaa5b, 0xac6e, 0xd1fa, 0xb7b3, 0xe6d1, 0xbefa, 0xc26b,
- 0xa4ef, 0xa6ba, 0xcceb, 0xaa5c, 0xccea, 0xcf65, 0xac6f, 0xcf66,
- 0xac70, 0xd1fc, 0xaeee, 0xaeed, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db,
- 0xd5da, 0xd9de, 0xd9e1, 0xb4de, 0xd9df, 0xb4dd, 0xd9e0, 0xddfb,
- 0xe266, 0xe267, 0xe268, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4,
- 0xe9e1, 0xe9e2, 0xe9e3, 0xed4c, 0xc0d4, 0xc26c, 0xf25a, 0xc4e8,
- 0xc95f, 0xac71, 0xcf67, 0xaeef, 0xb1fe, 0xb4df, 0xd9e2, 0xb7b5,
- 0xb7b4, 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, 0xe9e4, 0xefe9,
- 0xf7e3, 0xa4f0, 0xc960, 0xa5c0, 0xa843, 0xcb48, 0xac72, 0xb7b6,
- 0xa4f1, 0xcf68, 0xac73, 0xcf69, 0xc0d5, 0xa4f2, 0xccec, 0xcf6a,
- 0xd242, 0xd241, 0xd1fe, 0xd1fd, 0xd243, 0xd240, 0xb240, 0xb241,
- 0xb4e0, 0xd9e3, 0xd9e4, 0xd9e5, 0xde41, 0xde42, 0xde40, 0xddfd,
- 0xddfe, 0xb7b7, 0xe26b, 0xe5f7, 0xe5f6, 0xe5f5, 0xe5f8, 0xe9e7,
- 0xe9e6, 0xbefb, 0xe9e8, 0xc0d6, 0xed4d, 0xefea, 0xf25b, 0xf6e7,
- 0xa4f3, 0xa5c2, 0xa5c1, 0xaa5d, 0xc961, 0xc97e, 0xa6bb, 0xc9f7,
- 0xcb49, 0xcb4a, 0xaa5e, 0xcced, 0xac74, 0xcf6b, 0xcf6c, 0xaef0,
- 0xaef4, 0xd244, 0xaef3, 0xaef1, 0xaef2, 0xd5df, 0xb242, 0xb4e3,
- 0xb4e1, 0xb4e2, 0xd9e6, 0xba72, 0xa4f4, 0xc9a1, 0xa5c3, 0xc9a4,
- 0xa5c6, 0xc9a3, 0xa5c5, 0xa5c4, 0xa844, 0xc9a2, 0xc9f8, 0xc9fc,
- 0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb, 0xa6c1, 0xc9f9, 0xc9fd,
- 0xa6c2, 0xa6bd, 0xa6be, 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf,
- 0xa6c0, 0xa6c3, 0xcb5b, 0xcb59, 0xcb4c, 0xa851, 0xcb53, 0xa84c,
- 0xcb4d, 0xcb55, 0xcb52, 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858,
- 0xa85a, 0xcb4b, 0xa84d, 0xcb5c, 0xa854, 0xa857, 0xcd45, 0xa847,
- 0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, 0xa848, 0xa849,
- 0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, 0xa84e, 0xa853,
- 0xccee, 0xa85c, 0xcb57, 0xa852, 0xa85d, 0xa846, 0xcb54, 0xa84b,
- 0xcb58, 0xcd44, 0xaa6a, 0xaa7a, 0xccf5, 0xaa71, 0xcd4b, 0xaa62,
- 0xaa65, 0xcd42, 0xccf3, 0xccf7, 0xaa6d, 0xaa6f, 0xccfa, 0xaa76,
- 0xaa68, 0xaa66, 0xaa67, 0xaa75, 0xcd47, 0xaa70, 0xccf9, 0xccfb,
- 0xaa6e, 0xaa73, 0xccfc, 0xcd4a, 0xac75, 0xaa79, 0xaa63, 0xcd49,
- 0xcd4d, 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d,
- 0xaa72, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0xaa7e,
- 0xaa77, 0xaa69, 0xaa5f, 0xaa64, 0xccf6, 0xaa60, 0xcd4e, 0xccf0,
- 0xccef, 0xccfd, 0xccf1, 0xaa7b, 0xaef5, 0xaa74, 0xccfe, 0xaa61,
- 0xaca6, 0xcd4c, 0xcf7c, 0xcfa1, 0xcfa4, 0xcf77, 0xcfa7, 0xcfaa,
- 0xcfac, 0xcf74, 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, 0xcfad,
- 0xcf7b, 0xcf73, 0xd264, 0xac7e, 0xcfa2, 0xcf78, 0xcf7a, 0xaca5,
- 0xcf7d, 0xac7d, 0xcf70, 0xcfa8, 0xcfab, 0xac7a, 0xaca8, 0xcf6d,
- 0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, 0xcd48,
- 0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, 0xaca9,
- 0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, 0xcfa6,
- 0xac79, 0xcf7e, 0xd24c, 0xaefd, 0xaf43, 0xd255, 0xd25b, 0xd257,
- 0xd24a, 0xd24d, 0xd246, 0xd247, 0xaf4a, 0xaefa, 0xd256, 0xd25f,
- 0xaf45, 0xaef6, 0xaf40, 0xd24e, 0xaf42, 0xd24f, 0xd259, 0xaf44,
- 0xd268, 0xd248, 0xaefc, 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a,
- 0xd267, 0xd261, 0xd253, 0xd262, 0xd25c, 0xd265, 0xd263, 0xaf49,
- 0xd254, 0xaef9, 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251,
- 0xb243, 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0xd258,
- 0xd25d, 0xb265, 0xd5e1, 0xd5e5, 0xb252, 0xb250, 0xb247, 0xd5e3,
- 0xd5e2, 0xb25b, 0xd5e8, 0xb255, 0xd5fa, 0xd647, 0xb244, 0xd5f7,
- 0xd5f0, 0xb267, 0xd5e0, 0xd5fc, 0xb264, 0xb258, 0xb263, 0xb24e,
- 0xd5ec, 0xd5fe, 0xd5f6, 0xb24f, 0xb249, 0xd645, 0xd5fd, 0xd640,
- 0xb251, 0xb259, 0xd642, 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, 0xb25e,
- 0xb246, 0xb25c, 0xd5f4, 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, 0xd5ed,
- 0xb248, 0xd5e7, 0xd646, 0xb24a, 0xd5f1, 0xb268, 0xb262, 0xd5e6,
- 0xb25f, 0xb25d, 0xb266, 0xd5f8, 0xb261, 0xd252, 0xd5f9, 0xb260,
- 0xd641, 0xb245, 0xd5f5, 0xb257, 0xd5e9, 0xb256, 0xb254, 0xb24c,
- 0xb24b, 0xd9e7, 0xd643, 0xd5eb, 0xd9fc, 0xb24d, 0xb541, 0xb25a,
- 0xb4ee, 0xd9f6, 0xb4fc, 0xd9ea, 0xb4eb, 0xb4e7, 0xda49, 0xb4ed,
- 0xb4f1, 0xb4ec, 0xb4f5, 0xda4d, 0xda44, 0xd9f1, 0xb4fa, 0xb4f4,
- 0xd9fd, 0xb4e4, 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55,
- 0xda56, 0xb4e5, 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd,
- 0xd9f2, 0xd9f9, 0xd9f3, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9,
- 0xd9eb, 0xb4ea, 0xd9f8, 0xb4f8, 0xb542, 0xd9fa, 0xda53, 0xda4b,
- 0xb4e6, 0xda51, 0xb4f2, 0xb4f0, 0xda57, 0xb4ef, 0xda41, 0xd9f4,
- 0xd9fe, 0xb547, 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f, 0xda4c,
- 0xda54, 0xb4e9, 0xda40, 0xb546, 0xda47, 0xb4f3, 0xb4f6, 0xda46,
- 0xb545, 0xd9f5, 0xd5e4, 0xda50, 0xda4e, 0xda52, 0xd9ec, 0xb540,
- 0xde61, 0xde60, 0xde46, 0xb7bd, 0xde5f, 0xde49, 0xde4a, 0xb7c7,
- 0xde68, 0xb7c2, 0xde5e, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48,
- 0xde4b, 0xde63, 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc,
- 0xb7cb, 0xb7c5, 0xde69, 0xb7b9, 0xde55, 0xde4c, 0xde59, 0xde65,
- 0xb7cd, 0xb7bb, 0xde54, 0xde4d, 0xb7c4, 0xb7c3, 0xde50, 0xde5a,
- 0xde64, 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0, 0xde4e,
- 0xb7bf, 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56, 0xe26c,
- 0xde58, 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0, 0xde44,
- 0xde5d, 0xde5c, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, 0xe26e,
- 0xbaaf, 0xba77, 0xe26d, 0xe2b0, 0xbab1, 0xe271, 0xe2a3, 0xe273,
- 0xe2b3, 0xe2af, 0xba75, 0xbaa1, 0xe653, 0xbaae, 0xba7d, 0xe26f,
- 0xe2ae, 0xbaa3, 0xe2ab, 0xe2b8, 0xe275, 0xe27e, 0xe2b6, 0xe2ac,
- 0xba7c, 0xe27c, 0xba76, 0xba74, 0xbaa8, 0xe27a, 0xe277, 0xe278,
- 0xe2b2, 0xe2b7, 0xe2b5, 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0xe270,
- 0xe5fa, 0xe279, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274,
- 0xbaaa, 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0xe2a9, 0xe2a1, 0xe272,
- 0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0xba79, 0xbcdf, 0xe2a6,
- 0xe5f9, 0xe2ad, 0xe276, 0xe644, 0xe64e, 0xbce2, 0xe64d, 0xe659,
- 0xbce4, 0xe64b, 0xe64f, 0xbcef, 0xe646, 0xbce7, 0xe652, 0xe9f0,
- 0xbcf3, 0xbcf2, 0xe654, 0xe643, 0xe65e, 0xbced, 0xbce3, 0xe657,
- 0xe65b, 0xe660, 0xe655, 0xe649, 0xbce6, 0xbce9, 0xbcf1, 0xbcec,
- 0xe64c, 0xe2a2, 0xe648, 0xe65f, 0xbce8, 0xbceb, 0xe661, 0xbce0,
- 0xe656, 0xe5fb, 0xe65c, 0xc0df, 0xe64a, 0xbce1, 0xe645, 0xbce5,
- 0xe5fc, 0xbaab, 0xe641, 0xe65a, 0xe642, 0xe640, 0xbcea, 0xe658,
- 0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, 0xe9f3, 0xbf49,
- 0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48, 0xbf43, 0xe9f5,
- 0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8, 0xea44, 0xea46,
- 0xbefd, 0xea45, 0xbf44, 0xbf4a, 0xbf47, 0xe9fe, 0xbf46, 0xe9f9,
- 0xe9ed, 0xe9f2, 0xe9fd, 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1,
- 0xe5fd, 0xe9ec, 0xe9ef, 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43,
- 0xe9ee, 0xe9fc, 0xed51, 0xc0e3, 0xc0d7, 0xc0db, 0xed53, 0xed59,
- 0xed57, 0xc0d9, 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0xed56,
- 0xed55, 0xed5b, 0xc0e2, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de,
- 0xc0e5, 0xc0d8, 0xed58, 0xed50, 0xeff7, 0xc271, 0xeff4, 0xeff6,
- 0xc26f, 0xeff2, 0xeff3, 0xefee, 0xe9f6, 0xefef, 0xc270, 0xefeb,
- 0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed, 0xeff1, 0xc273, 0xc272,
- 0xeff0, 0xc378, 0xf25f, 0xf265, 0xc379, 0xf25c, 0xc376, 0xc373,
- 0xf267, 0xc377, 0xc374, 0xf25e, 0xf261, 0xf262, 0xf263, 0xf266,
- 0xeff5, 0xf25d, 0xc375, 0xf264, 0xf268, 0xf260, 0xf45d, 0xc46a,
- 0xf460, 0xc46b, 0xf468, 0xf45f, 0xf45c, 0xf45e, 0xf462, 0xf465,
- 0xf464, 0xf467, 0xf45b, 0xc469, 0xf463, 0xf466, 0xf469, 0xf461,
- 0xf5d3, 0xf5d4, 0xf5d8, 0xf5d9, 0xf5d6, 0xf5d7, 0xf5d5, 0xc4e9,
- 0xc578, 0xf6eb, 0xf6e8, 0xf6e9, 0xf6ea, 0xc579, 0xf7e5, 0xf7e4,
- 0xf8af, 0xc5f4, 0xf8ad, 0xf8b0, 0xf8ae, 0xf8f5, 0xc657, 0xc665,
- 0xf9a3, 0xf96c, 0xf9a2, 0xf9d0, 0xf9d1, 0xa4f5, 0xa6c7, 0xca41,
- 0xcb5e, 0xa85f, 0xa862, 0xcb5f, 0xa860, 0xa861, 0xcd58, 0xcd5a,
- 0xcd55, 0xcd52, 0xcd54, 0xaaa4, 0xaaa2, 0xcd56, 0xaaa3, 0xcd53,
- 0xcd50, 0xaaa1, 0xcd57, 0xcd51, 0xaaa5, 0xcd59, 0xcfaf, 0xcfb3,
- 0xacb7, 0xcfb6, 0xacaf, 0xacb2, 0xacb4, 0xacb6, 0xacb3, 0xcfb2,
- 0xcfb1, 0xacb1, 0xcfb4, 0xcfb5, 0xcfae, 0xacb5, 0xacb0, 0xcfb0,
- 0xd277, 0xd278, 0xd279, 0xaf50, 0xaf4c, 0xd26e, 0xd276, 0xd27b,
- 0xaf51, 0xd26c, 0xd272, 0xd26b, 0xd275, 0xd271, 0xaf4d, 0xaf4f,
- 0xd27a, 0xd26a, 0xd26d, 0xd273, 0xd274, 0xd27c, 0xd270, 0xaf4e,
- 0xb26d, 0xd64e, 0xd650, 0xd64c, 0xd658, 0xd64a, 0xd657, 0xb269,
- 0xd648, 0xda5b, 0xd652, 0xb26c, 0xd653, 0xd656, 0xd65a, 0xd64f,
- 0xd654, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649, 0xd65b, 0xd651,
- 0xd655, 0xd64b, 0xb548, 0xb549, 0xda65, 0xb54f, 0xda59, 0xda62,
- 0xda58, 0xb54c, 0xda60, 0xda5e, 0xda5f, 0xb54a, 0xda63, 0xda5c,
- 0xda5a, 0xb54b, 0xda5d, 0xda61, 0xb54d, 0xda64, 0xde70, 0xde77,
- 0xde79, 0xdea1, 0xb7da, 0xde6b, 0xb7d2, 0xde7a, 0xb7d7, 0xdea2,
- 0xb7ce, 0xde7d, 0xde6d, 0xde7e, 0xde6c, 0xb7dc, 0xde78, 0xb7cf,
- 0xdea3, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, 0xde6f, 0xde76, 0xde72,
- 0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, 0xb7db, 0xb7d0, 0xde75,
- 0xb7d5, 0xb54e, 0xde7b, 0xde73, 0xde74, 0xe2c1, 0xbab4, 0xe2bd,
- 0xe2c3, 0xe2bf, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, 0xe2bc, 0xbab5,
- 0xe2c0, 0xe2bb, 0xbab7, 0xbab2, 0xe2c4, 0xbab3, 0xe667, 0xe664,
- 0xe670, 0xe66a, 0xe66c, 0xbcf4, 0xe666, 0xe66e, 0xe66d, 0xe66b,
- 0xe671, 0xbcf7, 0xe668, 0xe66f, 0xbcf5, 0xe663, 0xe665, 0xbcf6,
- 0xe662, 0xe672, 0xe669, 0xea4a, 0xbf51, 0xea55, 0xea53, 0xbf4b,
- 0xea49, 0xea4c, 0xea4d, 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56,
- 0xea51, 0xbf4f, 0xbf4c, 0xea50, 0xea4e, 0xbf52, 0xea52, 0xbf4d,
- 0xbf4e, 0xea4f, 0xbf50, 0xea4b, 0xea54, 0xbf53, 0xea57, 0xea58,
- 0xbf54, 0xc0e7, 0xc0ee, 0xed5c, 0xed62, 0xed60, 0xc0ea, 0xc0e9,
- 0xc0e6, 0xed5e, 0xc0ec, 0xc0eb, 0xc0e8, 0xed61, 0xed5d, 0xed5f,
- 0xc0ed, 0xc277, 0xeffb, 0xc274, 0xc275, 0xeffd, 0xc276, 0xeffa,
- 0xeff9, 0xf26c, 0xeffc, 0xf26d, 0xc37a, 0xf26b, 0xf26a, 0xf269,
- 0xc37b, 0xc46c, 0xf46a, 0xf46b, 0xf5dc, 0xf5db, 0xc4ea, 0xf5da,
- 0xf6ec, 0xf6ed, 0xf7e6, 0xf8b1, 0xf8f6, 0xf9bc, 0xc679, 0xf9c6,
- 0xa4f6, 0xaaa6, 0xaaa7, 0xacb8, 0xc0ef, 0xa4f7, 0xaaa8, 0xaf52,
- 0xb7dd, 0xa4f8, 0xb26e, 0xbab8, 0xc962, 0xcfb7, 0xd27d, 0xe2c5,
- 0xc0f0, 0xa4f9, 0xaaa9, 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0xdea4,
- 0xb7de, 0xe2c6, 0xbcf8, 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0xa6c9,
- 0xca42, 0xa6c8, 0xa865, 0xa864, 0xa863, 0xcb60, 0xaaaa, 0xaaab,
- 0xcd5b, 0xcfba, 0xcfbd, 0xacba, 0xcfbb, 0xacb9, 0xcfbc, 0xacbb,
- 0xd2a2, 0xd2a1, 0xd27e, 0xaf53, 0xd65d, 0xd65e, 0xb26f, 0xd65c,
- 0xd65f, 0xb552, 0xb270, 0xb551, 0xda6b, 0xda6a, 0xda68, 0xda69,
- 0xda6c, 0xdea6, 0xdea5, 0xdea9, 0xdea8, 0xdea7, 0xbab9, 0xe2c9,
- 0xe2c8, 0xbaba, 0xe2c7, 0xe673, 0xe674, 0xbcf9, 0xea59, 0xea5a,
- 0xf272, 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, 0xf46c,
- 0xf6ee, 0xf8f7, 0xa4fc, 0xc9a5, 0xa5c7, 0xc9a6, 0xca43, 0xca44,
- 0xcb66, 0xcb62, 0xcb61, 0xaaac, 0xcb65, 0xa867, 0xcb63, 0xa866,
- 0xcb67, 0xcb64, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0xaaad, 0xaab0,
- 0xcd65, 0xcd61, 0xcd62, 0xcd5c, 0xaaaf, 0xcd5e, 0xaaae, 0xcd63,
- 0xcd60, 0xcfc2, 0xacbd, 0xacbe, 0xcfc5, 0xcfbf, 0xcfc4, 0xcfc0,
- 0xacbc, 0xcfc3, 0xcfc1, 0xd2a8, 0xd2a5, 0xd2a7, 0xaf58, 0xaf57,
- 0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56, 0xd2a6, 0xd667, 0xd2a3,
- 0xd2aa, 0xd662, 0xd666, 0xd665, 0xda6e, 0xda79, 0xd668, 0xd663,
- 0xda6d, 0xb274, 0xb273, 0xd661, 0xd664, 0xb275, 0xb272, 0xb271,
- 0xd660, 0xd669, 0xda70, 0xda77, 0xb554, 0xda76, 0xda73, 0xb556,
- 0xda75, 0xda6f, 0xda71, 0xda74, 0xda72, 0xb555, 0xda78, 0xb553,
- 0xb7df, 0xdead, 0xdeac, 0xdeaa, 0xb7e2, 0xb7e1, 0xdeae, 0xdeab,
- 0xe2ca, 0xbabb, 0xb7e0, 0xdeb0, 0xdeaf, 0xe2cd, 0xe2cb, 0xbcfa,
- 0xbabc, 0xe2cc, 0xe676, 0xbcfb, 0xe675, 0xe67e, 0xe67d, 0xe67b,
- 0xe67a, 0xe677, 0xe678, 0xe679, 0xe67c, 0xe6a1, 0xea5f, 0xea5c,
- 0xea5d, 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0xed64, 0xed65,
- 0xc0f1, 0xc0f2, 0xed63, 0xc279, 0xeffe, 0xc278, 0xc37e, 0xc3a1,
- 0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, 0xc57a, 0xf7e8, 0xf7e7,
- 0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, 0xd66a, 0xa5c9, 0xc9a7,
- 0xa4fd, 0xca45, 0xcb6c, 0xcb6a, 0xcb6b, 0xcb68, 0xa868, 0xcb69,
- 0xcd6d, 0xaab3, 0xcd6b, 0xcd67, 0xcd6a, 0xcd66, 0xaab5, 0xcd69,
- 0xaab2, 0xaab1, 0xaab4, 0xcd6c, 0xcd68, 0xacc2, 0xacc5, 0xcfce,
- 0xcfcd, 0xcfcc, 0xacbf, 0xcfd5, 0xcfcb, 0xacc1, 0xd2af, 0xcfd2,
- 0xcfd0, 0xacc4, 0xcfc8, 0xcfd3, 0xcfca, 0xcfd4, 0xcfd1, 0xcfc9,
- 0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0xd2b4, 0xd2ab, 0xd2b6, 0xd2ae,
- 0xd2b9, 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f,
- 0xaf5d, 0xd2b1, 0xd2ad, 0xd2b0, 0xd2bb, 0xd2b2, 0xaf5e, 0xcfcf,
- 0xaf5a, 0xaf5c, 0xd678, 0xd66d, 0xd66b, 0xd66c, 0xd673, 0xd674,
- 0xd670, 0xb27b, 0xd675, 0xd672, 0xd66f, 0xb279, 0xd66e, 0xb277,
- 0xb27a, 0xd671, 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676, 0xb27c,
- 0xda7e, 0xdaa1, 0xb560, 0xdaa7, 0xdaa9, 0xdaa2, 0xb55a, 0xdaa6,
- 0xdaa5, 0xb55b, 0xb561, 0xb562, 0xdaa8, 0xb558, 0xda7d, 0xda7b,
- 0xdaa3, 0xda7a, 0xb55f, 0xda7c, 0xdaa4, 0xdaaa, 0xb559, 0xb55e,
- 0xb55c, 0xb55d, 0xb557, 0xb7e9, 0xdeb7, 0xb7e8, 0xdebb, 0xdeb1,
- 0xdebc, 0xdeb2, 0xdeb3, 0xdebd, 0xdeba, 0xdeb8, 0xdeb9, 0xdeb5,
- 0xdeb4, 0xdebe, 0xb7e5, 0xdeb6, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec,
- 0xb7e7, 0xb7e6, 0xe2ce, 0xbabe, 0xbabd, 0xe2d3, 0xbcfc, 0xbabf,
- 0xbac1, 0xe2d4, 0xb7e3, 0xbac0, 0xe2d0, 0xe2d2, 0xe2cf, 0xe2d1,
- 0xe6ab, 0xe6aa, 0xe6a7, 0xbd40, 0xea62, 0xbd41, 0xe6a6, 0xbcfe,
- 0xe6a8, 0xe6a5, 0xe6a2, 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0xed69,
- 0xea66, 0xea65, 0xea67, 0xed66, 0xbf5a, 0xea63, 0xbf58, 0xbf5c,
- 0xbf5b, 0xea64, 0xea68, 0xbf59, 0xed6d, 0xc0f5, 0xc27a, 0xc0f6,
- 0xc0f3, 0xed6a, 0xed68, 0xed6b, 0xed6e, 0xc0f4, 0xed6c, 0xed67,
- 0xf042, 0xf045, 0xf275, 0xf040, 0xf46f, 0xf046, 0xc3a2, 0xf044,
- 0xc27b, 0xf041, 0xf043, 0xf047, 0xf276, 0xf274, 0xc3a3, 0xf273,
- 0xc46e, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, 0xf6f0, 0xf6f2, 0xc5d0,
- 0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, 0xb27d, 0xdebf, 0xbf5d,
- 0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0xcd6f, 0xa260, 0xcfd7, 0xcfd8,
- 0xd2be, 0xd2bf, 0xb27e, 0xb2a1, 0xdaab, 0xdec2, 0xdec1, 0xdec0,
- 0xe2d5, 0xe2d6, 0xe2d7, 0xbac2, 0xe6ad, 0xe6ac, 0xea69, 0xbf5e,
- 0xbf5f, 0xed72, 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048, 0xc27c,
- 0xf277, 0xf5de, 0xa5cc, 0xacc6, 0xb2a2, 0xdec3, 0xa5cd, 0xd2c0,
- 0xb2a3, 0xb563, 0xb564, 0xa5ce, 0xa5cf, 0xca46, 0xa86a, 0xa869,
- 0xacc7, 0xcfd9, 0xdaac, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa86b,
- 0xa86c, 0xcb6e, 0xcb6d, 0xaab6, 0xcd72, 0xcd70, 0xcd71, 0xcfda,
- 0xcfdb, 0xaccb, 0xacc9, 0xacca, 0xacc8, 0xaf60, 0xaf64, 0xaf63,
- 0xd2c1, 0xaf62, 0xaf61, 0xd2c2, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4,
- 0xb2a5, 0xb566, 0xb565, 0xdaae, 0xdaad, 0xb2a7, 0xb7ed, 0xdec5,
- 0xb7ee, 0xdec4, 0xe2d8, 0xe6ae, 0xbd42, 0xea6a, 0xed73, 0xc3a6,
- 0xc3a5, 0xc57c, 0xa5d4, 0xcd73, 0xb2a8, 0xe2d9, 0xbac3, 0xcb6f,
- 0xcb70, 0xcd74, 0xaab8, 0xaab9, 0xaab7, 0xaccf, 0xacd0, 0xaccd,
- 0xacce, 0xcfdc, 0xcfdd, 0xaccc, 0xd2c3, 0xaf68, 0xaf69, 0xb2ab,
- 0xd2c9, 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b, 0xaf6a, 0xaf65,
- 0xd2c8, 0xd2c7, 0xd2c4, 0xaf6d, 0xd2c6, 0xaf66, 0xaf67, 0xb2ac,
- 0xd6a1, 0xd6a2, 0xb2ad, 0xd67c, 0xd67e, 0xd6a4, 0xd6a3, 0xd67d,
- 0xb2a9, 0xb2aa, 0xdab6, 0xb56b, 0xb56a, 0xdab0, 0xb568, 0xdab3,
- 0xb56c, 0xdab4, 0xb56d, 0xdab1, 0xb567, 0xb569, 0xdab5, 0xdab2,
- 0xdaaf, 0xded2, 0xdec7, 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6,
- 0xded3, 0xded1, 0xdeca, 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc,
- 0xded4, 0xdecb, 0xb7f5, 0xb7ef, 0xb7f1, 0xdec9, 0xe2db, 0xbac7,
- 0xe2df, 0xbac6, 0xe2dc, 0xbac5, 0xdec8, 0xdecf, 0xe2de, 0xbac8,
- 0xe2e0, 0xe2dd, 0xe2da, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2,
- 0xe6b0, 0xbd45, 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af,
- 0xbd47, 0xbac4, 0xe6b6, 0xbd44, 0xea6c, 0xea6b, 0xea73, 0xea6d,
- 0xea72, 0xea6f, 0xbf60, 0xea71, 0xbf61, 0xbf62, 0xea70, 0xea6e,
- 0xc0f8, 0xed74, 0xc0f7, 0xed77, 0xed75, 0xed76, 0xc0f9, 0xf04d,
- 0xc2a1, 0xf04e, 0xc27d, 0xf04f, 0xc27e, 0xf04c, 0xf050, 0xf04a,
- 0xc3a7, 0xf278, 0xc3a8, 0xc46f, 0xf04b, 0xc470, 0xc4ee, 0xf5df,
- 0xc57e, 0xf6f4, 0xc57d, 0xf7ea, 0xc5f5, 0xc5f6, 0xf9cc, 0xacd1,
- 0xcfde, 0xb56e, 0xb56f, 0xa5d5, 0xa6ca, 0xca47, 0xcb71, 0xa86d,
- 0xaaba, 0xacd2, 0xacd3, 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0xb2ae,
- 0xd6a5, 0xdab8, 0xb571, 0xdab7, 0xb570, 0xded5, 0xbd4a, 0xe6bb,
- 0xe6b8, 0xe6b9, 0xe6ba, 0xed78, 0xf051, 0xf471, 0xf470, 0xf6f5,
- 0xa5d6, 0xcd75, 0xaf70, 0xb572, 0xded6, 0xe2e1, 0xbd4b, 0xea74,
- 0xf052, 0xf472, 0xa5d7, 0xaabb, 0xacd7, 0xcfdf, 0xacd8, 0xacd6,
- 0xacd5, 0xd2cc, 0xaf71, 0xaf72, 0xaf73, 0xb2b0, 0xd6a7, 0xb2af,
- 0xdab9, 0xb2b1, 0xb573, 0xded7, 0xb7f8, 0xb7f9, 0xbac9, 0xbaca,
- 0xbd4c, 0xbf64, 0xea75, 0xbf63, 0xed79, 0xc0fa, 0xf053, 0xf473,
- 0xa5d8, 0xa86e, 0xcd78, 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79,
- 0xcfe5, 0xacdb, 0xacda, 0xcfe7, 0xcfe6, 0xacdf, 0xacde, 0xacd9,
- 0xcfe1, 0xcfe2, 0xcfe3, 0xace0, 0xcfe0, 0xacdc, 0xcfe4, 0xacdd,
- 0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2ce,
- 0xd2cd, 0xaf75, 0xaf76, 0xd2d7, 0xd2d2, 0xd6b0, 0xd2d8, 0xaf77,
- 0xaf74, 0xd6aa, 0xd6a9, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2,
- 0xb2b5, 0xb2b2, 0xb2b6, 0xd6a8, 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af,
- 0xb2b3, 0xdabc, 0xdabe, 0xdaba, 0xdabb, 0xdabf, 0xdac1, 0xdac2,
- 0xdabd, 0xdac0, 0xb574, 0xdedb, 0xdee0, 0xded8, 0xdedc, 0xdee1,
- 0xdedd, 0xb7fa, 0xb843, 0xb7fd, 0xded9, 0xdeda, 0xbace, 0xb846,
- 0xb7fe, 0xb844, 0xb7fc, 0xdedf, 0xb845, 0xdede, 0xb841, 0xb7fb,
- 0xb842, 0xdee2, 0xe2e6, 0xe2e8, 0xb840, 0xe2e3, 0xbacc, 0xe2e9,
- 0xbacd, 0xe2e7, 0xe2e2, 0xe2e5, 0xe2ea, 0xbacb, 0xe2e4, 0xbd4e,
- 0xe6bf, 0xe6be, 0xbd51, 0xbd4f, 0xe6bc, 0xbd4d, 0xe6bd, 0xbd50,
- 0xea7d, 0xeaa1, 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66,
- 0xbf67, 0xbf65, 0xea78, 0xea7b, 0xea7c, 0xbf68, 0xc140, 0xeda3,
- 0xc0fc, 0xed7b, 0xc0fe, 0xc141, 0xc0fd, 0xeda2, 0xed7c, 0xc0fb,
- 0xeda1, 0xed7a, 0xed7e, 0xed7d, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2,
- 0xc2a3, 0xf054, 0xf27b, 0xc3a9, 0xf279, 0xf27a, 0xf474, 0xf477,
- 0xf475, 0xf476, 0xf5e0, 0xc4ef, 0xf7eb, 0xf8b4, 0xc5f7, 0xf8f8,
- 0xf8f9, 0xc666, 0xa5d9, 0xace1, 0xdac3, 0xdee3, 0xa5da, 0xa86f,
- 0xaabe, 0xcfe8, 0xcfe9, 0xaf78, 0xdac4, 0xb575, 0xb847, 0xc142,
- 0xeda4, 0xf27c, 0xf478, 0xa5db, 0xcda1, 0xcd7a, 0xcd7c, 0xcd7e,
- 0xcd7d, 0xcd7b, 0xaabf, 0xace2, 0xcff2, 0xcfed, 0xcfea, 0xcff1,
- 0xace4, 0xace5, 0xcff0, 0xcfef, 0xcfee, 0xcfeb, 0xcfec, 0xcff3,
- 0xace3, 0xaf7c, 0xafa4, 0xafa3, 0xd2e1, 0xd2db, 0xd2d9, 0xafa1,
- 0xd6b9, 0xaf7a, 0xd2de, 0xd2e2, 0xd2e4, 0xd2e0, 0xd2da, 0xafa2,
- 0xd2df, 0xd2dd, 0xaf79, 0xd2e5, 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc,
- 0xaf7e, 0xaf7b, 0xb2b9, 0xd6ba, 0xd6b3, 0xd6b5, 0xd6b7, 0xd6b8,
- 0xd6b6, 0xb2ba, 0xd6bb, 0xd6b4, 0xdac8, 0xb576, 0xdad0, 0xdac5,
- 0xdad1, 0xdac6, 0xdac7, 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577,
- 0xdac9, 0xdacc, 0xb578, 0xdacd, 0xdaca, 0xdeee, 0xdef2, 0xb84e,
- 0xe2f0, 0xb851, 0xdef0, 0xdeed, 0xdee8, 0xdeea, 0xdeeb, 0xdee4,
- 0xb84d, 0xb84c, 0xb848, 0xdee7, 0xb84f, 0xb850, 0xdee6, 0xdee9,
- 0xdef1, 0xb84a, 0xb84b, 0xdeef, 0xdee5, 0xe2f2, 0xbad0, 0xe2f4,
- 0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3, 0xbad1, 0xe2ef, 0xbad3,
- 0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0xb849, 0xe2eb, 0xbad2, 0xe2ed,
- 0xbd54, 0xe6c1, 0xbd58, 0xbd56, 0xbacf, 0xe6c8, 0xe6c9, 0xbd53,
- 0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5, 0xe6c2,
- 0xbd59, 0xe6c4, 0xe6c6, 0xbd57, 0xbf6a, 0xeaa8, 0xeaa2, 0xeaa6,
- 0xeaac, 0xeaad, 0xeaa9, 0xeaaa, 0xeaa7, 0xeaa4, 0xbf6c, 0xbf69,
- 0xeaa3, 0xeaa5, 0xbf6b, 0xeaab, 0xc146, 0xedaa, 0xeda5, 0xc145,
- 0xc143, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6, 0xedad, 0xf056,
- 0xc147, 0xeda7, 0xedae, 0xedab, 0xf05a, 0xf057, 0xc2a6, 0xf05b,
- 0xf05d, 0xf05c, 0xf058, 0xf059, 0xf2a3, 0xc3aa, 0xf27e, 0xf2a2,
- 0xf27d, 0xf2a4, 0xf2a1, 0xf47a, 0xf47d, 0xf479, 0xc471, 0xf47b,
- 0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473, 0xf5e1, 0xf5e3, 0xf5e2,
- 0xf6f6, 0xf8b5, 0xf8fa, 0xa5dc, 0xcb72, 0xaac0, 0xcda3, 0xaac1,
- 0xaac2, 0xcda2, 0xcff8, 0xcff7, 0xace6, 0xace9, 0xace8, 0xace7,
- 0xcff4, 0xcff6, 0xcff5, 0xd2e8, 0xafa7, 0xd2ec, 0xd2eb, 0xd2ea,
- 0xd2e6, 0xafa6, 0xafaa, 0xafad, 0xafae, 0xd2e7, 0xd2e9, 0xafac,
- 0xafab, 0xafa9, 0xafa8, 0xd6c2, 0xd6c0, 0xd6bc, 0xb2bb, 0xd6bd,
- 0xb2bc, 0xd6be, 0xd6bf, 0xd6c1, 0xb2bd, 0xdad5, 0xdad4, 0xdad3,
- 0xdad2, 0xdef6, 0xb852, 0xdef3, 0xdef5, 0xb853, 0xb854, 0xdef4,
- 0xe341, 0xe2f9, 0xe2fa, 0xbad7, 0xbad5, 0xbad6, 0xe343, 0xe342,
- 0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb, 0xe340, 0xe2f8, 0xe6cb, 0xe6d0,
- 0xe6ce, 0xe6cd, 0xe6cc, 0xe6cf, 0xeaae, 0xbf6d, 0xc148, 0xedb0,
- 0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0xf2a5, 0xc3ab, 0xf4a1,
- 0xc5a1, 0xf6f7, 0xf8b7, 0xf8b6, 0xc9a8, 0xacea, 0xaceb, 0xd6c3,
- 0xb856, 0xa5dd, 0xa872, 0xa871, 0xa870, 0xcda4, 0xaac4, 0xaac3,
- 0xacee, 0xcffa, 0xcffd, 0xcffb, 0xacec, 0xaced, 0xcff9, 0xcffc,
- 0xafb5, 0xd2f3, 0xd2f5, 0xd2f4, 0xafb2, 0xd2ef, 0xafb0, 0xafaf,
- 0xafb3, 0xafb1, 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0,
- 0xd6c6, 0xd6c7, 0xd6c5, 0xd6c4, 0xb2be, 0xb57d, 0xdad6, 0xdad8,
- 0xdada, 0xb57c, 0xb57a, 0xdad7, 0xb57b, 0xdad9, 0xb579, 0xdf41,
- 0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0xdefb, 0xdef8, 0xdef9,
- 0xb858, 0xdf40, 0xb857, 0xb85c, 0xb85b, 0xb859, 0xdefd, 0xe349,
- 0xe348, 0xe344, 0xbad8, 0xe347, 0xe346, 0xbad9, 0xbd5e, 0xe6d2,
- 0xbd5f, 0xbd5b, 0xbd5d, 0xbd5a, 0xbd5c, 0xeaaf, 0xbf70, 0xeab1,
- 0xeab0, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0xedb5, 0xedb3,
- 0xc14a, 0xedb4, 0xedb6, 0xedb2, 0xedb1, 0xf060, 0xc2aa, 0xc2a8,
- 0xc2a9, 0xf2a6, 0xf2a7, 0xc3ad, 0xc3ac, 0xf4a3, 0xf4a4, 0xf4a2,
- 0xf6f8, 0xf6f9, 0xa5de, 0xca48, 0xa873, 0xcda5, 0xaac6, 0xaac5,
- 0xcda6, 0xd040, 0xacef, 0xcffe, 0xacf0, 0xafb6, 0xd2f8, 0xd2f6,
- 0xd2fc, 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9, 0xd2fa, 0xd6c8, 0xd6ca,
- 0xb2bf, 0xd6c9, 0xb2c0, 0xb5a2, 0xb5a1, 0xb57e, 0xdadb, 0xdf44,
- 0xb85d, 0xb85e, 0xdf43, 0xdf42, 0xe34a, 0xbadb, 0xbada, 0xe34b,
- 0xe34c, 0xbd61, 0xbd60, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4,
- 0xeab2, 0xeab6, 0xeab3, 0xbf73, 0xedb7, 0xc14b, 0xedb8, 0xedb9,
- 0xc2ab, 0xc2ac, 0xc475, 0xc5d1, 0xa5df, 0xd041, 0xd2fd, 0xafb8,
- 0xb3ba, 0xb3b9, 0xb5a4, 0xdadd, 0xb5a3, 0xdadc, 0xdf45, 0xbadc,
- 0xe34d, 0xbadd, 0xc476, 0xf4a5, 0xa6cb, 0xaac7, 0xcda7, 0xacf2,
- 0xacf1, 0xd042, 0xd043, 0xd340, 0xd342, 0xafb9, 0xd344, 0xd347,
- 0xd345, 0xd346, 0xd343, 0xd2fe, 0xafba, 0xd348, 0xd341, 0xd6d3,
- 0xb2c6, 0xd6dc, 0xb2c3, 0xd6d5, 0xb2c7, 0xb2c1, 0xd6d0, 0xd6dd,
- 0xd6d1, 0xd6ce, 0xb2c5, 0xb2c2, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8,
- 0xb2c8, 0xd6d9, 0xd6cf, 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb,
- 0xd6db, 0xdadf, 0xdae4, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, 0xdae1,
- 0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, 0xb5a8,
- 0xb5ae, 0xb5a9, 0xb5aa, 0xb5a6, 0xdae5, 0xb861, 0xdf50, 0xdf53,
- 0xdf47, 0xdf4c, 0xdf46, 0xb863, 0xdf4a, 0xdf48, 0xb862, 0xdf4f,
- 0xdf4e, 0xdf4b, 0xdf4d, 0xdf49, 0xbae1, 0xdf52, 0xb85f, 0xdf51,
- 0xe35d, 0xbae8, 0xe358, 0xbae7, 0xe34e, 0xe350, 0xbae0, 0xe355,
- 0xe354, 0xe357, 0xbae5, 0xe352, 0xe351, 0xbae4, 0xbadf, 0xe353,
- 0xbae2, 0xe359, 0xe35b, 0xe356, 0xe34f, 0xbae3, 0xbd69, 0xbade,
- 0xe35c, 0xe6d9, 0xbd62, 0xe6db, 0xbd63, 0xbd65, 0xe6de, 0xe6d6,
- 0xbae6, 0xe6dc, 0xe6d8, 0xb860, 0xbd68, 0xbd64, 0xbd66, 0xbd67,
- 0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0xe6da, 0xeac0, 0xeabb, 0xeac5,
- 0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba, 0xeab7, 0xeac6, 0xc151,
- 0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc, 0xbf7b, 0xeab9, 0xeabe,
- 0xbf7a, 0xeac1, 0xeac4, 0xedcb, 0xedcc, 0xedbc, 0xedc3, 0xedc1,
- 0xc14f, 0xedc8, 0xeabf, 0xedbf, 0xedc9, 0xc14e, 0xedbe, 0xedbd,
- 0xedc7, 0xedc4, 0xedc6, 0xedba, 0xedca, 0xc14c, 0xedc5, 0xedce,
- 0xedc2, 0xc150, 0xc14d, 0xedc0, 0xedbb, 0xedcd, 0xbf75, 0xf063,
- 0xf061, 0xf067, 0xc2b0, 0xf065, 0xf064, 0xc2b2, 0xf06a, 0xc2b1,
- 0xf06b, 0xf068, 0xc2ae, 0xf069, 0xf062, 0xc2af, 0xc2ad, 0xf2ab,
- 0xf066, 0xf06c, 0xf2a8, 0xc3b2, 0xc3b0, 0xf2aa, 0xf2ac, 0xf2a9,
- 0xc3b1, 0xc3ae, 0xc3af, 0xc3b3, 0xc478, 0xf4aa, 0xf4a9, 0xf4a7,
- 0xf4a6, 0xf4a8, 0xc477, 0xc479, 0xc4f0, 0xf5e5, 0xf5e4, 0xf6fa,
- 0xf6fc, 0xf6fe, 0xf6fd, 0xf6fb, 0xc5a3, 0xc5a2, 0xc5d3, 0xc5d2,
- 0xc5d4, 0xf7ed, 0xf7ec, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0xc659,
- 0xf96d, 0xc67e, 0xa6cc, 0xcda8, 0xd045, 0xd046, 0xd044, 0xacf3,
- 0xd047, 0xd048, 0xd049, 0xd349, 0xd34f, 0xd34d, 0xafbb, 0xd34b,
- 0xd34c, 0xd34e, 0xd34a, 0xb2c9, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca,
- 0xd6df, 0xdae8, 0xb5af, 0xdaea, 0xdae7, 0xd6e1, 0xb5b0, 0xdae9,
- 0xdf56, 0xb864, 0xdf54, 0xb865, 0xdf55, 0xb866, 0xbae9, 0xe361,
- 0xe35e, 0xe360, 0xbaea, 0xbaeb, 0xe35f, 0xe6df, 0xe6e0, 0xbd6b,
- 0xe6e2, 0xe6e1, 0xa261, 0xeaca, 0xeacb, 0xeac7, 0xeac8, 0xbf7c,
- 0xbf7d, 0xeac9, 0xc157, 0xc153, 0xc158, 0xc154, 0xc156, 0xc152,
- 0xc155, 0xc2b3, 0xedcf, 0xf2ae, 0xf2ad, 0xf4ab, 0xc47a, 0xc47b,
- 0xf741, 0xf5e6, 0xf740, 0xf8fd, 0xf9a4, 0xa6cd, 0xa874, 0xcda9,
- 0xaac8, 0xacf6, 0xd04c, 0xacf4, 0xd04a, 0xacf9, 0xacf5, 0xacfa,
- 0xacf8, 0xd04b, 0xacf7, 0xafbf, 0xafbe, 0xd35a, 0xafc7, 0xd353,
- 0xd359, 0xafc3, 0xd352, 0xd358, 0xd356, 0xafc2, 0xafc4, 0xd355,
- 0xafbd, 0xd354, 0xafc8, 0xafc5, 0xafc9, 0xafc6, 0xd351, 0xd350,
- 0xd357, 0xafc0, 0xafbc, 0xafc1, 0xd6f0, 0xd6e9, 0xb5b5, 0xd6e8,
- 0xb2cf, 0xb2d6, 0xb2d3, 0xb2d9, 0xb2d8, 0xb2d4, 0xd6e2, 0xd6e5,
- 0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef, 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed,
- 0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd, 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb,
- 0xd6ee, 0xdafb, 0xdaf2, 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7,
- 0xb5b4, 0xdaef, 0xdaeb, 0xb86c, 0xdaf4, 0xb5b1, 0xdafa, 0xb5b8,
- 0xb5ba, 0xdaed, 0xb5b9, 0xdaf0, 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5,
- 0xdaf3, 0xb5b6, 0xdaec, 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0xb868,
- 0xdf5d, 0xdf5f, 0xdf61, 0xdf65, 0xdf5b, 0xdf59, 0xb86a, 0xdf60,
- 0xdf64, 0xdf5c, 0xdf58, 0xdf57, 0xdf62, 0xdf5a, 0xdf5e, 0xb86b,
- 0xb869, 0xdf66, 0xb867, 0xdf63, 0xe372, 0xbaee, 0xe36a, 0xbd78,
- 0xe374, 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0xe375, 0xe362, 0xe377,
- 0xe366, 0xbafe, 0xbafb, 0xe376, 0xe370, 0xbaed, 0xbaf5, 0xbaf4,
- 0xbaf3, 0xbaf9, 0xe363, 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373,
- 0xbaef, 0xbaf0, 0xbaf8, 0xe368, 0xe367, 0xe364, 0xe36c, 0xe369,
- 0xe36d, 0xbafd, 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0xe36b, 0xbafc,
- 0xe6e7, 0xbd70, 0xbd79, 0xbd75, 0xe6e4, 0xbd72, 0xbd76, 0xe6f0,
- 0xbd6c, 0xe6e8, 0xbd74, 0xe6eb, 0xe6e6, 0xbd73, 0xbd77, 0xe6e5,
- 0xbd71, 0xe6ef, 0xbd6e, 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d,
- 0xe6ec, 0xe6e3, 0xbd7b, 0xe6ea, 0xbd6f, 0xe6e9, 0xbfa2, 0xbfa7,
- 0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9, 0xbfa8, 0xbfa1,
- 0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace, 0xead6, 0xbfa3,
- 0xead4, 0xbfa6, 0xbfa5, 0xead0, 0xead1, 0xeacd, 0xead7, 0xbfa4,
- 0xeade, 0xeadd, 0xedda, 0xedd6, 0xc15f, 0xedd0, 0xc159, 0xc169,
- 0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164, 0xc167, 0xedde, 0xc15c,
- 0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1, 0xc160, 0xc15a, 0xc168,
- 0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf, 0xc162, 0xc15b, 0xedd9,
- 0xc166, 0xedd7, 0xeddb, 0xf06e, 0xf074, 0xc2b9, 0xf077, 0xc2b4,
- 0xc2b5, 0xf06f, 0xf076, 0xf071, 0xc2ba, 0xc2b7, 0xf06d, 0xc2b6,
- 0xf073, 0xf075, 0xc2b8, 0xf072, 0xf070, 0xf2b8, 0xc3b7, 0xc3b8,
- 0xc3b4, 0xc3b5, 0xf2b4, 0xf2b2, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0,
- 0xf2af, 0xf2b3, 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d,
- 0xf4ad, 0xf4af, 0xf4ae, 0xc4a1, 0xf5eb, 0xf5e8, 0xf5e9, 0xf5e7,
- 0xf5ea, 0xc4f2, 0xf5ec, 0xc4f1, 0xf742, 0xc5d5, 0xc5d7, 0xf7ee,
- 0xc5d6, 0xf8b9, 0xf940, 0xf942, 0xf8fe, 0xf941, 0xc66c, 0xa6ce,
- 0xacfb, 0xd26f, 0xafca, 0xb2da, 0xdafc, 0xdafd, 0xeadf, 0xc16a,
- 0xede1, 0xc2bb, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0xf743, 0xc5f8,
- 0xca49, 0xaac9, 0xa875, 0xd04d, 0xd360, 0xd35b, 0xd35f, 0xd35d,
- 0xafcb, 0xd35e, 0xd35c, 0xd6f1, 0xdafe, 0xdb40, 0xdf69, 0xdf6a,
- 0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67, 0xb86d, 0xbb40, 0xb870,
- 0xe37a, 0xbd7c, 0xe6f1, 0xbd7d, 0xbfa9, 0xeae2, 0xeae0, 0xeae1,
- 0xede4, 0xede3, 0xede2, 0xf2bb, 0xc3b9, 0xf2bc, 0xf744, 0xc5f9,
- 0xf8ba, 0xa6cf, 0xaacb, 0xaaca, 0xd04f, 0xacfc, 0xd04e, 0xd362,
- 0xafcc, 0xd6f2, 0xd361, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db,
- 0xdb42, 0xdb43, 0xdb41, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e, 0xb872,
- 0xb871, 0xe6f2, 0xe6f4, 0xbd7e, 0xe6f3, 0xeae3, 0xbfaa, 0xf079,
- 0xf078, 0xc3bb, 0xf2bd, 0xc3bd, 0xc3bc, 0xf4b0, 0xf5ee, 0xc4f3,
- 0xa6d0, 0xd050, 0xacfd, 0xd365, 0xafce, 0xd364, 0xd363, 0xafcd,
- 0xd6fb, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd, 0xd6f8, 0xb2de, 0xd6fc,
- 0xd6f9, 0xd6fa, 0xb2df, 0xb5be, 0xb5bf, 0xdb44, 0xdf6f, 0xdf70,
- 0xe37e, 0xbb43, 0xbb41, 0xbb42, 0xe37b, 0xe37c, 0xe37d, 0xe6f9,
- 0xe6fa, 0xbda1, 0xe6f7, 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4,
- 0xbfab, 0xbfac, 0xede6, 0xc16b, 0xede5, 0xefa8, 0xf07a, 0xf07b,
- 0xc2bc, 0xc2bd, 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, 0xc4a3, 0xa6d1,
- 0xa6d2, 0xacfe, 0xaacc, 0xafcf, 0xd051, 0xb5c0, 0xa6d3, 0xad41,
- 0xd052, 0xd053, 0xad40, 0xad42, 0xa6d4, 0xd054, 0xafd1, 0xd366,
- 0xafd3, 0xafd0, 0xafd2, 0xd741, 0xb2e0, 0xd740, 0xd6fe, 0xdf71,
- 0xe3a1, 0xbda2, 0xbfae, 0xeae6, 0xeae5, 0xede7, 0xf5ef, 0xa6d5,
- 0xcb73, 0xcdaa, 0xad43, 0xd055, 0xd368, 0xafd4, 0xd367, 0xafd5,
- 0xd743, 0xb2e2, 0xd742, 0xd744, 0xb2e1, 0xdb46, 0xdb47, 0xdb45,
- 0xb5c1, 0xb874, 0xb875, 0xbb45, 0xe3a3, 0xe3a2, 0xbb44, 0xe6fb,
- 0xe6fc, 0xeae7, 0xc170, 0xc16f, 0xc16d, 0xc16e, 0xc171, 0xf07c,
- 0xc2bf, 0xc2be, 0xf2c0, 0xf4b2, 0xc5a5, 0xc5a4, 0xa6d6, 0xd1fb,
- 0xb877, 0xb5c2, 0xb876, 0xbb46, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9,
- 0xcdab, 0xcb76, 0xcb77, 0xa877, 0xcb74, 0xa876, 0xa879, 0xcb75,
- 0xa87b, 0xa87a, 0xcb78, 0xa878, 0xaad1, 0xaacf, 0xcdad, 0xaace,
- 0xaad3, 0xaad5, 0xaad2, 0xcdb0, 0xcdac, 0xaad6, 0xaad0, 0xa87c,
- 0xaad4, 0xcdaf, 0xcdae, 0xaacd, 0xd05b, 0xad47, 0xad48, 0xd05d,
- 0xd057, 0xd05a, 0xd063, 0xd061, 0xad49, 0xd067, 0xad4c, 0xd064,
- 0xd05c, 0xd059, 0xdb49, 0xd062, 0xad44, 0xd065, 0xd056, 0xd05f,
- 0xad46, 0xad4b, 0xd060, 0xad4f, 0xad4d, 0xd058, 0xad4a, 0xd05e,
- 0xad4e, 0xad45, 0xd066, 0xafda, 0xafe3, 0xafd8, 0xafd6, 0xd36a,
- 0xafde, 0xafdb, 0xd36c, 0xafdd, 0xd36b, 0xd369, 0xd36e, 0xafe2,
- 0xafe0, 0xdb48, 0xd36f, 0xd36d, 0xafd7, 0xafd9, 0xafdc, 0xafdf,
- 0xafe1, 0xd74e, 0xb2e4, 0xd745, 0xd747, 0xd748, 0xd750, 0xd74c,
- 0xd74a, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746, 0xd74f, 0xb2e7,
- 0xb2e6, 0xd74b, 0xd749, 0xb2e3, 0xb2e8, 0xb5c8, 0xdb51, 0xdb4f,
- 0xb5ca, 0xdb4a, 0xdfa1, 0xb5c9, 0xdb4e, 0xdb4b, 0xb5c5, 0xb5cb,
- 0xdb50, 0xb5c7, 0xdb4d, 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4,
- 0xb5c3, 0xdf77, 0xdf75, 0xdf7b, 0xdf73, 0xdfa2, 0xdf78, 0xdf72,
- 0xb87b, 0xb8a3, 0xdf7d, 0xdf76, 0xb87e, 0xb87c, 0xdf7e, 0xb879,
- 0xb878, 0xdf79, 0xb87d, 0xb5cd, 0xdf7c, 0xdf74, 0xb87a, 0xb8a1,
- 0xb8a2, 0xbb4c, 0xbb48, 0xbb4d, 0xe3a6, 0xe3a5, 0xe3a7, 0xbb4a,
- 0xe3a4, 0xbb4b, 0xe3aa, 0xe3a9, 0xe3a8, 0xbb49, 0xe741, 0xe744,
- 0xbda8, 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe,
- 0xbda6, 0xe742, 0xe6fd, 0xeae9, 0xeaf3, 0xbfb1, 0xbfb0, 0xeaed,
- 0xeaef, 0xeaea, 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0, 0xeaec,
- 0xeaf2, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178, 0xc17a, 0xc177,
- 0xc176, 0xc175, 0xc173, 0xede9, 0xedec, 0xc172, 0xeded, 0xc179,
- 0xedeb, 0xedea, 0xc2c0, 0xc2c1, 0xf0a1, 0xf07d, 0xf07e, 0xf2c2,
- 0xf2c1, 0xc3be, 0xf4b4, 0xc4a4, 0xf4b3, 0xf5f0, 0xf745, 0xc5a6,
- 0xf943, 0xf944, 0xc5d8, 0xa6da, 0xaad7, 0xdb52, 0xbb4e, 0xc17b,
- 0xedef, 0xa6db, 0xafe5, 0xafe4, 0xdb53, 0xeaf4, 0xa6dc, 0xad50,
- 0xdb54, 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0xaad8, 0xd068,
- 0xafe6, 0xd370, 0xb2ea, 0xdb57, 0xb8a4, 0xbb50, 0xbfb3, 0xc17c,
- 0xc2c2, 0xf4b5, 0xa6de, 0xaad9, 0xafe7, 0xd752, 0xb5ce, 0xbb51,
- 0xe3ab, 0xe745, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0, 0xcdb1,
- 0xd069, 0xad51, 0xd372, 0xafea, 0xafe8, 0xafe9, 0xafeb, 0xd371,
- 0xd757, 0xd754, 0xd756, 0xb2eb, 0xb2ed, 0xb2ec, 0xd753, 0xb2ee,
- 0xd755, 0xdb58, 0xdb59, 0xdb5a, 0xdfa6, 0xdfa7, 0xdfa5, 0xdfa8,
- 0xb8a5, 0xdfa4, 0xbb53, 0xe74a, 0xe746, 0xe749, 0xe74b, 0xe748,
- 0xe747, 0xeaf5, 0xeaf6, 0xeaf7, 0xbfb4, 0xbfb5, 0xedf1, 0xedf0,
- 0xedf2, 0xf0a3, 0xf0a2, 0xf2c4, 0xf2c5, 0xf2c3, 0xc4a5, 0xf4b6,
- 0xf4b7, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, 0xc17d, 0xa6e2,
- 0xd758, 0xdb5b, 0xc641, 0xca4a, 0xca4b, 0xca4d, 0xa6e3, 0xca4e,
- 0xca4c, 0xcba2, 0xcba3, 0xcb7b, 0xcba1, 0xa8a1, 0xa8a2, 0xcb7c,
- 0xcb7a, 0xcb79, 0xcb7d, 0xa87e, 0xcb7e, 0xd06a, 0xcdb6, 0xaadc,
- 0xcdb5, 0xcdb7, 0xaadb, 0xcdbc, 0xaadf, 0xcdb2, 0xcdc0, 0xcdc6,
- 0xaae6, 0xcdc3, 0xaae3, 0xcdb9, 0xcdbf, 0xcdc1, 0xcdb4, 0xaae2,
- 0xaadd, 0xcdba, 0xaae4, 0xaae7, 0xaae1, 0xaada, 0xcdbe, 0xcdb8,
- 0xcdc5, 0xaae9, 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade,
- 0xaae8, 0xcdb3, 0xcdc2, 0xcdc4, 0xad62, 0xad5c, 0xad64, 0xad61,
- 0xd071, 0xd074, 0xad5d, 0xd06b, 0xad56, 0xad60, 0xad63, 0xad65,
- 0xd0a2, 0xd077, 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, 0xd06f,
- 0xd07e, 0xd073, 0xd076, 0xd0a5, 0xad66, 0xd07d, 0xad5e, 0xd078,
- 0xd0a4, 0xd075, 0xd079, 0xd07c, 0xd06d, 0xd0a3, 0xd07b, 0xd06c,
- 0xd070, 0xad5f, 0xad5a, 0xad53, 0xad58, 0xad54, 0xad67, 0xd06e,
- 0xd3a5, 0xad5b, 0xd07a, 0xce41, 0xd3a8, 0xaffa, 0xd376, 0xd3a3,
- 0xd37d, 0xd3b2, 0xd3aa, 0xd37e, 0xd3a9, 0xd378, 0xd37c, 0xd3b5,
- 0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0xd3ac, 0xaffc,
- 0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, 0xaff1, 0xaff8,
- 0xd072, 0xdb5c, 0xd3a6, 0xd37a, 0xaffb, 0xd37b, 0xd3a1, 0xaffe,
- 0xd375, 0xd3af, 0xd3ae, 0xd3b6, 0xaff3, 0xaff0, 0xd3b4, 0xd3b0,
- 0xd3a7, 0xd3a2, 0xaff6, 0xaff2, 0xd377, 0xafee, 0xd3b1, 0xafef,
- 0xd379, 0xd75e, 0xd760, 0xd765, 0xd779, 0xb2fc, 0xb2f2, 0xd75d,
- 0xb2fd, 0xb2fe, 0xd768, 0xd76f, 0xd775, 0xd762, 0xd769, 0xb340,
- 0xd777, 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef,
- 0xd761, 0xd759, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773,
- 0xb2f1, 0xd764, 0xd77a, 0xd76c, 0xd76b, 0xb2f0, 0xb2fb, 0xb2f3,
- 0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, 0xd75b, 0xd767, 0xd76d,
- 0xb2f6, 0xd778, 0xd771, 0xd774, 0xb2f5, 0xdb6c, 0xdb60, 0xb5d7,
- 0xdb7d, 0xdba7, 0xdbaa, 0xb5d5, 0xdb68, 0xdba3, 0xdb69, 0xdb77,
- 0xb5e2, 0xdb73, 0xb5df, 0xdb74, 0xdb5d, 0xdba4, 0xb5e8, 0xdba1,
- 0xdb75, 0xdbac, 0xdb70, 0xdfc8, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a,
- 0xb5e9, 0xb5d4, 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0xdb63,
- 0xdb61, 0xb5d0, 0xdba5, 0xdb6a, 0xdba8, 0xdba9, 0xb5d8, 0xb5dd,
- 0xb5d9, 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0xb5d2, 0xdb5e,
- 0xdba2, 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, 0xdb6d, 0xb5d1,
- 0xb5e5, 0xdb7c, 0xb5e7, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3,
- 0xb5e4, 0xdb79, 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0xdbae, 0xdb5f,
- 0xdfc7, 0xdfdd, 0xb855, 0xdfcc, 0xdfca, 0xdfb5, 0xb8a9, 0xdfc5,
- 0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, 0xb5e3, 0xdfcf, 0xdfc0,
- 0xdfd6, 0xb8b0, 0xb8a8, 0xdfaa, 0xdfb2, 0xdfcb, 0xdfc3, 0xdfdc,
- 0xdfc6, 0xb8b6, 0xdfd7, 0xb8ad, 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0,
- 0xdfe1, 0xdfb1, 0xdfd2, 0xdfdf, 0xdfab, 0xb5db, 0xdfb9, 0xdfb8,
- 0xb8af, 0xdfbc, 0xdfbe, 0xdfcd, 0xdfde, 0xb8b2, 0xb8b3, 0xdfb0,
- 0xb8ab, 0xdfb4, 0xdfda, 0xb8b4, 0xb8ac, 0xb8ae, 0xb8b5, 0xdfe0,
- 0xdfd3, 0xdfce, 0xdfbb, 0xdfba, 0xb8aa, 0xdfac, 0xb8a7, 0xdfc4,
- 0xdfad, 0xdfc2, 0xdfb7, 0xdfdb, 0xb8a6, 0xdfb3, 0xdfaf, 0xdfd5,
- 0xdfae, 0xbb60, 0xe3d3, 0xe3c2, 0xe3ac, 0xe3ca, 0xbb58, 0xe3bb,
- 0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, 0xe3cd, 0xe3ae, 0xe3c1,
- 0xe3ad, 0xe3bf, 0xe3c8, 0xe3c6, 0xe3ba, 0xe3b5, 0xe3b3, 0xe3b4,
- 0xe3c7, 0xe3d2, 0xe3bc, 0xbb5a, 0xe3b7, 0xe3cb, 0xbb5d, 0xe3b6,
- 0xe3b0, 0xe3c0, 0xbb61, 0xbb55, 0xbb5e, 0xe3b8, 0xe3b2, 0xbb57,
- 0xdfd4, 0xbb56, 0xe3c3, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9,
- 0xe3b1, 0xe3cc, 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0xe3c9,
- 0xe3ce, 0xe3d1, 0xe773, 0xe774, 0xe767, 0xe766, 0xe762, 0xbdb4,
- 0xbdac, 0xe776, 0xe775, 0xdfa9, 0xe75f, 0xe763, 0xe75d, 0xe770,
- 0xe761, 0xe777, 0xe75a, 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6,
- 0xe74f, 0xe76d, 0xbdb7, 0xdfbd, 0xe75b, 0xe752, 0xe755, 0xe77b,
- 0xe75c, 0xe753, 0xe751, 0xe74e, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3,
- 0xe760, 0xe768, 0xbda9, 0xe778, 0xe77c, 0xbdab, 0xe757, 0xe76b,
- 0xe76f, 0xe754, 0xe779, 0xbdb2, 0xbdb1, 0xe74c, 0xbdb5, 0xe772,
- 0xe756, 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c,
- 0xe77d, 0xe77a, 0xe771, 0xe74d, 0xbdaa, 0xeb49, 0xeb40, 0xeb43,
- 0xbfbb, 0xeb45, 0xeaf9, 0xeb41, 0xeb47, 0xbfb8, 0xbfbc, 0xbfb6,
- 0xeafb, 0xeb4c, 0xeb46, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46,
- 0xeafe, 0xbfb7, 0xeb4a, 0xeb54, 0xbfbf, 0xeb51, 0xeafd, 0xeb44,
- 0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, 0xbfb9, 0xbfba, 0xbfbe,
- 0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0xeb4b, 0xeb4e, 0xee53, 0xee40,
- 0xee45, 0xee52, 0xee44, 0xedfb, 0xee41, 0xc1a2, 0xedf4, 0xee4d,
- 0xee4f, 0xedf3, 0xc1a1, 0xee51, 0xee49, 0xc1a8, 0xee50, 0xee42,
- 0xc1aa, 0xedf9, 0xeb52, 0xee4a, 0xee47, 0xedf5, 0xee55, 0xc1a4,
- 0xc1a5, 0xedf7, 0xee48, 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3,
- 0xee4c, 0xedfe, 0xee56, 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc,
- 0xc2cb, 0xedf6, 0xc1a9, 0xc2c4, 0xc17e, 0xc1a6, 0xc2c8, 0xf0b3,
- 0xf0a9, 0xf0a4, 0xf0aa, 0xf0b4, 0xf0b8, 0xf0b7, 0xc2ca, 0xc2c9,
- 0xf0ab, 0xf0b9, 0xf0ae, 0xf0a6, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2,
- 0xf0a5, 0xf0ac, 0xf0b1, 0xc2c7, 0xf0af, 0xc2c5, 0xf0b0, 0xc2c3,
- 0xc2c6, 0xf2d5, 0xf0b5, 0xc3c2, 0xf2cd, 0xf2d1, 0xf2c9, 0xf2cc,
- 0xf2d4, 0xc3c0, 0xf2d9, 0xf2d2, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3,
- 0xc3c4, 0xf2d7, 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8,
- 0xf2d8, 0xf2d6, 0xf2c7, 0xf2cf, 0xf4be, 0xc3c5, 0xf2d0, 0xc4a7,
- 0xc4a9, 0xc4a6, 0xf4c3, 0xf4bb, 0xf4b9, 0xf4bd, 0xf4ba, 0xf4bf,
- 0xf4c1, 0xc4aa, 0xc4ac, 0xf4c0, 0xc4ad, 0xc4ab, 0xf4c2, 0xc4a8,
- 0xc4f4, 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0xf5fd, 0xf5f4,
- 0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8,
- 0xf5fc, 0xf5f2, 0xf74a, 0xc4f5, 0xf5f9, 0xf7f4, 0xf74b, 0xf749,
- 0xf747, 0xf748, 0xf74c, 0xc5d9, 0xf7f2, 0xf7f0, 0xf7f5, 0xf7f3,
- 0xf7f6, 0xc5da, 0xf7f1, 0xf8bc, 0xf945, 0xf946, 0xf947, 0xf9c7,
- 0xf9bd, 0xca4f, 0xaaea, 0xad68, 0xd3b8, 0xd3b7, 0xb040, 0xb342,
- 0xd77c, 0xd77b, 0xb5ea, 0xb8b8, 0xb8b7, 0xb8b9, 0xe3d4, 0xe77e,
- 0xeb58, 0xeb5a, 0xeb59, 0xc1ab, 0xee57, 0xf0ba, 0xf9a5, 0xa6e4,
- 0xcdc9, 0xcdca, 0xcdc8, 0xcdc7, 0xaaeb, 0xd0a9, 0xd0a7, 0xd0a6,
- 0xad69, 0xad6b, 0xad6a, 0xd0a8, 0xd3c4, 0xd3c1, 0xd3bf, 0xb041,
- 0xd3c2, 0xb046, 0xd3bc, 0xd3cb, 0xd3cd, 0xd3bd, 0xb043, 0xd3ce,
- 0xd3c9, 0xd3bb, 0xd3c0, 0xd3ca, 0xd3c6, 0xd3c3, 0xb048, 0xd3cc,
- 0xd3be, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0xd3c8, 0xd3ba,
- 0xb045, 0xb042, 0xb34c, 0xd7a5, 0xb34b, 0xd7a8, 0xd7ab, 0xb348,
- 0xb346, 0xd77e, 0xd7a9, 0xd7a7, 0xd7a4, 0xd7ac, 0xd7ad, 0xd7af,
- 0xd7b0, 0xd77d, 0xb345, 0xd7a2, 0xd7a1, 0xd7ae, 0xb347, 0xd7a3,
- 0xb349, 0xb344, 0xd7a6, 0xb34d, 0xb34a, 0xd7aa, 0xb5f1, 0xdbbf,
- 0xdbb4, 0xb5ee, 0xdfe7, 0xdbbd, 0xdbb1, 0xb5ec, 0xdbb6, 0xb5ef,
- 0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, 0xdbb2, 0xdbb5, 0xb5f0, 0xdbb3,
- 0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb, 0xb5ed, 0xdfe8, 0xdfee,
- 0xdfe4, 0xdfea, 0xb8ba, 0xdfe6, 0xb8c0, 0xb8bf, 0xb8be, 0xdfed,
- 0xb8c1, 0xb8c2, 0xdfe3, 0xdff0, 0xb8c3, 0xb8bd, 0xb8bc, 0xdfec,
- 0xb8c4, 0xdfe2, 0xdfe5, 0xdfef, 0xdfeb, 0xe3f4, 0xe3e9, 0xb8bb,
- 0xbb6a, 0xe3dd, 0xe3f2, 0xe3de, 0xbb65, 0xe3db, 0xe3e4, 0xe3dc,
- 0xbb67, 0xe3d6, 0xe3f1, 0xbb68, 0xe3ee, 0xe3ef, 0xe3d7, 0xbb6d,
- 0xe3e6, 0xe3e0, 0xe3e7, 0xe3da, 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5,
- 0xbb69, 0xe3ec, 0xbb6c, 0xe3f0, 0xe3ea, 0xbb66, 0xe3e8, 0xe3e2,
- 0xbb64, 0xe3d9, 0xe3e1, 0xe3ed, 0xe3df, 0xe3e3, 0xbdc1, 0xdfe9,
- 0xe7b2, 0xe7bb, 0xe7b1, 0xe7ad, 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b,
- 0xe7a1, 0xbdc0, 0xe7a7, 0xbdbf, 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4,
- 0xe7ae, 0xe7b3, 0xbdbb, 0xe7ab, 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba,
- 0xbdbc, 0xe7bf, 0xbdbe, 0xe7c0, 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af,
- 0xe7b8, 0xe7b5, 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, 0xbdbd,
- 0xeb64, 0xe7b7, 0xe7bc, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67,
- 0xeb65, 0xeb60, 0xeb6f, 0xbfc4, 0xeb5c, 0xeb68, 0xeb69, 0xeb5f,
- 0xeb5e, 0xeb6c, 0xeb62, 0xeb5d, 0xeb63, 0xeb6e, 0xeb5b, 0xeb6d,
- 0xeb6a, 0xbfc2, 0xbfc1, 0xbfc3, 0xeb66, 0xf0cb, 0xee59, 0xc1b1,
- 0xee5d, 0xee5a, 0xee61, 0xee67, 0xee5c, 0xee70, 0xc1ae, 0xee6a,
- 0xee5f, 0xee6b, 0xee66, 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60,
- 0xee6e, 0xee58, 0xee6c, 0xc1ac, 0xee64, 0xee63, 0xee68, 0xee5b,
- 0xc1b0, 0xc1b4, 0xee62, 0xee69, 0xc1b5, 0xee65, 0xc1ad, 0xc1af,
- 0xf0c7, 0xf0c5, 0xf0cc, 0xf0c9, 0xf0cd, 0xf0be, 0xf0c6, 0xf0d1,
- 0xee6f, 0xf0c2, 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4, 0xf0c1,
- 0xf0bc, 0xf0bb, 0xf0d0, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8, 0xc2cc,
- 0xc2ce, 0xf0c3, 0xf0cf, 0xf2de, 0xf2df, 0xc3c9, 0xf2dc, 0xc3c6,
- 0xf2e4, 0xc3ca, 0xf2e6, 0xf2db, 0xf0ce, 0xf2e8, 0xf2dd, 0xc3c7,
- 0xf2e3, 0xf2e5, 0xf2e0, 0xf2e7, 0xf2e2, 0xf2e1, 0xc3c8, 0xf4c5,
- 0xf4c6, 0xf4c8, 0xc4ae, 0xc4af, 0xf4c9, 0xf4c7, 0xf4c4, 0xf642,
- 0xf645, 0xf641, 0xc4fa, 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644,
- 0xf751, 0xf74f, 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0xf7f9,
- 0xf7d7, 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0xf8bf, 0xc5fa, 0xf8be,
- 0xf8bd, 0xc5fb, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, 0xa6e5,
- 0xd0aa, 0xd3cf, 0xd3d0, 0xdbc0, 0xf647, 0xf8c0, 0xa6e6, 0xad6c,
- 0xd0ab, 0xd7b1, 0xb34e, 0xdbc2, 0xdbc1, 0xb5f3, 0xb8c5, 0xe7c1,
- 0xbdc3, 0xbdc4, 0xbfc5, 0xc5fc, 0xa6e7, 0xd0ac, 0xaaed, 0xd0ae,
- 0xd0ad, 0xad6d, 0xd3d1, 0xd3d8, 0xb049, 0xd3d6, 0xd3d4, 0xd3db,
- 0xd3d2, 0xd3d3, 0xb04a, 0xb04e, 0xd3dc, 0xb04d, 0xd3da, 0xd3d7,
- 0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0xb350, 0xd7b2, 0xb355, 0xd7c2,
- 0xb354, 0xd7c4, 0xd7b8, 0xb352, 0xd7c3, 0xd7b3, 0xb353, 0xd7bf,
- 0xd7bb, 0xd7bd, 0xd7b7, 0xd7be, 0xb34f, 0xd7ba, 0xd7b9, 0xd7b5,
- 0xd7c0, 0xd7bc, 0xd7b4, 0xd7b6, 0xb351, 0xd7c1, 0xb5f6, 0xdbcd,
- 0xdbc9, 0xdbcb, 0xdbc6, 0xdbc5, 0xdbc3, 0xdbca, 0xdbcc, 0xdbc8,
- 0xdbc7, 0xb5f4, 0xb5f5, 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3,
- 0xdff4, 0xdff9, 0xb8cf, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, 0xb8ca,
- 0xb8c8, 0xdff7, 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, 0xb8cc,
- 0xe3f6, 0xbb74, 0xe442, 0xe441, 0xe3fb, 0xbb76, 0xe440, 0xe3f7,
- 0xe3f8, 0xbb6e, 0xbb70, 0xe3fd, 0xe3f5, 0xbb72, 0xbb71, 0xe3f9,
- 0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0xdbce, 0xbb6f, 0xe7c2, 0xe7c9,
- 0xbdc6, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0xe7cc, 0xbdc5, 0xe7cb,
- 0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6, 0xe7c7, 0xe7c8,
- 0xbb75, 0xeb70, 0xeb7c, 0xbfca, 0xeb77, 0xeb79, 0xbfc8, 0xeb71,
- 0xeb75, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b, 0xeb73, 0xeb74, 0xeb7a,
- 0xeb72, 0xeb76, 0xbfc7, 0xee72, 0xee71, 0xc1b7, 0xee77, 0xc1b9,
- 0xc1b6, 0xee73, 0xc1ba, 0xee74, 0xee75, 0xee78, 0xc1b8, 0xf0d6,
- 0xf0d9, 0xf0d3, 0xf0d5, 0xf0d4, 0xf0d7, 0xf0d8, 0xee76, 0xf0d2,
- 0xc3cd, 0xf2ec, 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0,
- 0xc3ce, 0xc3cc, 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0xf4cb,
- 0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, 0xf752,
- 0xc5a7, 0xf7fd, 0xf7fc, 0xf7fb, 0xf948, 0xf949, 0xf94b, 0xf94a,
- 0xca50, 0xa6e8, 0xad6e, 0xd7c5, 0xb5f7, 0xdffa, 0xc2d0, 0xf2f2,
- 0xa8a3, 0xb357, 0xb356, 0xdbd0, 0xb5f8, 0xdbd2, 0xdbd1, 0xdffb,
- 0xb8d0, 0xe443, 0xe446, 0xe445, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf,
- 0xbfcc, 0xbfcb, 0xc1bb, 0xee79, 0xee7b, 0xee7a, 0xc2d1, 0xf2f4,
- 0xf2f3, 0xf4cc, 0xc4b1, 0xc4fd, 0xf754, 0xf753, 0xc65b, 0xa8a4,
- 0xd0af, 0xad6f, 0xd7c8, 0xd7c6, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043,
- 0xdbd3, 0xdffc, 0xe041, 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd,
- 0xe044, 0xe449, 0xe447, 0xe448, 0xe7d3, 0xe7d1, 0xe7d2, 0xeb7d,
- 0xee7c, 0xee7d, 0xc2d2, 0xf2f5, 0xf4cd, 0xc4b2, 0xf64c, 0xf755,
- 0xc5a9, 0xf7fe, 0xf94c, 0xa8a5, 0xad71, 0xad72, 0xd0b0, 0xd0b1,
- 0xad70, 0xb054, 0xb052, 0xb051, 0xb058, 0xb050, 0xb059, 0xd3dd,
- 0xb056, 0xb053, 0xb057, 0xb055, 0xb04f, 0xb35f, 0xb359, 0xd7cc,
- 0xb35e, 0xb360, 0xb35a, 0xb35b, 0xd7ca, 0xb358, 0xd7cb, 0xb35d,
- 0xd7c9, 0xb35c, 0xb644, 0xb646, 0xdbd8, 0xb645, 0xb5f9, 0xb5fd,
- 0xb8e4, 0xe049, 0xdbda, 0xb5fe, 0xdbdd, 0xdbde, 0xb643, 0xdbe0,
- 0xdbe2, 0xdbe3, 0xdbd7, 0xdbd6, 0xdbe4, 0xb642, 0xdbe1, 0xdbdf,
- 0xb640, 0xb5fb, 0xb647, 0xdbdb, 0xdbdc, 0xdbd9, 0xb641, 0xb5fc,
- 0xb5fa, 0xe048, 0xb8df, 0xb8da, 0xb8d5, 0xb8e5, 0xb8d6, 0xb8d2,
- 0xb8e1, 0xb8de, 0xb8e0, 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050,
- 0xe04d, 0xe045, 0xe04a, 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0xe047,
- 0xe04f, 0xe04b, 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, 0xe44c,
- 0xbb78, 0xbb7b, 0xe44e, 0xbba5, 0xe44d, 0xbb7d, 0xbdcf, 0xe44f,
- 0xbba4, 0xe44b, 0xbba6, 0xbb79, 0xb8db, 0xbb7c, 0xbb7a, 0xbb7e,
- 0xbba2, 0xbb77, 0xbba7, 0xbba3, 0xbba1, 0xe44a, 0xbdd6, 0xbdd2,
- 0xbdd9, 0xe7d6, 0xbdda, 0xe7e2, 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd,
- 0xbdd5, 0xe7de, 0xbdd4, 0xe7e1, 0xbdce, 0xe7df, 0xe7d5, 0xbdcd,
- 0xebaa, 0xbdd3, 0xbdd0, 0xbdd8, 0xe7d4, 0xe7d8, 0xbdcc, 0xe7d7,
- 0xe7d9, 0xe7da, 0xbdd7, 0xe7dc, 0xe7e0, 0xe7e4, 0xbddb, 0xbfd2,
- 0xeba5, 0xebab, 0xeba8, 0xeb7e, 0xebac, 0xeba1, 0xeba7, 0xbfcd,
- 0xbfd3, 0xebad, 0xbfcf, 0xbfd9, 0xbfd4, 0xebaf, 0xeba9, 0xbfd0,
- 0xeba2, 0xbfda, 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, 0xbdd1, 0xbfce,
- 0xebb0, 0xbfdc, 0xbfd5, 0xebae, 0xbfd1, 0xbfd6, 0xbfd7, 0xc1c3,
- 0xeea4, 0xeead, 0xeeaa, 0xeeac, 0xc1c0, 0xeea5, 0xeeab, 0xc1bc,
- 0xeea7, 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2,
- 0xc1bd, 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e,
- 0xc1c1, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, 0xc2d3,
- 0xf0da, 0xc2d6, 0xc2d5, 0xf0e9, 0xf0e1, 0xf0de, 0xf0e4, 0xf0dd,
- 0xf0df, 0xf0e8, 0xf0e6, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2, 0xf0ec,
- 0xf0e3, 0xf2f9, 0xc3cf, 0xf341, 0xf64f, 0xc3d6, 0xf0e0, 0xf2f7,
- 0xc3d2, 0xf2f8, 0xf2fd, 0xc3d4, 0xc3d5, 0xf2f6, 0xf340, 0xf342,
- 0xf2fa, 0xf2fc, 0xf2fe, 0xf2fb, 0xf343, 0xc3d1, 0xc3d7, 0xc3d3,
- 0xc3d0, 0xf4d0, 0xc4b7, 0xf4ce, 0xf4d2, 0xf4d3, 0xc4b5, 0xf4d4,
- 0xf4d1, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0xc4b6, 0xc4b3, 0xc4fe,
- 0xc540, 0xf64e, 0xf64d, 0xf650, 0xf651, 0xc541, 0xf756, 0xf75b,
- 0xc5aa, 0xf758, 0xf757, 0xf75a, 0xf759, 0xf843, 0xc5dc, 0xf842,
- 0xf840, 0xf841, 0xc5fe, 0xc5fd, 0xf8c1, 0xf8c2, 0xc640, 0xf94d,
- 0xf94e, 0xc667, 0xc66d, 0xf9a9, 0xf9c8, 0xa8a6, 0xd7cd, 0xd7ce,
- 0xe052, 0xe450, 0xe7e5, 0xc1c6, 0xc1c5, 0xf0ee, 0xf344, 0xf844,
- 0xa8a7, 0xd3de, 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6,
- 0xbddd, 0xeeb1, 0xc2d7, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, 0xb362,
- 0xd7cf, 0xd7d0, 0xdbe5, 0xb648, 0xb8e6, 0xe056, 0xe055, 0xe057,
- 0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0xeeb5, 0xeeb2,
- 0xeeb4, 0xeeb3, 0xc1c7, 0xf0ef, 0xf346, 0xf345, 0xcba4, 0xb05c,
- 0xb05b, 0xd3e0, 0xd7d1, 0xdbe7, 0xdbe6, 0xb649, 0xe059, 0xe05a,
- 0xe058, 0xb8e8, 0xb8e7, 0xbbaa, 0xbba9, 0xe7e7, 0xebb3, 0xebb1,
- 0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0xf0f2, 0xf0f1, 0xf0f0, 0xf347,
- 0xf9aa, 0xa8a9, 0xad73, 0xad74, 0xb05d, 0xb05e, 0xd3e2, 0xd3e1,
- 0xd7d2, 0xb368, 0xb366, 0xb363, 0xb367, 0xb365, 0xb364, 0xb64a,
- 0xdbea, 0xb8ed, 0xb64c, 0xb651, 0xdbec, 0xb653, 0xb652, 0xb655,
- 0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d, 0xdbe9, 0xb654, 0xb650,
- 0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0, 0xb8ea, 0xb8eb, 0xb8e9,
- 0xe05b, 0xe454, 0xbbac, 0xbbad, 0xbbab, 0xe453, 0xe455, 0xe7ea,
- 0xe7ec, 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, 0xbddf, 0xbde9, 0xbde5,
- 0xbde6, 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, 0xe7eb, 0xbde8, 0xbde3,
- 0xbde4, 0xebb5, 0xebb7, 0xebb6, 0xebb8, 0xbfe0, 0xebb4, 0xc1cb,
- 0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9, 0xf0f3, 0xf0f6, 0xf0f5,
- 0xf0f4, 0xc2d8, 0xf348, 0xf349, 0xc3d8, 0xf34a, 0xc3d9, 0xc4ba,
- 0xc4b9, 0xf652, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, 0xf845,
- 0xc642, 0xa8aa, 0xb36a, 0xb369, 0xe05c, 0xe05d, 0xbbae, 0xebb9,
- 0xbdea, 0xebba, 0xeeb9, 0xa8ab, 0xd0b2, 0xad76, 0xad75, 0xd3e3,
- 0xb05f, 0xd3e4, 0xd7d5, 0xd7d4, 0xd7d3, 0xdbee, 0xb658, 0xdbed,
- 0xb657, 0xdbef, 0xb656, 0xe05f, 0xe062, 0xe060, 0xe061, 0xe065,
- 0xe05e, 0xe066, 0xe063, 0xe064, 0xbbb0, 0xe456, 0xbbaf, 0xe7f2,
- 0xe7f0, 0xbdeb, 0xe7ef, 0xe7f1, 0xbdec, 0xebbb, 0xebbc, 0xc1cd,
- 0xf34c, 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, 0xf96f, 0xa8ac,
- 0xad77, 0xd3e5, 0xd3e7, 0xd3e6, 0xd7d8, 0xb36c, 0xd7d6, 0xb36b,
- 0xd7d9, 0xd7da, 0xd7d7, 0xdbfb, 0xb660, 0xdbf3, 0xdbf9, 0xb65b,
- 0xb65e, 0xdbf2, 0xb659, 0xdbf6, 0xe06c, 0xb65d, 0xdbf1, 0xdbf7,
- 0xdbf4, 0xdbfa, 0xdbf0, 0xdbf8, 0xb65c, 0xb65f, 0xdbf5, 0xb65a,
- 0xb8f2, 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8, 0xb8f9, 0xe070,
- 0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0xe06b, 0xb8f4, 0xe067,
- 0xe06a, 0xe071, 0xb8f5, 0xe073, 0xb8f6, 0xbbb1, 0xe45b, 0xe461,
- 0xe459, 0xe462, 0xe458, 0xe45d, 0xe463, 0xe460, 0xe45f, 0xe45e,
- 0xe457, 0xe45c, 0xe45a, 0xbdf1, 0xbdee, 0xe7fb, 0xe841, 0xe843,
- 0xe840, 0xe7f8, 0xe7fa, 0xe845, 0xe842, 0xe7fc, 0xe846, 0xe7f9,
- 0xe844, 0xbdef, 0xbdf5, 0xbdf3, 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4,
- 0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe, 0xbdf2, 0xbded, 0xe7f7, 0xebc6,
- 0xbfe2, 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0xebbf, 0xbfe5, 0xebc3,
- 0xebc4, 0xebbe, 0xebc7, 0xebc0, 0xebc5, 0xbfe4, 0xbfe1, 0xebc1,
- 0xeebf, 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb, 0xeeba,
- 0xeebd, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa, 0xc2d9, 0xf141,
- 0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, 0xf0f9, 0xf142, 0xf0f8,
- 0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, 0xf144, 0xf352, 0xc3de,
- 0xf34f, 0xf353, 0xc3db, 0xf351, 0xc3e0, 0xc3dd, 0xf350, 0xc3df,
- 0xf354, 0xc3da, 0xc4bc, 0xc4be, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc,
- 0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0xf761,
- 0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, 0xf846,
- 0xf75f, 0xf8c6, 0xf8c3, 0xf8c4, 0xf8c5, 0xc65c, 0xf951, 0xf950,
- 0xf94f, 0xf970, 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060, 0xb8fa,
- 0xbdf6, 0xebc8, 0xc2df, 0xf355, 0xf9ac, 0xa8ae, 0xaaee, 0xad79,
- 0xad78, 0xb063, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0xd7df, 0xd7db,
- 0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, 0xd7e0, 0xd7e1, 0xdc43,
- 0xdc41, 0xdc45, 0xdc46, 0xdc4c, 0xdc48, 0xdc4a, 0xdc42, 0xdbfc,
- 0xdc49, 0xdc4b, 0xdc44, 0xdc47, 0xdbfd, 0xb662, 0xdc40, 0xdbfe,
- 0xb661, 0xb663, 0xb8fd, 0xe075, 0xe077, 0xe076, 0xe07b, 0xb8fb,
- 0xe078, 0xe074, 0xe079, 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0xe467,
- 0xe466, 0xe464, 0xe465, 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d,
- 0xe84e, 0xe849, 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9,
- 0xe84b, 0xe84c, 0xe848, 0xbe40, 0xbdfb, 0xbdfa, 0xbdfc, 0xe847,
- 0xebca, 0xbfe8, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce,
- 0xbfe9, 0xebcd, 0xbfe7, 0xc1d3, 0xc1d6, 0xeec1, 0xc1d4, 0xeec0,
- 0xc1d2, 0xc1d5, 0xf146, 0xf147, 0xf148, 0xc2e0, 0xf149, 0xc2e1,
- 0xc3e2, 0xf358, 0xf359, 0xf357, 0xf356, 0xf35a, 0xc3e1, 0xf4dd,
- 0xf4db, 0xf4dc, 0xf4de, 0xf4da, 0xf4df, 0xf658, 0xf659, 0xf657,
- 0xc546, 0xf764, 0xc5af, 0xf765, 0xf848, 0xf847, 0xa8af, 0xb664,
- 0xb940, 0xbbb6, 0xbfec, 0xbfeb, 0xc3e3, 0xc47c, 0xc547, 0xa8b0,
- 0xb064, 0xb941, 0xf35b, 0xcba6, 0xa8b1, 0xa8b4, 0xa8b3, 0xa8b2,
- 0xcba5, 0xcdcd, 0xcdcf, 0xaaef, 0xaaf1, 0xcdcc, 0xcdce, 0xaaf0,
- 0xcdd1, 0xcdd0, 0xcdd2, 0xd0b6, 0xd0b4, 0xad7c, 0xd0b3, 0xada3,
- 0xad7e, 0xad7b, 0xada4, 0xad7d, 0xada2, 0xada1, 0xd0b5, 0xad7a,
- 0xb06a, 0xd3eb, 0xd3f1, 0xb067, 0xb06e, 0xb069, 0xd3ee, 0xd3f0,
- 0xb06c, 0xd3ea, 0xd3ed, 0xb068, 0xb065, 0xd3ec, 0xb06b, 0xd3ef,
- 0xb06d, 0xb066, 0xd7e3, 0xd7e6, 0xb370, 0xb37a, 0xb376, 0xd7e4,
- 0xb37e, 0xb377, 0xb37c, 0xb372, 0xb36f, 0xb371, 0xb37d, 0xd7e5,
- 0xb375, 0xb378, 0xb374, 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2,
- 0xdc4d, 0xb665, 0xdc4f, 0xb667, 0xb669, 0xdc4e, 0xb666, 0xb66a,
- 0xb668, 0xb947, 0xe0a3, 0xb94f, 0xe07e, 0xb950, 0xb945, 0xe0a1,
- 0xb94a, 0xe0a2, 0xb943, 0xb942, 0xb94d, 0xb94c, 0xb94b, 0xb949,
- 0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0xbbb8, 0xbbbb, 0xbbbf,
- 0xbbb9, 0xbbbe, 0xbbbc, 0xbbb7, 0xbbbd, 0xbbba, 0xe852, 0xbe43,
- 0xbe41, 0xe853, 0xbe44, 0xbe42, 0xe851, 0xe850, 0xbff0, 0xe84f,
- 0xbfee, 0xbfed, 0xebd0, 0xbe45, 0xbfef, 0xebd1, 0xbff2, 0xebd2,
- 0xbff1, 0xc1d8, 0xeec3, 0xc1d7, 0xc1dc, 0xc1da, 0xc1db, 0xc2e3,
- 0xc1d9, 0xeec2, 0xebd3, 0xc2e2, 0xc2e4, 0xc3e4, 0xc3e5, 0xf4e0,
- 0xc5de, 0xc5dd, 0xa8b6, 0xca55, 0xb06f, 0xca52, 0xca53, 0xca51,
- 0xca54, 0xcbaa, 0xcba7, 0xcbac, 0xcba8, 0xa8b7, 0xa8ba, 0xcba9,
- 0xa8b9, 0xcbab, 0xa8b8, 0xcdd5, 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6,
- 0xcdd4, 0xaaf2, 0xaaf5, 0xaaf3, 0xd0b8, 0xd0bc, 0xd0b9, 0xada7,
- 0xada8, 0xd0bb, 0xd0bd, 0xd0bf, 0xada5, 0xd0be, 0xada6, 0xd7ee,
- 0xd0ba, 0xd3f2, 0xd3fb, 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc,
- 0xb071, 0xd3f7, 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8,
- 0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0xd7e8, 0xd7ea,
- 0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0xdc56, 0xebd4, 0xdc57,
- 0xdc54, 0xb3a3, 0xb66e, 0xdc53, 0xdc59, 0xdc58, 0xb66b, 0xdc5c,
- 0xdc52, 0xdc5b, 0xdc50, 0xdc5a, 0xdc55, 0xb66d, 0xe0aa, 0xe0a5,
- 0xe0ab, 0xe0a6, 0xe0a4, 0xe0a7, 0xb951, 0xe0a9, 0xe0a8, 0xb952,
- 0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c,
- 0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0xe859, 0xbe48, 0xf14a,
- 0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, 0xbe46,
- 0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0xeec4, 0xc1dd,
- 0xf14b, 0xf14c, 0xf14d, 0xf35d, 0xf35c, 0xf4e2, 0xf4e1, 0xf65b,
- 0xf65c, 0xf65a, 0xf766, 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075,
- 0xb074, 0xd440, 0xd441, 0xd3fe, 0xb073, 0xd7f5, 0xd7f6, 0xd7f2,
- 0xb3a4, 0xd7f3, 0xd7f4, 0xdc5f, 0xdc61, 0xdc5d, 0xdc60, 0xb66f,
- 0xdc5e, 0xb670, 0xdd73, 0xb955, 0xb954, 0xb953, 0xe0ac, 0xe0ad,
- 0xe473, 0xe475, 0xbbc6, 0xbbc3, 0xbbc5, 0xbbc4, 0xe474, 0xe472,
- 0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a,
- 0xbe4b, 0xe85d, 0xbe4c, 0xebdb, 0xebdc, 0xebd9, 0xebda, 0xbff4,
- 0xebd8, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb, 0xc1df, 0xeec9,
- 0xeecc, 0xeeca, 0xeec6, 0xc1de, 0xf14f, 0xf150, 0xf14e, 0xf152,
- 0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151, 0xf35e, 0xc3e6, 0xf4e5,
- 0xf4e6, 0xc4bf, 0xf4e4, 0xf4e3, 0xf65d, 0xc548, 0xf849, 0xf8c8,
- 0xf8c7, 0xc643, 0xc65d, 0xf8c9, 0xf971, 0xc66f, 0xa8bc, 0xaaf6,
- 0xb956, 0xc4c0, 0xa8bd, 0xadab, 0xb3a5, 0xb671, 0xc2e7, 0xaaf7,
- 0xd0c1, 0xd0c0, 0xd442, 0xb078, 0xb076, 0xb07a, 0xd444, 0xb079,
- 0xb077, 0xd443, 0xb3a8, 0xd7fc, 0xb3a7, 0xb3a9, 0xd842, 0xb3ab,
- 0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0xd7f9, 0xd7fa, 0xd7f8,
- 0xb3a6, 0xd841, 0xd7fb, 0xd7fd, 0xdc6d, 0xdc6c, 0xdc6a, 0xdc62,
- 0xdc71, 0xdc65, 0xdc6f, 0xdc76, 0xdc6e, 0xb679, 0xb675, 0xdc63,
- 0xdc69, 0xb677, 0xdc68, 0xb678, 0xb67a, 0xdc6b, 0xb672, 0xb673,
- 0xdc77, 0xdc75, 0xdc74, 0xdc66, 0xdc72, 0xb676, 0xb674, 0xdc73,
- 0xdc64, 0xdc67, 0xdc70, 0xe4ba, 0xe0b7, 0xe0b0, 0xe0c3, 0xe0cc,
- 0xe0b3, 0xb961, 0xe0c0, 0xb957, 0xb959, 0xb965, 0xe0b1, 0xb95a,
- 0xb95c, 0xb966, 0xb95b, 0xb964, 0xe0b9, 0xe0ae, 0xb962, 0xe0b8,
- 0xb95e, 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, 0xe0c6, 0xb960, 0xe0af,
- 0xe0c9, 0xe0c4, 0xe0cb, 0xb958, 0xb967, 0xb95d, 0xe0b5, 0xe0bd,
- 0xe0c1, 0xe0c5, 0xb95f, 0xe0b4, 0xe0b2, 0xe0be, 0xe0bb, 0xe0ba,
- 0xe0bf, 0xe0c2, 0xe0c7, 0xe478, 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc,
- 0xbbd0, 0xe4ad, 0xe4b5, 0xe4a6, 0xbbc8, 0xe4aa, 0xe0b6, 0xbbc9,
- 0xe4b1, 0xe4b6, 0xe4ae, 0xe4b0, 0xe4b9, 0xe4b2, 0xe47e, 0xe4a9,
- 0xbbd1, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb, 0xe4a5, 0xbbca, 0xe4b3,
- 0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0xe47b, 0xe4af, 0xe4ac, 0xe4a7,
- 0xe477, 0xe476, 0xe4a1, 0xe4b4, 0xbbcf, 0xe4b7, 0xe47d, 0xe4a3,
- 0xbe52, 0xbe5a, 0xbe55, 0xe8a4, 0xe8a1, 0xe867, 0xbe50, 0xbe4f,
- 0xbe56, 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e, 0xe8a3,
- 0xbe58, 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877, 0xe875,
- 0xe868, 0xe862, 0xe87d, 0xbe57, 0xe87e, 0xe878, 0xe86d, 0xe86b,
- 0xe866, 0xe86e, 0xe87b, 0xe86a, 0xe87a, 0xe8a2, 0xbe53, 0xe876,
- 0xe87c, 0xe872, 0xe86c, 0xbe51, 0xe4a8, 0xe870, 0xbe59, 0xe869,
- 0xebf4, 0xbff7, 0xebf3, 0xebf0, 0xec44, 0xbffb, 0xec41, 0xebf8,
- 0xec43, 0xebe9, 0xebf6, 0xbffd, 0xebe1, 0xebdf, 0xec42, 0xec40,
- 0xebfe, 0xebed, 0xebec, 0xebe2, 0xc040, 0xebe8, 0xebf2, 0xebfd,
- 0xc043, 0xec45, 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0xebef, 0xebde,
- 0xebe0, 0xbff5, 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041,
- 0xebdd, 0xc1e3, 0xebf9, 0xebfc, 0xbffc, 0xebeb, 0xc044, 0xbff9,
- 0xbff8, 0xebf5, 0xebfb, 0xbff6, 0xebe4, 0xebfa, 0xebe5, 0xebea,
- 0xeed2, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3,
- 0xeed8, 0xeed9, 0xeee2, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, 0xeed4,
- 0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0xeee8, 0xeeda, 0xeee7, 0xeee9,
- 0xeed0, 0xc1e6, 0xeeea, 0xeede, 0xc1ea, 0xeedb, 0xc1ec, 0xeee4,
- 0xc1e4, 0xeed6, 0xeee5, 0xeedf, 0xebe3, 0xeee6, 0xeed3, 0xc1e9,
- 0xeeeb, 0xc1e2, 0xeece, 0xf160, 0xf159, 0xc2e9, 0xf154, 0xf163,
- 0xf15b, 0xeedc, 0xf165, 0xf155, 0xc2e8, 0xf15f, 0xc2ea, 0xc2f2,
- 0xc2f0, 0xf161, 0xc2f1, 0xf157, 0xf158, 0xf15d, 0xf162, 0xeecd,
- 0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e, 0xf15a, 0xf168, 0xf36a,
- 0xf15c, 0xc2ee, 0xc2ed, 0xeecf, 0xc2ef, 0xf164, 0xf166, 0xc2ec,
- 0xf169, 0xf153, 0xf156, 0xf373, 0xf363, 0xc3eb, 0xf371, 0xf361,
- 0xc3ec, 0xf36c, 0xf368, 0xc3f1, 0xf372, 0xf362, 0xf365, 0xc3e9,
- 0xf374, 0xf36d, 0xf370, 0xc3ef, 0xc3f4, 0xc3f2, 0xf369, 0xf364,
- 0xc3ed, 0xc3ee, 0xf360, 0xc3ea, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3,
- 0xf36b, 0xf375, 0xc3f5, 0xf367, 0xf36e, 0xf4f3, 0xf542, 0xf4f5,
- 0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed, 0xf4fe,
- 0xf4f4, 0xc4c2, 0xf544, 0xf4f6, 0xf4fb, 0xf4fd, 0xf4e7, 0xf541,
- 0xf4f2, 0xf4f7, 0xf4eb, 0xf4ef, 0xf543, 0xf4f9, 0xf4e8, 0xf4ec,
- 0xf4ee, 0xf4f8, 0xc4c1, 0xf4f1, 0xf4ea, 0xf4f0, 0xf661, 0xf666,
- 0xc54f, 0xf668, 0xc549, 0xf664, 0xf66a, 0xc54e, 0xc54a, 0xc54b,
- 0xf660, 0xf667, 0xc54d, 0xf665, 0xc54c, 0xf65f, 0xf663, 0xf662,
- 0xf65e, 0xf669, 0xc5b1, 0xf76d, 0xf770, 0xf76c, 0xf76e, 0xf76f,
- 0xf769, 0xf76a, 0xf767, 0xf76b, 0xf768, 0xc5b2, 0xc5b3, 0xf84b,
- 0xf84d, 0xf84c, 0xf84e, 0xc5e0, 0xf84a, 0xc5df, 0xc5e1, 0xf8cb,
- 0xf8cc, 0xc644, 0xf8ca, 0xf953, 0xf952, 0xf954, 0xc65f, 0xf955,
- 0xc65e, 0xf956, 0xf972, 0xf975, 0xf974, 0xc668, 0xf973, 0xc672,
- 0xc670, 0xc671, 0xc677, 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0xaaf8,
- 0xd844, 0xdc78, 0xe8a5, 0xf376, 0xaaf9, 0xadac, 0xb07b, 0xd845,
- 0xd846, 0xb3ac, 0xb67d, 0xdc7a, 0xdc79, 0xb6a3, 0xb67c, 0xdc7b,
- 0xb67e, 0xb6a2, 0xb6a1, 0xb67b, 0xb968, 0xe0d0, 0xe0ce, 0xe0cf,
- 0xe0cd, 0xbbd2, 0xbbd5, 0xbbd7, 0xbbd6, 0xbbd3, 0xbbd4, 0xe8a7,
- 0xe8a6, 0xbe5b, 0xe8a8, 0xe8a9, 0xbe5c, 0xec4d, 0xec4b, 0xeef3,
- 0xec49, 0xec4a, 0xc046, 0xec46, 0xec4e, 0xec48, 0xec4c, 0xeeef,
- 0xeef1, 0xeef2, 0xc1f3, 0xeeee, 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0,
- 0xc1f1, 0xec47, 0xc2f5, 0xf16e, 0xf16c, 0xf16d, 0xc2f3, 0xc2f6,
- 0xc2f4, 0xf377, 0xf378, 0xc3f6, 0xf545, 0xf547, 0xf546, 0xc4c4,
- 0xc550, 0xf66d, 0xf66c, 0xf66b, 0xaafa, 0xc9aa, 0xca58, 0xa6e9,
- 0xca56, 0xca59, 0xca57, 0xcbae, 0xa8c1, 0xa8c2, 0xcbb0, 0xa8bf,
- 0xcbaf, 0xcbad, 0xa8c0, 0xa8be, 0xcdd8, 0xcddb, 0xaafd, 0xcdda,
- 0xcdd9, 0xaafc, 0xaafb, 0xab40, 0xcddc, 0xaafe, 0xd0c6, 0xadae,
- 0xadaf, 0xadb0, 0xd0c7, 0xd0c3, 0xadad, 0xd0c4, 0xd0c5, 0xd0c2,
- 0xb0a4, 0xb0a1, 0xd445, 0xb0a2, 0xb0a5, 0xd446, 0xb07e, 0xb07c,
- 0xb07d, 0xb0a3, 0xb3ad, 0xd849, 0xb3b5, 0xd848, 0xd84b, 0xb3b1,
- 0xd84a, 0xb6ab, 0xb3af, 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, 0xb3b0,
- 0xd847, 0xb6a7, 0xdc7d, 0xdca3, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9,
- 0xdc7c, 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0xb6aa, 0xb6a5, 0xe0d3,
- 0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0xe0d4, 0xb969, 0xbbd8, 0xbbda,
- 0xbbd9, 0xe4bb, 0xe4bc, 0xe8ab, 0xe8aa, 0xc047, 0xc048, 0xec4f,
- 0xc049, 0xeef6, 0xeef4, 0xeef5, 0xc1f4, 0xf16f, 0xc3f7, 0xc1f5,
- 0xab41, 0xb0a6, 0xd447, 0xd84c, 0xb3b6, 0xb6ad, 0xdca4, 0xdca6,
- 0xb6af, 0xb6ae, 0xb6b0, 0xb6b1, 0xdca5, 0xb96e, 0xb96f, 0xb96d,
- 0xbbdb, 0xb96c, 0xe0d5, 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6,
- 0xf170, 0xf174, 0xc2f9, 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb,
- 0xf173, 0xf379, 0xc2f7, 0xc3f8, 0xf8cd, 0xab42, 0xb3b8, 0xb3b7,
- 0xb6b2, 0xdca8, 0xdca7, 0xb6b3, 0xe0d9, 0xb973, 0xb970, 0xe0d8,
- 0xb972, 0xe0d6, 0xb971, 0xe0d7, 0xe4bd, 0xbbdd, 0xe8af, 0xbe5d,
- 0xe8ad, 0xbe5e, 0xbe5f, 0xe8ae, 0xbe60, 0xec51, 0xc04e, 0xc04b,
- 0xc050, 0xec53, 0xc04c, 0xec52, 0xc04f, 0xc04d, 0xeef9, 0xeefb,
- 0xc1f7, 0xeefa, 0xc1f8, 0xeef8, 0xeef7, 0xf177, 0xf176, 0xc2fc,
- 0xf178, 0xf37e, 0xc3fa, 0xf37d, 0xf37a, 0xc3f9, 0xf37b, 0xf37c,
- 0xf548, 0xf549, 0xc4c5, 0xc553, 0xf66e, 0xc551, 0xc552, 0xf66f,
- 0xc5b4, 0xc5b5, 0xf771, 0xc645, 0xf8cf, 0xc647, 0xf8ce, 0xf8d0,
- 0xc646, 0xf957, 0xf9ad, 0xab43, 0xb974, 0xe4be, 0xe8b0, 0xc051,
- 0xc052, 0xab44, 0xbe61, 0xc3fb, 0xadb1, 0xc053, 0xc5e2, 0xadb2,
- 0xd84d, 0xdca9, 0xdcab, 0xdcaa, 0xe0dd, 0xe0da, 0xb975, 0xb976,
- 0xe0db, 0xe0dc, 0xe4c0, 0xe4c5, 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8,
- 0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2, 0xe4c6, 0xbbdf, 0xe8b3, 0xe8b1,
- 0xbe63, 0xbe62, 0xe8b2, 0xbe64, 0xec56, 0xec55, 0xc054, 0xec54,
- 0xeefc, 0xeefe, 0xef41, 0xef40, 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd,
- 0xf17d, 0xf1a2, 0xc2fe, 0xf17b, 0xf17e, 0xf17c, 0xf179, 0xc340,
- 0xf17a, 0xf3a1, 0xf3a3, 0xf3a2, 0xf54a, 0xf54b, 0xf670, 0xc5b7,
- 0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, 0xc669, 0xadb3, 0xb6b4,
- 0xe4ca, 0xe4c9, 0xe8b5, 0xe8b4, 0xc1fa, 0xef43, 0xef42, 0xf1a5,
- 0xf1a3, 0xf1a6, 0xf1a4, 0xc3fc, 0xf3a4, 0xf3a5, 0xf3a6, 0xf671,
- 0xf772, 0xf8d2, 0xadb4, 0xec57, 0xef44, 0xadb5, 0xbbe0, 0xec58,
- 0xc341, 0xf1a7, 0xc3fd, 0xf54c, 0xf54d, 0xc554, 0xf851, 0xadb6,
- 0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, 0xb6b7, 0xb97a,
- 0xb97c, 0xe0df, 0xe0e0, 0xe0de, 0xb977, 0xb978, 0xb97b, 0xb979,
- 0xe4cb, 0xbbe1, 0xbbe2, 0xe8bc, 0xbe67, 0xe8b7, 0xe8b6, 0xe8bb,
- 0xbe65, 0xc05b, 0xe8b8, 0xe8bd, 0xe8ba, 0xe8b9, 0xbe66, 0xc059,
- 0xec5a, 0xc055, 0xec5b, 0xec59, 0xc058, 0xc056, 0xc05a, 0xc057,
- 0xef45, 0xef4a, 0xef46, 0xef49, 0xc1fb, 0xedd4, 0xef48, 0xef47,
- 0xc344, 0xc342, 0xc345, 0xc343, 0xf1a8, 0xf1a9, 0xf1aa, 0xc346,
- 0xf3aa, 0xc440, 0xf3a8, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe, 0xf551,
- 0xf54e, 0xf54f, 0xf550, 0xf672, 0xc556, 0xc555, 0xf774, 0xf773,
- 0xc5b8, 0xc5e3, 0xc649, 0xc660, 0xf958, 0xf9ae, 0xf9af, 0xadb7,
- 0xdcad, 0xe0e1, 0xe4cc, 0xe4cd, 0xbbe3, 0xbbe4, 0xe8be, 0xbe68,
- 0xc1fc, 0xf1ab, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab,
- 0xf675, 0xf552, 0xf553, 0xc4c6, 0xf674, 0xf673, 0xf775, 0xf9b0,
- 0xadb8, 0xadb9, 0xb0a7, 0xd448, 0xd84f, 0xb6b8, 0xb6bb, 0xb6b9,
- 0xdcae, 0xb6bd, 0xb6ba, 0xb6bc, 0xb97e, 0xe0e2, 0xe0e3, 0xe8c0,
- 0xb97d, 0xb9a1, 0xb9a2, 0xe4cf, 0xe4ce, 0xbbe5, 0xbbe6, 0xe4d0,
- 0xe8bf, 0xbbe8, 0xbe69, 0xbbe7, 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a,
- 0xe8c2, 0xe8c5, 0xe8c3, 0xe8c4, 0xbe6c, 0xc061, 0xc05f, 0xc05e,
- 0xec5d, 0xc060, 0xec5c, 0xef4b, 0xec5e, 0xc05d, 0xec5f, 0xef4e,
- 0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, 0xef54, 0xef53, 0xef50,
- 0xef4f, 0xc1fd, 0xf1ae, 0xf1ad, 0xc34a, 0xc348, 0xc349, 0xf1ac,
- 0xf3b1, 0xc443, 0xf3b0, 0xf3af, 0xc444, 0xf558, 0xf557, 0xf555,
- 0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557,
- 0xf676, 0xf556, 0xf777, 0xc5e4, 0xc661, 0xf959, 0xf9b1, 0xadba,
- 0xd850, 0xef55, 0xadbb, 0xe4d2, 0xe4d1, 0xec60, 0xef57, 0xef56,
- 0xc34c, 0xf3b2, 0xf3b3, 0xc4c9, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be,
- 0xe0e4, 0xe0e6, 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0xe4d4,
- 0xe4d6, 0xe4d5, 0xe4d8, 0xbbe9, 0xe4d7, 0xe4d3, 0xe4d9, 0xe8cc,
- 0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, 0xbe6e, 0xbe71, 0xbe73,
- 0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, 0xe8ce, 0xbe74, 0xbe70,
- 0xe8c6, 0xbe6d, 0xbe6f, 0xc063, 0xec66, 0xec64, 0xec63, 0xec69,
- 0xec68, 0xec67, 0xec62, 0xc062, 0xec61, 0xec65, 0xc064, 0xef5a,
- 0xef5e, 0xef5b, 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60,
- 0xef61, 0xc240, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8,
- 0xf1b7, 0xf1b1, 0xf1b5, 0xf1b0, 0xf1b2, 0xc34d, 0xf1af, 0xf1b4,
- 0xf3c0, 0xf3b5, 0xc445, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf, 0xf3b7,
- 0xf3be, 0xf3bb, 0xf3ba, 0xf3bd, 0xf3b8, 0xf3b6, 0xf3bc, 0xf560,
- 0xf55e, 0xc4ca, 0xf55d, 0xf563, 0xf561, 0xc4cb, 0xf55c, 0xf55a,
- 0xf55b, 0xc4cd, 0xf55f, 0xc4cc, 0xf562, 0xf678, 0xf67e, 0xf679,
- 0xc55b, 0xf6a1, 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558,
- 0xf67a, 0xf77d, 0xf7a1, 0xf77e, 0xf77b, 0xc5bb, 0xf778, 0xf77c,
- 0xf7a3, 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, 0xf853,
- 0xc5e5, 0xc5e6, 0xf8d3, 0xc64a, 0xf976, 0xc66a, 0xf9b3, 0xc66b,
- 0xf9b4, 0xf9b5, 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd, 0xb0a9, 0xe0e9,
- 0xe0e8, 0xbbea, 0xbbeb, 0xe4da, 0xe8d2, 0xec6c, 0xbe75, 0xc065,
- 0xec6a, 0xec6d, 0xc066, 0xef64, 0xec6b, 0xf1b9, 0xc34e, 0xf3c1,
- 0xf566, 0xf564, 0xf565, 0xf6a2, 0xc55c, 0xf7a4, 0xc5ea, 0xc5bc,
- 0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0xb0aa, 0xf1ba, 0xd449, 0xb9a6,
- 0xe4db, 0xbbec, 0xe4dc, 0xe8d4, 0xe8d3, 0xc068, 0xbe76, 0xbe77,
- 0xe8d7, 0xe8d6, 0xe8d5, 0xec6e, 0xec71, 0xec70, 0xec6f, 0xc067,
- 0xef68, 0xef66, 0xef65, 0xef67, 0xc34f, 0xf1bc, 0xf1bd, 0xc350,
- 0xf1bb, 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0xf567, 0xf569,
- 0xf568, 0xf6a3, 0xf6a6, 0xf6a4, 0xf6a5, 0xf7a5, 0xc5bd, 0xf854,
- 0xf855, 0xf856, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0xbe78, 0xc069,
- 0xf1be, 0xf7a6, 0xf9c4, 0xd44a, 0xc67b, 0xb0ac, 0xec72, 0xf1bf,
- 0xf3c6, 0xf6a7, 0xf7a7, 0xb0ad, 0xe4dd, 0xe4de, 0xbbed, 0xbbee,
- 0xe8d9, 0xbe7a, 0xbe79, 0xe8d8, 0xef69, 0xf1c0, 0xf1c2, 0xf1c1,
- 0xc353, 0xc352, 0xc351, 0xc55e, 0xf6a8, 0xc55d, 0xf7a9, 0xf7a8,
- 0xc64c, 0xf8d5, 0xb3bd, 0xe0ea, 0xe4e1, 0xe4df, 0xe4e0, 0xe8e2,
- 0xe8dd, 0xe8da, 0xe8e1, 0xe8e3, 0xbe7c, 0xe8e0, 0xe8dc, 0xe8db,
- 0xe8df, 0xe8de, 0xbe7b, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77,
- 0xec73, 0xec79, 0xec74, 0xef72, 0xec75, 0xeca2, 0xec7c, 0xc06a,
- 0xec7b, 0xec7a, 0xec7e, 0xef6a, 0xef6d, 0xef6c, 0xef74, 0xef6f,
- 0xef73, 0xef71, 0xef70, 0xef6e, 0xef6b, 0xc243, 0xc242, 0xc244,
- 0xc241, 0xef75, 0xf1c8, 0xf1cb, 0xf1c9, 0xf1cd, 0xf1ce, 0xf1c6,
- 0xc358, 0xf1c7, 0xf1c5, 0xf1cc, 0xf1c4, 0xf1c3, 0xc357, 0xc355,
- 0xc354, 0xf1ca, 0xf3cf, 0xf3d5, 0xc44a, 0xf3d0, 0xf3d3, 0xf3d7,
- 0xc44b, 0xf3d2, 0xf3ca, 0xf3c9, 0xf3d6, 0xf3cd, 0xf3cb, 0xf3d4,
- 0xf3cc, 0xc449, 0xc448, 0xf3c7, 0xf3c8, 0xf3d1, 0xf3ce, 0xf56c,
- 0xf56f, 0xc356, 0xf56d, 0xf573, 0xf571, 0xf56b, 0xf576, 0xf56a,
- 0xc4cf, 0xf572, 0xf56e, 0xc4ce, 0xf575, 0xf574, 0xf6ab, 0xf6aa,
- 0xf6b1, 0xf6ad, 0xf6b0, 0xc560, 0xf6ae, 0xf6af, 0xf6a9, 0xf6ac,
- 0xc55f, 0xc5bf, 0xf7b4, 0xf7af, 0xf7b3, 0xf7b6, 0xf7b2, 0xf7ae,
- 0xc5c1, 0xf7b1, 0xf7b5, 0xc5c0, 0xf7ac, 0xf570, 0xf7b0, 0xf7ad,
- 0xf7aa, 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860,
- 0xf859, 0xf857, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, 0xf858, 0xf85e,
- 0xf8da, 0xc64d, 0xf8db, 0xf8d9, 0xf8d6, 0xf8d8, 0xf8d7, 0xf95a,
- 0xf95c, 0xf95b, 0xf979, 0xf978, 0xf977, 0xf97a, 0xc673, 0xc674,
- 0xf9ca, 0xf9ce, 0xb3be, 0xdcaf, 0xe0ed, 0xb9a7, 0xe0eb, 0xe0ec,
- 0xe4e2, 0xe4e3, 0xbbf1, 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, 0xe8eb,
- 0xe8e5, 0xe8ec, 0xe8e4, 0xe8e6, 0xe8e7, 0xe8ea, 0xbea1, 0xe8ef,
- 0xe8ee, 0xbe7d, 0xe8e9, 0xe8ed, 0xbe7e, 0xecac, 0xc06f, 0xeca7,
- 0xc06b, 0xeca4, 0xecaa, 0xecad, 0xc070, 0xeca9, 0xeca6, 0xecae,
- 0xeca5, 0xecab, 0xc06c, 0xeca3, 0xc06d, 0xc06e, 0xeca8, 0xefa9,
- 0xef7a, 0xef7b, 0xef7e, 0xef7c, 0xef76, 0xef79, 0xefa5, 0xef7d,
- 0xc245, 0xefa7, 0xefa4, 0xc246, 0xefa6, 0xef77, 0xefa2, 0xefa3,
- 0xefa1, 0xf1d2, 0xf1d4, 0xf1d7, 0xf1d1, 0xc359, 0xf1d9, 0xf1d0,
- 0xf1da, 0xf1d6, 0xf1d8, 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf,
- 0xc35a, 0xf1db, 0xc35b, 0xc44d, 0xef78, 0xf3f1, 0xf3e8, 0xc44f,
- 0xf3e4, 0xc450, 0xf3ed, 0xf3e7, 0xf3dd, 0xc44e, 0xf3ea, 0xf3e5,
- 0xf3e6, 0xf3d8, 0xf3df, 0xf3ee, 0xf3eb, 0xf3e3, 0xf3ef, 0xf3de,
- 0xf3d9, 0xf3ec, 0xf3db, 0xf3e9, 0xf3e0, 0xf3f0, 0xf3dc, 0xc44c,
- 0xf3da, 0xf3e1, 0xf3e2, 0xf57d, 0xf57b, 0xf5a2, 0xf5ae, 0xf5a5,
- 0xf57c, 0xf578, 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577,
- 0xf5a1, 0xf5a6, 0xf5a8, 0xf5ab, 0xf579, 0xf5af, 0xf5b0, 0xf5a9,
- 0xf5ad, 0xf5a4, 0xf6c1, 0xf6c4, 0xc561, 0xf6c3, 0xf6c8, 0xf6c6,
- 0xc562, 0xf6bd, 0xf6b3, 0xf6b2, 0xc564, 0xf6bf, 0xf6c0, 0xf6bc,
- 0xf6b4, 0xf6b9, 0xf5ac, 0xf6b5, 0xc563, 0xf6bb, 0xf6ba, 0xf6b6,
- 0xf6c2, 0xf6b7, 0xf7bb, 0xf6c5, 0xf6c7, 0xf6be, 0xf6b8, 0xf7bc,
- 0xf7be, 0xf7b8, 0xc5c2, 0xf7c5, 0xf7c3, 0xc5c3, 0xf7c2, 0xf7c1,
- 0xf7ba, 0xf7b7, 0xf7bd, 0xf7c6, 0xf7b9, 0xf7bf, 0xf869, 0xf86e,
- 0xf864, 0xf867, 0xc5ee, 0xf86b, 0xf872, 0xf7c0, 0xf865, 0xf86f,
- 0xf873, 0xf86a, 0xf863, 0xf86d, 0xf86c, 0xf871, 0xf870, 0xf7c4,
- 0xf868, 0xf862, 0xf866, 0xc64e, 0xc64f, 0xf861, 0xf8e6, 0xf8dd,
- 0xf8e5, 0xf8e2, 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0,
- 0xf8de, 0xf8e4, 0xf95d, 0xf95e, 0xf960, 0xf95f, 0xf962, 0xf961,
- 0xf97c, 0xf97b, 0xf9b7, 0xf9b8, 0xf9c5, 0xc678, 0xc67c, 0xf9cf,
- 0xc67d, 0xb3bf, 0xc4d0, 0xf6c9, 0xc650, 0xc651, 0xb3c0, 0xe0ee,
- 0xb9a8, 0xe8f0, 0xecb0, 0xecb1, 0xecaf, 0xefab, 0xefaa, 0xc247,
- 0xf1df, 0xefac, 0xf1de, 0xf3f3, 0xc451, 0xc453, 0xf3f2, 0xc452,
- 0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca, 0xc565, 0xc5ef, 0xf8e8, 0xf963,
- 0xf9d2, 0xb3c1, 0xe4e5, 0xbea2, 0xecb3, 0xecb2, 0xefad, 0xc454,
- 0xc4d1, 0xf7c7, 0xf9cb, 0xb3c2, 0xbbf2, 0xbea3, 0xf3f4, 0xf874,
- 0xb6c0, 0xefae, 0xc664, 0xb6c1, 0xbea4, 0xc248, 0xf875, 0xb6c2,
- 0xe8f1, 0xc072, 0xecb4, 0xecb5, 0xc071, 0xefaf, 0xc24c, 0xc24a,
- 0xc24b, 0xc249, 0xf1e0, 0xc35c, 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6,
- 0xc4d2, 0xf6cb, 0xf6cd, 0xf6cc, 0xc566, 0xf7c8, 0xf876, 0xf877,
- 0xc5f0, 0xf964, 0xf97d, 0xc675, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5,
- 0xe0ef, 0xefb1, 0xf1e2, 0xf1e1, 0xf878, 0xc652, 0xf965, 0xf97e,
- 0xb9a9, 0xe8f2, 0xe8f3, 0xecb7, 0xb9aa, 0xc35d, 0xf1e3, 0xf6cf,
- 0xc567, 0xf6d0, 0xf6ce, 0xf879, 0xf8e9, 0xb9ab, 0xefb4, 0xefb3,
- 0xefb2, 0xf1e4, 0xf1e8, 0xf1e7, 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6,
- 0xf5b9, 0xc4d3, 0xf5b8, 0xf6d1, 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9,
- 0xf87c, 0xf87b, 0xf87a, 0xbbf3, 0xecb8, 0xc24d, 0xf3f7, 0xf3f8,
- 0xf7cc, 0xf87d, 0xf8ea, 0xf966, 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e,
- 0xf1e9, 0xf3f9, 0xf6d2, 0xf87e, 0xbea6, 0xefb5, 0xf1ea, 0xf3fa,
- 0xf3fb, 0xf3fc, 0xf5be, 0xf5ba, 0xc568, 0xf5bd, 0xf5bc, 0xc4d4,
- 0xf5bb, 0xc4d6, 0xc4d5, 0xf6d4, 0xf6d3, 0xc569, 0xc56a, 0xc5c6,
- 0xf7cd, 0xc5c5, 0xf8a3, 0xf8a4, 0xf8a2, 0xf8a1, 0xc654, 0xf8eb,
- 0xf8ec, 0xf8ed, 0xc653, 0xf967, 0xf96a, 0xf969, 0xf968, 0xf9d3,
- 0xc073, 0xc365, 0xf5bf, 0xf6d5, 0xc5c7, 0xf7ce, 0xf9d5, 0xc074,
- 0xefb6, 0xf7cf, 0xf9a1, 0xc94a, 0xddfc, 0xa14a, 0xa157, 0xa159,
- 0xa15b, 0xa15f, 0xa160, 0xa163, 0xa164, 0xa167, 0xa168, 0xa16b,
- 0xa16c, 0xa16f, 0xa170, 0xa173, 0xa174, 0xa177, 0xa178, 0xa17b,
- 0xa17c, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb, 0xa1c8, 0xa1c9, 0xa15c,
- 0xa14d, 0xa14f, 0xa151, 0xa152, 0xa153, 0xa154, 0xa17d, 0xa17e,
- 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1cc, 0xa1cd, 0xa1ce, 0xa1de,
- 0xa1df, 0xa1e0, 0xa1e1, 0xa1e2, 0xa24c, 0xa24d, 0xa24e, 0xa149,
- 0xa1ad, 0xa243, 0xa248, 0xa1ae, 0xa15d, 0xa15e, 0xa1af, 0xa1cf,
- 0xa141, 0xa1d0, 0xa144, 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2,
- 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146,
- 0xa1d5, 0xa1d7, 0xa1d6, 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1,
- 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9,
- 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1,
- 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa242,
- 0xa1c4, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef,
- 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7,
- 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, 0xa340,
- 0xa341, 0xa342, 0xa343, 0xa161, 0xa155, 0xa162, 0xa14e,
-};
-
-static const Summary16 big5_uni2indx_page00[16] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x00ac }, { 4, 0x0083 },
- { 7, 0x0000 }, { 7, 0x0080 }, { 8, 0x0000 }, { 8, 0x0080 },
-};
-static const Summary16 big5_uni2indx_page02[38] = {
- /* 0x0200 */
- { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 },
- { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 },
- { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 },
- { 9, 0x0e80 }, { 13, 0x0200 }, { 14, 0x0000 }, { 14, 0x0000 },
- /* 0x0300 */
- { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 },
- { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 },
- { 14, 0x0000 }, { 14, 0xfffe }, { 29, 0x03fb }, { 38, 0xfffe },
- { 53, 0x03fb }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 },
- /* 0x0400 */
- { 62, 0x0002 }, { 63, 0x1ff0 }, { 72, 0xfff8 }, { 85, 0xffff },
- { 101, 0xffff }, { 117, 0x0002 },
-};
-static const Summary16 big5_uni2indx_page20[44] = {
- /* 0x2000 */
- { 118, 0x0000 }, { 118, 0x3318 }, { 124, 0x0064 }, { 127, 0x4824 },
- { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 },
- { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 },
- { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 },
- /* 0x2100 */
- { 131, 0x0228 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 },
- { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x03ff }, { 144, 0x0000 },
- { 144, 0x0000 }, { 144, 0x03cf }, { 152, 0x0000 }, { 152, 0x0000 },
- { 152, 0x0000 }, { 152, 0x0000 }, { 152, 0x0000 }, { 152, 0x0000 },
- /* 0x2200 */
- { 152, 0x0000 }, { 152, 0xc400 }, { 155, 0x4e29 }, { 162, 0x1030 },
- { 165, 0x0000 }, { 165, 0x0004 }, { 166, 0x00c3 }, { 170, 0x0000 },
- { 170, 0x0000 }, { 170, 0x0000 }, { 170, 0x0020 }, { 171, 0x8000 },
-};
-static const Summary16 big5_uni2indx_page24[37] = {
- /* 0x2400 */
- { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 },
- { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x03ff }, { 182, 0x3ff0 },
- { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 },
- { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 },
- /* 0x2500 */
- { 192, 0x1005 }, { 195, 0x1111 }, { 199, 0x1010 }, { 201, 0x1010 },
- { 203, 0x0000 }, { 203, 0x4001 }, { 205, 0xe402 }, { 210, 0x000f },
- { 214, 0xfffe }, { 229, 0x0030 }, { 231, 0x0003 }, { 233, 0x300c },
- { 237, 0xc8c0 }, { 242, 0x0000 }, { 242, 0x003c }, { 246, 0x0000 },
- /* 0x2600 */
- { 246, 0x0260 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 },
- { 249, 0x0007 },
-};
-static const Summary16 big5_uni2indx_page30[62] = {
- /* 0x3000 */
- { 252, 0xff2f }, { 265, 0x6037 }, { 272, 0x03fe }, { 281, 0x0000 },
- { 281, 0xfffe }, { 296, 0xffff }, { 312, 0xffff }, { 328, 0xffff },
- { 344, 0xffff }, { 360, 0x600f }, { 366, 0xfffe }, { 381, 0xffff },
- { 397, 0xffff }, { 413, 0xffff }, { 429, 0xffff }, { 445, 0x407f },
- /* 0x3100 */
- { 453, 0xffe0 }, { 464, 0xffff }, { 480, 0x03ff }, { 490, 0x0000 },
- { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 },
- { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 },
- { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 },
- /* 0x3200 */
- { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 },
- { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 },
- { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0008 }, { 491, 0x0000 },
- { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 },
- /* 0x3300 */
- { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 },
- { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 },
- { 491, 0xc000 }, { 493, 0x7000 }, { 496, 0x0002 }, { 497, 0x0000 },
- { 497, 0x4010 }, { 499, 0x0026 },
-};
-static const Summary16 big5_uni2indx_page4e[1307] = {
- /* 0x4e00 */
- { 502, 0xff8b }, { 514, 0xc373 }, { 523, 0x6840 }, { 527, 0x1b0f },
- { 535, 0xe9ac }, { 544, 0xf34c }, { 553, 0x0200 }, { 554, 0xc008 },
- { 557, 0x795c }, { 566, 0xca3e }, { 575, 0x7976 }, { 585, 0x0648 },
- { 589, 0x2fdf }, { 601, 0xf7f0 }, { 612, 0x033a }, { 618, 0xa8ff },
- /* 0x4f00 */
- { 629, 0xef37 }, { 641, 0x233f }, { 650, 0xb004 }, { 654, 0xfd59 },
- { 665, 0xf3ca }, { 675, 0xffff }, { 691, 0xde9f }, { 703, 0xfff9 },
- { 717, 0xabff }, { 730, 0x7df7 }, { 743, 0xc000 }, { 745, 0x8eec },
- { 754, 0xeebf }, { 767, 0xffdb }, { 781, 0xd003 }, { 786, 0x45fa },
- /* 0x5000 */
- { 795, 0xfae1 }, { 805, 0xdffe }, { 819, 0xbfef }, { 833, 0x10ab },
- { 839, 0xffeb }, { 853, 0xfcaa }, { 863, 0xef3f }, { 876, 0x24fd },
- { 885, 0x78ad }, { 894, 0x7f76 }, { 906, 0xf00c }, { 912, 0xedff },
- { 926, 0xcff6 }, { 938, 0x2cfa }, { 947, 0xf7f9 }, { 960, 0xeb6b },
- /* 0x5100 */
- { 971, 0x1ffd }, { 983, 0x95bf }, { 994, 0x6677 }, { 1004, 0xbfbf },
- { 1018, 0x3bfb }, { 1030, 0xfeb4 }, { 1041, 0x7bae }, { 1052, 0x11e2 },
- { 1058, 0xa681 }, { 1064, 0x41be }, { 1072, 0x1435 }, { 1078, 0x72c3 },
- { 1086, 0x7d70 }, { 1095, 0x7191 }, { 1102, 0x0003 }, { 1104, 0x276b },
- /* 0x5200 */
- { 1113, 0x57cb }, { 1123, 0x70cf }, { 1132, 0x4732 }, { 1139, 0x0def },
- { 1149, 0x7eda }, { 1160, 0xfc74 }, { 1170, 0xfe06 }, { 1179, 0xbdb4 },
- { 1189, 0x3f9f }, { 1201, 0x8bca }, { 1209, 0x7e49 }, { 1218, 0x5800 },
- { 1221, 0x228f }, { 1228, 0xebec }, { 1239, 0x8a5c }, { 1246, 0xddbb },
- /* 0x5300 */
- { 1258, 0xef60 }, { 1267, 0xb6e7 }, { 1278, 0xa40f }, { 1285, 0xf293 },
- { 1294, 0x37bb }, { 1305, 0x549e }, { 1313, 0xd04b }, { 1320, 0x9baf },
- { 1331, 0xc414 }, { 1336, 0xf7d4 }, { 1347, 0x30b0 }, { 1352, 0x0a14 },
- { 1356, 0x2f08 }, { 1362, 0x88d0 }, { 1367, 0xff7e }, { 1381, 0x192f },
- /* 0x5400 */
- { 1389, 0xffda }, { 1402, 0xfb07 }, { 1412, 0x7ff1 }, { 1424, 0x7beb },
- { 1436, 0xc5ef }, { 1447, 0x0010 }, { 1448, 0x99ff }, { 1460, 0xfdff },
- { 1475, 0x79d7 }, { 1486, 0x0567 }, { 1493, 0xffe7 }, { 1507, 0xfdcb },
- { 1519, 0xc3ff }, { 1531, 0x4040 }, { 1533, 0x6ff7 }, { 1546, 0xbd8e },
- /* 0x5500 */
- { 1556, 0xdffa }, { 1569, 0x0497 }, { 1575, 0xf4c0 }, { 1582, 0x5bff },
- { 1595, 0xed7b }, { 1607, 0xd0e7 }, { 1616, 0x047e }, { 1623, 0xf8e0 },
- { 1631, 0xff9f }, { 1645, 0xb73e }, { 1656, 0x7dfe }, { 1669, 0x882e },
- { 1675, 0xfffd }, { 1690, 0xbe7f }, { 1703, 0x83fe }, { 1713, 0xf6c4 },
- /* 0x5600 */
- { 1722, 0xf357 }, { 1733, 0xb8fd }, { 1744, 0xd680 }, { 1750, 0xef7d },
- { 1763, 0x5767 }, { 1773, 0x4788 }, { 1779, 0xff7d }, { 1793, 0xc3df },
- { 1804, 0xf0ff }, { 1816, 0x37a9 }, { 1825, 0x7de0 }, { 1834, 0x70fc },
- { 1843, 0x3f6f }, { 1855, 0xec9a }, { 1864, 0x4cb3 }, { 1872, 0x8681 },
- /* 0x5700 */
- { 1877, 0x3f9e }, { 1888, 0xdd5c }, { 1898, 0xf70d }, { 1908, 0x4819 },
- { 1913, 0xfea3 }, { 1924, 0x0007 }, { 1927, 0xaf56 }, { 1937, 0x38ff },
- { 1948, 0x980d }, { 1954, 0xefb8 }, { 1965, 0x403d }, { 1971, 0xb760 },
- { 1979, 0xd8ce }, { 1988, 0x9035 }, { 1994, 0x72bf }, { 2005, 0x3fff },
- /* 0x5800 */
- { 2019, 0x7ff7 }, { 2033, 0x7a11 }, { 2040, 0xf7bb }, { 2053, 0xabff },
- { 2066, 0xff00 }, { 2074, 0x6fbe }, { 2086, 0xa93c }, { 2094, 0xfe72 },
- { 2105, 0xcfef }, { 2118, 0xf11b }, { 2127, 0xdb6b }, { 2138, 0xf40a },
- { 2145, 0xc3e6 }, { 2154, 0xef7e }, { 2167, 0x9b9c }, { 2176, 0xf610 },
- /* 0x5900 */
- { 2183, 0xf048 }, { 2189, 0x16f4 }, { 2197, 0xfeb5 }, { 2209, 0x5182 },
- { 2214, 0xc7b1 }, { 2223, 0x15bb }, { 2232, 0x6e87 }, { 2241, 0xfbdf },
- { 2255, 0xe43f }, { 2265, 0x63cd }, { 2274, 0xc1ff }, { 2285, 0x7e7e },
- { 2297, 0xfdeb }, { 2310, 0x7d5f }, { 2322, 0x777b }, { 2334, 0xfcfe },
- /* 0x5a00 */
- { 2347, 0x960b }, { 2354, 0xdbea }, { 2365, 0x6229 }, { 2371, 0x53e8 },
- { 2379, 0x37df }, { 2391, 0xfdef }, { 2405, 0x36f5 }, { 2415, 0xbd81 },
- { 2423, 0xdc18 }, { 2430, 0xfcbd }, { 2442, 0xd2e4 }, { 2450, 0xffff },
- { 2466, 0x3fd7 }, { 2478, 0xffe0 }, { 2489, 0x7f6f }, { 2502, 0xabf8 },
- /* 0x5b00 */
- { 2512, 0x9bae }, { 2522, 0x6ed9 }, { 2532, 0xf5fb }, { 2545, 0xf115 },
- { 2553, 0x79a9 }, { 2562, 0xbdfb }, { 2575, 0x5a3c }, { 2583, 0xadaf },
- { 2594, 0xdbba }, { 2605, 0x1fac }, { 2614, 0x71fc }, { 2624, 0x8379 },
- { 2632, 0x7cf7 }, { 2644, 0xc35f }, { 2654, 0xdfff }, { 2669, 0x0567 },
- /* 0x5c00 */
- { 2676, 0xff9a }, { 2688, 0x8467 }, { 2695, 0x1534 }, { 2701, 0xdf8b },
- { 2712, 0xf9f3 }, { 2724, 0x3373 }, { 2733, 0xf7bd }, { 2746, 0x5e1a },
- { 2754, 0xbf40 }, { 2762, 0xa03f }, { 2770, 0xffff }, { 2786, 0x01eb },
- { 2793, 0xdfc0 }, { 2802, 0xcfdd }, { 2814, 0x7500 }, { 2819, 0xabd3 },
- /* 0x5d00 */
- { 2829, 0xf8c3 }, { 2838, 0xeed6 }, { 2849, 0x43fd }, { 2859, 0xb7ff },
- { 2873, 0x5eaf }, { 2884, 0x4227 }, { 2890, 0x9bac }, { 2899, 0xf686 },
- { 2908, 0x27d7 }, { 2918, 0xf6bc }, { 2929, 0xf787 }, { 2940, 0x35b7 },
- { 2950, 0xaacd }, { 2959, 0xe176 }, { 2968, 0x49e7 }, { 2977, 0xe29f },
- /* 0x5e00 */
- { 2987, 0x545c }, { 2994, 0xaff2 }, { 3005, 0x2b3f }, { 3015, 0x61d8 },
- { 3022, 0xfc3b }, { 3033, 0xbbb8 }, { 3043, 0xffcf }, { 3057, 0x7b7d },
- { 3069, 0xbf95 }, { 3080, 0x1ce0 }, { 3086, 0x7dfd }, { 3099, 0x43ff },
- { 3110, 0x5ff6 }, { 3122, 0xfffe }, { 3137, 0xd3ef }, { 3149, 0xc4ce },
- /* 0x5f00 */
- { 3157, 0x8db6 }, { 3166, 0xadbc }, { 3176, 0x63dc }, { 3185, 0x11eb },
- { 3193, 0xdf59 }, { 3204, 0x23d0 }, { 3210, 0xbeb4 }, { 3220, 0xf3db },
- { 3232, 0x1fe7 }, { 3243, 0xdbc7 }, { 3254, 0xff63 }, { 3266, 0xfae4 },
- { 3276, 0xb22b }, { 3284, 0x63f7 }, { 3295, 0xed3b }, { 3306, 0xadba },
- /* 0x6000 */
- { 3316, 0xfe01 }, { 3324, 0x7eff }, { 3338, 0xfff7 }, { 3353, 0x02bc },
- { 3359, 0x32ff }, { 3370, 0xef39 }, { 3381, 0xfffc }, { 3395, 0x8005 },
- { 3398, 0x77fb }, { 3411, 0xbcf5 }, { 3422, 0x010d }, { 3426, 0xfff7 },
- { 3441, 0xfffb }, { 3456, 0xbf3a }, { 3467, 0x0057 }, { 3472, 0xdfff },
- /* 0x6100 */
- { 3487, 0xef7b }, { 3500, 0xbd7d }, { 3512, 0xdb88 }, { 3520, 0xc8d4 },
- { 3527, 0xfff3 }, { 3541, 0xed7c }, { 3552, 0x5dee }, { 3563, 0x56ff },
- { 3575, 0x7e0d }, { 3584, 0xac5f }, { 3594, 0xff96 }, { 3606, 0xd57f },
- { 3618, 0x3fee }, { 3630, 0xc140 }, { 3634, 0x6ff9 }, { 3646, 0xffe7 },
- /* 0x6200 */
- { 3660, 0x779b }, { 3671, 0x8e77 }, { 3681, 0x6ebf }, { 3693, 0xe45d },
- { 3702, 0x6fcf }, { 3714, 0x5f1f }, { 3725, 0xe07f }, { 3735, 0xfedf },
- { 3749, 0xd7db }, { 3761, 0x01fe }, { 3769, 0xff00 }, { 3777, 0xfb7b },
- { 3790, 0xffd4 }, { 3802, 0x1fdf }, { 3814, 0xf800 }, { 3819, 0xffff },
- /* 0x6300 */
- { 3835, 0xfb8f }, { 3847, 0x007b }, { 3853, 0xbf00 }, { 3860, 0x7f5c },
- { 3871, 0xffff }, { 3887, 0x07f3 }, { 3896, 0xeba0 }, { 3904, 0x3de7 },
- { 3915, 0xf7bf }, { 3929, 0xfbd7 }, { 3942, 0xffbf }, { 3957, 0x6003 },
- { 3961, 0xfffd }, { 3976, 0xbfed }, { 3989, 0xefbb }, { 4002, 0x027f },
- /* 0x6400 */
- { 4010, 0xfe40 }, { 4018, 0xddfd }, { 4031, 0xfdff }, { 4046, 0xe2f9 },
- { 4056, 0x680b }, { 4062, 0xfb1f }, { 4074, 0xfbe3 }, { 4086, 0xaffd },
- { 4099, 0x9fa4 }, { 4108, 0xf7ed }, { 4121, 0x7a7d }, { 4132, 0xf80f },
- { 4141, 0xeebe }, { 4153, 0x0fd5 }, { 4162, 0xbb5d }, { 4173, 0xfd9f },
- /* 0x6500 */
- { 4186, 0xf2db }, { 4197, 0x3bf9 }, { 4208, 0xfe7f }, { 4222, 0xebcc },
- { 4232, 0x876a }, { 4240, 0x73fa }, { 4251, 0x95fc }, { 4261, 0x9ffc },
- { 4273, 0x109f }, { 4280, 0xfaf7 }, { 4293, 0xddb7 }, { 4305, 0xbbcd },
- { 4316, 0xf87e }, { 4327, 0xeccd }, { 4337, 0xf366 }, { 4347, 0x3c3f },
- /* 0x6600 */
- { 4357, 0xfffd }, { 4372, 0xb03f }, { 4381, 0xe9f7 }, { 4393, 0x067e },
- { 4401, 0x96ae }, { 4410, 0xfe06 }, { 4419, 0xd576 }, { 4429, 0x5fd7 },
- { 4441, 0x3fd1 }, { 4451, 0xa3f3 }, { 4461, 0xcf07 }, { 4470, 0x6fb7 },
- { 4482, 0x9fd1 }, { 4492, 0x7f44 }, { 4501, 0x7b59 }, { 4511, 0xd3dd },
- /* 0x6700 */
- { 4522, 0xaf3b }, { 4533, 0xa9bd }, { 4543, 0x7dcf }, { 4555, 0xff3a },
- { 4567, 0xfbe0 }, { 4577, 0xf6eb }, { 4589, 0xb401 }, { 4594, 0xffff },
- { 4610, 0x7afa }, { 4621, 0xb7bf }, { 4634, 0xc000 }, { 4636, 0x0ffd },
- { 4647, 0xff7f }, { 4662, 0xff1f }, { 4675, 0xfefc }, { 4688, 0x95ff },
- /* 0x6800 */
- { 4700, 0x0000 }, { 4700, 0xb5dc }, { 4710, 0xef63 }, { 4721, 0x3f3e },
- { 4732, 0xfb7f }, { 4746, 0x001b }, { 4750, 0xe800 }, { 4754, 0xfbf6 },
- { 4767, 0x9eef }, { 4779, 0xb8df }, { 4790, 0xff9f }, { 4804, 0x003f },
- { 4810, 0x7bd0 }, { 4819, 0xf5ff }, { 4833, 0xdfdb }, { 4846, 0x3fff },
- /* 0x6900 */
- { 4860, 0xfdf0 }, { 4871, 0x00bf }, { 4878, 0x8420 }, { 4881, 0xbbbd },
- { 4893, 0xdf37 }, { 4905, 0xffde }, { 4919, 0xff6d }, { 4932, 0x0ff3 },
- { 4942, 0x604c }, { 4947, 0x5efb }, { 4959, 0xfffb }, { 4974, 0xfafb },
- { 4987, 0xfe5e }, { 4999, 0x0219 }, { 5003, 0x79f4 }, { 5013, 0xf9de },
- /* 0x6a00 */
- { 5025, 0xa7f7 }, { 5037, 0xebfa }, { 5049, 0x01eb }, { 5056, 0xff34 },
- { 5067, 0xebd3 }, { 5078, 0xef73 }, { 5090, 0xafd7 }, { 5102, 0xc040 },
- { 5105, 0x72bb }, { 5115, 0xdcff }, { 5128, 0xf17f }, { 5140, 0x2fd8 },
- { 5149, 0xb8ec }, { 5158, 0xfe0b }, { 5168, 0xdda3 }, { 5178, 0x1f0b },
- /* 0x6b00 */
- { 5186, 0x8f1d }, { 5195, 0x47cf }, { 5205, 0xb12b }, { 5213, 0xffde },
- { 5227, 0x7fee }, { 5240, 0xda73 }, { 5250, 0x24ff }, { 5260, 0xcbc4 },
- { 5268, 0xf75d }, { 5280, 0xcbf2 }, { 5290, 0xecfd }, { 5302, 0xb4ed },
- { 5312, 0xbff9 }, { 5325, 0x4ddd }, { 5335, 0x99dd }, { 5345, 0xfb8d },
- /* 0x6c00 */
- { 5356, 0xbb7f }, { 5369, 0xaf7b }, { 5381, 0xddfb }, { 5394, 0xc959 },
- { 5402, 0xfc4f }, { 5413, 0xfab5 }, { 5424, 0xafe3 }, { 5435, 0x6d5f },
- { 5446, 0xffff }, { 5462, 0x3f7d }, { 5474, 0x7800 }, { 5478, 0xffdb },
- { 5492, 0xb6ff }, { 5505, 0x7eff }, { 5519, 0xfbaf }, { 5532, 0x022f },
- /* 0x6d00 */
- { 5538, 0xff9b }, { 5551, 0xefc7 }, { 5563, 0xffa5 }, { 5575, 0xffff },
- { 5591, 0x0007 }, { 5594, 0xc700 }, { 5599, 0xf7ff }, { 5614, 0xfff1 },
- { 5627, 0x7ffd }, { 5641, 0x01bf }, { 5649, 0xdc00 }, { 5654, 0xfdbc },
- { 5666, 0xbff5 }, { 5679, 0xffff }, { 5695, 0xff7f }, { 5710, 0x3eff },
- /* 0x6e00 */
- { 5723, 0x0029 }, { 5726, 0xbe00 }, { 5732, 0xf9ff }, { 5746, 0xff7f },
- { 5761, 0x6efb }, { 5773, 0xfd7e }, { 5786, 0xcbff }, { 5799, 0x039e },
- { 5806, 0xe300 }, { 5811, 0xfbdd }, { 5824, 0xccff }, { 5836, 0xf6df },
- { 5849, 0xffff }, { 5865, 0x117f }, { 5874, 0xf800 }, { 5879, 0xfbf6 },
- /* 0x6f00 */
- { 5892, 0xe7ef }, { 5905, 0xd73c }, { 5915, 0xfeef }, { 5929, 0xdfef },
- { 5943, 0xc00b }, { 5948, 0xedbf }, { 5961, 0xfedf }, { 5975, 0xfdcd },
- { 5987, 0x7bf5 }, { 5999, 0x40fd }, { 6007, 0xffff }, { 6023, 0xb75f },
- { 6035, 0xffdf }, { 6050, 0xf930 }, { 6058, 0xfbdf }, { 6072, 0xdc97 },
- /* 0x7000 */
- { 6082, 0xfef3 }, { 6095, 0xbff2 }, { 6107, 0x8fdf }, { 6119, 0xdfbf },
- { 6133, 0x177f }, { 6144, 0xede6 }, { 6155, 0x0f7f }, { 6166, 0x3553 },
- { 6174, 0x447c }, { 6181, 0x877e }, { 6191, 0xfa12 }, { 6199, 0x45bb },
- { 6208, 0xede0 }, { 6217, 0x779e }, { 6228, 0x8017 }, { 6233, 0xbfd9 },
- /* 0x7100 */
- { 6245, 0x7e55 }, { 6255, 0xde89 }, { 6264, 0xc16f }, { 6273, 0x0447 },
- { 6278, 0x7ade }, { 6289, 0xf75d }, { 6301, 0x57ff }, { 6314, 0x2905 },
- { 6319, 0x86f7 }, { 6329, 0xfe95 }, { 6340, 0x97b3 }, { 6350, 0xf32f },
- { 6361, 0xcfff }, { 6375, 0x9f75 }, { 6386, 0x71f7 }, { 6397, 0xfb17 },
- /* 0x7200 */
- { 6408, 0x34ee }, { 6417, 0xee19 }, { 6426, 0x37cc }, { 6435, 0xef61 },
- { 6445, 0x9fd6 }, { 6456, 0xef4c }, { 6466, 0xd68f }, { 6476, 0xfbdd },
- { 6489, 0x7b73 }, { 6500, 0x6def }, { 6512, 0xd7fe }, { 6525, 0xa431 },
- { 6531, 0x5e7f }, { 6543, 0x97d7 }, { 6554, 0x0f5b }, { 6563, 0xffd8 },
- /* 0x7300 */
- { 6575, 0x9d83 }, { 6583, 0x7bce }, { 6594, 0x22ec }, { 6601, 0xdcff },
- { 6614, 0x763d }, { 6624, 0xef87 }, { 6635, 0xdfe7 }, { 6648, 0xfded },
- { 6661, 0x4fff }, { 6674, 0xa0fc }, { 6682, 0x3b77 }, { 6693, 0xdbfc },
- { 6705, 0x3ded }, { 6716, 0x7fdc }, { 6728, 0x6fa9 }, { 6738, 0xf570 },
- /* 0x7400 */
- { 6747, 0x3ffb }, { 6760, 0x2c40 }, { 6764, 0xff7f }, { 6779, 0x847f },
- { 6788, 0xec57 }, { 6798, 0xdeb7 }, { 6810, 0xe69c }, { 6819, 0xf22f },
- { 6829, 0x0feb }, { 6839, 0xd5b5 }, { 6849, 0xafeb }, { 6861, 0xede7 },
- { 6873, 0x8c2f }, { 6881, 0xfff0 }, { 6893, 0x537f }, { 6904, 0xe8f0 },
- /* 0x7500 */
- { 6912, 0xb99d }, { 6922, 0xb5ff }, { 6935, 0xff66 }, { 6947, 0xe78f },
- { 6958, 0xd981 }, { 6965, 0xbe10 }, { 6972, 0x9c7c }, { 6981, 0xe3c1 },
- { 6989, 0x9cd1 }, { 6997, 0x2733 }, { 7005, 0x0cbc }, { 7012, 0xff6d },
- { 7025, 0xfcb7 }, { 7037, 0xefb7 }, { 7050, 0xa0df }, { 7059, 0xffff },
- /* 0x7600 */
- { 7075, 0xbf0b }, { 7085, 0xfe7b }, { 7098, 0xa3ff }, { 7110, 0x353f },
- { 7120, 0x13cc }, { 7127, 0x97cd }, { 7137, 0x7637 }, { 7147, 0xfb27 },
- { 7158, 0xcfd6 }, { 7169, 0x7e6c }, { 7179, 0xec50 }, { 7186, 0xed31 },
- { 7195, 0x677c }, { 7205, 0xfc1c }, { 7214, 0xf6fa }, { 7226, 0x5fbf },
- /* 0x7700 */
- { 7239, 0x0fba }, { 7248, 0xae2f }, { 7258, 0xa3ad }, { 7267, 0x7ffe },
- { 7281, 0xfcf0 }, { 7291, 0xde74 }, { 7301, 0xffef }, { 7316, 0xf200 },
- { 7321, 0xfbbf }, { 7335, 0xfea2 }, { 7345, 0x3daf }, { 7356, 0xbcff },
- { 7369, 0xf694 }, { 7378, 0x5fb9 }, { 7389, 0xf3ad }, { 7400, 0x3f8f },
- /* 0x7800 */
- { 7411, 0xf26c }, { 7420, 0xa01f }, { 7427, 0xffef }, { 7442, 0x01bf },
- { 7450, 0x7728 }, { 7458, 0x7005 }, { 7463, 0xff35 }, { 7475, 0xda03 },
- { 7482, 0xd2f9 }, { 7492, 0xc7fa }, { 7503, 0x3fbf }, { 7516, 0x5c1d },
- { 7524, 0xff3a }, { 7536, 0xec33 }, { 7545, 0xb7af }, { 7557, 0xfe9c },
- /* 0x7900 */
- { 7568, 0x5236 }, { 7575, 0x7a9f }, { 7586, 0xbffa }, { 7599, 0xe722 },
- { 7607, 0x9ff7 }, { 7620, 0xfcff }, { 7634, 0x2fbb }, { 7645, 0xb61d },
- { 7654, 0xed06 }, { 7662, 0x1dfd }, { 7673, 0x7dd7 }, { 7685, 0xefdf },
- { 7699, 0xeb23 }, { 7708, 0xf166 }, { 7717, 0x7ed9 }, { 7728, 0x0dc0 },
- /* 0x7a00 */
- { 7733, 0x3d3d }, { 7743, 0xdfbf }, { 7757, 0xc945 }, { 7764, 0xba83 },
- { 7772, 0x7dd1 }, { 7782, 0x9dd0 }, { 7790, 0x7b87 }, { 7800, 0xcf73 },
- { 7811, 0x9ff3 }, { 7823, 0xc3f5 }, { 7833, 0xdf0d }, { 7843, 0xc5fe },
- { 7854, 0x0cb3 }, { 7861, 0x8302 }, { 7865, 0xe879 }, { 7874, 0xaec0 },
- /* 0x7b00 */
- { 7881, 0xc773 }, { 7891, 0x6f0f }, { 7901, 0xfd7d }, { 7914, 0x093f },
- { 7922, 0xfff1 }, { 7935, 0x0157 }, { 7941, 0x62fb }, { 7951, 0x01ff },
- { 7960, 0xfdb4 }, { 7971, 0x3bf3 }, { 7982, 0xb013 }, { 7988, 0x43b2 },
- { 7995, 0x5ed3 }, { 8005, 0xff30 }, { 8015, 0x0fff }, { 8027, 0xeb9f },
- /* 0x7c00 */
- { 8039, 0xfeef }, { 8053, 0xf203 }, { 8060, 0x3fef }, { 8073, 0xfb89 },
- { 8083, 0x37a9 }, { 8092, 0x9e99 }, { 8101, 0xdef9 }, { 8113, 0xa72c },
- { 8121, 0x3733 }, { 8130, 0xc1f6 }, { 8139, 0x812e }, { 8145, 0xfe3e },
- { 8157, 0x5d20 }, { 8163, 0xf2f7 }, { 8175, 0xd585 }, { 8183, 0x69d7 },
- /* 0x7d00 */
- { 8193, 0xffff }, { 8209, 0xffff }, { 8225, 0xdb07 }, { 8234, 0xff6f },
- { 8248, 0xc4ff }, { 8259, 0xd97f }, { 8271, 0xefce }, { 8283, 0xbe0f },
- { 8293, 0xf17b }, { 8304, 0xf05e }, { 8313, 0xf6cf }, { 8325, 0xffb7 },
- { 8339, 0x5ef7 }, { 8351, 0xef84 }, { 8360, 0xd7cb }, { 8371, 0x0edf },
- /* 0x7e00 */
- { 8381, 0xff08 }, { 8390, 0xfcff }, { 8404, 0xee3f }, { 8416, 0xffff },
- { 8432, 0x13ff }, { 8443, 0xd7ff }, { 8457, 0xaf0f }, { 8467, 0x7ffd },
- { 8481, 0xbdc7 }, { 8492, 0x1ffa }, { 8503, 0x0000 }, { 8503, 0x0000 },
- { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 },
- /* 0x7f00 */
- { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0xe740 },
- { 8510, 0xbd38 }, { 8519, 0xf933 }, { 8529, 0x7feb }, { 8542, 0xfeed },
- { 8555, 0x7fe8 }, { 8566, 0x7c76 }, { 8576, 0xb3f7 }, { 8588, 0xffef },
- { 8603, 0xfeaf }, { 8616, 0xd8b7 }, { 8626, 0xff6f }, { 8640, 0xfbbf },
- /* 0x8000 */
- { 8654, 0xf8fb }, { 8666, 0xdbf7 }, { 8679, 0x1752 }, { 8686, 0xe2f9 },
- { 8696, 0x85c8 }, { 8702, 0x7547 }, { 8711, 0x9090 }, { 8715, 0xe3ef },
- { 8727, 0x9ef4 }, { 8737, 0x3f6d }, { 8748, 0xee2e }, { 8758, 0x0536 },
- { 8764, 0xf7bc }, { 8776, 0x7ff3 }, { 8789, 0xa07b }, { 8797, 0x7f3f },
- /* 0x8100 */
- { 8810, 0x0567 }, { 8817, 0xeb60 }, { 8825, 0xbabe }, { 8836, 0x6601 },
- { 8841, 0xfcd8 }, { 8851, 0x583f }, { 8860, 0xcaf7 }, { 8871, 0x87df },
- { 8882, 0xbfcd }, { 8894, 0xffa0 }, { 8904, 0x5bcd }, { 8914, 0xfebf },
- { 8928, 0xb6fd }, { 8940, 0xefa7 }, { 8952, 0x77ef }, { 8965, 0xdf9c },
- /* 0x8200 */
- { 8976, 0x3fb7 }, { 8988, 0xf877 }, { 8999, 0x9d27 }, { 9008, 0xb7fc },
- { 9020, 0xcab5 }, { 9029, 0xdfef }, { 9043, 0xfb5a }, { 9054, 0xf1b6 },
- { 9064, 0xec39 }, { 9073, 0xef1f }, { 9085, 0xfbbf }, { 9099, 0x7ffb },
- { 9113, 0x000d }, { 9116, 0xdafe }, { 9128, 0xbdfb }, { 9141, 0x4e7f },
- /* 0x8300 */
- { 9152, 0x33ff }, { 9164, 0x5ac0 }, { 9170, 0xbff5 }, { 9183, 0x9ffe },
- { 9196, 0xffbf }, { 9211, 0x005f }, { 9217, 0x0000 }, { 9217, 0xfdf8 },
- { 9229, 0xffca }, { 9241, 0x6ffd }, { 9254, 0xcffd }, { 9267, 0xa001 },
- { 9270, 0xdfff }, { 9285, 0xfbf2 }, { 9297, 0xdfbf }, { 9311, 0xff7f },
- /* 0x8400 */
- { 9326, 0xfeda }, { 9338, 0x080f }, { 9343, 0xba08 }, { 9349, 0xbfff },
- { 9364, 0x7afd }, { 9376, 0xeed7 }, { 9388, 0xfbeb }, { 9401, 0x67f9 },
- { 9412, 0xe044 }, { 9417, 0xff93 }, { 9429, 0xdf97 }, { 9441, 0x9f57 },
- { 9452, 0xfef7 }, { 9466, 0x08df }, { 9474, 0xdf80 }, { 9482, 0xfedf },
- /* 0x8500 */
- { 9496, 0xffc5 }, { 9508, 0xf7fe }, { 9522, 0xfffb }, { 9537, 0x6803 },
- { 9542, 0x67fb }, { 9554, 0x6bfa }, { 9565, 0x7fff }, { 9580, 0x5fe2 },
- { 9590, 0xffff }, { 9606, 0xff73 }, { 9619, 0x87df }, { 9630, 0xe7fb },
- { 9643, 0xebfd }, { 9656, 0xf7a7 }, { 9668, 0xbf7e }, { 9681, 0xefc7 },
- /* 0x8600 */
- { 9693, 0x1ef3 }, { 9703, 0xdf82 }, { 9712, 0x76ff }, { 9725, 0xdf7e },
- { 9738, 0x79c9 }, { 9747, 0xda7d }, { 9758, 0xefbe }, { 9771, 0x1e9b },
- { 9780, 0x7ce0 }, { 9788, 0x77fb }, { 9801, 0x87be }, { 9811, 0xfffb },
- { 9826, 0x1bff }, { 9838, 0xffdb }, { 9852, 0x3f5c }, { 9862, 0x4fe0 },
- /* 0x8700 */
- { 9870, 0x7fff }, { 9885, 0x5f0e }, { 9894, 0x77ff }, { 9908, 0xddbf },
- { 9921, 0xf04f }, { 9930, 0xffff }, { 9946, 0xffff }, { 9962, 0x0ff8 },
- { 9971, 0xa3be }, { 9981, 0xfddf }, { 9995, 0xfc1c }, { 10004, 0xfffd },
- { 10019, 0x1f7d }, { 10030, 0xfb9e }, { 10042, 0xbdff }, { 10056, 0xdedc },
- /* 0x8800 */
- { 10067, 0x3f6f }, { 10079, 0xbafb }, { 10091, 0xdf7f }, { 10105, 0xfbef },
- { 10119, 0x7d1b }, { 10129, 0x2eec }, { 10138, 0xaf8e }, { 10148, 0xf2f7 },
- { 10160, 0x7b0f }, { 10170, 0xcfee }, { 10182, 0x1d96 }, { 10190, 0x77c6 },
- { 10200, 0x7e07 }, { 10209, 0xfff5 }, { 10223, 0xd982 }, { 10230, 0x7fdf },
- /* 0x8900 */
- { 10244, 0x5ee6 }, { 10254, 0xc7ff }, { 10267, 0xfeee }, { 10280, 0x79ef },
- { 10292, 0x9a56 }, { 10300, 0xffcf }, { 10314, 0xfe5f }, { 10327, 0xde5e },
- { 10338, 0x896e }, { 10346, 0xf9e8 }, { 10356, 0xf45e }, { 10366, 0xe6c4 },
- { 10374, 0x0001 }, { 10375, 0xbe7c }, { 10386, 0x3b7f }, { 10398, 0xdddf },
- /* 0x8a00 */
- { 10411, 0xd59d }, { 10421, 0xe9ef }, { 10433, 0x34ac }, { 10440, 0xde53 },
- { 10450, 0xf573 }, { 10461, 0x4bf7 }, { 10472, 0x7b4f }, { 10483, 0x9eff },
- { 10496, 0xb8fe }, { 10507, 0x476e }, { 10516, 0x0dfb }, { 10526, 0xff45 },
- { 10537, 0xabfd }, { 10549, 0xfbfe }, { 10563, 0xe9d7 }, { 10574, 0xddff },
- /* 0x8b00 */
- { 10588, 0xedf7 }, { 10601, 0x7fff }, { 10616, 0xddfd }, { 10629, 0x7eeb },
- { 10641, 0xcfe7 }, { 10653, 0xb7ff }, { 10667, 0xbde9 }, { 10678, 0xef91 },
- { 10688, 0x5d75 }, { 10698, 0xd77c }, { 10709, 0x0000 }, { 10709, 0x0000 },
- { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 },
- /* 0x8c00 */
- { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0xfa80 },
- { 10716, 0xffee }, { 10730, 0xb4f1 }, { 10739, 0xbf76 }, { 10751, 0x2fef },
- { 10763, 0xb677 }, { 10774, 0x77bf }, { 10787, 0x9fbf }, { 10800, 0xfffd },
- { 10815, 0x95bf }, { 10826, 0xf6ae }, { 10837, 0x75ff }, { 10850, 0x7f3b },
- /* 0x8d00 */
- { 10862, 0xa7f5 }, { 10873, 0x0af9 }, { 10881, 0x0000 }, { 10881, 0x0000 },
- { 10881, 0x0000 }, { 10881, 0x0000 }, { 10881, 0xfbd0 }, { 10891, 0x2bdd },
- { 10901, 0xf633 }, { 10911, 0x9a7f }, { 10922, 0xfdab }, { 10934, 0xd6fc },
- { 10945, 0xf9e6 }, { 10956, 0xbfeb }, { 10969, 0xdfdf }, { 10983, 0xf41f },
- /* 0x8e00 */
- { 10993, 0xa6fd }, { 11004, 0xffff }, { 11020, 0x4aff }, { 11031, 0xf37b },
- { 11043, 0x7fb7 }, { 11056, 0xfef9 }, { 11069, 0xb6ff }, { 11082, 0x1d5c },
- { 11090, 0x7ff6 }, { 11103, 0xe5ff }, { 11116, 0x1f7b }, { 11127, 0x2404 },
- { 11130, 0xbe05 }, { 11138, 0xf99e }, { 11149, 0xdbe3 }, { 11160, 0xdff2 },
- /* 0x8f00 */
- { 11172, 0x6fef }, { 11185, 0xfdff }, { 11200, 0xd679 }, { 11210, 0xcbfc },
- { 11221, 0xebfd }, { 11234, 0xefff }, { 11249, 0x001f }, { 11254, 0x0000 },
- { 11254, 0x0000 }, { 11254, 0x9800 }, { 11257, 0xe148 }, { 11263, 0x8017 },
- { 11268, 0x6a74 }, { 11276, 0x00fe }, { 11283, 0x6d7f }, { 11295, 0xfdf1 },
- /* 0x9000 */
- { 11307, 0xb87f }, { 11318, 0xfef3 }, { 11331, 0xe01f }, { 11339, 0xf176 },
- { 11349, 0xee96 }, { 11359, 0x7b3f }, { 11371, 0xeb8d }, { 11381, 0xfffd },
- { 11396, 0xadff }, { 11409, 0xcbb3 }, { 11419, 0x84ef }, { 11428, 0xe17f },
- { 11439, 0x4daa }, { 11447, 0xbff0 }, { 11458, 0xbf3f }, { 11471, 0xfe3f },
- /* 0x9100 */
- { 11484, 0xebff }, { 11498, 0xffd7 }, { 11512, 0xffdf }, { 11527, 0xcf7f },
- { 11540, 0xfffb }, { 11555, 0x85ed }, { 11564, 0xd73f }, { 11576, 0x07bc },
- { 11584, 0xaeff }, { 11597, 0xfe0f }, { 11608, 0xfdaf }, { 11621, 0x76bf },
- { 11633, 0xfaef }, { 11646, 0x37bb }, { 11657, 0x7fdc }, { 11669, 0xa3ba },
- /* 0x9200 */
- { 11678, 0xb6ff }, { 11691, 0x56f7 }, { 11702, 0x60f8 }, { 11709, 0xe7df },
- { 11722, 0xff61 }, { 11733, 0x4cdf }, { 11743, 0xb0fb }, { 11753, 0xff45 },
- { 11764, 0x7ded }, { 11776, 0x3ffa }, { 11788, 0x1fff }, { 11801, 0x18fc },
- { 11809, 0xffff }, { 11825, 0xe3af }, { 11836, 0xc7d3 }, { 11846, 0xdf83 },
- /* 0x9300 */
- { 11856, 0xfb57 }, { 11868, 0xef7d }, { 11881, 0xefff }, { 11896, 0x1378 },
- { 11903, 0xfec0 }, { 11912, 0x5ff7 }, { 11925, 0x34bb }, { 11934, 0x5ee3 },
- { 11944, 0xf70d }, { 11954, 0xeff6 }, { 11967, 0xd7fe }, { 11980, 0x00bf },
- { 11987, 0xf59d }, { 11998, 0xf7f7 }, { 12012, 0x51de }, { 12021, 0xffe0 },
- /* 0x9400 */
- { 12032, 0xfec9 }, { 12043, 0x037f }, { 12052, 0x5f01 }, { 12059, 0xbfef },
- { 12073, 0x9ff1 }, { 12084, 0x60a7 }, { 12091, 0xef1d }, { 12102, 0xf1ff },
- { 12115, 0x000f }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 },
- { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 },
- /* 0x9500 */
- { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 },
- { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x3c80 },
- { 12124, 0xfb4d }, { 12135, 0xd91f }, { 12145, 0x7b3a }, { 12155, 0xfee3 },
- { 12167, 0x3fe9 }, { 12178, 0xdc7f }, { 12190, 0x003f }, { 12196, 0x0000 },
- /* 0x9600 */
- { 12196, 0x0000 }, { 12196, 0x5000 }, { 12198, 0xf51f }, { 12209, 0xbe07 },
- { 12218, 0xfc1d }, { 12228, 0xf91b }, { 12238, 0xbc1e }, { 12247, 0x71ff },
- { 12259, 0x6ff9 }, { 12271, 0x5bbe }, { 12282, 0x5796 }, { 12291, 0x9b1b },
- { 12300, 0x7fff }, { 12315, 0xfffc }, { 12329, 0x872e }, { 12337, 0xafe7 },
- /* 0x9700 */
- { 12349, 0xebf5 }, { 12361, 0xf34f }, { 12372, 0xdffd }, { 12386, 0xe725 },
- { 12395, 0x0bdc }, { 12403, 0x5d44 }, { 12410, 0x5747 }, { 12419, 0xfddd },
- { 12432, 0xed3f }, { 12444, 0x7790 }, { 12452, 0x7d7f }, { 12465, 0x8ac8 },
- { 12471, 0xfafa }, { 12483, 0xf3f9 }, { 12495, 0x202a }, { 12499, 0xef4b },
- /* 0x9800 */
- { 12510, 0xf5ff }, { 12524, 0x79cf }, { 12535, 0xabd3 }, { 12545, 0x0ba5 },
- { 12552, 0xf77a }, { 12564, 0xfb8f }, { 12576, 0x8ebd }, { 12586, 0x001f },
- { 12591, 0x0000 }, { 12591, 0x0000 }, { 12591, 0xf300 }, { 12597, 0xfd4e },
- { 12608, 0x1a57 }, { 12616, 0x8800 }, { 12618, 0xaeac }, { 12627, 0x7654 },
- /* 0x9900 */
- { 12635, 0x17ad }, { 12644, 0xcdff }, { 12657, 0xffb2 }, { 12669, 0xf42f },
- { 12679, 0x5baa }, { 12688, 0xdbff }, { 12702, 0x0002 }, { 12703, 0x0000 },
- { 12703, 0x0000 }, { 12703, 0x73c0 }, { 12710, 0xf9ea }, { 12721, 0x2e3f },
- { 12731, 0xfa8e }, { 12741, 0xbbff }, { 12755, 0x76bc }, { 12765, 0xffd3 },
- /* 0x9a00 */
- { 12778, 0xeefe }, { 12791, 0x7e72 }, { 12801, 0x7ebd }, { 12813, 0xe7f7 },
- { 12826, 0xf77f }, { 12840, 0xcefd }, { 12852, 0x0ff5 }, { 12862, 0x0000 },
- { 12862, 0x0000 }, { 12862, 0x0000 }, { 12862, 0xa900 }, { 12866, 0xdb9b },
- { 12877, 0xa4c7 }, { 12885, 0x917f }, { 12895, 0xf8ca }, { 12904, 0x7ece },
- /* 0x9b00 */
- { 12915, 0x7d7a }, { 12926, 0xc7e7 }, { 12937, 0xcbbd }, { 12948, 0xdcae },
- { 12958, 0xfd7e }, { 12971, 0x8f76 }, { 12981, 0x91d3 }, { 12989, 0x7cf3 },
- { 13000, 0x01e5 }, { 13006, 0x4c2f }, { 13014, 0xed77 }, { 13026, 0xa360 },
- { 13032, 0x07db }, { 13041, 0x5ef8 }, { 13051, 0x1df7 }, { 13062, 0x2181 },
- /* 0x9c00 */
- { 13066, 0x6be0 }, { 13074, 0x309c }, { 13080, 0x3b3a }, { 13089, 0xfade },
- { 13101, 0x7f53 }, { 13112, 0xc3f5 }, { 13122, 0x61cd }, { 13130, 0x07ba },
- { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 },
- { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x26e0 }, { 13144, 0xbefe },
- /* 0x9d00 */
- { 13157, 0x03f9 }, { 13165, 0xebb5 }, { 13176, 0xe36d }, { 13186, 0xe9cb },
- { 13196, 0x9c2f }, { 13205, 0xbfde }, { 13218, 0x9f83 }, { 13227, 0xabbf },
- { 13239, 0x1ff7 }, { 13251, 0xffd5 }, { 13264, 0xb7df }, { 13277, 0xdffe },
- { 13291, 0xfdae }, { 13303, 0xffef }, { 13318, 0xfb7e }, { 13331, 0xeffd },
- /* 0x9e00 */
- { 13345, 0xaaff }, { 13357, 0x6ebf }, { 13369, 0x0000 }, { 13369, 0x0000 },
- { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0xb620 },
- { 13375, 0x7fcd }, { 13387, 0xbe9e }, { 13398, 0x62b3 }, { 13406, 0x58f1 },
- { 13414, 0xf10d }, { 13422, 0xfd7b }, { 13435, 0xe9f1 }, { 13445, 0xbefd },
- /* 0x9f00 */
- { 13458, 0xc6c3 }, { 13466, 0x5f6d }, { 13477, 0xff3d }, { 13490, 0x69ff },
- { 13502, 0xffcf }, { 13516, 0xfbf4 }, { 13528, 0xdcfb }, { 13540, 0x4ff7 },
- { 13552, 0x2000 }, { 13553, 0x1137 }, { 13560, 0x0015 },
-};
-static const Summary16 big5_uni2indx_pagefa[1] = {
- /* 0xfa00 */
- { 13563, 0x3000 },
-};
-static const Summary16 big5_uni2indx_pagefe[23] = {
- /* 0xfe00 */
- { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0xfffb },
- { 13580, 0xfe1f }, { 13592, 0xfef5 }, { 13605, 0x0e7f }, { 13615, 0x0000 },
- { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 },
- { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 },
- /* 0xff00 */
- { 13615, 0xff7a }, { 13628, 0xffff }, { 13644, 0xffff }, { 13660, 0x97ff },
- { 13673, 0xfffe }, { 13688, 0x3fff }, { 13702, 0x0010 },
-};
-
-static int
-big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- const Summary16 *summary = NULL;
- if (wc < 0x0100)
- summary = &big5_uni2indx_page00[(wc>>4)];
- else if (wc >= 0x0200 && wc < 0x0460)
- summary = &big5_uni2indx_page02[(wc>>4)-0x020];
- else if (wc >= 0x2000 && wc < 0x22c0)
- summary = &big5_uni2indx_page20[(wc>>4)-0x200];
- else if (wc >= 0x2400 && wc < 0x2650)
- summary = &big5_uni2indx_page24[(wc>>4)-0x240];
- else if (wc >= 0x3000 && wc < 0x33e0)
- summary = &big5_uni2indx_page30[(wc>>4)-0x300];
- else if (wc >= 0x4e00 && wc < 0x9fb0)
- summary = &big5_uni2indx_page4e[(wc>>4)-0x4e0];
- else if (wc >= 0xfa00 && wc < 0xfa10)
- summary = &big5_uni2indx_pagefa[(wc>>4)-0xfa0];
- else if (wc >= 0xfe00 && wc < 0xff70)
- summary = &big5_uni2indx_pagefe[(wc>>4)-0xfe0];
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- unsigned short c;
- /* Keep in `used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add `summary->indx' and the number of bits set in `used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- c = big5_2charset[summary->indx + used];
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/big5_emacs.h b/nx-X11/lib/X11/lcUniConv/big5_emacs.h
deleted file mode 100644
index 246aebeb4..000000000
--- a/nx-X11/lib/X11/lcUniConv/big5_emacs.h
+++ /dev/null
@@ -1,163 +0,0 @@
-
-/*
- * BIG5-0 and BIG5-1
- */
-
-/*
- BIG5 with its 13494 characters doesn't fit in a single 94x94 or 96x96
- block. Therefore Emacs/Mule developers, in a typically Japanese way of
- thinking, have developed an alternative encoding of BIG5 in two 94x94
- planes, very similar to the SHIFT_JIS encoding for JISX0208.
-
- Conversion between BIG5 codes (s1,s2) and BIG5-0 codes (c1,c2):
- Example. (s1,s2) = 0xA140, (c1,c2) = 0x2121.
- 0xA1 <= s1 <= 0xC7, 0x40 <= s2 <= 0x7E || 0xA1 <= s2 <= 0xFE,
- 0x21 <= c1 <= 0x62, 0x21 <= c2 <= 0x7E.
- Invariant:
- 157*(s1-0xA1) + (s2 < 0x80 ? s2-0x40 : s2-0x62)
- = 94*(c1-0x21)+(c2-0x21)
- Conversion (s1,s2) -> (c1,c2):
- t := 157*(s1-0xA1) + (s2 < 0x80 ? s2-0x40 : s2-0x62)
- c1 := (t div 94) + 0x21
- c2 := (t mod 94) + 0x21
- Conversion (c1,c2) -> (s1,s2):
- t := 94*(c1-0x21)+(c2-0x21)
- t2 := t mod 157
- s1 := (t div 157) + 0xA1
- s2 := (t2 < 0x3F ? t2+0x40 : t2+0x62)
-
- Conversion between BIG5 codes (s1,s2) and BIG5-1 codes (c1,c2):
- Example. (s1,s2) = 0xC940, (c1,c2) = 0x2121.
- 0xC9 <= s1 <= 0xF9, 0x40 <= s2 <= 0x7E || 0xA1 <= s2 <= 0xFE,
- 0x21 <= c1 <= 0x72, 0x21 <= c2 <= 0x7E.
- Invariant:
- 157*(s1-0xC9) + (s2 < 0x80 ? s2-0x40 : s2-0x62)
- = 94*(c1-0x21)+(c2-0x21)
- Conversion (s1,s2) -> (c1,c2):
- t := 157*(s1-0xC9) + (s2 < 0x80 ? s2-0x40 : s2-0x62)
- c1 := (t div 94) + 0x21
- c2 := (t mod 94) + 0x21
- Conversion (c1,c2) -> (s1,s2):
- t := 94*(c1-0x21)+(c2-0x21)
- t2 := t mod 157
- s1 := (t div 157) + 0xC9
- s2 := (t2 < 0x3F ? t2+0x40 : t2+0x62)
- */
-
-static int
-big5_0_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = s[0];
- if (c1 >= 0x21 && c1 <= 0x62) {
- if (n >= 2) {
- unsigned char c2 = s[1];
- if (c2 >= 0x21 && c2 <= 0x7e) {
- unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
- if (0) {
- /* Unoptimized. */
- unsigned char buf[2];
- buf[0] = (i / 157) + 0xa1;
- i = i % 157;
- buf[1] = i + (i < 0x3f ? 0x40 : 0x62);
- return big5_mbtowc(conv,pwc,buf,2);
- } else {
- /* Inline the implementation of big5_mbtowc. */
- if (i < 6121) {
- unsigned short wc = big5_2uni_pagea1[i];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static int
-big5_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = s[0];
- if (c1 >= 0x21 && c1 <= 0x72) {
- if (n >= 2) {
- unsigned char c2 = s[1];
- if (c2 >= 0x21 && c2 <= 0x7e) {
- unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
- if (0) {
- /* Unoptimized. */
- unsigned char buf[2];
- buf[0] = (i / 157) + 0xc9;
- i = i % 157;
- buf[1] = i + (i < 0x3f ? 0x40 : 0x62);
- return big5_mbtowc(conv,pwc,buf,2);
- } else {
- /* Inline the implementation of big5_mbtowc. */
- if (i < 7652) {
- unsigned short wc = big5_2uni_pagec9[i];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static int
-big5_0_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- unsigned char buf[2];
- int ret = big5_wctomb(conv,buf,wc,2);
- if (ret != RET_ILSEQ) {
- unsigned char s1, s2;
- if (ret != 2) abort();
- s1 = buf[0];
- s2 = buf[1];
- if (!(s1 >= 0xa1)) abort();
- if (!((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0xa1 && s2 <= 0xfe))) abort();
- if (s1 < 0xc9) {
- unsigned int t = 157 * (s1 - 0xa1) + s2 - (s2 < 0x80 ? 0x40 : 0x62);
- r[0] = (t / 94) + 0x21;
- r[1] = (t % 94) + 0x21;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
-
-static int
-big5_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- unsigned char buf[2];
- int ret = big5_wctomb(conv,buf,wc,2);
- if (ret != RET_ILSEQ) {
- unsigned char s1, s2;
- if (ret != 2) abort();
- s1 = buf[0];
- s2 = buf[1];
- if (!(s1 <= 0xf9)) abort();
- if (!((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0xa1 && s2 <= 0xfe))) abort();
- if (s1 >= 0xc9) {
- unsigned int t = 157 * (s1 - 0xc9) + s2 - (s2 < 0x80 ? 0x40 : 0x62);
- r[0] = (t / 94) + 0x21;
- r[1] = (t % 94) + 0x21;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/big5hkscs.h b/nx-X11/lib/X11/lcUniConv/big5hkscs.h
deleted file mode 100644
index 721d1228e..000000000
--- a/nx-X11/lib/X11/lcUniConv/big5hkscs.h
+++ /dev/null
@@ -1,6252 +0,0 @@
-
-/*
- * BIG5-HKSCS
- */
-
-static const unsigned short big5hkscs_2uni_page81[19782] = {
- /* 0x81 */
- 0xeeb8, 0xeeb9, 0xeeba, 0xeebb, 0xeebc, 0xeebd, 0xeebe, 0xeebf,
- 0xeec0, 0xeec1, 0xeec2, 0xeec3, 0xeec4, 0xeec5, 0xeec6, 0xeec7,
- 0xeec8, 0xeec9, 0xeeca, 0xeecb, 0xeecc, 0xeecd, 0xeece, 0xeecf,
- 0xeed0, 0xeed1, 0xeed2, 0xeed3, 0xeed4, 0xeed5, 0xeed6, 0xeed7,
- 0xeed8, 0xeed9, 0xeeda, 0xeedb, 0xeedc, 0xeedd, 0xeede, 0xeedf,
- 0xeee0, 0xeee1, 0xeee2, 0xeee3, 0xeee4, 0xeee5, 0xeee6, 0xeee7,
- 0xeee8, 0xeee9, 0xeeea, 0xeeeb, 0xeeec, 0xeeed, 0xeeee, 0xeeef,
- 0xeef0, 0xeef1, 0xeef2, 0xeef3, 0xeef4, 0xeef5, 0xeef6, 0xeef7,
- 0xeef8, 0xeef9, 0xeefa, 0xeefb, 0xeefc, 0xeefd, 0xeefe, 0xeeff,
- 0xef00, 0xef01, 0xef02, 0xef03, 0xef04, 0xef05, 0xef06, 0xef07,
- 0xef08, 0xef09, 0xef0a, 0xef0b, 0xef0c, 0xef0d, 0xef0e, 0xef0f,
- 0xef10, 0xef11, 0xef12, 0xef13, 0xef14, 0xef15, 0xef16, 0xef17,
- 0xef18, 0xef19, 0xef1a, 0xef1b, 0xef1c, 0xef1d, 0xef1e, 0xef1f,
- 0xef20, 0xef21, 0xef22, 0xef23, 0xef24, 0xef25, 0xef26, 0xef27,
- 0xef28, 0xef29, 0xef2a, 0xef2b, 0xef2c, 0xef2d, 0xef2e, 0xef2f,
- 0xef30, 0xef31, 0xef32, 0xef33, 0xef34, 0xef35, 0xef36, 0xef37,
- 0xef38, 0xef39, 0xef3a, 0xef3b, 0xef3c, 0xef3d, 0xef3e, 0xef3f,
- 0xef40, 0xef41, 0xef42, 0xef43, 0xef44, 0xef45, 0xef46, 0xef47,
- 0xef48, 0xef49, 0xef4a, 0xef4b, 0xef4c, 0xef4d, 0xef4e, 0xef4f,
- 0xef50, 0xef51, 0xef52, 0xef53, 0xef54,
- /* 0x82 */
- 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, 0xef5a, 0xef5b, 0xef5c,
- 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, 0xef62, 0xef63, 0xef64,
- 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, 0xef6a, 0xef6b, 0xef6c,
- 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, 0xef72, 0xef73, 0xef74,
- 0xef75, 0xef76, 0xef77, 0xef78, 0xef79, 0xef7a, 0xef7b, 0xef7c,
- 0xef7d, 0xef7e, 0xef7f, 0xef80, 0xef81, 0xef82, 0xef83, 0xef84,
- 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a, 0xef8b, 0xef8c,
- 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92, 0xef93, 0xef94,
- 0xef95, 0xef96, 0xef97, 0xef98, 0xef99, 0xef9a, 0xef9b, 0xef9c,
- 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xefa1, 0xefa2, 0xefa3, 0xefa4,
- 0xefa5, 0xefa6, 0xefa7, 0xefa8, 0xefa9, 0xefaa, 0xefab, 0xefac,
- 0xefad, 0xefae, 0xefaf, 0xefb0, 0xefb1, 0xefb2, 0xefb3, 0xefb4,
- 0xefb5, 0xefb6, 0xefb7, 0xefb8, 0xefb9, 0xefba, 0xefbb, 0xefbc,
- 0xefbd, 0xefbe, 0xefbf, 0xefc0, 0xefc1, 0xefc2, 0xefc3, 0xefc4,
- 0xefc5, 0xefc6, 0xefc7, 0xefc8, 0xefc9, 0xefca, 0xefcb, 0xefcc,
- 0xefcd, 0xefce, 0xefcf, 0xefd0, 0xefd1, 0xefd2, 0xefd3, 0xefd4,
- 0xefd5, 0xefd6, 0xefd7, 0xefd8, 0xefd9, 0xefda, 0xefdb, 0xefdc,
- 0xefdd, 0xefde, 0xefdf, 0xefe0, 0xefe1, 0xefe2, 0xefe3, 0xefe4,
- 0xefe5, 0xefe6, 0xefe7, 0xefe8, 0xefe9, 0xefea, 0xefeb, 0xefec,
- 0xefed, 0xefee, 0xefef, 0xeff0, 0xeff1,
- /* 0x83 */
- 0xeff2, 0xeff3, 0xeff4, 0xeff5, 0xeff6, 0xeff7, 0xeff8, 0xeff9,
- 0xeffa, 0xeffb, 0xeffc, 0xeffd, 0xeffe, 0xefff, 0xf000, 0xf001,
- 0xf002, 0xf003, 0xf004, 0xf005, 0xf006, 0xf007, 0xf008, 0xf009,
- 0xf00a, 0xf00b, 0xf00c, 0xf00d, 0xf00e, 0xf00f, 0xf010, 0xf011,
- 0xf012, 0xf013, 0xf014, 0xf015, 0xf016, 0xf017, 0xf018, 0xf019,
- 0xf01a, 0xf01b, 0xf01c, 0xf01d, 0xf01e, 0xf01f, 0xf020, 0xf021,
- 0xf022, 0xf023, 0xf024, 0xf025, 0xf026, 0xf027, 0xf028, 0xf029,
- 0xf02a, 0xf02b, 0xf02c, 0xf02d, 0xf02e, 0xf02f, 0xf030, 0xf031,
- 0xf032, 0xf033, 0xf034, 0xf035, 0xf036, 0xf037, 0xf038, 0xf039,
- 0xf03a, 0xf03b, 0xf03c, 0xf03d, 0xf03e, 0xf03f, 0xf040, 0xf041,
- 0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, 0xf048, 0xf049,
- 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, 0xf050, 0xf051,
- 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, 0xf058, 0xf059,
- 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, 0xf060, 0xf061,
- 0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, 0xf068, 0xf069,
- 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071,
- 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, 0xf078, 0xf079,
- 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf07f, 0xf080, 0xf081,
- 0xf082, 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, 0xf089,
- 0xf08a, 0xf08b, 0xf08c, 0xf08d, 0xf08e,
- /* 0x84 */
- 0xf08f, 0xf090, 0xf091, 0xf092, 0xf093, 0xf094, 0xf095, 0xf096,
- 0xf097, 0xf098, 0xf099, 0xf09a, 0xf09b, 0xf09c, 0xf09d, 0xf09e,
- 0xf09f, 0xf0a0, 0xf0a1, 0xf0a2, 0xf0a3, 0xf0a4, 0xf0a5, 0xf0a6,
- 0xf0a7, 0xf0a8, 0xf0a9, 0xf0aa, 0xf0ab, 0xf0ac, 0xf0ad, 0xf0ae,
- 0xf0af, 0xf0b0, 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xf0b6,
- 0xf0b7, 0xf0b8, 0xf0b9, 0xf0ba, 0xf0bb, 0xf0bc, 0xf0bd, 0xf0be,
- 0xf0bf, 0xf0c0, 0xf0c1, 0xf0c2, 0xf0c3, 0xf0c4, 0xf0c5, 0xf0c6,
- 0xf0c7, 0xf0c8, 0xf0c9, 0xf0ca, 0xf0cb, 0xf0cc, 0xf0cd, 0xf0ce,
- 0xf0cf, 0xf0d0, 0xf0d1, 0xf0d2, 0xf0d3, 0xf0d4, 0xf0d5, 0xf0d6,
- 0xf0d7, 0xf0d8, 0xf0d9, 0xf0da, 0xf0db, 0xf0dc, 0xf0dd, 0xf0de,
- 0xf0df, 0xf0e0, 0xf0e1, 0xf0e2, 0xf0e3, 0xf0e4, 0xf0e5, 0xf0e6,
- 0xf0e7, 0xf0e8, 0xf0e9, 0xf0ea, 0xf0eb, 0xf0ec, 0xf0ed, 0xf0ee,
- 0xf0ef, 0xf0f0, 0xf0f1, 0xf0f2, 0xf0f3, 0xf0f4, 0xf0f5, 0xf0f6,
- 0xf0f7, 0xf0f8, 0xf0f9, 0xf0fa, 0xf0fb, 0xf0fc, 0xf0fd, 0xf0fe,
- 0xf0ff, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106,
- 0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e,
- 0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf114, 0xf115, 0xf116,
- 0xf117, 0xf118, 0xf119, 0xf11a, 0xf11b, 0xf11c, 0xf11d, 0xf11e,
- 0xf11f, 0xf120, 0xf121, 0xf122, 0xf123, 0xf124, 0xf125, 0xf126,
- 0xf127, 0xf128, 0xf129, 0xf12a, 0xf12b,
- /* 0x85 */
- 0xf12c, 0xf12d, 0xf12e, 0xf12f, 0xf130, 0xf131, 0xf132, 0xf133,
- 0xf134, 0xf135, 0xf136, 0xf137, 0xf138, 0xf139, 0xf13a, 0xf13b,
- 0xf13c, 0xf13d, 0xf13e, 0xf13f, 0xf140, 0xf141, 0xf142, 0xf143,
- 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149, 0xf14a, 0xf14b,
- 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151, 0xf152, 0xf153,
- 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159, 0xf15a, 0xf15b,
- 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161, 0xf162, 0xf163,
- 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169, 0xf16a, 0xf16b,
- 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171, 0xf172, 0xf173,
- 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179, 0xf17a, 0xf17b,
- 0xf17c, 0xf17d, 0xf17e, 0xf17f, 0xf180, 0xf181, 0xf182, 0xf183,
- 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a, 0xf18b,
- 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193,
- 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a, 0xf19b,
- 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf1a1, 0xf1a2, 0xf1a3,
- 0xf1a4, 0xf1a5, 0xf1a6, 0xf1a7, 0xf1a8, 0xf1a9, 0xf1aa, 0xf1ab,
- 0xf1ac, 0xf1ad, 0xf1ae, 0xf1af, 0xf1b0, 0xf1b1, 0xf1b2, 0xf1b3,
- 0xf1b4, 0xf1b5, 0xf1b6, 0xf1b7, 0xf1b8, 0xf1b9, 0xf1ba, 0xf1bb,
- 0xf1bc, 0xf1bd, 0xf1be, 0xf1bf, 0xf1c0, 0xf1c1, 0xf1c2, 0xf1c3,
- 0xf1c4, 0xf1c5, 0xf1c6, 0xf1c7, 0xf1c8,
- /* 0x86 */
- 0xf1c9, 0xf1ca, 0xf1cb, 0xf1cc, 0xf1cd, 0xf1ce, 0xf1cf, 0xf1d0,
- 0xf1d1, 0xf1d2, 0xf1d3, 0xf1d4, 0xf1d5, 0xf1d6, 0xf1d7, 0xf1d8,
- 0xf1d9, 0xf1da, 0xf1db, 0xf1dc, 0xf1dd, 0xf1de, 0xf1df, 0xf1e0,
- 0xf1e1, 0xf1e2, 0xf1e3, 0xf1e4, 0xf1e5, 0xf1e6, 0xf1e7, 0xf1e8,
- 0xf1e9, 0xf1ea, 0xf1eb, 0xf1ec, 0xf1ed, 0xf1ee, 0xf1ef, 0xf1f0,
- 0xf1f1, 0xf1f2, 0xf1f3, 0xf1f4, 0xf1f5, 0xf1f6, 0xf1f7, 0xf1f8,
- 0xf1f9, 0xf1fa, 0xf1fb, 0xf1fc, 0xf1fd, 0xf1fe, 0xf1ff, 0xf200,
- 0xf201, 0xf202, 0xf203, 0xf204, 0xf205, 0xf206, 0xf207, 0xf208,
- 0xf209, 0xf20a, 0xf20b, 0xf20c, 0xf20d, 0xf20e, 0xf20f, 0xf210,
- 0xf211, 0xf212, 0xf213, 0xf214, 0xf215, 0xf216, 0xf217, 0xf218,
- 0xf219, 0xf21a, 0xf21b, 0xf21c, 0xf21d, 0xf21e, 0xf21f, 0xf220,
- 0xf221, 0xf222, 0xf223, 0xf224, 0xf225, 0xf226, 0xf227, 0xf228,
- 0xf229, 0xf22a, 0xf22b, 0xf22c, 0xf22d, 0xf22e, 0xf22f, 0xf230,
- 0xf231, 0xf232, 0xf233, 0xf234, 0xf235, 0xf236, 0xf237, 0xf238,
- 0xf239, 0xf23a, 0xf23b, 0xf23c, 0xf23d, 0xf23e, 0xf23f, 0xf240,
- 0xf241, 0xf242, 0xf243, 0xf244, 0xf245, 0xf246, 0xf247, 0xf248,
- 0xf249, 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, 0xf250,
- 0xf251, 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, 0xf258,
- 0xf259, 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, 0xf260,
- 0xf261, 0xf262, 0xf263, 0xf264, 0xf265,
- /* 0x87 */
- 0xf266, 0xf267, 0xf268, 0xf269, 0xf26a, 0xf26b, 0xf26c, 0xf26d,
- 0xf26e, 0xf26f, 0xf270, 0xf271, 0xf272, 0xf273, 0xf274, 0xf275,
- 0xf276, 0xf277, 0xf278, 0xf279, 0xf27a, 0xf27b, 0xf27c, 0xf27d,
- 0xf27e, 0xf27f, 0xf280, 0xf281, 0xf282, 0xf283, 0xf284, 0xf285,
- 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a, 0xf28b, 0xf28c, 0xf28d,
- 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292, 0xf293, 0xf294, 0xf295,
- 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a, 0xf29b, 0xf29c, 0xf29d,
- 0xf29e, 0xf29f, 0xf2a0, 0xf2a1, 0xf2a2, 0xf2a3, 0xf2a4, 0xf2a5,
- 0xf2a6, 0xf2a7, 0xf2a8, 0xf2a9, 0xf2aa, 0xf2ab, 0xf2ac, 0xf2ad,
- 0xf2ae, 0xf2af, 0xf2b0, 0xf2b1, 0xf2b2, 0xf2b3, 0xf2b4, 0xf2b5,
- 0xf2b6, 0xf2b7, 0xf2b8, 0xf2b9, 0xf2ba, 0xf2bb, 0xf2bc, 0xf2bd,
- 0xf2be, 0xf2bf, 0xf2c0, 0xf2c1, 0xf2c2, 0xf2c3, 0xf2c4, 0xf2c5,
- 0xf2c6, 0xf2c7, 0xf2c8, 0xf2c9, 0xf2ca, 0xf2cb, 0xf2cc, 0xf2cd,
- 0xf2ce, 0xf2cf, 0xf2d0, 0xf2d1, 0xf2d2, 0xf2d3, 0xf2d4, 0xf2d5,
- 0xf2d6, 0xf2d7, 0xf2d8, 0xf2d9, 0xf2da, 0xf2db, 0xf2dc, 0xf2dd,
- 0xf2de, 0xf2df, 0xf2e0, 0xf2e1, 0xf2e2, 0xf2e3, 0xf2e4, 0xf2e5,
- 0xf2e6, 0xf2e7, 0xf2e8, 0xf2e9, 0xf2ea, 0xf2eb, 0xf2ec, 0xf2ed,
- 0xf2ee, 0xf2ef, 0xf2f0, 0xf2f1, 0xf2f2, 0xf2f3, 0xf2f4, 0xf2f5,
- 0xf2f6, 0xf2f7, 0xf2f8, 0xf2f9, 0xf2fa, 0xf2fb, 0xf2fc, 0xf2fd,
- 0xf2fe, 0xf2ff, 0xf300, 0xf301, 0xf302,
- /* 0x88 */
- 0xf303, 0xf304, 0xf305, 0xf306, 0xf307, 0xf308, 0xf309, 0xf30a,
- 0xf30b, 0xf30c, 0xf30d, 0xf30e, 0xf30f, 0xf310, 0xf311, 0xf312,
- 0xf313, 0xf314, 0xf315, 0xf316, 0xf317, 0xf318, 0x0100, 0x00c1,
- 0x01cd, 0x00c0, 0x0112, 0x00c9, 0x011a, 0x00c8, 0x014c, 0x00d3,
- 0x01d1, 0x00d2, 0xf325, 0x1ebe, 0xf327, 0x1ec0, 0x00ca, 0x0101,
- 0x00e1, 0x01ce, 0x00e0, 0x0251, 0x0113, 0x00e9, 0x011b, 0x00e8,
- 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2,
- 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc,
- 0x00fc, 0xf344, 0x1ebf, 0xf346, 0x1ec1, 0x00ea, 0x0261, 0xf34a,
- 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351, 0xf352,
- 0xf353, 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, 0xf359, 0xf35a,
- 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, 0xf362,
- 0xf363, 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, 0xf369, 0xf36a,
- 0xf36b, 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371, 0xf372,
- 0xf373, 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, 0xf379, 0xf37a,
- 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf37f, 0xf380, 0xf381, 0xf382,
- 0xf383, 0xf384, 0xf385, 0xf386, 0xf387, 0xf388, 0xf389, 0xf38a,
- 0xf38b, 0xf38c, 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392,
- 0xf393, 0xf394, 0xf395, 0xf396, 0xf397, 0xf398, 0xf399, 0xf39a,
- 0xf39b, 0xf39c, 0xf39d, 0xf39e, 0xf39f,
- /* 0x89 */
- 0xf3a0, 0xf3a1, 0xf3a2, 0x650a, 0xf3a4, 0xf3a5, 0x4e3d, 0x6edd,
- 0x9d4e, 0x91df, 0xf3aa, 0xf3ab, 0xf3ac, 0x6491, 0x4f1a, 0x4f28,
- 0x4fa8, 0x5156, 0x5174, 0x519c, 0x51e4, 0x52a1, 0x52a8, 0x533b,
- 0x534e, 0x53d1, 0x53d8, 0x56e2, 0x58f0, 0x5904, 0x5907, 0x5932,
- 0x5934, 0x5b66, 0x5b9e, 0x5b9f, 0x5c9a, 0x5e86, 0x603b, 0x6589,
- 0x67fe, 0x6804, 0x6865, 0x6d4e, 0x70bc, 0x7535, 0x7ea4, 0x7eac,
- 0x7eba, 0x7ec7, 0x7ecf, 0x7edf, 0x7f06, 0x7f37, 0x827a, 0x82cf,
- 0x836f, 0x89c6, 0x8bbe, 0x8be2, 0x8f66, 0x8f67, 0x8f6e, 0x7411,
- 0x7cfc, 0x7dcd, 0x6946, 0x7ac9, 0x5227, 0xf3e5, 0xf3e6, 0xf3e7,
- 0xf3e8, 0x918c, 0x78b8, 0x915e, 0x80bc, 0xf3ed, 0x8d0b, 0x80f6,
- 0xf3f0, 0xf3f1, 0xf3f2, 0x809f, 0x9ec7, 0x4ccd, 0x9dc9, 0x9e0c,
- 0x4c3e, 0xf3f9, 0xf3fa, 0x9e0a, 0xf3fc, 0x35c1, 0xf3fe, 0x6e9a,
- 0x823e, 0x7519, 0xf402, 0x4911, 0x9a6c, 0x9a8f, 0x9f99, 0x7987,
- 0xf408, 0xf409, 0xf40a, 0xf40b, 0x4e24, 0x4e81, 0x4e80, 0x4e87,
- 0x4ebf, 0x4eeb, 0x4f37, 0x344c, 0x4fbd, 0x3e48, 0x5003, 0x5088,
- 0x347d, 0x3493, 0x34a5, 0x5186, 0x5905, 0x51db, 0x51fc, 0x5205,
- 0x4e89, 0x5279, 0x5290, 0x5327, 0x35c7, 0x53a9, 0x3551, 0x53b0,
- 0x3553, 0x53c2, 0x5423, 0x356d, 0x3572, 0x3681, 0x5493, 0x54a3,
- 0x54b4, 0x54b9, 0x54d0, 0x54ef, 0x5518, 0x5523, 0x5528, 0x3598,
- 0x553f, 0x35a5, 0x35bf, 0x55d7, 0x35c5,
- /* 0x8a */
- 0xf43d, 0x5525, 0xf43f, 0xf440, 0xf441, 0xf442, 0x5590, 0xf444,
- 0x39ec, 0xf446, 0x8e46, 0xf448, 0xf449, 0x4053, 0xf44b, 0x777a,
- 0xf44d, 0x3a34, 0x47d5, 0xf450, 0xf451, 0xf452, 0x64dd, 0xf454,
- 0xf455, 0xf456, 0xf457, 0x648d, 0x8e7e, 0xf45a, 0xf45b, 0xf45c,
- 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, 0xf462, 0xf463, 0x47f4,
- 0xf465, 0xf466, 0x9ab2, 0x3a67, 0xf469, 0x3fed, 0x3506, 0xf46c,
- 0xf46d, 0xf46e, 0xf46f, 0x9d6e, 0x9815, 0xf472, 0x43d9, 0xf474,
- 0x64b4, 0x54e3, 0xf477, 0xf478, 0xf479, 0x39fb, 0xf47b, 0xf47c,
- 0xf47d, 0xf47e, 0x64ea, 0xf480, 0xf481, 0x8e68, 0xf483, 0xf484,
- 0xf485, 0xf486, 0x480b, 0xf488, 0x3ffa, 0x5873, 0xf48b, 0xf48c,
- 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0x5579, 0x40bb, 0x43ba,
- 0xf495, 0x4ab4, 0xf497, 0xf498, 0x81aa, 0x98f5, 0xf49b, 0x6379,
- 0x39fe, 0xf49e, 0x8dc0, 0x56a1, 0x647c, 0x3e43, 0xf4a3, 0xf4a4,
- 0xf4a5, 0xf4a6, 0xf4a7, 0xf4a8, 0xf4a9, 0xf4aa, 0x3992, 0x3a06,
- 0xf4ad, 0x3578, 0xf4af, 0xf4b0, 0x5652, 0xf4b2, 0xf4b3, 0xf4b4,
- 0x34bc, 0x6c3d, 0xf4b7, 0xf4b8, 0xf4b9, 0xf4ba, 0xf4bb, 0xf4bc,
- 0xf4bd, 0xf4be, 0xf4bf, 0xf4c0, 0xf4c1, 0x7f93, 0xf4c3, 0xf4c4,
- 0xf4c5, 0x35fb, 0xf4c7, 0xf4c8, 0xf4c9, 0xf4ca, 0x3f93, 0xf4cc,
- 0xf4cd, 0xf4ce, 0xf4cf, 0xf4d0, 0xf4d1, 0xf4d2, 0xf4d3, 0xf4d4,
- 0xf4d5, 0x3ff9, 0xf4d7, 0x6432, 0xf4d9,
- /* 0x8b */
- 0xf4da, 0xf4db, 0xf4dc, 0xf4dd, 0xf4de, 0xf4df, 0xf4e0, 0x3a18,
- 0xf4e2, 0xf4e3, 0xf4e4, 0xf4e5, 0xf4e6, 0xf4e7, 0xf4e8, 0xf4e9,
- 0x95aa, 0x54cc, 0x82c4, 0x55b9, 0xf4ee, 0xf4ef, 0x9c26, 0x9ab6,
- 0xf4f2, 0xf4f3, 0x7140, 0x816d, 0x80ec, 0x5c1c, 0xf4f8, 0x8134,
- 0x3797, 0x535f, 0xf4fc, 0x91b6, 0xf4fe, 0xf4ff, 0xf500, 0xf501,
- 0x35dd, 0xf503, 0x3609, 0xf505, 0x56af, 0xf507, 0xf508, 0xf509,
- 0xf50a, 0xf50b, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510, 0xf511,
- 0x5a54, 0xf513, 0xf514, 0xf515, 0xf516, 0x579c, 0xf518, 0xf519,
- 0xf51a, 0xf51b, 0xf51c, 0xf51d, 0x3703, 0xf51f, 0xf520, 0xf521,
- 0xf522, 0xf523, 0xf524, 0xf525, 0xf526, 0x5899, 0x5268, 0x361a,
- 0xf52a, 0x7bb2, 0x5b68, 0x4800, 0x4b2c, 0x9f27, 0x49e7, 0x9c1f,
- 0x9b8d, 0xf533, 0xf534, 0x55fb, 0x35f2, 0x5689, 0x4e28, 0x5902,
- 0xf53a, 0xf53b, 0x9751, 0xf53d, 0x4e5b, 0x4ebb, 0x353e, 0x5c23,
- 0x5f51, 0x5fc4, 0x38fa, 0x624c, 0x6535, 0x6b7a, 0x6c35, 0x6c3a,
- 0x706c, 0x722b, 0x4e2c, 0x72ad, 0xf54e, 0x7f52, 0x793b, 0x7cf9,
- 0x7f53, 0xf553, 0x34c1, 0xf555, 0xf556, 0x8002, 0x8080, 0xf559,
- 0xf55a, 0x535d, 0x8864, 0x89c1, 0xf55e, 0x8ba0, 0x8d1d, 0x9485,
- 0x9578, 0x957f, 0x95e8, 0xf565, 0x97e6, 0x9875, 0x98ce, 0x98de,
- 0x9963, 0xf56b, 0x9c7c, 0x9e1f, 0x9ec4, 0x6b6f, 0xf907, 0x4e37,
- 0xf572, 0x961d, 0x6237, 0x94a2, 0xf576,
- /* 0x8c */
- 0x503b, 0x6dfe, 0xf579, 0xf57a, 0x3dc9, 0x888f, 0xf57d, 0x7077,
- 0x5cf5, 0x4b20, 0xf581, 0x3559, 0xf583, 0x6122, 0xf585, 0x8fa7,
- 0x91f6, 0x7191, 0x6719, 0x73ba, 0xf58b, 0xf58c, 0x3c8b, 0xf58e,
- 0x4b10, 0x78e4, 0x7402, 0x51ae, 0xf593, 0x4009, 0x6a63, 0xf596,
- 0x4223, 0x860f, 0xf599, 0x7a2a, 0xf59b, 0xf59c, 0x9755, 0x704d,
- 0x5324, 0xf5a0, 0x93f4, 0x76d9, 0xf5a3, 0xf5a4, 0x77dd, 0x4ea3,
- 0x4ff0, 0x50bc, 0x4e2f, 0x4f17, 0xf5ab, 0x5434, 0x7d8b, 0x5892,
- 0x58d0, 0xf5b0, 0x5e92, 0x5e99, 0x5fc2, 0xf5b4, 0x658b, 0xf5b6,
- 0x6919, 0x6a43, 0xf5b9, 0x6cff, 0xf5bb, 0x7200, 0xf5bd, 0x738c,
- 0x3edb, 0xf5c0, 0x5b15, 0x74b9, 0x8b83, 0xf5c4, 0xf5c5, 0x7a93,
- 0x7bec, 0x7cc3, 0x7e6c, 0x82f8, 0x8597, 0xf5cc, 0x8890, 0xf5ce,
- 0x8eb9, 0xf5d0, 0x8fcf, 0x855f, 0x99e0, 0x9221, 0xf5d5, 0xf5d6,
- 0xf5d7, 0x4071, 0x42a2, 0x5a1a, 0xf5db, 0xf5dc, 0xf5dd, 0x9868,
- 0x676b, 0x4276, 0x573d, 0xf5e2, 0x85d6, 0xf5e4, 0x82bf, 0xf5e6,
- 0x4c81, 0xf5e8, 0x5d7b, 0xf5ea, 0xf5eb, 0xf5ec, 0xf5ed, 0x5b96,
- 0xf5ef, 0xf5f0, 0x7e5b, 0xf5f2, 0xf5f3, 0xf5f4, 0xf5f5, 0xf5f6,
- 0xf5f7, 0xf5f8, 0xf5f9, 0xf5fa, 0xf5fb, 0xf5fc, 0xf5fd, 0xf5fe,
- 0xf5ff, 0xf600, 0xf601, 0xf602, 0xf603, 0xf604, 0xf605, 0xf606,
- 0xf607, 0xf608, 0xf609, 0xf60a, 0xf60b, 0xf60c, 0xf60d, 0xf60e,
- 0xf60f, 0xf610, 0xf611, 0xf612, 0xf613,
- /* 0x8d */
- 0xf614, 0xf615, 0xf616, 0xf617, 0xf618, 0xf619, 0xf61a, 0xf61b,
- 0xf61c, 0xf61d, 0xf61e, 0xf61f, 0xf620, 0xf621, 0xf622, 0xf623,
- 0xf624, 0xf625, 0xf626, 0xf627, 0xf628, 0xf629, 0xf62a, 0xf62b,
- 0xf62c, 0xf62d, 0xf62e, 0xf62f, 0xf630, 0xf631, 0xf632, 0xf633,
- 0x5d3e, 0x5d48, 0x5d56, 0x3dfc, 0x380f, 0x5da4, 0x5db9, 0x3820,
- 0x3838, 0x5e42, 0x5ebd, 0x5f25, 0x5f83, 0x3908, 0x3914, 0x393f,
- 0x394d, 0x60d7, 0x613d, 0x5ce5, 0x3989, 0x61b7, 0x61b9, 0x61cf,
- 0x39b8, 0x622c, 0x6290, 0x62e5, 0x6318, 0x39f8, 0x56b1, 0x3a03,
- 0x63e2, 0x63fb, 0x6407, 0x645a, 0x3a4b, 0x64c0, 0x5d15, 0x5621,
- 0x9f9f, 0x3a97, 0x6586, 0x3abd, 0x65ff, 0x6653, 0x3af2, 0x6692,
- 0x3b22, 0x6716, 0x3b42, 0x67a4, 0x6800, 0x3b58, 0x684a, 0x6884,
- 0x3b72, 0x3b71, 0x3b7b, 0x6909, 0x6943, 0x725c, 0x6964, 0x699f,
- 0x6985, 0x3bbc, 0x69d6, 0x3bdd, 0x6a65, 0x6a74, 0x6a71, 0x6a82,
- 0x3bec, 0x6a99, 0x3bf2, 0x6aab, 0x6ab5, 0x6ad4, 0x6af6, 0x6b81,
- 0x6bc1, 0x6bea, 0x6c75, 0x6caa, 0x3ccb, 0x6d02, 0x6d06, 0x6d26,
- 0x6d81, 0x3cef, 0x6da4, 0x6db1, 0x6e15, 0x6e18, 0x6e29, 0x6e86,
- 0xf694, 0x6ebb, 0x6ee2, 0x6eda, 0x9f7f, 0x6ee8, 0x6ee9, 0x6f24,
- 0x6f34, 0x3d46, 0xf69e, 0x6f81, 0x6fbe, 0x3d6a, 0x3d75, 0x71b7,
- 0x5c99, 0x3d8a, 0x702c, 0x3d91, 0x7050, 0x7054, 0x706f, 0x707f,
- 0x7089, 0xf6ad, 0x43c1, 0x35f1, 0xf6b0,
- /* 0x8e */
- 0xe311, 0x57be, 0xe313, 0x713e, 0xe315, 0x364e, 0x69a2, 0xe318,
- 0x5b74, 0x7a49, 0xe31b, 0xe31c, 0x7a65, 0x7a7d, 0xe31f, 0x7abb,
- 0x7ab0, 0x7ac2, 0x7ac3, 0x71d1, 0xe325, 0x41ca, 0x7ada, 0x7add,
- 0x7aea, 0x41ef, 0x54b2, 0xe32c, 0x7b0b, 0x7b55, 0x7b29, 0xe330,
- 0xe331, 0x7ba2, 0x7b6f, 0x839c, 0xe335, 0xe336, 0x7bd0, 0x8421,
- 0x7b92, 0x7bb8, 0xe33b, 0x3dad, 0xe33d, 0x8492, 0x7bfa, 0x7c06,
- 0x7c35, 0xe342, 0x7c44, 0x7c83, 0xe345, 0x7ca6, 0x667d, 0xe348,
- 0x7cc9, 0x7cc7, 0x7ce6, 0x7c74, 0x7cf3, 0x7cf5, 0x7cce, 0x7e67,
- 0x451d, 0xe352, 0x7d5d, 0xe354, 0x748d, 0x7d89, 0x7dab, 0x7135,
- 0x7db3, 0x7dd2, 0xe35b, 0xe35c, 0x7de4, 0x3d13, 0x7df5, 0xe360,
- 0x7de5, 0xe362, 0x7e1d, 0xe364, 0xe365, 0x7e6e, 0x7e92, 0x432b,
- 0x946c, 0x7e27, 0x7f40, 0x7f41, 0x7f47, 0x7936, 0xe36f, 0x99e1,
- 0x7f97, 0xe372, 0x7fa3, 0xe374, 0xe375, 0x455c, 0xe377, 0x4503,
- 0xe379, 0x7ffa, 0xe37b, 0x8005, 0x8008, 0x801d, 0x8028, 0x802f,
- 0xe381, 0xe382, 0x803b, 0x803c, 0x8061, 0xe386, 0x4989, 0xe388,
- 0xe389, 0xe38a, 0x6725, 0x80a7, 0xe38d, 0x8107, 0x811a, 0x58b0,
- 0xe391, 0x6c7f, 0xe393, 0xe394, 0x64e7, 0xe396, 0x8218, 0xe398,
- 0x6a53, 0xe39a, 0xe39b, 0x447a, 0x8229, 0xe39e, 0xe39f, 0xe3a0,
- 0x4ff9, 0xe3a2, 0x84e2, 0x8362, 0xe3a5, 0xe3a6, 0xe3a7, 0xe3a8,
- 0xe3a9, 0x82aa, 0x691b, 0xe3ac, 0x41db,
- /* 0x8f */
- 0x854b, 0x82d0, 0x831a, 0xe3b1, 0xe3b2, 0x36c1, 0xe3b4, 0xe3b5,
- 0x827b, 0x82e2, 0x8318, 0xe3b9, 0xe3ba, 0xe3bb, 0xe3bc, 0xe3bd,
- 0x3dbf, 0x831d, 0x55ec, 0x8385, 0x450b, 0xe3c3, 0x83ac, 0x83c1,
- 0x83d3, 0x347e, 0xe3c8, 0x6a57, 0x855a, 0x3496, 0xe3cc, 0xe3cd,
- 0x8458, 0xe3cf, 0x8471, 0x3dd3, 0x44e4, 0x6aa7, 0x844a, 0xe3d5,
- 0x7958, 0x84a8, 0xe3d8, 0xe3d9, 0xe3da, 0x84de, 0x840f, 0x8391,
- 0x44a0, 0x8493, 0x84e4, 0xe3e1, 0x4240, 0xe3e3, 0x4543, 0x8534,
- 0x5af2, 0xe3e7, 0x4527, 0x8573, 0x4516, 0x67bf, 0x8616, 0xe3ed,
- 0xe3ee, 0x85c1, 0xe3f0, 0x8602, 0xe3f2, 0xe3f3, 0xe3f4, 0x456a,
- 0x8628, 0x3648, 0xe3f8, 0x53f7, 0xe3fa, 0x867e, 0x8771, 0xe3fd,
- 0x87ee, 0xe3ff, 0x87b1, 0x87da, 0x880f, 0x5661, 0x866c, 0x6856,
- 0x460f, 0x8845, 0x8846, 0xe409, 0xe40a, 0xe40b, 0x885e, 0x889c,
- 0x465b, 0x88b4, 0x88b5, 0x63c1, 0x88c5, 0x7777, 0xe414, 0x8987,
- 0x898a, 0x89a6, 0x89a9, 0x89a7, 0x89bc, 0xe41b, 0x89e7, 0xe41d,
- 0xe41e, 0x8a9c, 0x7793, 0x91fe, 0x8a90, 0xe423, 0x7ae9, 0xe425,
- 0xe426, 0x4713, 0xe428, 0x717c, 0x8b0c, 0x8b1f, 0xe42c, 0xe42d,
- 0x8b3f, 0x8b4c, 0x8b4d, 0x8aa9, 0xe432, 0x8b90, 0x8b9b, 0x8aaf,
- 0xe436, 0x4615, 0x884f, 0x8c9b, 0xe43a, 0xe43b, 0xe43c, 0x3725,
- 0xe43e, 0x8cd6, 0xe440, 0xe441, 0x8d12, 0x8d03, 0xe444, 0x8cdb,
- 0x705c, 0x8d11, 0xe448, 0x3ed0, 0x8d77,
- /* 0x90 */
- 0x8da9, 0xe44c, 0xe44d, 0xe44e, 0x3b7c, 0xe450, 0xe451, 0x7ae7,
- 0x8ead, 0x8eb6, 0x8ec3, 0x92d4, 0x8f19, 0x8f2d, 0xe459, 0xe45a,
- 0x8fa5, 0x9303, 0xe45d, 0xe45e, 0x8fb3, 0x492a, 0xe461, 0xe462,
- 0xe463, 0x5ef8, 0xe465, 0x8ff9, 0xe467, 0xe468, 0xe469, 0xe46a,
- 0x3980, 0xe46c, 0x9037, 0xe46e, 0xe46f, 0x9061, 0xe471, 0xe472,
- 0x90a8, 0xe474, 0x90c4, 0xe476, 0x90ae, 0x90fd, 0x9167, 0x3af0,
- 0x91a9, 0x91c4, 0x7cac, 0xe47e, 0xe47f, 0x920e, 0x6c9f, 0x9241,
- 0x9262, 0xe484, 0x92b9, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a,
- 0x932c, 0x936b, 0xe48d, 0xe48e, 0x708f, 0x5ac3, 0xe491, 0xe492,
- 0x4965, 0x9244, 0xe495, 0xe496, 0xe497, 0x9373, 0x945b, 0x8ebc,
- 0x9585, 0x95a6, 0x9426, 0x95a0, 0x6ff6, 0x42b9, 0xe4a1, 0xe4a2,
- 0xe4a3, 0xe4a4, 0x49df, 0x6c1c, 0x967b, 0x9696, 0x416c, 0x96a3,
- 0xe4ab, 0x61da, 0x96b6, 0x78f5, 0xe4af, 0x96bd, 0x53cc, 0x49a1,
- 0xe4b3, 0xe4b4, 0xe4b5, 0xe4b6, 0xe4b7, 0xe4b8, 0xe4b9, 0xe4ba,
- 0x9731, 0x8642, 0x9736, 0x4a0f, 0x453d, 0x4585, 0xe4c1, 0x7075,
- 0x5b41, 0x971b, 0x975c, 0xe4c6, 0x9757, 0x5b4a, 0xe4c9, 0x975f,
- 0x9425, 0x50d0, 0xe4cd, 0xe4ce, 0x9789, 0x979f, 0x97b1, 0x97be,
- 0x97c0, 0x97d2, 0x97e0, 0xe4d6, 0x97ee, 0x741c, 0xe4d9, 0x97ff,
- 0x97f5, 0xe4dc, 0xe4dd, 0x4ad1, 0x9834, 0x9833, 0x984b, 0x9866,
- 0x3b0e, 0xe4e4, 0x3d51, 0xe4e6, 0xe4e7,
- /* 0x91 */
- 0xe4e8, 0x98ca, 0x98b7, 0x98c8, 0x98c7, 0x4aff, 0xe4ee, 0xe4ef,
- 0x55b0, 0x98e1, 0x98e6, 0x98ec, 0x9378, 0x9939, 0xe4f6, 0x4b72,
- 0xe4f8, 0xe4f9, 0x99f5, 0x9a0c, 0x9a3b, 0x9a10, 0x9a58, 0xe4ff,
- 0x36c4, 0xe501, 0xe502, 0x9ae0, 0x9ae2, 0xe505, 0x9af4, 0x4c0e,
- 0x9b14, 0x9b2d, 0xe50a, 0x5034, 0x9b34, 0xe50d, 0x38c3, 0xe50f,
- 0x9b50, 0x9b40, 0xe512, 0x5a45, 0xe514, 0x9b8e, 0xe516, 0x9c02,
- 0x9bff, 0x9c0c, 0xe51a, 0x9dd4, 0xe51c, 0xe51d, 0xe51e, 0xe51f,
- 0xe520, 0xe521, 0x9d7e, 0x9d83, 0xe524, 0x9e0e, 0x6888, 0x9dc4,
- 0xe528, 0xe529, 0xe52a, 0xe52b, 0xe52c, 0x9d39, 0xe52e, 0xe52f,
- 0x9e90, 0x9e95, 0x9e9e, 0x9ea2, 0x4d34, 0x9eaa, 0x9eaf, 0xe537,
- 0x9ec1, 0x3b60, 0x39e5, 0x3d1d, 0x4f32, 0x37be, 0xe53e, 0x9f02,
- 0x9f08, 0x4b96, 0x9424, 0xe543, 0x9f17, 0x9f16, 0x9f39, 0x569f,
- 0x568a, 0x9f45, 0x99b8, 0xe54b, 0x97f2, 0x847f, 0x9f62, 0x9f69,
- 0x7adc, 0x9f8e, 0x7216, 0x4bbe, 0xe554, 0xe555, 0x7177, 0xe557,
- 0xe558, 0xe559, 0x739e, 0xe55b, 0xe55c, 0x799f, 0xe55e, 0xe55f,
- 0x9369, 0x93f3, 0xe562, 0x92ec, 0x9381, 0x93cb, 0xe566, 0xe567,
- 0x7217, 0x3eeb, 0x7772, 0x7a43, 0x70d0, 0xe56d, 0xe56e, 0x717e,
- 0xe570, 0x70a3, 0xe572, 0xe573, 0x3ec7, 0xe575, 0xe576, 0xe577,
- 0x3722, 0xe579, 0xe57a, 0x36e1, 0xe57c, 0xe57d, 0xe57e, 0x3723,
- 0xe580, 0x575b, 0xe582, 0xe583, 0xe584,
- /* 0x92 */
- 0xe585, 0xe586, 0x8503, 0xe588, 0x8503, 0x8455, 0xe58b, 0xe58c,
- 0xe58d, 0xe58e, 0xe58f, 0xe590, 0x44f4, 0xe592, 0xe593, 0xe594,
- 0x67f9, 0x3733, 0x3c15, 0x3de7, 0x586c, 0xe59a, 0x6810, 0x4057,
- 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe5a1, 0x54cb, 0x569e, 0xe5a4,
- 0x5692, 0xe5a6, 0xe5a7, 0xe5a8, 0x93c6, 0xe5aa, 0x939c, 0x4ef8,
- 0x512b, 0x3819, 0xe5af, 0x4ebc, 0xe5b1, 0xe5b2, 0x4f4b, 0x4f8a,
- 0xe5b5, 0x5a68, 0xe5b7, 0xe5b8, 0x3999, 0xe5ba, 0xe5bb, 0x3435,
- 0x4f29, 0xe5be, 0xe5bf, 0xe5c0, 0x8ada, 0xe5c2, 0x4e98, 0x50cd,
- 0x510d, 0x4fa2, 0x4f03, 0xe5c8, 0xe5c9, 0x4f42, 0x502e, 0x506c,
- 0x5081, 0x4fcc, 0x4fe5, 0x5058, 0x50fc, 0x5159, 0x515b, 0x515d,
- 0x515e, 0x6e76, 0xe5d7, 0xe5d8, 0xe5d9, 0x6d72, 0xe5db, 0xe5dc,
- 0x51a8, 0x51c3, 0xe5df, 0x44dd, 0xe5e1, 0xe5e2, 0xe5e3, 0x8d7a,
- 0xe5e5, 0xe5e6, 0x5259, 0x52a4, 0xe5e9, 0x52e1, 0x936e, 0x467a,
- 0x718c, 0xe5ee, 0xe5ef, 0xe5f0, 0xe5f1, 0x69d1, 0xe5f3, 0x7479,
- 0x3ede, 0x7499, 0x7414, 0x7456, 0x7398, 0x4b8e, 0xe5fb, 0xe5fc,
- 0x53d0, 0x3584, 0x720f, 0xe600, 0x55b4, 0xe602, 0x54cd, 0xe604,
- 0x571d, 0x925d, 0x96f4, 0x9366, 0x57dd, 0x578d, 0x577f, 0x363e,
- 0x58cb, 0x5a99, 0xe60f, 0xe610, 0xe611, 0xe612, 0x5a2c, 0x59b8,
- 0x928f, 0x5a7e, 0x5acf, 0x5a12, 0xe619, 0xe61a, 0xe61b, 0xe61c,
- 0x36f5, 0x6d05, 0x7443, 0x5a21, 0xe621,
- /* 0x93 */
- 0x5a81, 0xe623, 0xe624, 0x93e0, 0x748c, 0xe627, 0x7105, 0x4972,
- 0x9408, 0xe62b, 0x93bd, 0x37a0, 0x5c1e, 0x5c9e, 0x5e5e, 0x5e48,
- 0xe632, 0xe633, 0xe634, 0x5ecd, 0x5b4f, 0xe637, 0xe638, 0x3701,
- 0xe63a, 0x36dd, 0xe63c, 0x36d3, 0x812a, 0xe63f, 0xe640, 0xe641,
- 0xe642, 0x5f0c, 0x5f0e, 0xe645, 0xe646, 0x5a6b, 0xe648, 0x5b44,
- 0x8614, 0xe64b, 0x8860, 0x607e, 0xe64e, 0xe64f, 0x5fdb, 0x3eb8,
- 0xe652, 0xe653, 0xe654, 0xe655, 0x61c0, 0xe657, 0xe658, 0xe659,
- 0x6199, 0x6198, 0x6075, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0x6471,
- 0xe662, 0xe663, 0x3a29, 0xe665, 0xe666, 0xe667, 0xe668, 0x6337,
- 0xe66a, 0x64b6, 0x6331, 0x63d1, 0xe66e, 0xe66f, 0x62a4, 0xe671,
- 0x643b, 0x656b, 0x6972, 0x3bf4, 0xe676, 0xe677, 0xe678, 0xe679,
- 0x550d, 0xe67b, 0xe67c, 0xe67d, 0x66ce, 0xe67f, 0xe680, 0x3ae0,
- 0x4190, 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0x78ee,
- 0xe68a, 0xe68b, 0xe68c, 0x3464, 0xe68e, 0xe68f, 0xe690, 0x668e,
- 0xe692, 0x666b, 0x4b93, 0x6630, 0xe696, 0xe697, 0x6663, 0xe699,
- 0xe69a, 0x661e, 0xe69c, 0x38d1, 0xe69e, 0xe69f, 0x3b99, 0xe6a1,
- 0xe6a2, 0x74d0, 0x3b96, 0x678f, 0xe6a6, 0x68b6, 0x681e, 0x3bc4,
- 0x6abe, 0x3863, 0xe6ac, 0xe6ad, 0x6a33, 0x6a52, 0x6ac9, 0x6b05,
- 0xe6b2, 0x6511, 0x6898, 0x6a4c, 0x3bd7, 0x6a7a, 0x6b57, 0xe6b9,
- 0xe6ba, 0x93a0, 0x92f2, 0xe6bd, 0xe6be,
- /* 0x94 */
- 0x9289, 0xe6c0, 0xe6c1, 0x9467, 0x6da5, 0x6f0b, 0xe6c5, 0x6d67,
- 0xe6c7, 0x3d8f, 0x6e04, 0xe6ca, 0x5a3d, 0x6e0a, 0x5847, 0x6d24,
- 0x7842, 0x713b, 0xe6d1, 0xe6d2, 0x70f1, 0x7250, 0x7287, 0x7294,
- 0xe6d7, 0xe6d8, 0x5179, 0xe6da, 0xe6db, 0x747a, 0xe6dd, 0xe6de,
- 0xe6df, 0xe6e0, 0xe6e1, 0x3f06, 0x3eb1, 0xe6e4, 0xe6e5, 0xe6e6,
- 0x60a7, 0x3ef3, 0x74cc, 0x743c, 0x9387, 0x7437, 0x449f, 0xe6ee,
- 0x4551, 0x7583, 0x3f63, 0xe6f2, 0xe6f3, 0x3f58, 0x7555, 0x7673,
- 0xe6f7, 0x3b19, 0x7468, 0xe6fa, 0xe6fb, 0xe6fc, 0x3afb, 0x3dcd,
- 0xe6ff, 0x3eff, 0xe701, 0xe702, 0x91fa, 0x5732, 0x9342, 0xe706,
- 0xe707, 0x50df, 0xe709, 0xe70a, 0x7778, 0xe70c, 0x770e, 0x770f,
- 0x777b, 0xe710, 0xe711, 0x3a5e, 0xe713, 0x7438, 0x749b, 0x3ebf,
- 0xe717, 0xe718, 0x40c8, 0xe71a, 0xe71b, 0x9307, 0xe71d, 0x781e,
- 0x788d, 0x7888, 0x78d2, 0x73d0, 0x7959, 0xe724, 0xe725, 0x410e,
- 0x799b, 0x8496, 0x79a5, 0x6a2d, 0xe72b, 0x7a3a, 0x79f4, 0x416e,
- 0xe72f, 0x4132, 0x9235, 0x79f1, 0xe733, 0xe734, 0xe735, 0xe736,
- 0xe737, 0x3597, 0x556b, 0x3570, 0x36aa, 0xe73c, 0xe73d, 0x7ae2,
- 0x5a59, 0xe740, 0xe741, 0xe742, 0x5a0d, 0xe744, 0x78f0, 0x5a2a,
- 0xe747, 0x7afe, 0x41f9, 0x7c5d, 0x7c6d, 0x4211, 0xe74d, 0xe74e,
- 0xe74f, 0x7ccd, 0xe751, 0xe752, 0x7c8e, 0x7c7c, 0x7cae, 0x6ab2,
- 0x7ddc, 0x7e07, 0x7dd3, 0x7f4e, 0xe75b,
- /* 0x95 */
- 0xe75c, 0xe75d, 0x7d97, 0xe75f, 0x426a, 0xe761, 0xe762, 0x67d6,
- 0xe764, 0xe765, 0x57c4, 0xe767, 0xe768, 0xe769, 0x7fdd, 0x7b27,
- 0xe76c, 0xe76d, 0xe76e, 0x7b0c, 0xe770, 0x99e6, 0x8645, 0x9a63,
- 0x6a1c, 0xe775, 0x39e2, 0xe777, 0xe778, 0x9a1f, 0xe77a, 0x8480,
- 0xe77c, 0xe77d, 0x44ea, 0x8137, 0x4402, 0x80c6, 0x8109, 0x8142,
- 0xe784, 0x98c3, 0xe786, 0x8262, 0x8265, 0xe789, 0x8453, 0xe78b,
- 0x8610, 0xe78d, 0x5a86, 0x417f, 0xe790, 0x5b2b, 0xe792, 0x5ae4,
- 0xe794, 0x86a0, 0xe796, 0xe797, 0x882d, 0xe799, 0x5a02, 0x886e,
- 0x4f45, 0x8887, 0x88bf, 0x88e6, 0x8965, 0x894d, 0xe7a2, 0x8954,
- 0xe7a4, 0xe7a5, 0xe7a6, 0xe7a7, 0xe7a8, 0xe7a9, 0x3ead, 0x84a3,
- 0x46f5, 0x46cf, 0x37f2, 0x8a3d, 0x8a1c, 0xe7b1, 0x5f4d, 0x922b,
- 0xe7b4, 0x65d4, 0x7129, 0x70c4, 0xe7b8, 0x9d6d, 0x8c9f, 0x8ce9,
- 0xe7bc, 0x599a, 0x77c3, 0x59f0, 0x436e, 0x36d4, 0x8e2a, 0x8ea7,
- 0xe7c4, 0x8f30, 0x8f4a, 0x42f4, 0x6c58, 0x6fbb, 0xe7ca, 0x489b,
- 0x6f79, 0x6e8b, 0xe7ce, 0x9be9, 0x36b5, 0xe7d1, 0x90bb, 0x9097,
- 0x5571, 0x4906, 0x91bb, 0x9404, 0xe7d8, 0x4062, 0xe7da, 0x9427,
- 0xe7dc, 0xe7dd, 0x84e5, 0x8a2b, 0x9599, 0x95a7, 0x9597, 0x9596,
- 0xe7e4, 0x7445, 0x3ec2, 0xe7e7, 0xe7e8, 0xe7e9, 0x3ee7, 0xe7eb,
- 0x968f, 0xe7ed, 0xe7ee, 0xe7ef, 0x3ecc, 0xe7f1, 0xe7f2, 0xe7f3,
- 0x7412, 0x746b, 0x3efc, 0x9741, 0xe7f8,
- /* 0x96 */
- 0x6847, 0x4a1d, 0xe7fb, 0xe7fc, 0x975d, 0x9368, 0xe7ff, 0xe800,
- 0xe801, 0xe802, 0x92ba, 0x5b11, 0x8b69, 0x493c, 0x73f9, 0xe808,
- 0x979b, 0x9771, 0x9938, 0xe80c, 0x5dc1, 0xe80e, 0xe80f, 0x981f,
- 0xe811, 0x92f6, 0xe813, 0x91e5, 0x44c0, 0xe816, 0xe817, 0xe818,
- 0x98dc, 0xe81a, 0x3f00, 0x922a, 0x4925, 0x8414, 0x993b, 0x994d,
- 0xe821, 0x3dfd, 0x999b, 0x4b6f, 0x99aa, 0x9a5c, 0xe827, 0xe828,
- 0x6a8f, 0x9a21, 0x5afe, 0x9a2f, 0xe82d, 0x4b90, 0xe82f, 0x99bc,
- 0x4bbd, 0x4b97, 0x937d, 0x5872, 0xe835, 0x5822, 0xe837, 0xe838,
- 0x7844, 0xe83a, 0xe83b, 0x68c5, 0x3d7d, 0x9458, 0x3927, 0x6150,
- 0xe841, 0xe842, 0x6107, 0x9c4f, 0x9c53, 0x9c7b, 0x9c35, 0x9c10,
- 0x9b7f, 0x9bcf, 0xe84b, 0x9b9f, 0xe84d, 0xe84e, 0x9d21, 0x4cae,
- 0xe851, 0x9e18, 0x4cb0, 0x9d0c, 0xe855, 0xe856, 0xe857, 0xe858,
- 0x9da5, 0x84bd, 0xe85b, 0xe85c, 0xe85d, 0x85fc, 0x4533, 0xe860,
- 0xe861, 0xe862, 0x8420, 0x85ee, 0xe865, 0xe866, 0xe867, 0x79e2,
- 0xe869, 0xe86a, 0x492d, 0xe86c, 0x3d62, 0x93db, 0x92be, 0x9348,
- 0xe871, 0x78b9, 0x9277, 0x944d, 0x4fe4, 0x3440, 0x9064, 0xe878,
- 0x783d, 0x7854, 0x78b6, 0x784b, 0xe87d, 0xe87e, 0xe87f, 0x369a,
- 0x4f72, 0x6fda, 0x6fd9, 0x701e, 0x701e, 0x5414, 0xe887, 0x57bb,
- 0x58f3, 0x578a, 0x9d16, 0x57d7, 0x7134, 0x34af, 0xe88f, 0x71eb,
- 0xe891, 0xe892, 0x5b28, 0xe894, 0xe895,
- /* 0x97 */
- 0x610c, 0x5ace, 0x5a0b, 0x42bc, 0xe89a, 0x372c, 0x4b7b, 0xe89d,
- 0x93bb, 0x93b8, 0xe8a0, 0xe8a1, 0x8472, 0xe8a3, 0xe8a4, 0xe8a5,
- 0xe8a6, 0xe8a7, 0x5994, 0xe8a9, 0xe8aa, 0x7da8, 0xe8ac, 0xe8ad,
- 0xe8ae, 0xe8af, 0xe8b0, 0x92e5, 0x73e2, 0x3ee9, 0x74b4, 0xe8b5,
- 0xe8b6, 0x3ee1, 0xe8b8, 0x6ad8, 0x73f3, 0x73fb, 0x3ed6, 0xe8bd,
- 0xe8be, 0xe8bf, 0xe8c0, 0xe8c1, 0xe8c2, 0xe8c3, 0x7448, 0xe8c5,
- 0x70a5, 0xe8c7, 0x9284, 0x73e6, 0x935f, 0xe8cb, 0x9331, 0xe8cd,
- 0xe8ce, 0x9386, 0xe8d0, 0xe8d1, 0x4935, 0xe8d3, 0x716b, 0xe8d5,
- 0xe8d6, 0x56a4, 0xe8d8, 0xe8d9, 0xe8da, 0x5502, 0x79c4, 0xe8dd,
- 0x7dfe, 0xe8df, 0xe8e0, 0xe8e1, 0x452e, 0x9401, 0x370a, 0xe8e5,
- 0xe8e6, 0x59b0, 0xe8e8, 0xe8e9, 0xe8ea, 0x5aa1, 0x36e2, 0xe8ed,
- 0x36b0, 0x925f, 0x5a79, 0xe8f1, 0xe8f2, 0x9374, 0x3ccd, 0xe8f5,
- 0x4a96, 0x398a, 0x50f4, 0x3d69, 0x3d4c, 0xe8fb, 0x7175, 0x42fb,
- 0xe8fe, 0x6e0f, 0xe900, 0x44eb, 0x6d57, 0xe903, 0x7067, 0x6caf,
- 0x3cd6, 0xe907, 0xe908, 0x6e02, 0x6f0c, 0x3d6f, 0xe90c, 0x7551,
- 0x36bc, 0x34c8, 0x4680, 0x3eda, 0x4871, 0x59c4, 0x926e, 0x493e,
- 0x8f41, 0xe917, 0xe918, 0x5812, 0x57c8, 0x36d6, 0xe91c, 0x70fe,
- 0xe91e, 0xe91f, 0xe920, 0xe921, 0xe922, 0x68b9, 0x6967, 0xe925,
- 0xe926, 0xe927, 0xe928, 0xe929, 0xe92a, 0xe92b, 0xe92c, 0x6a1a,
- 0xe92e, 0xe92f, 0x843e, 0x44df, 0x44ce,
- /* 0x98 */
- 0xe933, 0xe934, 0xe935, 0xe936, 0x6f17, 0xe938, 0x833d, 0xe93a,
- 0x83ed, 0xe93c, 0xe93d, 0xe93e, 0x5989, 0x5a82, 0xe941, 0x5a61,
- 0x5a71, 0xe944, 0xe945, 0x372d, 0x59ef, 0xe948, 0x36c7, 0x718e,
- 0x9390, 0x669a, 0xe94d, 0x5a6e, 0x5a2b, 0xe950, 0x6a2b, 0xe952,
- 0xe953, 0xe954, 0xe955, 0x711d, 0xe957, 0xe958, 0x4fb0, 0xe95a,
- 0x5cc2, 0xe95c, 0xe95d, 0xe95e, 0x6a0c, 0xe960, 0xe961, 0x70a6,
- 0x7133, 0xe964, 0x3da5, 0x6cdf, 0xe967, 0xe968, 0x7e65, 0x59eb,
- 0x5d2f, 0x3df3, 0x5f5c, 0xe96e, 0xe96f, 0x7da4, 0x8426, 0x5485,
- 0xe973, 0xe974, 0xe975, 0x577e, 0xe977, 0xe978, 0x3fe5, 0xe97a,
- 0xe97b, 0x7003, 0xe97d, 0x5d70, 0x738f, 0x7cd3, 0xe981, 0xe982,
- 0x4fc8, 0x7fe7, 0x72cd, 0x7310, 0xe987, 0x7338, 0x7339, 0xe98a,
- 0x7341, 0x7348, 0x3ea9, 0xe98e, 0x906c, 0x71f5, 0xe991, 0x73e1,
- 0x81f6, 0x3eca, 0x770c, 0x3ed1, 0x6ca2, 0x56fd, 0x7419, 0x741e,
- 0x741f, 0x3ee2, 0x3ef0, 0x3ef4, 0x3efa, 0x74d3, 0x3f0e, 0x3f53,
- 0x7542, 0x756d, 0x7572, 0x758d, 0x3f7c, 0x75c8, 0x75dc, 0x3fc0,
- 0x764d, 0x3fd7, 0x7674, 0x3fdc, 0x767a, 0xe9b0, 0x7188, 0x5623,
- 0x8980, 0x5869, 0x401d, 0x7743, 0x4039, 0x6761, 0x4045, 0x35db,
- 0x7798, 0x406a, 0x406f, 0x5c5e, 0x77be, 0x77cb, 0x58f2, 0x7818,
- 0x70b9, 0x781c, 0x40a8, 0x7839, 0x7847, 0x7851, 0x7866, 0x8448,
- 0xe9cb, 0x7933, 0x6803, 0x7932, 0x4103,
- /* 0x99 */
- 0x4109, 0x7991, 0x7999, 0x8fbb, 0x7a06, 0x8fbc, 0x4167, 0x7a91,
- 0x41b2, 0x7abc, 0x8279, 0x41c4, 0x7acf, 0x7adb, 0x41cf, 0x4e21,
- 0x7b62, 0x7b6c, 0x7b7b, 0x7c12, 0x7c1b, 0x4260, 0x427a, 0x7c7b,
- 0x7c9c, 0x428c, 0x7cb8, 0x4294, 0x7ced, 0x8f93, 0x70c0, 0xe9ef,
- 0x7dcf, 0x7dd4, 0x7dd0, 0x7dfd, 0x7fae, 0x7fb4, 0x729f, 0x4397,
- 0x8020, 0x8025, 0x7b39, 0x802e, 0x8031, 0x8054, 0x3dcc, 0x57b4,
- 0x70a0, 0x80b7, 0x80e9, 0x43ed, 0x810c, 0x732a, 0x810e, 0x8112,
- 0x7560, 0x8114, 0x4401, 0x3b39, 0x8156, 0x8159, 0x815a, 0x4413,
- 0x583a, 0x817c, 0x8184, 0x4425, 0x8193, 0x442d, 0x81a5, 0x57ef,
- 0x81c1, 0x81e4, 0x8254, 0x448f, 0x82a6, 0x8276, 0x82ca, 0x82d8,
- 0x82ff, 0x44b0, 0x8357, 0x9669, 0x698a, 0x8405, 0x70f5, 0x8464,
- 0x60e3, 0x8488, 0x4504, 0x84be, 0x84e1, 0x84f8, 0x8510, 0x8538,
- 0x8552, 0x453b, 0x856f, 0x8570, 0x85e0, 0x4577, 0x8672, 0x8692,
- 0x86b2, 0x86ef, 0x9645, 0x878b, 0x4606, 0x4617, 0x88ae, 0x88ff,
- 0x8924, 0x8947, 0x8991, 0xea43, 0x8a29, 0x8a38, 0x8a94, 0x8ab4,
- 0x8c51, 0x8cd4, 0x8cf2, 0x8d1c, 0x4798, 0x585f, 0x8dc3, 0x47ed,
- 0x4eee, 0x8e3a, 0x55d8, 0x5754, 0x8e71, 0x55f5, 0x8eb0, 0x4837,
- 0x8ece, 0x8ee2, 0x8ee4, 0x8eed, 0x8ef2, 0x8fb7, 0x8fc1, 0x8fca,
- 0x8fcc, 0x9033, 0x99c4, 0x48ad, 0x98e0, 0x9213, 0x491e, 0x9228,
- 0x9258, 0x926b, 0x92b1, 0x92ae, 0x92bf,
- /* 0x9a */
- 0x92e3, 0x92eb, 0x92f3, 0x92f4, 0x92fd, 0x9343, 0x9384, 0x93ad,
- 0x4945, 0x4951, 0x9ebf, 0x9417, 0x5301, 0x941d, 0x942d, 0x943e,
- 0x496a, 0x9454, 0x9479, 0x952d, 0x95a2, 0x49a7, 0x95f4, 0x9633,
- 0x49e5, 0x67a0, 0x4a24, 0x9740, 0x4a35, 0x97b2, 0x97c2, 0x5654,
- 0x4ae4, 0x60e8, 0x98b9, 0x4b19, 0x98f1, 0x5844, 0x990e, 0x9919,
- 0x51b4, 0x991c, 0x9937, 0x9942, 0x995d, 0x9962, 0x4b70, 0x99c5,
- 0x4b9d, 0x9a3c, 0x9b0f, 0x7a83, 0x9b69, 0x9b81, 0x9bdd, 0x9bf1,
- 0x9bf4, 0x4c6d, 0x9c20, 0x376f, 0xeaa9, 0x9d49, 0x9c3a, 0x9efe,
- 0x5650, 0x9d93, 0x9dbd, 0x9dc0, 0x9dfc, 0x94f6, 0x8fb6, 0x9e7b,
- 0x9eac, 0x9eb1, 0x9ebd, 0x9ec6, 0x94dc, 0x9ee2, 0x9ef1, 0x9ef8,
- 0x7ac8, 0x9f44, 0xeabf, 0xeac0, 0xeac1, 0x691a, 0x94c3, 0x59ac,
- 0xeac5, 0x5840, 0x94c1, 0x37b9, 0xeac9, 0xeaca, 0xeacb, 0xeacc,
- 0x5757, 0x7173, 0xeacf, 0xead0, 0xead1, 0x546a, 0xead3, 0xead4,
- 0x549e, 0xead6, 0xead7, 0xead8, 0xead9, 0xeada, 0x60e7, 0xeadc,
- 0x567a, 0xeade, 0xeadf, 0xeae0, 0xeae1, 0xeae2, 0xeae3, 0x6955,
- 0x9c2f, 0x87a5, 0xeae7, 0xeae8, 0xeae9, 0xeaea, 0xeaeb, 0xeaec,
- 0x5c20, 0xeaee, 0x5e0b, 0xeaf0, 0xeaf1, 0xeaf2, 0x671e, 0xeaf4,
- 0xeaf5, 0xeaf6, 0x3647, 0xeaf8, 0xeaf9, 0xeafa, 0xeafb, 0x5364,
- 0x84ad, 0xeafe, 0xeaff, 0xeb00, 0x8b81, 0xeb02, 0xeb03, 0xeb04,
- 0xeb05, 0x4e78, 0x70bb, 0xeb08, 0xeb09,
- /* 0x9b */
- 0xeb0a, 0xeb0b, 0xeb0c, 0xeb0d, 0xeb0e, 0xeb0f, 0x62c3, 0xeb11,
- 0xeb12, 0x7198, 0x6855, 0xeb15, 0x69e9, 0x36c8, 0xeb18, 0xeb19,
- 0xeb1a, 0xeb1b, 0xeb1c, 0xeb1d, 0x82fd, 0xeb1f, 0xeb20, 0xeb21,
- 0x89a5, 0xeb23, 0x8fa0, 0xeb25, 0x97b8, 0xeb27, 0x9847, 0x9abd,
- 0xeb2a, 0xeb2b, 0xeb2c, 0xeb2d, 0xeb2e, 0xeb2f, 0xeb30, 0xeb31,
- 0xeb32, 0xeb33, 0xeb34, 0xeb35, 0xeb36, 0xeb37, 0xeb38, 0xeb39,
- 0x5fb1, 0x6648, 0x66bf, 0xeb3d, 0xeb3e, 0xeb3f, 0x7201, 0xeb41,
- 0x77d7, 0xeb43, 0xeb44, 0x7e87, 0xeb46, 0x58b5, 0x670e, 0x6918,
- 0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0x48d0,
- 0x4ab8, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59,
- 0xeb5a, 0xeb5b, 0x51d2, 0xeb5d, 0x599f, 0xeb5f, 0x3bbe, 0xeb61,
- 0xeb62, 0xeb63, 0x5788, 0xeb65, 0x399b, 0xeb67, 0xeb68, 0xeb69,
- 0x3762, 0xeb6b, 0x8b5e, 0xeb6d, 0x99d6, 0xeb6f, 0xeb70, 0xeb71,
- 0x7209, 0xeb73, 0xeb74, 0x5965, 0xeb76, 0xeb77, 0xeb78, 0x8eda,
- 0xeb7a, 0x528f, 0x573f, 0x7171, 0xeb7e, 0xeb7f, 0xeb80, 0xeb81,
- 0x55bc, 0xeb83, 0xeb84, 0xeb85, 0x91d4, 0x3473, 0xeb88, 0xeb89,
- 0xeb8a, 0x4718, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, 0xeb90, 0x5066,
- 0x34fb, 0xeb93, 0x60de, 0xeb95, 0x477c, 0xeb97, 0xeb98, 0xeb99,
- 0xeb9a, 0xeb9b, 0x57a1, 0x7151, 0x6fb6, 0xeb9f, 0xeba0, 0x9056,
- 0xeba2, 0xeba3, 0x8b62, 0xeba5, 0xeba6,
- /* 0x9c */
- 0x5d5b, 0xeba8, 0x8f36, 0xebaa, 0xebab, 0x8aea, 0xebad, 0xebae,
- 0xebaf, 0xebb0, 0x4bc0, 0xebb2, 0xebb3, 0xebb4, 0x9465, 0xebb6,
- 0x6195, 0x5a27, 0xebb9, 0x4fbb, 0x56b9, 0xebbc, 0xebbd, 0x4e6a,
- 0xebbf, 0x9656, 0x6d8f, 0xebc2, 0x3618, 0x8977, 0xebc5, 0xebc6,
- 0xebc7, 0xebc8, 0x71df, 0xebca, 0x7b42, 0xebcc, 0xebcd, 0xebce,
- 0x9104, 0xebd0, 0x7a45, 0x9df0, 0xebd3, 0x9a26, 0xebd5, 0x365f,
- 0xebd7, 0xebd8, 0x7983, 0xebda, 0xebdb, 0x5d2c, 0xebdd, 0x83cf,
- 0xebdf, 0x46d0, 0xebe1, 0x753b, 0x8865, 0xebe4, 0x58b6, 0x371c,
- 0xebe7, 0xebe8, 0xebe9, 0x3c54, 0xebeb, 0xebec, 0x9281, 0xebee,
- 0xebef, 0x9330, 0xebf1, 0xebf2, 0x6c39, 0x949f, 0xebf5, 0xebf6,
- 0x8827, 0x88f5, 0xebf9, 0xebfa, 0xebfb, 0x6eb8, 0xebfd, 0xebfe,
- 0x39a4, 0x36b9, 0x5c10, 0x79e3, 0x453f, 0x66b6, 0xec05, 0xec06,
- 0x8943, 0xec08, 0xec09, 0x56d6, 0x40df, 0xec0c, 0x39a1, 0xec0e,
- 0xec0f, 0xec10, 0x71ad, 0x8366, 0xec13, 0xec14, 0x5a67, 0x4cb7,
- 0xec17, 0xec18, 0xec19, 0xec1a, 0xec1b, 0xec1c, 0xec1d, 0x7b43,
- 0x797e, 0xec20, 0x6fb5, 0xec22, 0x6a03, 0xec24, 0x53a2, 0xec26,
- 0x93bf, 0x6836, 0x975d, 0xec2a, 0xec2b, 0xec2c, 0xec2d, 0xec2e,
- 0xec2f, 0x5d85, 0xec31, 0xec32, 0x5715, 0x9823, 0xec35, 0x5dab,
- 0xec37, 0x65be, 0x69d5, 0x53d2, 0xec3b, 0xec3c, 0x3c11, 0x6736,
- 0xec3f, 0xec40, 0xec41, 0xec42, 0xec43,
- /* 0x9d */
- 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49, 0x35ca, 0xec4b,
- 0xec4c, 0x48fa, 0x63e6, 0xec4f, 0x7808, 0x9255, 0xec52, 0x43f2,
- 0xec54, 0x43df, 0xec56, 0xec57, 0xec58, 0x59f8, 0xec5a, 0x8f0b,
- 0xec5c, 0xec5d, 0x7b51, 0xec5f, 0xec60, 0x3df7, 0xec62, 0xec63,
- 0x8fd0, 0x728f, 0x568b, 0xec67, 0xec68, 0xec69, 0xec6a, 0xec6b,
- 0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71, 0xec72, 0xec73,
- 0x7e9f, 0xec75, 0xec76, 0x4ca4, 0x9547, 0xec79, 0x71a2, 0xec7b,
- 0x4d91, 0x9012, 0xec7e, 0x4d9c, 0xec80, 0x8fbe, 0x55c1, 0x8fba,
- 0xec84, 0x8fb9, 0xec86, 0x4509, 0x7e7f, 0x6f56, 0x6ab1, 0x4eea,
- 0x34e4, 0xec8d, 0xec8e, 0x373a, 0x8e80, 0xec91, 0xec92, 0xec93,
- 0xec94, 0xec95, 0xec96, 0x3deb, 0xec98, 0xec99, 0xec9a, 0xec9b,
- 0x4e9a, 0xec9d, 0xec9e, 0x56bf, 0xeca0, 0x8e0e, 0x5b6d, 0xeca3,
- 0xeca4, 0x63de, 0x62d0, 0xeca7, 0xeca8, 0x6530, 0x562d, 0xecab,
- 0x541a, 0xecad, 0x3dc6, 0xecaf, 0x4c7d, 0x5622, 0x561e, 0x7f49,
- 0xecb4, 0x5975, 0xecb6, 0x8770, 0x4e1c, 0xecb9, 0xecba, 0xecbb,
- 0x8117, 0x9d5e, 0x8d18, 0x763b, 0x9c45, 0x764e, 0x77b9, 0x9345,
- 0x5432, 0x8148, 0x82f7, 0x5625, 0x8132, 0x8418, 0x80bd, 0x55ea,
- 0x7962, 0x5643, 0x5416, 0xeccf, 0x35ce, 0x5605, 0x55f1, 0x66f1,
- 0xecd4, 0x362d, 0x7534, 0x55f0, 0x55ba, 0x5497, 0x5572, 0xecdb,
- 0xecdc, 0x5ed0, 0xecde, 0xecdf, 0xece0,
- /* 0x9e */
- 0xece1, 0x9eab, 0x7d5a, 0x55de, 0xece5, 0x629d, 0x976d, 0x5494,
- 0x8ccd, 0x71f6, 0x9176, 0x63fc, 0x63b9, 0x63fe, 0x5569, 0xecf0,
- 0x9c72, 0xecf2, 0x519a, 0x34df, 0xecf5, 0x51a7, 0x544d, 0x551e,
- 0x5513, 0x7666, 0x8e2d, 0xecfc, 0x75b1, 0x80b6, 0x8804, 0x8786,
- 0x88c7, 0x81b6, 0x841c, 0xed04, 0x44ec, 0x7304, 0xed07, 0x5b90,
- 0x830b, 0xed0a, 0x567b, 0xed0c, 0xed0d, 0xed0e, 0xed0f, 0xed10,
- 0xed11, 0x9170, 0xed13, 0x9208, 0xed15, 0xed16, 0xed17, 0xed18,
- 0x7266, 0xed1a, 0x474e, 0xed1c, 0xed1d, 0xed1e, 0x40fa, 0x9c5d,
- 0x651f, 0xed22, 0x48f3, 0xed24, 0xed25, 0xed26, 0xed27, 0x6062,
- 0xed29, 0xed2a, 0xed2b, 0xed2c, 0xed2d, 0x71a3, 0x7e8e, 0x9d50,
- 0x4e1a, 0x4e04, 0x3577, 0x5b0d, 0x6cb2, 0x5367, 0x36ac, 0x39dc,
- 0x537d, 0x36a5, 0xed3b, 0x589a, 0xed3d, 0x822d, 0x544b, 0x57aa,
- 0xed41, 0xed42, 0xed43, 0x3a52, 0xed45, 0x7374, 0xed47, 0x4d09,
- 0x9bed, 0xed4a, 0xed4b, 0x4c5b, 0xed4d, 0xed4e, 0xed4f, 0x845c,
- 0xed51, 0xed52, 0xed53, 0xed54, 0x632e, 0x7d25, 0xed57, 0xed58,
- 0x3a2a, 0x9008, 0x52cc, 0x3e74, 0x367a, 0x45e9, 0xed5f, 0x7640,
- 0x5af0, 0xed62, 0x787a, 0x47b6, 0x58a7, 0x40bf, 0x567c, 0x9b8b,
- 0x5d74, 0x7654, 0xed6b, 0x9e85, 0x4ce1, 0x75f9, 0x37fb, 0x6119,
- 0xed71, 0xed72, 0xed73, 0x565d, 0xed75, 0x57a7, 0xed77, 0xed78,
- 0x5234, 0xed7a, 0x35ad, 0x6c4a, 0x9d7c,
- /* 0x9f */
- 0x7c56, 0x9b39, 0x57de, 0xed81, 0x5c53, 0x64d3, 0xed84, 0xed85,
- 0xed86, 0x86ad, 0xed88, 0xed89, 0xed8a, 0xed8b, 0xed8c, 0x51fe,
- 0xed8e, 0x5d8e, 0x9703, 0xed91, 0x9e81, 0x904c, 0x7b1f, 0x9b02,
- 0x5cd1, 0x7ba3, 0x6268, 0x6335, 0x9aff, 0x7bcf, 0x9b2a, 0x7c7e,
- 0x9b2e, 0x7c42, 0x7c86, 0x9c15, 0x7bfc, 0x9b09, 0x9f17, 0x9c1b,
- 0xeda6, 0x9f5a, 0x5573, 0x5bc3, 0x4ffd, 0x9e98, 0x4ff2, 0x5260,
- 0x3e06, 0x52d1, 0x5767, 0x5056, 0x59b7, 0x5e12, 0x97c8, 0x9dab,
- 0x8f5c, 0x5469, 0x97b4, 0x9940, 0x97ba, 0x532c, 0x6130, 0x692c,
- 0x53da, 0x9c0a, 0x9d02, 0x4c3b, 0x9641, 0x6980, 0x50a6, 0x7546,
- 0xedc6, 0x99da, 0x5273, 0xedc9, 0x9159, 0x9681, 0x915c, 0xedcd,
- 0x9151, 0xedcf, 0x637f, 0xedd1, 0x6aca, 0x5611, 0x918e, 0x757a,
- 0x6285, 0xedd7, 0x734f, 0x7c70, 0xedda, 0xeddb, 0xeddc, 0xeddd,
- 0x76d6, 0x9b9d, 0x4e2a, 0xede1, 0x83be, 0x8842, 0xede4, 0x5c4a,
- 0x69c0, 0x50ed, 0x577a, 0x521f, 0x5df5, 0x4ece, 0x6c31, 0xeded,
- 0x4f39, 0x549c, 0x54da, 0x529a, 0x8d82, 0x35fe, 0x5f0c, 0x35f3,
- 0xedf6, 0x6b52, 0x917c, 0x9fa5, 0x9b97, 0x982e, 0x98b4, 0x9aba,
- 0x9ea8, 0x9e84, 0x717a, 0x7b14, 0xee02, 0x6bfa, 0x8818, 0x7f78,
- 0xee06, 0x5620, 0xee08, 0x8e77, 0x9f53, 0xee0b, 0x8dd4, 0x8e4f,
- 0x9e1c, 0x8e01, 0x6282, 0xee11, 0x8e28, 0x8e75, 0x7ad3, 0xee15,
- 0x7a3e, 0x78d8, 0x6cea, 0x8a67, 0x7607,
- /* 0xa0 */
- 0xee1b, 0x9f26, 0x6cce, 0x87d6, 0x75c3, 0xee20, 0x7853, 0xee22,
- 0x8d0c, 0x72e2, 0x7371, 0x8b2d, 0x7302, 0x74f1, 0x8ceb, 0xee2a,
- 0x862f, 0x5fba, 0x88a0, 0x44b7, 0xee2f, 0xee30, 0xee31, 0xee32,
- 0x8a7e, 0xee34, 0xee35, 0x60fd, 0x7667, 0x9ad7, 0x9d44, 0x936e,
- 0x9b8f, 0x87f5, 0xee3d, 0x880f, 0x8cf7, 0x732c, 0x9721, 0x9bb0,
- 0x35d6, 0x72b2, 0x4c07, 0x7c51, 0x994a, 0xee48, 0x6159, 0x4c04,
- 0x9e96, 0x617d, 0xee4d, 0x575f, 0x616f, 0x62a6, 0x6239, 0x62ce,
- 0x3a5c, 0x61e2, 0x53aa, 0xee56, 0x6364, 0x6802, 0x35d2, 0x5d57,
- 0xee5b, 0x8fda, 0xee5d, 0xee5e, 0x50d9, 0xee60, 0x7906, 0x5332,
- 0x9638, 0xee64, 0x4065, 0xee66, 0x77fe, 0xee68, 0x7cc2, 0xee6a,
- 0x7cda, 0x7a2d, 0x8066, 0x8063, 0x7d4d, 0x7505, 0x74f2, 0x8994,
- 0x821a, 0x670c, 0x8062, 0xee76, 0x805b, 0x74f0, 0x8103, 0x7724,
- 0x8989, 0xee7c, 0x7553, 0xee7e, 0x87a9, 0x87ce, 0x81c8, 0x878c,
- 0x8a49, 0x8cad, 0x8b43, 0x772b, 0x74f8, 0x84da, 0x3635, 0x69b2,
- 0x8da6, 0xee8c, 0x89a9, 0x7468, 0x6db9, 0x87c1, 0xee91, 0x74e7,
- 0x3ddb, 0x7176, 0x60a4, 0x619c, 0x3cd1, 0x7162, 0x6077, 0xee9a,
- 0x7f71, 0xee9c, 0x7250, 0x60e9, 0x4b7e, 0x5220, 0x3c18, 0xeea2,
- 0xeea3, 0xeea4, 0xeea5, 0xeea6, 0xeea7, 0xeea8, 0xeea9, 0xeeaa,
- 0x5cc1, 0xeeac, 0xeead, 0xeeae, 0xeeaf, 0xeeb0, 0xeeb1, 0x4562,
- 0x5b1f, 0xeeb4, 0x9f50, 0x9ea6, 0xeeb7,
- /* 0xa1 */
- 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a,
- 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52,
- 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31,
- 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35,
- 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39,
- 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d,
- 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41,
- 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b,
- 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d,
- 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7,
- 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605,
- 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105,
- 0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e,
- 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7,
- 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267,
- 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65,
- 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf,
- 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642,
- 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197,
- 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f,
- /* 0xa2 */
- 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1,
- 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5,
- 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4,
- 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7,
- 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586,
- 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a,
- 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500,
- 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e,
- 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3,
- 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12,
- 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160,
- 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168,
- 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027,
- 0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 0xff21, 0xff22, 0xff23,
- 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b,
- 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33,
- 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41,
- 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49,
- 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51,
- 0xff52, 0xff53, 0xff54, 0xff55, 0xff56,
- /* 0xa3 */
- 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394,
- 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c,
- 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5,
- 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4,
- 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc,
- 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5,
- 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108,
- 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110,
- 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118,
- 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120,
- 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
- 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa4 */
- 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c,
- 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b,
- 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a,
- 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e,
- 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f,
- 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8,
- 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2,
- 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11,
- 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88,
- 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3,
- 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141,
- 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206, 0x5207,
- 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348, 0x5347,
- 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec, 0x5929,
- 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a, 0x5c6f,
- 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208, 0x6236,
- 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9, 0x65e5,
- 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb, 0x6bd4,
- 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b, 0x7247,
- 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19,
- /* 0xa5 */
- 0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e,
- 0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4,
- 0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9,
- 0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317,
- 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e,
- 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8,
- 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1,
- 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x592e,
- 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, 0x5de7,
- 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, 0x5f17,
- 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, 0x65e6,
- 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, 0x6c11,
- 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, 0x7389,
- 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, 0x7531,
- 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, 0x77db,
- 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e, 0x4e1f,
- 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5, 0x4eff,
- 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11, 0x4f0f,
- 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01, 0x4f0b,
- 0x5149, 0x5147, 0x5146, 0x5148, 0x5168,
- /* 0xa6 */
- 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216,
- 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f,
- 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d,
- 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd,
- 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919,
- 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979,
- 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89,
- 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x5f0f,
- 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210, 0x6263,
- 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed, 0x66f2,
- 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21, 0x6b64,
- 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60, 0x6c50,
- 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f, 0x725d,
- 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd, 0x8001,
- 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b, 0x808c,
- 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f, 0x826e,
- 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f, 0x9621,
- 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e, 0x4f34,
- 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a, 0x4f38,
- 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63,
- /* 0xa7 */
- 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48,
- 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225,
- 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac,
- 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426,
- 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b,
- 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436,
- 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea,
- 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x5747,
- 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, 0x599d,
- 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, 0x59a4,
- 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, 0x5b8c,
- 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e, 0x5c90,
- 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87, 0x5e8a,
- 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79, 0x5fd8,
- 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea, 0x6212,
- 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289, 0x626d,
- 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f, 0x6298,
- 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b, 0x6538,
- 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751, 0x675c,
- 0x6756, 0x675e, 0x6749, 0x6746, 0x6760,
- /* 0xa8 */
- 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81,
- 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70,
- 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e,
- 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076,
- 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2,
- 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3,
- 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093,
- 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x828b,
- 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55, 0x8c9d,
- 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0, 0x8fc2,
- 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa, 0x90a6,
- 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631, 0x962a,
- 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e, 0x4eab,
- 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c, 0x4f9b,
- 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69, 0x4f7b,
- 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152, 0x5155,
- 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b, 0x5238,
- 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be, 0x52bb,
- 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378, 0x5379,
- 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475,
- /* 0xa9 */
- 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492,
- 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462,
- 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a,
- 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947,
- 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae,
- 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af,
- 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a,
- 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x5c46,
- 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3, 0x5e18,
- 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a, 0x5e97,
- 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29, 0x5f80,
- 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5, 0x5fff,
- 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015, 0x6021,
- 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f, 0x623e,
- 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2, 0x62b9,
- 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8, 0x62a8,
- 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5, 0x62da,
- 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce, 0x653e,
- 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606, 0x6602,
- 0x660e, 0x6600, 0x660f, 0x6615, 0x660a,
- /* 0xaa */
- 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c,
- 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f,
- 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a,
- 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3,
- 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe,
- 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9,
- 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1,
- 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x7095,
- 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238, 0x7248,
- 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0, 0x73a9,
- 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599, 0x759a,
- 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e, 0x7940,
- 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe, 0x7f54,
- 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1, 0x80a1,
- 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe, 0x820d,
- 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9, 0x82b1,
- 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be, 0x82b7,
- 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1,
- 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577, 0x9580,
- 0x961c, 0x9640, 0x963f, 0x963b, 0x9644,
- /* 0xab */
- 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae,
- 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd,
- 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0,
- 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192,
- 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b,
- 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b,
- 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8,
- 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x54c4,
- 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7, 0x54bf,
- 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce, 0x57ae,
- 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc, 0x59d8,
- 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da, 0x59e6,
- 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2, 0x5ba5,
- 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2, 0x5df7,
- 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa, 0x5f08,
- 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c,
- 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028, 0x604d,
- 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b, 0x606a,
- 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301,
- 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7,
- /* 0xac */
- 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545,
- 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f,
- 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1,
- 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef,
- 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de,
- 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83,
- 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32,
- 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x6d3b,
- 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27, 0x6d38,
- 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba, 0x70b3,
- 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230, 0x7272,
- 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca, 0x73bb,
- 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f, 0x754c,
- 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3, 0x7678,
- 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5, 0x7701,
- 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707, 0x77dc,
- 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948, 0x7947,
- 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81, 0x7aff,
- 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07, 0x7d04,
- 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004,
- /* 0xad */
- 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3,
- 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd,
- 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6,
- 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301,
- 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306,
- 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4,
- 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4,
- 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x8fed,
- 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3, 0x914b,
- 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d, 0x9762,
- 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db, 0x98df,
- 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023, 0x4fef,
- 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c, 0x501f,
- 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028, 0x4ff1,
- 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d, 0x502a,
- 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2, 0x51cd,
- 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b, 0x525d,
- 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510, 0x5501,
- 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514, 0x54e9,
- 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea,
- /* 0xae */
- 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2,
- 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a,
- 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20,
- 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0,
- 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04,
- 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8,
- 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab,
- 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x6063,
- 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084, 0x609f,
- 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247, 0x62f3,
- 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342, 0x6346,
- 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b, 0x6328,
- 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5, 0x6642,
- 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641, 0x66f8,
- 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846, 0x6853,
- 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851,
- 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a, 0x6845,
- 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27,
- 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87,
- 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93,
- /* 0xaf */
- 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a,
- 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9,
- 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8,
- 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de,
- 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7,
- 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b,
- 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728,
- 0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x7825,
- 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960, 0x795f,
- 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3, 0x79e7,
- 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9, 0x7b06,
- 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20, 0x7d22,
- 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b,
- 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018, 0x8015,
- 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105,
- 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a,
- 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b,
- 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a, 0x8338,
- 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339, 0x8336,
- 0x8317, 0x8340, 0x8331, 0x8328, 0x8343,
- /* 0xb0 */
- 0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3,
- 0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18,
- 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16,
- 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77,
- 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7,
- 0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095,
- 0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd,
- 0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x965b,
- 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac, 0x9aa8,
- 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d, 0x505c,
- 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076, 0x504e,
- 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d,
- 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8,
- 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3,
- 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543,
- 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538,
- 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708,
- 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4,
- 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36,
- 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40,
- /* 0xb1 */
- 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5,
- 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60,
- 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22,
- 0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2,
- 0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5,
- 0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97,
- 0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3,
- 0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5,
- 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df,
- 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7,
- 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa,
- 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384,
- 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b,
- 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559, 0x6557,
- 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac,
- 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668,
- 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2,
- 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0,
- 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8,
- 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba,
- /* 0xb2 */
- 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2,
- 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb,
- 0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5,
- 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea,
- 0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf,
- 0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d,
- 0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405,
- 0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7,
- 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4,
- 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db,
- 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843,
- 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20,
- 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92,
- 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c,
- 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31,
- 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a,
- 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124,
- 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398,
- 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393,
- 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c,
- /* 0xb3 */
- 0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4,
- 0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e,
- 0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f,
- 0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b,
- 0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa,
- 0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019,
- 0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015,
- 0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8,
- 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7,
- 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678, 0x9670,
- 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0,
- 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5,
- 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096,
- 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269,
- 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7,
- 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594,
- 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2,
- 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599,
- 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821,
- 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960,
- /* 0xb4 */
- 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71,
- 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c,
- 0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43,
- 0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9,
- 0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c,
- 0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1,
- 0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3,
- 0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2,
- 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4,
- 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562,
- 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676,
- 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f,
- 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df,
- 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb,
- 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb,
- 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e,
- 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67,
- 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24,
- 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a,
- 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb,
- /* 0xb5 */
- 0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f,
- 0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c,
- 0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a,
- 0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f,
- 0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2,
- 0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c,
- 0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c,
- 0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97,
- 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52,
- 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e,
- 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66,
- 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052,
- 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146,
- 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403,
- 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1,
- 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2,
- 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df,
- 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0,
- 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, 0x8a3b,
- 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41,
- /* 0xb6 */
- 0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56,
- 0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb,
- 0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85,
- 0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb,
- 0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031,
- 0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163,
- 0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d,
- 0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593,
- 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686,
- 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7,
- 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea,
- 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd,
- 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be,
- 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d,
- 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8,
- 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4,
- 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712,
- 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b,
- 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1,
- 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc,
- /* 0xb7 */
- 0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9,
- 0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148,
- 0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c,
- 0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137,
- 0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d,
- 0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417,
- 0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688,
- 0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a,
- 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968,
- 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b,
- 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf,
- 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5,
- 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4,
- 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164,
- 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, 0x715e,
- 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, 0x733f,
- 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, 0x743f,
- 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, 0x7601,
- 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, 0x76df,
- 0x775b, 0x776b, 0x7766, 0x775e, 0x7763,
- /* 0xb8 */
- 0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee,
- 0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891,
- 0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c,
- 0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77,
- 0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93,
- 0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a,
- 0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084,
- 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179,
- 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431,
- 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435,
- 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f,
- 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702,
- 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc,
- 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3,
- 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c,
- 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c,
- 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca,
- 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1,
- 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4, 0x8de6,
- 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a,
- /* 0xb9 */
- 0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c,
- 0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e,
- 0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237,
- 0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264,
- 0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a,
- 0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca,
- 0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810,
- 0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd,
- 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e,
- 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da,
- 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, 0x51f3,
- 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, 0x5617,
- 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, 0x5616,
- 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, 0x587e,
- 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, 0x5925,
- 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, 0x5ad7,
- 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, 0x5be5,
- 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, 0x5d84,
- 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, 0x5ed6,
- 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147,
- /* 0xba */
- 0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158,
- 0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f,
- 0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1,
- 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995,
- 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab,
- 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3,
- 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4,
- 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff,
- 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b,
- 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7,
- 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292,
- 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d,
- 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1,
- 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7,
- 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e, 0x7a31,
- 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b, 0x7b75,
- 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84, 0x7cb9,
- 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe, 0x7da0,
- 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf, 0x7db5,
- 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac,
- /* 0xbb */
- 0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150,
- 0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa,
- 0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4,
- 0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3,
- 0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722,
- 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902,
- 0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6,
- 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x8aaa,
- 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, 0x8c8d,
- 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, 0x8dfc,
- 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, 0x905c,
- 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, 0x9118,
- 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280, 0x9285,
- 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c, 0x9291,
- 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699, 0x969c,
- 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6, 0x9817,
- 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909, 0x99c1,
- 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6, 0x9cf3,
- 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5, 0x50f9,
- 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc,
- /* 0xbc */
- 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e,
- 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e,
- 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e,
- 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb,
- 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb,
- 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2,
- 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7,
- 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x617c,
- 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, 0x61ac,
- 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, 0x6479,
- 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493, 0x6495,
- 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac, 0x6499,
- 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab, 0x66b4,
- 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19, 0x69fd,
- 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed, 0x6a11,
- 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c, 0x6f84,
- 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78, 0x6f6e,
- 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5, 0x6f6f,
- 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256, 0x729b,
- 0x734e, 0x7357, 0x7469, 0x748b, 0x7483,
- /* 0xbd */
- 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626,
- 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c,
- 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5,
- 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b,
- 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7,
- 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb,
- 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9,
- 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x7fe9,
- 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198, 0x8517,
- 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511, 0x8523,
- 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782, 0x8774,
- 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757, 0x874c,
- 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913, 0x8915,
- 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb, 0x8af8,
- 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6,
- 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6,
- 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1,
- 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22, 0x8e0f,
- 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f,
- 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e,
- /* 0xbe */
- 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d,
- 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb,
- 0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2,
- 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707,
- 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c,
- 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df,
- 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef,
- 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x9d03,
- 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118, 0x5114,
- 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293, 0x52f3,
- 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a, 0x5668,
- 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1, 0x58be,
- 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0, 0x5c0e,
- 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6, 0x61be,
- 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb, 0x64bc,
- 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2, 0x64d4,
- 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7, 0x66b8,
- 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39, 0x6a44,
- 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48, 0x6b59,
- 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1,
- /* 0xbf */
- 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6,
- 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8,
- 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368,
- 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d,
- 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f,
- 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e,
- 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4,
- 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x7e11,
- 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, 0x7f79,
- 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, 0x81a8,
- 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548, 0x8568,
- 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783, 0x879f,
- 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925, 0x892b,
- 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1, 0x8b00,
- 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7, 0x8aed,
- 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4, 0x8e44,
- 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f, 0x8f38,
- 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072, 0x907c,
- 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333, 0x932f,
- 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a,
- /* 0xc0 */
- 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7,
- 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713,
- 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b,
- 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b,
- 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb,
- 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12,
- 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121,
- 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x568f,
- 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24, 0x5b7a,
- 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b, 0x5f4c,
- 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232, 0x6234,
- 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec, 0x64f1,
- 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80, 0x6a94,
- 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97, 0x6a90,
- 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf,
- 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec, 0x6fe1,
- 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee, 0x71e6,
- 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246, 0x7370,
- 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642, 0x764c,
- 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac,
- /* 0xc1 */
- 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901,
- 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7,
- 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9,
- 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b,
- 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35,
- 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070,
- 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf,
- 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x8584,
- 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587, 0x85a8,
- 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6, 0x87ab,
- 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944, 0x8938,
- 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a, 0x8b20,
- 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd,
- 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48, 0x8e4a,
- 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d, 0x9084,
- 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c, 0x934d,
- 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318, 0x937e,
- 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb, 0x95cc,
- 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0,
- 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01,
- /* 0xc2 */
- 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b,
- 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2,
- 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233,
- 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7,
- 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2,
- 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe,
- 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8,
- 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x7652,
- 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61, 0x7a62,
- 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e, 0x7c23,
- 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52,
- 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf,
- 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba,
- 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986, 0x89b2,
- 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05, 0x8e59,
- 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49, 0x8f4d,
- 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394, 0x938a,
- 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398, 0x939a,
- 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc, 0x96d9,
- 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6,
- /* 0xc3 */
- 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba,
- 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03,
- 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8,
- 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133,
- 0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2,
- 0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5,
- 0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d,
- 0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x737a,
- 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661, 0x77c7,
- 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d,
- 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a, 0x7f85,
- 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd, 0x85ea,
- 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d, 0x87f9,
- 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c, 0x8b58,
- 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a,
- 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54,
- 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1,
- 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd,
- 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a,
- 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e,
- /* 0xc4 */
- 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d,
- 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a,
- 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7,
- 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6,
- 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727,
- 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662,
- 0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c,
- 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x7e82,
- 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611, 0x85fa,
- 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964, 0x89ba,
- 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f,
- 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb, 0x9418,
- 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951, 0x99a8,
- 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79, 0x9eb5,
- 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138, 0x56c1,
- 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe, 0x651d,
- 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2, 0x704c,
- 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50, 0x7e8f,
- 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821,
- 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74,
- /* 0xc5 */
- 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf,
- 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b,
- 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957,
- 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d,
- 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19,
- 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9,
- 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61,
- 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x79b3,
- 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f, 0x89fc,
- 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148, 0x9444,
- 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955,
- 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b,
- 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6,
- 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca,
- 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638,
- 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460, 0x9464,
- 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4,
- 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1,
- 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88,
- 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92,
- /* 0xc6 */
- 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744,
- 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa,
- 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063,
- 0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470,
- 0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a,
- 0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5,
- 0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f,
- 0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x2460,
- 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468,
- 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
- 0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174,
- 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x4e36, 0x4e3f, 0x4e85,
- 0x4ea0, 0x5182, 0x5196, 0x51ab, 0x52f9, 0x5338, 0x5369, 0x53b6,
- 0x590a, 0x5b80, 0x5ddb, 0x2f33, 0x5e7f, 0xf6df, 0x5f50, 0x5f61,
- 0x6534, 0xf6e3, 0x7592, 0xf6e5, 0x8fb5, 0xf6e7, 0x00a8, 0x02c6,
- 0x30fd, 0x30fe, 0x309d, 0x309e, 0xf6ee, 0xf6ef, 0x3005, 0x3006,
- 0x3007, 0x30fc, 0xff3b, 0xff3d, 0x273d, 0x3041, 0x3042, 0x3043,
- 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b,
- 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053,
- 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
- /* 0xc7 */
- 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
- 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
- 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
- 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
- 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
- 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
- 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
- 0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5,
- 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad,
- 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5,
- 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd,
- 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5,
- 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd,
- 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5,
- 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd,
- 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5,
- 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed,
- 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5,
- 0x30f6, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401,
- 0x0416, 0x0417, 0x0418, 0x0419, 0x041a,
- /* 0xc8 */
- 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422,
- 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
- 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432,
- 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439,
- 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441,
- 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449,
- 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x21e7, 0x21b8,
- 0x21b9, 0xf7e5, 0xf7e6, 0x4e5a, 0xf7e8, 0x5202, 0xf7ea, 0xf7eb,
- 0x5188, 0xf7ed, 0xf7ee, 0xf7ef, 0xf7f0, 0xf7f1, 0xf7f2, 0xf7f3,
- 0xf7f4, 0xf7f5, 0xf7f6, 0xf7f7, 0xf7f8, 0xf7f9, 0xf7fa, 0xf7fb,
- 0xf7fc, 0xf7fd, 0xf7fe, 0xf7ff, 0xf800, 0xf801, 0xf802, 0xf803,
- 0xf804, 0xf805, 0xf806, 0xf807, 0xf808, 0xf809, 0xf80a, 0xf80b,
- 0xf80c, 0xf80d, 0xf80e, 0xf80f, 0xf810, 0xf811, 0xf812, 0xf813,
- 0xf814, 0xf815, 0xf816, 0xffe2, 0xffe4, 0xff07, 0xff02, 0x3231,
- 0x2116, 0x2121, 0x309b, 0x309c, 0x2e80, 0x2e84, 0x2e86, 0x2e87,
- 0x2e88, 0x2e8a, 0x2e8c, 0x2e8d, 0x2e95, 0x2e9c, 0x2e9d, 0x2ea5,
- 0x2ea7, 0x2eaa, 0x2eac, 0x2eae, 0x2eb6, 0x2ebc, 0x2ebe, 0x2ec6,
- 0x2eca, 0x2ecc, 0x2ecd, 0x2ecf, 0x2ed6, 0x2ed7, 0x2ede, 0x2ee3,
- 0xf83c, 0xf83d, 0xf83e, 0x0283, 0x0250, 0x025b, 0x0254, 0x0275,
- 0x0153, 0x00f8, 0x014b, 0x028a, 0x026a,
- /* 0xc9 */
- 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47,
- 0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e,
- 0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c,
- 0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3,
- 0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9,
- 0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723,
- 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73,
- 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36,
- 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a,
- 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00,
- 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04,
- 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6, 0x5322,
- 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, 0x572a,
- 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, 0x5977,
- 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, 0x5c7e,
- 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, 0x5fd4,
- 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, 0x6259,
- 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739, 0x6738,
- 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46, 0x6c52,
- 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b,
- /* 0xca */
- 0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f,
- 0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d,
- 0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624,
- 0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64,
- 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33,
- 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad,
- 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437,
- 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x543d,
- 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, 0x56e5,
- 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, 0x5940,
- 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, 0x598f,
- 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, 0x5c8f,
- 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, 0x5c95,
- 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, 0x5e8d,
- 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, 0x5fed,
- 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa, 0x5fef,
- 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c, 0x628e,
- 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270, 0x6281,
- 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0, 0x65f4,
- 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747,
- /* 0xcb */
- 0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b,
- 0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b,
- 0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95,
- 0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a,
- 0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5,
- 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594,
- 0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092,
- 0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x828a,
- 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, 0x90a5,
- 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, 0x4e33,
- 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, 0x4f74,
- 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, 0x4f79,
- 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, 0x4f82,
- 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, 0x5232,
- 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, 0x5392,
- 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, 0x546b,
- 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, 0x546f,
- 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, 0x56f9,
- 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, 0x5780,
- 0x5775, 0x577b, 0x5773, 0x5774, 0x5762,
- /* 0xcc */
- 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce,
- 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1,
- 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93,
- 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf,
- 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7,
- 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19,
- 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d,
- 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034,
- 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d,
- 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214,
- 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca,
- 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8, 0x653d,
- 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608, 0x65fb,
- 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610, 0x66f6,
- 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b, 0x6798,
- 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f, 0x6791,
- 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794, 0x6b25,
- 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb, 0x6cee,
- 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0, 0x6cc2,
- 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2,
- /* 0xcd */
- 0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0,
- 0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1,
- 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096,
- 0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9,
- 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1,
- 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8,
- 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1,
- 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x77f7,
- 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, 0x7cfd,
- 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, 0x8220,
- 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, 0x82a7,
- 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, 0x82a9,
- 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, 0x866d,
- 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, 0x8fd5,
- 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, 0x963d,
- 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2, 0x4fc9,
- 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3, 0x4fdb,
- 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244, 0x5249,
- 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399, 0x5398,
- 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf,
- /* 0xce */
- 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6,
- 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0,
- 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b,
- 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4,
- 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd,
- 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db,
- 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8,
- 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x5cde,
- 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4, 0x5ccf,
- 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21, 0x5e22,
- 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b, 0x5ea3,
- 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039, 0x6054,
- 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b, 0x604c,
- 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066, 0x606e,
- 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e, 0x6303,
- 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300, 0x6313,
- 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543, 0x65aa,
- 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626, 0x6622,
- 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e, 0x670f,
- 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba,
- /* 0xcf */
- 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb,
- 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee,
- 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc,
- 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9,
- 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6,
- 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d,
- 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04,
- 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x6d01,
- 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, 0x6d2c,
- 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, 0x70b1,
- 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, 0x724a,
- 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8, 0x72eb,
- 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2, 0x73c8,
- 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf, 0x73c7,
- 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee, 0x752e,
- 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708, 0x7703,
- 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7, 0x77e8,
- 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e, 0x7809,
- 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944, 0x79d5,
- 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80,
- /* 0xd0 */
- 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f,
- 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d,
- 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7,
- 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9,
- 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd,
- 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8,
- 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1,
- 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x82e4,
- 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c, 0x8673,
- 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04, 0x8a07,
- 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd, 0x90bf,
- 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4, 0x91d3,
- 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e, 0x5005,
- 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4, 0x5033,
- 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020, 0x5027,
- 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193, 0x51ca,
- 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252, 0x525e,
- 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526, 0x54e2,
- 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff, 0x5504,
- 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1,
- /* 0xd1 */
- 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b,
- 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6,
- 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9,
- 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15,
- 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad,
- 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1,
- 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa,
- 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x6041,
- 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083, 0x6095,
- 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246, 0x62f2,
- 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343, 0x63e4,
- 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334, 0x6358,
- 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351, 0x6338,
- 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3, 0x65c4,
- 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713, 0x681f,
- 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f, 0x6816,
- 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e, 0x6844,
- 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e, 0x684d,
- 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31, 0x6b34,
- 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4,
- /* 0xd2 */
- 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64,
- 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f,
- 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60,
- 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68,
- 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d,
- 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39,
- 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5,
- 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x7277,
- 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3, 0x72fb,
- 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7, 0x73e3,
- 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da, 0x73d7,
- 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521, 0x755b,
- 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf, 0x75b6,
- 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713, 0x7712,
- 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727, 0x7823,
- 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b, 0x7821,
- 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f, 0x795c,
- 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee, 0x79ed,
- 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85, 0x7a8b,
- 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10,
- /* 0xd3 */
- 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09,
- 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85,
- 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f,
- 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d,
- 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e,
- 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100,
- 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351,
- 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x8342,
- 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316, 0x8324,
- 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c, 0x8353,
- 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652, 0x86a2,
- 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697, 0x8686,
- 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7, 0x8695,
- 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844, 0x886d,
- 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f, 0x8883,
- 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4,
- 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3,
- 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6,
- 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8,
- 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150,
- /* 0xd4 */
- 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc,
- 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e,
- 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041,
- 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b,
- 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051,
- 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d,
- 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a,
- 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x550c,
- 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b, 0x5540,
- 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6, 0x57dc,
- 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b, 0x57f3,
- 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec, 0x57e1,
- 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1, 0x57e9,
- 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55, 0x5a67,
- 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65, 0x5a6c,
- 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44, 0x5a5b,
- 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70, 0x5a69,
- 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1,
- 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c,
- 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f,
- /* 0xd5 */
- 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1,
- 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96,
- 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3,
- 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db,
- 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365,
- 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397,
- 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375,
- 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x6378,
- 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd, 0x6665,
- 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879, 0x6887,
- 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956, 0x686f,
- 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877,
- 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e,
- 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b,
- 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38,
- 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab,
- 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6,
- 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5,
- 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0,
- 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9,
- /* 0xd6 */
- 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb,
- 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104,
- 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8,
- 0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f,
- 0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff,
- 0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401,
- 0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b,
- 0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x75cb,
- 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739, 0x772f,
- 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725, 0x773b,
- 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c, 0x7826,
- 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963, 0x796b,
- 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f, 0x7a94,
- 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22, 0x7b24,
- 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f,
- 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3,
- 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29,
- 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63,
- 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0,
- 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f,
- /* 0xd7 */
- 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119,
- 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127,
- 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232,
- 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4,
- 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9,
- 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e,
- 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387,
- 0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x86c2,
- 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3, 0x86b8,
- 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be, 0x8852,
- 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891, 0x88a1,
- 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4, 0x88ac,
- 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5, 0x8a30,
- 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d,
- 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf,
- 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1,
- 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef, 0x90ea,
- 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec, 0x90e9,
- 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4, 0x91f1,
- 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea,
- /* 0xd8 */
- 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c,
- 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5,
- 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083,
- 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087,
- 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8,
- 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f,
- 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6,
- 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x5819,
- 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825, 0x581c,
- 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838, 0x582d,
- 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a, 0x5aa2,
- 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae,
- 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b,
- 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd,
- 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37,
- 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e,
- 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42,
- 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45,
- 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9,
- 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114,
- /* 0xd9 */
- 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc,
- 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104,
- 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8,
- 0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5,
- 0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4,
- 0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0,
- 0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568,
- 0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x667c,
- 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672, 0x6701,
- 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea, 0x68f1,
- 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913, 0x6910,
- 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4, 0x6911,
- 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc, 0x68e8,
- 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de, 0x68e6,
- 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925, 0x68c7,
- 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95,
- 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47,
- 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b,
- 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40,
- 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e,
- /* 0xda */
- 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b,
- 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64,
- 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a,
- 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125,
- 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a,
- 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330,
- 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323,
- 0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x741a,
- 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429, 0x7420,
- 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1,
- 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da,
- 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e, 0x774b,
- 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c, 0x786d,
- 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e, 0x7862,
- 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c,
- 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44, 0x7b48,
- 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8,
- 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a,
- 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51,
- 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65,
- /* 0xdb */
- 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050,
- 0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d,
- 0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204,
- 0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423,
- 0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410,
- 0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5,
- 0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9,
- 0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x83d5,
- 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec, 0x83ee,
- 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8,
- 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb,
- 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856,
- 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6,
- 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998,
- 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59,
- 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51,
- 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe,
- 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3,
- 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8,
- 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa,
- /* 0xdc */
- 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6,
- 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f,
- 0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb,
- 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f,
- 0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226,
- 0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204,
- 0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216,
- 0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689,
- 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c,
- 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83,
- 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca,
- 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb,
- 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c,
- 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0,
- 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5,
- 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714,
- 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855,
- 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871,
- 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5,
- 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6,
- /* 0xdd */
- 0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90,
- 0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a,
- 0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0,
- 0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6,
- 0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a,
- 0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f,
- 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5,
- 0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433,
- 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423,
- 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a,
- 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e,
- 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695,
- 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966,
- 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a,
- 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935,
- 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969,
- 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c,
- 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952,
- 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, 0x6b48,
- 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc,
- /* 0xde */
- 0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0,
- 0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2,
- 0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6,
- 0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92,
- 0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca,
- 0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160,
- 0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142,
- 0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x7144,
- 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290, 0x728e,
- 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349, 0x7444,
- 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f, 0x7450,
- 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe,
- 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603,
- 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6,
- 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f,
- 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759,
- 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895,
- 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896,
- 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19,
- 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13,
- /* 0xdf */
- 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64,
- 0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70,
- 0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88,
- 0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b,
- 0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d,
- 0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb,
- 0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b,
- 0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144,
- 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1,
- 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451,
- 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459,
- 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434,
- 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b,
- 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c,
- 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433,
- 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450,
- 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d,
- 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6,
- 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0,
- 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4,
- /* 0xe0 */
- 0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f,
- 0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81,
- 0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66,
- 0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c,
- 0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0,
- 0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2,
- 0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00,
- 0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044,
- 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114,
- 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a,
- 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246,
- 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261,
- 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253,
- 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692,
- 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5,
- 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac,
- 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab,
- 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4,
- 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, 0x50d3,
- 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0,
- /* 0xe1 */
- 0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627,
- 0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613,
- 0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c,
- 0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a,
- 0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894,
- 0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea,
- 0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec,
- 0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3,
- 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77,
- 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f,
- 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc,
- 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6,
- 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153,
- 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165,
- 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b,
- 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d,
- 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b,
- 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459,
- 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705,
- 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9,
- /* 0xe2 */
- 0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999,
- 0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4,
- 0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3,
- 0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2,
- 0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f,
- 0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03,
- 0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19,
- 0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36,
- 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35,
- 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39,
- 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21,
- 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b,
- 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293,
- 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475,
- 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, 0x7590,
- 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, 0x76b8,
- 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, 0x777e,
- 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, 0x78ab,
- 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, 0x798a,
- 0x798b, 0x7996, 0x7995, 0x7994, 0x7993,
- /* 0xe3 */
- 0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f,
- 0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c,
- 0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e,
- 0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf,
- 0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1,
- 0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc,
- 0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9,
- 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024,
- 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c,
- 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce,
- 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd,
- 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2,
- 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6,
- 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db,
- 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740,
- 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741,
- 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712,
- 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724,
- 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2, 0x88fa,
- 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb,
- /* 0xe4 */
- 0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9,
- 0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96,
- 0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09,
- 0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06,
- 0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d,
- 0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124,
- 0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4,
- 0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6,
- 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e,
- 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286,
- 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, 0x928b,
- 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, 0x977e,
- 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, 0x97ce,
- 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, 0x999d,
- 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, 0x99c7,
- 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, 0x9b5f,
- 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, 0x50f8,
- 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, 0x510a,
- 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, 0x5635,
- 0x5641, 0x564a, 0x5649, 0x5646, 0x5658,
- /* 0xe5 */
- 0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a,
- 0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af,
- 0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7,
- 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05,
- 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93,
- 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d,
- 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2,
- 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b,
- 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d,
- 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485,
- 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f,
- 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2,
- 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af,
- 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4,
- 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe, 0x6a27,
- 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08, 0x69e6,
- 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18, 0x6a25,
- 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51, 0x6ba5,
- 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02, 0x6f41,
- 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92,
- /* 0xe6 */
- 0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96,
- 0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57,
- 0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67,
- 0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77,
- 0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a,
- 0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa,
- 0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e,
- 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x7362,
- 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, 0x7488,
- 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, 0x7619,
- 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, 0x769d,
- 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, 0x78bb,
- 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, 0x78c4,
- 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, 0x6b76,
- 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, 0x7bac,
- 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, 0x7ccc,
- 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, 0x7e03,
- 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, 0x7f76,
- 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec, 0x7fe6,
- 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f,
- /* 0xe7 */
- 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253,
- 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500,
- 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c,
- 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2,
- 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9,
- 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e,
- 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9,
- 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756,
- 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b,
- 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750,
- 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e, 0x875c,
- 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769, 0x885a,
- 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919, 0x8906,
- 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3, 0x89ed,
- 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1, 0x8ad4,
- 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8, 0x8ac3,
- 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5, 0x8cdf,
- 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c, 0x8da1,
- 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15, 0x8e1b,
- 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27,
- /* 0xe8 */
- 0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c,
- 0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073,
- 0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a,
- 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182,
- 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6,
- 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc,
- 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd,
- 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x92b5,
- 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae, 0x95b0,
- 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a, 0x978a,
- 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826, 0x9829,
- 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa, 0x9911,
- 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf, 0x99d3,
- 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7, 0x99cc,
- 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46, 0x9b43,
- 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70, 0x9b68,
- 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7, 0x9d07,
- 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83, 0x9ed3,
- 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111, 0x51de,
- 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e,
- /* 0xe9 */
- 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c,
- 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc,
- 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10,
- 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1,
- 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2,
- 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9,
- 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8,
- 0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x61bf,
- 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9, 0x64bd,
- 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f, 0x657c,
- 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf, 0x66bd,
- 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49, 0x6a67,
- 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b, 0x6a51,
- 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64, 0x6a50,
- 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e, 0x6a56,
- 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56, 0x6ba7,
- 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06, 0x6fad,
- 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4,
- 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba,
- 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8,
- /* 0xea */
- 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5,
- 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4,
- 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da,
- 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365,
- 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495,
- 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633,
- 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d,
- 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x7797,
- 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db, 0x78e1,
- 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48, 0x7a47,
- 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7,
- 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea,
- 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7,
- 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20,
- 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f,
- 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c,
- 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6,
- 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2,
- 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556, 0x8545,
- 0x856b, 0x854d, 0x8553, 0x8561, 0x8558,
- /* 0xeb */
- 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547,
- 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555,
- 0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c,
- 0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792,
- 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785,
- 0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789,
- 0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922,
- 0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2,
- 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0,
- 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91,
- 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c,
- 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45,
- 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36,
- 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079,
- 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190,
- 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306,
- 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301,
- 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9325,
- 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329,
- 0x9339, 0x9335, 0x932a, 0x9314, 0x930c,
- /* 0xec */
- 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd,
- 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9,
- 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0,
- 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929,
- 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea,
- 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa,
- 0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e,
- 0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d,
- 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d,
- 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87,
- 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126,
- 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c,
- 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f, 0x5681,
- 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23,
- 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2,
- 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5, 0x61bc,
- 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef, 0x64e9,
- 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6, 0x65da,
- 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b,
- 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e,
- /* 0xed */
- 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a,
- 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9,
- 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde,
- 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2,
- 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2,
- 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510,
- 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647,
- 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x77b4,
- 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb, 0x78fc,
- 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8, 0x7a5c,
- 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1,
- 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4,
- 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd,
- 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c,
- 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47,
- 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45,
- 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4,
- 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a,
- 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b,
- 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e,
- /* 0xee */
- 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e,
- 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582,
- 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668,
- 0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5,
- 0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af,
- 0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de,
- 0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937,
- 0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18,
- 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15,
- 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f,
- 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f,
- 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40,
- 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f,
- 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356,
- 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351,
- 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355,
- 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363,
- 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3,
- 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718,
- 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c,
- /* 0xef */
- 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a,
- 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933,
- 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1,
- 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb,
- 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01,
- 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1,
- 0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41,
- 0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45,
- 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d,
- 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff,
- 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e,
- 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c,
- 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed,
- 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff,
- 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db,
- 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6,
- 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9,
- 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014, 0x700e,
- 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201,
- 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376,
- /* 0xf0 */
- 0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2,
- 0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657,
- 0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c,
- 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac,
- 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d,
- 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56,
- 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53,
- 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x81d0,
- 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2, 0x85b3,
- 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce, 0x85c8,
- 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be,
- 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5,
- 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8,
- 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8, 0x87dd,
- 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951, 0x8949,
- 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47, 0x8b2f,
- 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36, 0x8b2e,
- 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99, 0x8c98,
- 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62, 0x8e60,
- 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67,
- /* 0xf1 */
- 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47,
- 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5,
- 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b,
- 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395,
- 0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4,
- 0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3,
- 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722,
- 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x97a2,
- 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850, 0x9851,
- 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b, 0x9a09,
- 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06, 0x9ac0,
- 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a, 0x9b4c,
- 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5, 0x9bb8,
- 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53, 0x9d4f,
- 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52,
- 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01,
- 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c,
- 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad,
- 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912,
- 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70,
- /* 0xf2 */
- 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e,
- 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1,
- 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd,
- 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016,
- 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c,
- 0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6,
- 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516,
- 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x7921,
- 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33, 0x7c3c,
- 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75, 0x7e78,
- 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68, 0x7f4b,
- 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078, 0x81d7,
- 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed, 0x85d9,
- 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8, 0x85d8,
- 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef, 0x85de,
- 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809, 0x880c,
- 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802, 0x8962,
- 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d, 0x8959,
- 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40,
- 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55,
- /* 0xf3 */
- 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a,
- 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d,
- 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51,
- 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad,
- 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec,
- 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3,
- 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da,
- 0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x97b3,
- 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859, 0x985d,
- 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947, 0x9943,
- 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b,
- 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2,
- 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0,
- 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec,
- 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81,
- 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b,
- 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85,
- 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68,
- 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d,
- 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2,
- /* 0xf4 */
- 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef,
- 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df,
- 0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9,
- 0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034,
- 0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b,
- 0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba,
- 0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd,
- 0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2,
- 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47,
- 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff,
- 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622, 0x85ff,
- 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605,
- 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813, 0x8816,
- 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68,
- 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84,
- 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143,
- 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb,
- 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419,
- 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412,
- 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff,
- /* 0xf5 */
- 0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df,
- 0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862,
- 0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c,
- 0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36,
- 0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10,
- 0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8,
- 0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f,
- 0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0,
- 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8,
- 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99,
- 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e,
- 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139,
- 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb,
- 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8,
- 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046,
- 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d,
- 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88,
- 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, 0x8618,
- 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, 0x862e,
- 0x8621, 0x8620, 0x8629, 0x861e, 0x8625,
- /* 0xf6 */
- 0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a,
- 0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45,
- 0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e,
- 0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b,
- 0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437,
- 0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a,
- 0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956,
- 0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f,
- 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b,
- 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21,
- 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe,
- 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac,
- 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a,
- 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31,
- 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb,
- 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520,
- 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056,
- 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5,
- 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71,
- 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a,
- /* 0xf7 */
- 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634,
- 0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826,
- 0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84,
- 0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a,
- 0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c,
- 0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449,
- 0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b,
- 0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49,
- 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55,
- 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c,
- 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde,
- 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9,
- 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35,
- 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299,
- 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201,
- 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12,
- 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383,
- 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640,
- 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e,
- 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe,
- /* 0xf8 */
- 0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64,
- 0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4,
- 0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52,
- 0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c,
- 0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4,
- 0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec,
- 0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3,
- 0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71,
- 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d,
- 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223,
- 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97,
- 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94,
- 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2,
- 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7,
- 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62,
- 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05,
- 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e,
- 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, 0x6b18,
- 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, 0x77d9,
- 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a,
- /* 0xf9 */
- 0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648,
- 0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5,
- 0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749,
- 0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10,
- 0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78,
- 0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2,
- 0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74,
- 0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4,
- 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e,
- 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, 0x9961,
- 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, 0x9f48,
- 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, 0x9481,
- 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f, 0x9483,
- 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a,
- 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, 0x7881, 0x92b9, 0x88cf, 0x58bb,
- 0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, 0x2560, 0x256c,
- 0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, 0x2555, 0x255e,
- 0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, 0x2565, 0x2556,
- 0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, 0x2551, 0x2550,
- 0x256d, 0x256e, 0x2570, 0x256f, 0xffed,
- /* 0xfa */
- 0xe000, 0x92db, 0xe002, 0xe003, 0x854c, 0x42b5, 0x73ef, 0x51b5,
- 0x3649, 0xe009, 0xe00a, 0x9344, 0xe00c, 0x82ee, 0xe00e, 0x783c,
- 0x6744, 0x62df, 0xe012, 0xe013, 0xe014, 0xe015, 0xe016, 0x4fab,
- 0xe018, 0x5008, 0xe01a, 0xe01b, 0xe01c, 0xe01d, 0xe01e, 0x5029,
- 0xe020, 0x5fa4, 0xe022, 0xe023, 0x6edb, 0xe025, 0x507d, 0x5101,
- 0x347a, 0x510e, 0x986c, 0x3743, 0x8416, 0xe02d, 0xe02e, 0x5160,
- 0xe030, 0x516a, 0xe032, 0xe033, 0xe034, 0xe035, 0xe036, 0xe037,
- 0xe038, 0x5b82, 0x877d, 0xe03b, 0xe03c, 0x51b2, 0x51b8, 0x9d34,
- 0x51c9, 0x51cf, 0x51d1, 0x3cdc, 0x51d3, 0xe045, 0x51b3, 0x51e2,
- 0x5342, 0x51ed, 0x83cd, 0x693e, 0xe04c, 0x5f7b, 0x520b, 0x5226,
- 0x523c, 0x52b5, 0x5257, 0x5294, 0x52b9, 0x52c5, 0x7c15, 0x8542,
- 0x52e0, 0x860d, 0xe05a, 0x5305, 0xe05c, 0x5549, 0x6ed9, 0xe05f,
- 0xe060, 0xe061, 0x5333, 0x5344, 0xe064, 0x6ccb, 0xe066, 0x681b,
- 0x73d5, 0x604a, 0x3eaa, 0x38cc, 0xe06c, 0x71dd, 0x44a2, 0x536d,
- 0x5374, 0xe071, 0x537e, 0x537f, 0xe074, 0xe075, 0x77e6, 0x5393,
- 0xe078, 0x53a0, 0x53ab, 0x53ae, 0x73a7, 0xe07d, 0x3f59, 0x739c,
- 0x53c1, 0x53c5, 0x6c49, 0x4e49, 0x57fe, 0x53d9, 0x3aab, 0xe087,
- 0x53e0, 0xe089, 0xe08a, 0x53f6, 0xe08c, 0x5413, 0x7079, 0x552b,
- 0x6657, 0x6d5b, 0x546d, 0xe093, 0xe094, 0x555d, 0x548f, 0x54a4,
- 0x47a6, 0xe099, 0xe09a, 0x3db4, 0xe09c,
- /* 0xfb */
- 0xe09d, 0xe09e, 0x5547, 0x4ced, 0x542f, 0x7417, 0x5586, 0x55a9,
- 0x5605, 0xe0a6, 0xe0a7, 0x4552, 0xe0a9, 0x66b3, 0xe0ab, 0x5637,
- 0x66cd, 0xe0ae, 0x66a4, 0x66ad, 0x564d, 0x564f, 0x78f1, 0x56f1,
- 0x9787, 0x53fe, 0x5700, 0x56ef, 0x56ed, 0xe0ba, 0x3623, 0xe0bc,
- 0x5746, 0xe0be, 0x6c6e, 0x708b, 0x5742, 0x36b1, 0xe0c3, 0x57e6,
- 0xe0c5, 0x5803, 0xe0c7, 0xe0c8, 0x5826, 0xe0ca, 0x585c, 0x58aa,
- 0x3561, 0x58e0, 0x58dc, 0xe0d0, 0x58fb, 0x5bff, 0x5743, 0xe0d4,
- 0xe0d5, 0x93d3, 0x35a1, 0x591f, 0x68a6, 0x36c3, 0x6e59, 0xe0dc,
- 0x5a24, 0x5553, 0xe0df, 0x8505, 0x59c9, 0xe0e2, 0xe0e3, 0xe0e4,
- 0xe0e5, 0x59d9, 0xe0e7, 0xe0e8, 0xe0e9, 0x6d71, 0xe0eb, 0xe0ec,
- 0x59f9, 0xe0ee, 0x5aab, 0x5a63, 0x36e6, 0xe0f2, 0x5a77, 0x3708,
- 0x5a96, 0x7465, 0x5ad3, 0xe0f8, 0xe0f9, 0x3d85, 0xe0fb, 0x3732,
- 0xe0fd, 0x5e83, 0x52d0, 0x5b76, 0x6588, 0x5b7c, 0xe103, 0x4004,
- 0x485d, 0xe106, 0x5bd5, 0x6160, 0xe109, 0xe10a, 0xe10b, 0x5bf3,
- 0x5b9d, 0x4d10, 0x5c05, 0xe110, 0x5c13, 0x73ce, 0x5c14, 0xe114,
- 0xe115, 0x5c49, 0x48dd, 0x5c85, 0x5ce9, 0x5cef, 0x5d8b, 0xe11c,
- 0xe11d, 0x5d10, 0x5d18, 0x5d46, 0xe121, 0x5cba, 0x5dd7, 0x82fc,
- 0x382d, 0xe126, 0xe127, 0xe128, 0x8287, 0x3836, 0x3bc2, 0x5e2e,
- 0x6a8a, 0x5e75, 0x5e7a, 0xe130, 0xe131, 0x53a6, 0x4eb7, 0x5ed0,
- 0x53a8, 0xe136, 0x5e09, 0x5ef4, 0xe139,
- /* 0xfc */
- 0x5ef9, 0x5efb, 0x38a0, 0x5efc, 0x683e, 0x941b, 0x5f0d, 0xe141,
- 0xe142, 0x3ade, 0x48ae, 0xe145, 0x5f3a, 0xe147, 0xe148, 0x5f58,
- 0xe14a, 0x5f63, 0x97bd, 0xe14d, 0x5f72, 0x9340, 0xe150, 0x5fa7,
- 0x5db6, 0x3d5f, 0xe154, 0xe155, 0xe156, 0xe157, 0x91d6, 0xe159,
- 0xe15a, 0x6031, 0x6685, 0xe15d, 0x3963, 0x3dc7, 0x3639, 0x5790,
- 0xe162, 0x7971, 0x3e40, 0x609e, 0x60a4, 0x60b3, 0xe168, 0xe169,
- 0xe16a, 0x74a4, 0x50e1, 0x5aa0, 0x6164, 0x8424, 0x6142, 0xe171,
- 0xe172, 0x6181, 0x51f4, 0xe175, 0x6187, 0x5baa, 0xe178, 0xe179,
- 0x61d3, 0xe17b, 0xe17c, 0x61d0, 0x3932, 0xe17f, 0xe180, 0x6023,
- 0x615c, 0x651e, 0x638b, 0xe185, 0x62c5, 0xe187, 0x62d5, 0xe189,
- 0x636c, 0xe18b, 0x3a17, 0x6438, 0x63f8, 0xe18f, 0xe190, 0x6490,
- 0x6f8a, 0xe193, 0x9814, 0xe195, 0xe196, 0x64e1, 0x64e5, 0x947b,
- 0x3a66, 0x643a, 0x3a57, 0x654d, 0x6f16, 0xe19f, 0xe1a0, 0x6585,
- 0x656d, 0x655f, 0xe1a4, 0x65b5, 0xe1a6, 0x4b37, 0x65d1, 0x40d8,
- 0xe1aa, 0x65e0, 0x65e3, 0x5fdf, 0xe1ae, 0x6618, 0xe1b0, 0xe1b1,
- 0x6644, 0xe1b3, 0xe1b4, 0x664b, 0xe1b6, 0x6667, 0xe1b8, 0x6673,
- 0x6674, 0xe1bb, 0xe1bc, 0xe1bd, 0xe1be, 0xe1bf, 0x77c5, 0xe1c1,
- 0x99a4, 0x6702, 0xe1c4, 0xe1c5, 0x3b2b, 0x69fa, 0xe1c8, 0x675e,
- 0x6767, 0x6762, 0xe1cc, 0xe1cd, 0x67d7, 0x44e9, 0x6822, 0x6e50,
- 0x923c, 0x6801, 0xe1d4, 0xe1d5, 0x685d,
- /* 0xfd */
- 0xe1d7, 0x69e1, 0x6a0b, 0xe1da, 0x6973, 0x68c3, 0xe1dd, 0x6901,
- 0x6900, 0x3d32, 0x3a01, 0xe1e2, 0x3b80, 0x67ac, 0x6961, 0xe1e6,
- 0x42fc, 0x6936, 0x6998, 0x3ba1, 0xe1eb, 0x8363, 0x5090, 0x69f9,
- 0xe1ef, 0xe1f0, 0x6a45, 0xe1f2, 0x6a9d, 0x3bf3, 0x67b1, 0x6ac8,
- 0xe1f7, 0x3c0d, 0x6b1d, 0xe1fa, 0x60de, 0x6b35, 0x6b74, 0xe1fe,
- 0x6eb5, 0xe200, 0xe201, 0xe202, 0x3740, 0x5421, 0xe205, 0x6be1,
- 0xe207, 0x6bdc, 0x6c37, 0xe20a, 0xe20b, 0xe20c, 0x6c5a, 0x8226,
- 0x6c79, 0xe210, 0x44c5, 0xe212, 0xe213, 0xe214, 0xe215, 0xe216,
- 0x36e5, 0x3ceb, 0xe219, 0x9b83, 0xe21b, 0xe21c, 0x7f8f, 0x6837,
- 0xe21f, 0xe220, 0xe221, 0x6d96, 0x6d5c, 0x6e7c, 0x6f04, 0xe226,
- 0xe227, 0xe228, 0x8533, 0xe22a, 0x51c7, 0x6c9c, 0x6e1d, 0x842e,
- 0xe22f, 0x6e2f, 0xe231, 0x7453, 0xe233, 0x79cc, 0x6e4f, 0x5a91,
- 0xe237, 0x6ff8, 0x370d, 0x6f9d, 0xe23b, 0x6efa, 0xe23d, 0xe23e,
- 0x4555, 0x93f0, 0x6f44, 0x6f5c, 0x3d4e, 0x6f74, 0xe245, 0x3d3b,
- 0x6f9f, 0xe248, 0x6fd3, 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e,
- 0xe24f, 0x51df, 0xe251, 0xe252, 0xe253, 0xe254, 0x704b, 0x707e,
- 0x70a7, 0x7081, 0x70cc, 0x70d5, 0x70d6, 0x70df, 0x4104, 0x3de8,
- 0x71b4, 0x7196, 0xe261, 0x712b, 0x7145, 0x5a88, 0x714a, 0x716e,
- 0x5c9c, 0xe268, 0x714f, 0x9362, 0xe26b, 0x712c, 0xe26d, 0xe26e,
- 0xe26f, 0x71ba, 0xe271, 0x70bd, 0x720e,
- /* 0xfe */
- 0x9442, 0x7215, 0x5911, 0x9443, 0x7224, 0x9341, 0xe27a, 0x722e,
- 0x7240, 0xe27d, 0x68bd, 0x7255, 0x7257, 0x3e55, 0xe282, 0x680d,
- 0x6f3d, 0x7282, 0x732a, 0x732b, 0xe288, 0xe289, 0x48ed, 0xe28b,
- 0x7328, 0x732e, 0x73cf, 0x73aa, 0xe290, 0xe291, 0x73c9, 0x7449,
- 0xe294, 0xe295, 0xe296, 0x6623, 0x36c5, 0xe299, 0xe29a, 0xe29b,
- 0x73f7, 0x7415, 0x6903, 0xe29f, 0x7439, 0xe2a1, 0x3ed7, 0x745c,
- 0xe2a4, 0x7460, 0xe2a6, 0x7447, 0x73e4, 0x7476, 0x83b9, 0x746c,
- 0x3730, 0x7474, 0x93f1, 0x6a2c, 0x7482, 0x4953, 0xe2b2, 0xe2b3,
- 0xe2b4, 0xe2b5, 0x5b46, 0xe2b7, 0xe2b8, 0x74c8, 0xe2ba, 0x750e,
- 0x74e9, 0x751e, 0xe2be, 0xe2bf, 0x5bd7, 0xe2c1, 0x9385, 0x754d,
- 0x754a, 0x7567, 0x756e, 0xe2c7, 0x3f04, 0xe2c9, 0x758e, 0x745d,
- 0x759e, 0x75b4, 0x7602, 0x762c, 0x7651, 0x764f, 0x766f, 0x7676,
- 0xe2d4, 0x7690, 0x81ef, 0x37f8, 0xe2d8, 0xe2d9, 0x76a1, 0x76a5,
- 0x76b7, 0x76cc, 0xe2de, 0x8462, 0xe2e0, 0xe2e1, 0xe2e2, 0x771e,
- 0x7726, 0x7740, 0x64af, 0xe2e7, 0x7758, 0xe2e9, 0x77af, 0xe2eb,
- 0xe2ec, 0xe2ed, 0x77f4, 0x7809, 0xe2f0, 0xe2f1, 0x68ca, 0x78af,
- 0x78c7, 0x78d3, 0x96a5, 0x792e, 0xe2f8, 0x78d7, 0x7934, 0x78b1,
- 0xe2fc, 0x8fb8, 0x8884, 0xe2ff, 0xe300, 0xe301, 0x7986, 0x8900,
- 0x6902, 0x7980, 0xe306, 0x799d, 0xe308, 0x793c, 0x79a9, 0x6e2a,
- 0xe30c, 0x3ea8, 0x79c6, 0xe30f, 0x79d4,
-};
-
-static int
-big5hkscs_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = s[0];
- if ((c1 >= 0x81 && c1 <= 0xfe)) {
- if (n >= 2) {
- unsigned char c2 = s[1];
- if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
- unsigned int i = 157 * (c1 - 0x81) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
- unsigned short wc = 0xfffd;
- {
- if (i < 19782)
- wc = big5hkscs_2uni_page81[i];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short big5hkscs_2charset[23202] = {
- 0xa246, 0xa247, 0xa244, 0xa1b1, 0xc6d8, 0xa1c2, 0xa258, 0xa1d3,
- 0xa1a6, 0xa367, 0xa150, 0xa14d, 0x8859, 0x8857, 0x885d, 0x885b,
- 0x8866, 0x8861, 0x885f, 0xa1d1, 0x886a, 0x8868, 0x886f, 0x886d,
- 0x88a7, 0x8873, 0x8871, 0x8877, 0x8875, 0xa1d2, 0xc8fb, 0x887b,
- 0x8879, 0x88a2, 0x8856, 0x8867, 0x885a, 0x886c, 0x885c, 0x886e,
- 0x8870, 0xc8fc, 0x885e, 0x8874, 0xc8fa, 0x8878, 0x8858, 0x8869,
- 0x8872, 0x8860, 0x8876, 0x887a, 0x887c, 0x887d, 0x887e, 0x88a1,
- 0xc8f6, 0x886b, 0xc8f8, 0xc8f7, 0x88a8, 0xc8fe, 0xc8f9, 0xc8f5,
- 0xc8fd, 0xc6d9, 0xa3be, 0xa3bc, 0xa3bd, 0xa3bf, 0xa1c5, 0xa3bb,
- 0xa1c2, 0xa344, 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a,
- 0xa34b, 0xa34c, 0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352,
- 0xa353, 0xa354, 0xa355, 0xa356, 0xa357, 0xa358, 0xa359, 0xa35a,
- 0xa35b, 0xa35c, 0xa35d, 0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362,
- 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xa368, 0xa369, 0xa36a,
- 0xa36b, 0xa36c, 0xa36d, 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372,
- 0xa373, 0xc7f9, 0xc7f3, 0xc7f4, 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8,
- 0xc7fa, 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe, 0xc840, 0xc841, 0xc842,
- 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc848, 0xc849, 0xc84a,
- 0xc84b, 0xc84c, 0xc84d, 0xc84e, 0xc84f, 0xc850, 0xc851, 0xc852,
- 0xc853, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xc85a,
- 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, 0xc863,
- 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, 0xc86a, 0xc86b,
- 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xc871, 0xc872, 0xc873,
- 0xc874, 0xc875, 0xc85b, 0x8863, 0x88a4, 0x8865, 0x88a6, 0xa156,
- 0xa158, 0xa277, 0xa1fc, 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, 0xa145,
- 0xa3bb, 0xa14c, 0xa14b, 0xa145, 0xa1ac, 0xa1b2, 0xa1ab, 0xa1b0,
- 0xa1c3, 0xa24a, 0xa1c1, 0xa24b, 0xc8d2, 0xc8d3, 0xa2b9, 0xa2ba,
- 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2,
- 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc,
- 0xc6bd, 0xc6be, 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0xa1f8, 0xa1f9,
- 0xa1fb, 0xa1fa, 0xc877, 0xc878, 0xc876, 0xa241, 0xa242, 0xa258,
- 0xa1d4, 0xa1db, 0xa1e8, 0xa1e7, 0xa1fd, 0xa1fc, 0xa1e4, 0xa1e5,
- 0xa1ec, 0xa1ed, 0xa1ef, 0xa1ee, 0xa1dc, 0xa1da, 0xa1dd, 0xa1dd,
- 0xa1d8, 0xa1d9, 0xa1f2, 0xa1f3, 0xa1e6, 0xa1e9, 0xa15b, 0xc6a1,
- 0xc6a2, 0xc6a3, 0xc6a4, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9,
- 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1,
- 0xc6b2, 0xc6b3, 0xc6b4, 0xa277, 0xa278, 0xa27a, 0xa27b, 0xa27c,
- 0xa27d, 0xa275, 0xa274, 0xa273, 0xa272, 0xa271, 0xf9f9, 0xf9f8,
- 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, 0xf9ec, 0xf9f5,
- 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, 0xf9e0, 0xf9eb,
- 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, 0xf9f6, 0xf9e4,
- 0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd, 0xf9fc, 0xa2ac,
- 0xa2ad, 0xa2ae, 0xa15a, 0xa262, 0xa263, 0xa264, 0xa265, 0xa266,
- 0xa267, 0xa268, 0xa269, 0xa270, 0xa26f, 0xa26e, 0xa26d, 0xa26c,
- 0xa26b, 0xa26a, 0xf9fe, 0xa276, 0xa279, 0xa1bd, 0xa1bc, 0xa1b6,
- 0xa1b5, 0xa1bf, 0xa1be, 0xa1bb, 0xa1ba, 0xa1b3, 0xa1b7, 0xa1b4,
- 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0xa1b9, 0xa1b8, 0xa1f3, 0xa1f0,
- 0xa1f2, 0xa1f1, 0xc6e6, 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da,
- 0xc8db, 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0xc8e0, 0xc8e1, 0xc8e2,
- 0xc8e3, 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea,
- 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc6cd,
- 0xa140, 0xa142, 0xa143, 0xa1b2, 0xc6e0, 0xc6e1, 0xc6e2, 0xa171,
- 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179, 0xa17a, 0xa169,
- 0xa16a, 0xa245, 0xa165, 0xa166, 0xa1e3, 0xa1a9, 0xa1aa, 0xa2c3,
- 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, 0xa2cb,
- 0xa1ca, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, 0xc6ed,
- 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, 0xc6f4, 0xc6f5,
- 0xc6f6, 0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd,
- 0xc6fe, 0xc740, 0xc741, 0xc742, 0xc743, 0xc744, 0xc745, 0xc746,
- 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e,
- 0xc74f, 0xc750, 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, 0xc756,
- 0xc757, 0xc758, 0xc759, 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e,
- 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766,
- 0xc767, 0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e,
- 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0xc774, 0xc775, 0xc776,
- 0xc777, 0xc778, 0xc779, 0xc77a, 0xc8d4, 0xc8d5, 0xc6dc, 0xc6dd,
- 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4,
- 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac,
- 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b4,
- 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7bc,
- 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, 0xc7c3, 0xc7c4,
- 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, 0xc7cb, 0xc7cc,
- 0xc7cd, 0xc7ce, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4,
- 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, 0xc7dc,
- 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0xc7e4,
- 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec,
- 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc6e3, 0xc6da,
- 0xc6db, 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, 0xa37a,
- 0xa37b, 0xa37c, 0xa37d, 0xa37e, 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4,
- 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac,
- 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4,
- 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, 0xa3ba, 0xa440, 0xa447,
- 0xa454, 0xa57c, 0xa457, 0xa4a4, 0xa455, 0xa5d2, 0xa441, 0xa4fe,
- 0xa442, 0xa4d1, 0xa661, 0xa448, 0xa440, 0xa447, 0xa454, 0xa57c,
- 0xa4ad, 0xa4bb, 0xa443, 0xa44b, 0xa445, 0xa451, 0xa4eb, 0xa4f5,
- 0xa4f4, 0xa4ec, 0xaaf7, 0xa467, 0xa4e9, 0xc8d1, 0xa6b3, 0xaac0,
- 0xa657, 0xaf53, 0xb05d, 0xafac, 0xb3d2, 0xa54e, 0xa949, 0xbec7,
- 0xbaca, 0xa5f8, 0xb8ea, 0xa8f3, 0xb2bd, 0xa5f0, 0xa6db, 0xa6dc,
- 0xa440, 0xa447, 0xa454, 0xa57c, 0xa4ad, 0xa4bb, 0xa443, 0xa44b,
- 0xa445, 0xa451, 0xa4eb, 0xa4f5, 0xa4f4, 0xa4ec, 0xaaf7, 0xa467,
- 0xa4e9, 0xaee8, 0xa6b3, 0xaac0, 0xa657, 0xaf53, 0xb05d, 0xafac,
- 0xb3d2, 0xafb5, 0xa86b, 0xa46b, 0xbe41, 0xc075, 0xa64c, 0xaa60,
- 0xb6b5, 0xa5f0, 0xbc67, 0xa1c0, 0xa457, 0xa4a4, 0xa455, 0xa5aa,
- 0xa56b, 0xc2e5, 0xa976, 0xbec7, 0xbaca, 0xa5f8, 0xb8ea, 0xa8f3,
- 0xa95d, 0xa255, 0xa256, 0xa250, 0xa251, 0xa252, 0xa254, 0xa257,
- 0xa253, 0xa1eb, 0xa1ea, 0xa24f, 0x9277, 0x96df, 0x89d5, 0x93cd,
- 0x9bdf, 0xfa68, 0x89da, 0x8f59, 0x89db, 0x8f5d, 0x89dc, 0x96f7,
- 0x8ada, 0x8bdc, 0x97db, 0x9e53, 0x9daa, 0x9bea, 0x8a6e, 0x8bc8,
- 0x89e8, 0x89ea, 0x8c4b, 0xfb70, 0x89ed, 0x94dd, 0x89ee, 0x9eb4,
- 0x8ad3, 0x92db, 0x94db, 0x89f9, 0xfb7a, 0x89fb, 0x9efc, 0x89fc,
- 0x89bf, 0x89fe, 0x89e6, 0x9d46, 0x9dee, 0xa07e, 0xa068, 0x98e9,
- 0x8b68, 0x8dfd, 0x8bbe, 0x9fd9, 0x8aeb, 0x9fd7, 0x8b6a, 0x9c5c,
- 0x8bb1, 0xfb5e, 0x9df3, 0xa0d0, 0xfc66, 0x92e9, 0x9aec, 0x8fab,
- 0xfa48, 0x8e45, 0x9c6f, 0x9ede, 0x89ef, 0x96e9, 0x9ebb, 0x94de,
- 0x9eb8, 0x97ba, 0xfb65, 0x95d6, 0x9cbb, 0x97da, 0x8f45, 0xfb7d,
- 0x9158, 0xfe64, 0x9856, 0x9b4d, 0x935b, 0x95c7, 0x97e7, 0x9359,
- 0x91f5, 0x97b8, 0xfda2, 0xfbb6, 0x92fa, 0x9357, 0x8ba6, 0xfbb9,
- 0x97b0, 0xfdc4, 0x9ca1, 0x91f2, 0x91f9, 0x8ff1, 0x9745, 0x9853,
- 0xfe78, 0xfbc1, 0x9251, 0x9dad, 0xfd6c, 0xfa6b, 0x9bc2, 0x9a7b,
- 0x8b60, 0x934b, 0x9abd, 0x91b7, 0x95b4, 0xfec5, 0x9ef0, 0x8d64,
- 0x9269, 0x8d67, 0xfbea, 0xfbef, 0x8d68, 0x93eb, 0xfc42, 0x9166,
- 0xfacd, 0x93dd, 0x8bcc, 0x8d6d, 0x8d6e, 0x96a8, 0xfca6, 0x8d6f,
- 0x8d70, 0xfc64, 0x9060, 0x8d74, 0x97c3, 0x8ad0, 0x9274, 0x9bbe,
- 0x9cc8, 0x9cba, 0x8d78, 0x9eb9, 0x955a, 0x91b4, 0x8a48, 0x8d7d,
- 0x8a7d, 0x8ac2, 0xfd4a, 0x8da1, 0x8ad1, 0xfcb4, 0x8b47, 0x93a4,
- 0x9eda, 0x8a51, 0x8da6, 0x9ec5, 0xfcc4, 0xa078, 0x94b5, 0xfcc2,
- 0x8a6b, 0x8dab, 0xfae8, 0x8dad, 0xfc49, 0x93c1, 0x906f, 0x8db0,
- 0x947e, 0x90fa, 0x9479, 0x8db2, 0xfcee, 0x997b, 0x8db4, 0x8db7,
- 0x91b3, 0x8dbb, 0x8dba, 0x8dbc, 0x9044, 0xfd4c, 0x93e4, 0x93e0,
- 0xfd53, 0x8dc3, 0x9bb8, 0xfbf0, 0x93e9, 0x93f6, 0x8dc5, 0x8dca,
- 0x8dcc, 0xfd5d, 0x93b5, 0xfd61, 0x9cf8, 0x9252, 0xa0e8, 0x9ca5,
- 0x8c56, 0x8dd6, 0x97c0, 0xa0de, 0x97d2, 0xfaa5, 0xfda3, 0x8ddb,
- 0x8eaf, 0x91b5, 0xfd49, 0xfdd1, 0x8deb, 0x97c6, 0xfdce, 0x90fc,
- 0xfc59, 0x96d6, 0x97c5, 0x8def, 0x97d7, 0x8df0, 0x96a6, 0xfbbf,
- 0x8df3, 0x9449, 0x8df5, 0x9872, 0x8e6b, 0xfafd, 0x8f50, 0x9dcc,
- 0xfc65, 0x8c44, 0x996e, 0x94a1, 0x8f63, 0xa0da, 0x9253, 0xfde9,
- 0x9db5, 0x9879, 0x9d5d, 0x8d63, 0x9669, 0x9f70, 0xfc6a, 0x8ac7,
- 0x89d7, 0xfe4d, 0x9edd, 0xfefb, 0x98bc, 0xfacc, 0x95b0, 0x9464,
- 0x936f, 0x94b9, 0x95ec, 0x91ee, 0x98c3, 0x95f6, 0x8ffd, 0x98c5,
- 0x9766, 0xfe6e, 0x97dd, 0x8caa, 0x92d2, 0x9761, 0x98cb, 0x95f0,
- 0x975d, 0x91e3, 0x98cc, 0x9469, 0x98cd, 0x98ce, 0x95fc, 0x94a3,
- 0x9662, 0xfeb6, 0x9463, 0x98d0, 0x98d1, 0x9475, 0xfae0, 0x9472,
- 0x98d6, 0x8af0, 0x98d9, 0x98db, 0x98dd, 0x98a8, 0x8a6d, 0x8afb,
- 0x8aae, 0xfbc9, 0x8c5d, 0x98e4, 0x98e6, 0x98e8, 0x8a4d, 0x9257,
- 0x95df, 0xa0ac, 0x98eb, 0x98ec, 0x8cc3, 0x98f4, 0x8ab8, 0x9ee7,
- 0x94bc, 0xfcd1, 0x9cc6, 0x9e7e, 0x98fe, 0xfde8, 0x9940, 0x94c9,
- 0x94d3, 0x9946, 0x90c0, 0x94d1, 0x9573, 0x93c2, 0x9948, 0x994b,
- 0x8e55, 0x994e, 0x8efe, 0x8e59, 0x94ec, 0x94ef, 0x8c60, 0x8f74,
- 0x9955, 0x9544, 0x8ccb, 0x9956, 0x9959, 0x995b, 0x8cc4, 0xfa45,
- 0x90b7, 0x9743, 0x95cd, 0x97c9, 0xfd50, 0x8eb9, 0x95c6, 0x9967,
- 0x8ab9, 0x8dfc, 0x8a76, 0x9d51, 0x9973, 0x9d4f, 0x997a, 0x9564,
- 0x99a1, 0x99a5, 0x99a7, 0x8eed, 0x99ad, 0x946e, 0x8f70, 0xfad0,
- 0x99b3, 0xa053, 0x965c, 0xfd7a, 0x97fe, 0x92bd, 0x97fd, 0x8f64,
- 0xfcf7, 0x9562, 0x97cd, 0x9e64, 0x924c, 0x8ec9, 0x99bc, 0x9da5,
- 0x8f54, 0x8f7c, 0x8ea2, 0x8f7a, 0x97ae, 0x96c8, 0x99c3, 0x90d6,
- 0x9cbe, 0x8f76, 0x9470, 0xfb4b, 0xfdca, 0x8ec7, 0xa0f9, 0x8fa9,
- 0x99c7, 0x90d7, 0x9edf, 0x99ce, 0x8fba, 0x8feb, 0x99cf, 0x8fc2,
- 0x92c9, 0x97dc, 0x95b3, 0x9c79, 0x95b2, 0x8fdb, 0x9be3, 0x9e7a,
- 0x9bee, 0x99de, 0xfafa, 0x9ee5, 0x8a52, 0x99e1, 0x8a67, 0x8bb5,
- 0x8aac, 0x99e9, 0xfbca, 0x97de, 0x95d1, 0x99f5, 0xfc4a, 0x9ba9,
- 0xfbdc, 0xfe56, 0x9ea4, 0x9d49, 0x95db, 0x89c5, 0x99f8, 0x9664,
- 0x9055, 0x96d4, 0x977c, 0x964d, 0x97e1, 0x9a48, 0x9a49, 0xfe7d,
- 0x90aa, 0x9a50, 0x9347, 0x8ed8, 0x90c9, 0x9a55, 0x90bc, 0x9a58,
- 0x8bb8, 0x90d5, 0x9641, 0x9a5a, 0x9a5c, 0x97c2, 0x8abb, 0x9baa,
- 0x90f5, 0x9a60, 0x9145, 0x8c58, 0x9a63, 0x8c49, 0x8bb6, 0xfccf,
- 0x966b, 0x9a6e, 0x914f, 0x9746, 0xa0e6, 0x92d7, 0x9675, 0x93d4,
- 0x91bb, 0x9679, 0x9a70, 0x9678, 0x91cd, 0x9c4a, 0xa06f, 0xa06a,
- 0x915f, 0x9fa5, 0x89ba, 0x9ecd, 0x9a79, 0x9dce, 0x8cd2, 0x9d73,
- 0x96b9, 0x96bc, 0x9cd1, 0x89b7, 0x9eee, 0xfb43, 0x9ec9, 0xfbd3,
- 0x91ae, 0x9d78, 0x9d7b, 0xa440, 0xa442, 0xa443, 0x9eb3, 0xc945,
- 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3, 0xc94f, 0xc94d,
- 0xa4a2, 0xa4a1, 0xa542, 0xa541, 0xa540, 0xa543, 0xa4fe, 0x9eb2,
- 0x9dd6, 0xa5e0, 0xa5e1, 0x994f, 0x89ce, 0xa8c3, 0x8bc0, 0x9fc4,
- 0xa458, 0x8bd4, 0xa4a4, 0xc950, 0x8c72, 0xa4a5, 0xc963, 0xa6ea,
- 0xcbb1, 0xc6bf, 0x8bf9, 0xa459, 0xa4a6, 0xa544, 0xc964, 0x8946,
- 0xc6c0, 0xc940, 0xa444, 0xa45b, 0xc947, 0xa45c, 0xfae5, 0xa4a7,
- 0xa545, 0xa547, 0xa546, 0xa5e2, 0xa5e3, 0xa8c4, 0xadbc, 0xa441,
- 0xc87b, 0x8bc6, 0xc941, 0xa445, 0xa45e, 0xa45d, 0xa5e4, 0x9c57,
- 0xa8c5, 0x9afb, 0xb0ae, 0xd44b, 0x89d0, 0x89cf, 0xb6c3, 0xdcb1,
- 0xdcb2, 0xc6c1, 0xa446, 0x89d1, 0xa4a9, 0x89e2, 0xa8c6, 0xa447,
- 0xc948, 0xa45f, 0xa4aa, 0xa4ac, 0xc951, 0xa4ad, 0xa4ab, 0x927e,
- 0xa5e5, 0x9dba, 0xa8c7, 0xa8c8, 0xab45, 0xc6c2, 0xa460, 0xa4ae,
- 0x8c6f, 0xa5e6, 0xa5e8, 0xa5e7, 0xa6eb, 0xa8c9, 0xa8ca, 0xab46,
- 0xab47, 0xadbd, 0xdcb3, 0xfbf8, 0xf6d6, 0xa448, 0x8bc7, 0x926b,
- 0x89d2, 0xa4b0, 0xa4af, 0xc952, 0xa4b1, 0xa4b7, 0xa4b2, 0xa4b3,
- 0xc954, 0xc953, 0xa4b5, 0xa4b6, 0xa4b4, 0x9fcf, 0xa54a, 0xa54b,
- 0xa54c, 0xa54d, 0xa549, 0xa550, 0xc96a, 0xc966, 0xc969, 0xa551,
- 0xa561, 0xc968, 0xa54e, 0xa54f, 0xa548, 0xc965, 0xc967, 0x9da9,
- 0x89d3, 0x99e2, 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae,
- 0xa5f3, 0xc9b2, 0x9267, 0xa5f4, 0xa5f7, 0xa5e9, 0xc9b1, 0xa5f8,
- 0xc9b5, 0x92a4, 0xc9b9, 0xc9b6, 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9,
- 0xa5ee, 0xc9ab, 0xa5f1, 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af,
- 0xa5ed, 0x8c73, 0xc9ac, 0xa5eb, 0x894e, 0xc9b4, 0xc9b7, 0x894f,
- 0x9278, 0xc9ad, 0xca66, 0xa742, 0xa6f4, 0x91b6, 0xca67, 0xa6f1,
- 0xa744, 0x89d4, 0xa6f9, 0x9fd2, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7,
- 0xca60, 0xca68, 0xca64, 0x92a7, 0xa6fa, 0x95a2, 0xa6fd, 0xa6ee,
- 0xa747, 0xca5d, 0x926e, 0xcbbd, 0xa6ec, 0xa743, 0xa6ed, 0xa6f5,
- 0xa6f6, 0xca62, 0xca5e, 0xa6fb, 0xa6f3, 0xca5a, 0xa6ef, 0xca65,
- 0xa745, 0xa748, 0xa6f2, 0xa740, 0xa746, 0xa6f0, 0xca63, 0xa741,
- 0xca69, 0xca5c, 0xa6fe, 0xca5f, 0xca61, 0xa8d8, 0xcbbf, 0xcbcb,
- 0xa8d0, 0xcbcc, 0xa8cb, 0xa8d5, 0x96ea, 0xa8ce, 0xcbb9, 0xa8d6,
- 0xcbb8, 0xcbbc, 0xcbc3, 0xcbc1, 0xa8de, 0xa8d9, 0xcbb3, 0xcbb5,
- 0xa8db, 0xa8cf, 0xcbb6, 0xcbc2, 0xcbc9, 0xa8d4, 0xcbbb, 0xcbb4,
- 0xa8d3, 0xcbb7, 0xa8d7, 0xcbba, 0x926f, 0xa8d2, 0xa8cd, 0xa8dc,
- 0xcbc4, 0xa8dd, 0xcbc8, 0xcbc6, 0xcbca, 0xa8da, 0xcbbe, 0xcbb2,
- 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0x92a3, 0x8950, 0xfa57,
- 0xab56, 0xab4a, 0x9866, 0xcde0, 0xcde8, 0xab49, 0xab51, 0xab5d,
- 0xcdee, 0xcdec, 0xcde7, 0x89d6, 0xab4b, 0xcded, 0xcde3, 0xab59,
- 0xab50, 0xab58, 0xcdde, 0xcdea, 0x98b2, 0xcde1, 0xab54, 0xcde2,
- 0x92ab, 0xcddd, 0xab5b, 0xab4e, 0xab57, 0xab4d, 0xcddf, 0xcde4,
- 0xcdeb, 0xab55, 0xab52, 0xcde6, 0xab5a, 0xcde9, 0xcde5, 0xab4f,
- 0xab5c, 0xab53, 0xab4c, 0xab48, 0x96de, 0x92ac, 0xcdef, 0xadd7,
- 0xadc1, 0x8c70, 0xadd1, 0x9f6e, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4,
- 0xd0d5, 0xadc4, 0x8ef2, 0xadcd, 0x9f6c, 0xadda, 0xadce, 0x89d8,
- 0xd0c9, 0xadc7, 0xd0ca, 0xfa59, 0xaddc, 0xadd3, 0xadbe, 0xadbf,
- 0xd0dd, 0xb0bf, 0xadcc, 0xadcb, 0xd0cb, 0xadcf, 0xd45b, 0xadc6,
- 0xd0d6, 0xadd5, 0xadd4, 0xadca, 0xd0ce, 0xd0d7, 0xd0c8, 0xadc9,
- 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0xadc3, 0xadc2, 0xd0d9, 0xadd0,
- 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8, 0x92a8, 0xd0db, 0xd0cd,
- 0xd0dc, 0xd0d1, 0x9163, 0xd0da, 0xd0d2, 0x8c40, 0xadc8, 0xd463,
- 0xd457, 0xb0b3, 0xd45c, 0xd462, 0xb0b2, 0xd455, 0xb0b6, 0xd459,
- 0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, 0xd467, 0xd451, 0xb0ba,
- 0x9f73, 0xd466, 0x92ad, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f,
- 0xd45d, 0xd450, 0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0x9be9,
- 0xd85b, 0xd45e, 0xd44d, 0xd45f, 0x92a9, 0xb0c1, 0xd464, 0xb0c0,
- 0xd44c, 0xd454, 0xd465, 0xb0bc, 0xb0bb, 0xb0b8, 0xb0bd, 0xb0af,
- 0xb0b0, 0xb3c8, 0x92aa, 0xd85e, 0xd857, 0xb3c5, 0xd85f, 0x89d9,
- 0xd855, 0xd858, 0xb3c4, 0xd859, 0xfd56, 0xb3c7, 0xd85d, 0xd853,
- 0xd852, 0xb3c9, 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c, 0xd85a,
- 0xd854, 0xb3c3, 0xd856, 0x9fa8, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd,
- 0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb,
- 0xdcc4, 0xdcbf, 0xb6cc, 0x8c71, 0xdcb4, 0xb6c9, 0xdcb5, 0xdcbe,
- 0xdcbc, 0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, 0xdcbb, 0xdcc2, 0xdcb9,
- 0xdcc1, 0x92a1, 0xb9b6, 0xb9b3, 0x90e3, 0xb9b4, 0xe0f9, 0xe0f1,
- 0xb9b2, 0xb9af, 0xe0f2, 0xa0a6, 0xb9b1, 0xe0f5, 0xe0f7, 0x94ab,
- 0xe0fe, 0xfc72, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0, 0xb9ac, 0xe0f3,
- 0xb9b7, 0xe0f6, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc, 0xe0fb, 0xb9b5,
- 0xe0f4, 0x97c4, 0xbbf8, 0xe4ec, 0xe4e9, 0xbbf9, 0xbbf7, 0x92ae,
- 0xe4f0, 0xe4ed, 0xe4e6, 0xbbf6, 0xfa67, 0xbbfa, 0xe4e7, 0xbbf5,
- 0xbbfd, 0xe4ea, 0xe4eb, 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef,
- 0x92a2, 0xfa69, 0xbeaa, 0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab,
- 0xe8f6, 0xbea8, 0xe8f7, 0xe8f4, 0xc076, 0xecbd, 0xc077, 0xecbb,
- 0xecbc, 0xecba, 0xecb9, 0xecbe, 0xc075, 0x9268, 0xefb8, 0xefb9,
- 0xe4e8, 0xefb7, 0xc078, 0xc35f, 0xf1eb, 0xf1ec, 0xc4d7, 0xc4d8,
- 0xf5c1, 0xf5c0, 0xc56c, 0xc56b, 0xf7d0, 0xa449, 0xa461, 0xa4b9,
- 0xa4b8, 0xa553, 0xa552, 0xa5fc, 0xa5fb, 0xa5fd, 0xa5fa, 0xa74a,
- 0xa749, 0xa74b, 0xa8e0, 0xa8df, 0xa8e1, 0x8951, 0xab5e, 0xa259,
- 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b, 0xd860, 0xfa6f, 0xa25d,
- 0xb9b8, 0xa25e, 0xa44a, 0xa4ba, 0xa5fe, 0xa8e2, 0xfa71, 0xa44b,
- 0xa4bd, 0xa4bb, 0xa4bc, 0xa640, 0x8952, 0xa74c, 0xa8e4, 0xa8e3,
- 0xa8e5, 0x945a, 0xaddd, 0xbeac, 0xc6c3, 0x89dd, 0xc94e, 0xc8a2,
- 0xa554, 0xa555, 0xa641, 0xca6a, 0xab60, 0xab5f, 0xd0e0, 0xd0df,
- 0xb0c3, 0xc6c4, 0xa4be, 0xc955, 0x9e52, 0x8953, 0xcbcd, 0xab61,
- 0xade0, 0xadde, 0xaddf, 0x9e55, 0x92ba, 0xbead, 0xc6c5, 0xa556,
- 0x8c5b, 0xa642, 0xc9bc, 0xfa7d, 0xfaa8, 0x9a68, 0xfa47, 0xa74d,
- 0xa74e, 0xfa7e, 0xca6b, 0xcbce, 0xa8e6, 0xcbcf, 0x92bb, 0xd0e2,
- 0xd0e3, 0xade3, 0xfdb6, 0xd0e4, 0xfaa2, 0xd0e1, 0xade4, 0xade2,
- 0xade1, 0xd0e5, 0xfaa3, 0xd468, 0xfaa4, 0x9bb4, 0xfaa6, 0xd861,
- 0xdcc5, 0xe140, 0x89df, 0xbbfe, 0xbeae, 0xe8f9, 0xfddb, 0xa44c,
- 0xa45a, 0xfaa9, 0x8954, 0xfaab, 0xb0c4, 0xb3cd, 0xb9b9, 0xfc7a,
- 0xc942, 0xa4bf, 0xa559, 0xa557, 0xa558, 0x89e0, 0xa8e7, 0x9f4f,
- 0xa44d, 0xa44e, 0xc87d, 0xa462, 0x89e1, 0xa4c0, 0xa4c1, 0xa4c2,
- 0xc9be, 0xa55a, 0xfab0, 0xc96b, 0xa646, 0xc9bf, 0xa644, 0xa645,
- 0xc9bd, 0xa647, 0xa643, 0xca6c, 0xaaec, 0xca6d, 0x9fcd, 0xa0e7,
- 0xca6e, 0xa750, 0xa74f, 0xfab1, 0x89a6, 0xa753, 0xa751, 0xa752,
- 0xa8ed, 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0x9efa, 0xcbd0, 0xa8ee,
- 0xa8ea, 0xa8e9, 0xa8eb, 0xa8e8, 0xfab2, 0xa8ef, 0xab63, 0xcdf0,
- 0xcbd3, 0xab68, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62,
- 0xd0e8, 0xade7, 0xd0eb, 0xade5, 0xfab4, 0x92c4, 0xd0e7, 0xade8,
- 0xade6, 0xade9, 0xd0e9, 0xd0ea, 0x9f6f, 0xd0e6, 0xd0ec, 0x8bb0,
- 0xb3d1, 0xb0c5, 0xd469, 0xd46b, 0xd46a, 0xd46c, 0xb0c6, 0xb3ce,
- 0x9fac, 0xb3cf, 0xb3d0, 0xb6d0, 0xdcc7, 0x89e3, 0xdcc6, 0xdcc8,
- 0xdcc9, 0xb6d1, 0xb6cf, 0xe141, 0xe142, 0xb9bb, 0xb9ba, 0xe35a,
- 0xbc40, 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3, 0xbc43, 0x9bd3,
- 0x89e4, 0xbeaf, 0xbeb0, 0xfab5, 0xf1ed, 0xf5c3, 0xf5c2, 0xf7d1,
- 0x9fd5, 0xa44f, 0xa55c, 0xa55b, 0x8955, 0xa648, 0x92c5, 0xc9c0,
- 0x8956, 0xa755, 0xa756, 0xa754, 0xa757, 0xca6f, 0xca70, 0xfab3,
- 0xfab6, 0xa8f1, 0xcbd5, 0xa8f0, 0xcdf2, 0xab6c, 0xcdf3, 0xab6b,
- 0xfab7, 0xab69, 0xab6a, 0x9edc, 0xd0ed, 0xfbc4, 0x9f71, 0xb0c7,
- 0xd46e, 0xb0ca, 0xd46d, 0xb1e5, 0xb0c9, 0xb0c8, 0xb3d4, 0xb3d3,
- 0xb3d2, 0xb6d2, 0xfaba, 0x92c7, 0xb6d5, 0xb6d6, 0xb6d4, 0xb6d3,
- 0xe143, 0xe144, 0xe4f5, 0xbc45, 0xe4f4, 0xbeb1, 0xecbf, 0xc079,
- 0xf1ee, 0xc455, 0xc6c6, 0xa463, 0xa4c3, 0xc956, 0xa4c4, 0xa4c5,
- 0x9a4c, 0xa55d, 0xa55e, 0xa649, 0xca71, 0xcbd6, 0xcbd7, 0xab6d,
- 0xd0ee, 0xb0cc, 0xb0cb, 0xd863, 0xd862, 0xa450, 0xa4c6, 0xa55f,
- 0xb0cd, 0xc943, 0xc96c, 0xa560, 0xc9c2, 0xa64b, 0xa64a, 0xc9c1,
- 0xa758, 0x8c68, 0x89e5, 0xadea, 0x9f7d, 0xd46f, 0xb6d7, 0xe145,
- 0xb9bc, 0xa0a9, 0xfac4, 0xe8fa, 0xf3fd, 0xc6c7, 0xa4c7, 0x8957,
- 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, 0xb0cf, 0xa451, 0xfaaa, 0xa464,
- 0xa2cd, 0xa4ca, 0xa4c9, 0xa4c8, 0xa563, 0xa562, 0xc96d, 0xc9c3,
- 0x8958, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0xab6e, 0xb3d5, 0xa452,
- 0x8be3, 0xa4cb, 0x8b61, 0xa565, 0xa564, 0xca72, 0x9af1, 0xa8f6,
- 0x9eb7, 0xc6c8, 0xc957, 0xfad1, 0xa567, 0xa566, 0xa64c, 0xa64d,
- 0xca73, 0xa759, 0xfad2, 0xa75a, 0xa8f7, 0xa8f8, 0xa8f9, 0xab6f,
- 0xcdf5, 0x9eba, 0xfad4, 0xadeb, 0xc944, 0xa4cc, 0xc9c4, 0xca74,
- 0xca75, 0xcbd9, 0xfad9, 0xcbda, 0xcdf7, 0xcdf6, 0xcdf9, 0xcdf8,
- 0xab70, 0xd470, 0xaded, 0xd0ef, 0xadec, 0xfadb, 0x9ce0, 0xd864,
- 0xb3d6, 0xfbf7, 0xd865, 0xfbfa, 0x89e7, 0xa07a, 0xfadc, 0xe146,
- 0xb9bd, 0xfadd, 0x89e9, 0xbc46, 0xf1ef, 0xc6c9, 0xc958, 0xa568,
- 0xfae2, 0x89eb, 0xb0d1, 0xfae3, 0xa453, 0xa465, 0xa4ce, 0xa4cd,
- 0x90c8, 0xa4cf, 0x92da, 0x8959, 0x9cf5, 0xa8fb, 0xa8fa, 0xa8fc,
- 0x895a, 0xfae7, 0x9fa2, 0xab71, 0xadee, 0xfaea, 0xe8fb, 0xc24f,
- 0xa466, 0xa56a, 0xa579, 0xa574, 0xa56f, 0xa56e, 0xa575, 0xa573,
- 0xa56c, 0xa57a, 0xa56d, 0xa569, 0xa578, 0xa577, 0xa576, 0xa56b,
- 0xa572, 0xfaed, 0x8fad, 0xa571, 0xa57b, 0xa570, 0xfb59, 0xa653,
- 0xa659, 0xa655, 0xa65b, 0xc9c5, 0xa658, 0xa64e, 0xa651, 0xa654,
- 0xa650, 0xa657, 0xa65a, 0xa64f, 0xa652, 0xa656, 0xa65c, 0xfaef,
- 0x96ef, 0x9dec, 0xca7e, 0xca7b, 0x9dca, 0xa767, 0xca7c, 0xa75b,
- 0xa75d, 0xa775, 0xa770, 0xfd6d, 0x89ec, 0xcaa5, 0xca7d, 0xa75f,
- 0xa761, 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d,
- 0xfb44, 0xca76, 0xa773, 0x9de2, 0xa764, 0x8c75, 0xa76e, 0xa76f,
- 0xca77, 0xa76c, 0xa76a, 0xa76b, 0xa771, 0xcaa1, 0xa75e, 0xa772,
- 0xcaa3, 0xa766, 0xa763, 0xca7a, 0xa762, 0xcaa6, 0xa765, 0xa769,
- 0x9ec0, 0x9e56, 0xa760, 0xcaa2, 0xca79, 0xcbeb, 0xcbea, 0xa94f,
- 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee, 0xa950, 0x9f79, 0x9ac7,
- 0xcbe1, 0xcbe5, 0xfaf4, 0xcbe9, 0xce49, 0xa94b, 0xce4d, 0xa8fd,
- 0xcbe6, 0xa8fe, 0xa94c, 0xa945, 0xa941, 0xcbe2, 0xa944, 0xa949,
- 0xa952, 0xcbe3, 0xcbdc, 0xa943, 0xcbdd, 0xcbdf, 0xa946, 0x98a1,
- 0xa948, 0xcbdb, 0xcbe0, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0xfaf8,
- 0xa94a, 0xcbde, 0xa947, 0x89f0, 0x9e47, 0xa942, 0xa940, 0x9df7,
- 0xcbec, 0xa94e, 0x9fd3, 0x9aca, 0xce48, 0xcdfb, 0xce4b, 0x89f1,
- 0xfaf9, 0xcdfd, 0xab78, 0xaba8, 0xab74, 0xaba7, 0xab7d, 0xaba4,
- 0xab72, 0xcdfc, 0xce43, 0xaba3, 0xce4f, 0xaba5, 0x8e5a, 0xab79,
- 0x89f2, 0xce45, 0xce42, 0xab77, 0x89f3, 0xcdfa, 0xaba6, 0xce4a,
- 0xab7c, 0xce4c, 0xaba9, 0xab73, 0xab7e, 0xab7b, 0xce40, 0xaba1,
- 0xce46, 0xce47, 0xab7a, 0xaba2, 0xab76, 0x925d, 0x8b51, 0x92e0,
- 0xab75, 0xcdfe, 0x89f4, 0xce44, 0x9fd4, 0xce4e, 0xd144, 0xadfb,
- 0xd0f1, 0x8a79, 0xd0f6, 0xadf4, 0xae40, 0xd0f4, 0xadef, 0xadf9,
- 0xadfe, 0xd0fb, 0xadfa, 0xadfd, 0x89f5, 0xd0fe, 0xadf5, 0xd0f5,
- 0xd142, 0xd143, 0xadf7, 0xd141, 0xadf3, 0xae43, 0xd0f8, 0xadf1,
- 0x97a7, 0xd146, 0xd0f9, 0xd0fd, 0xadf6, 0xae42, 0xd0fa, 0xadfc,
- 0xd140, 0xd147, 0xd4a1, 0x93ba, 0xd145, 0xae44, 0xadf0, 0xd0fc,
- 0xd0f3, 0x9e58, 0xadf8, 0xd0f2, 0x89f6, 0xd0f7, 0x9e57, 0x89f7,
- 0x8a41, 0xd0f0, 0xae41, 0x89f8, 0xd477, 0xfaf1, 0xb0e4, 0xd4a7,
- 0xb0e2, 0xb0df, 0xd47c, 0xb0db, 0xd4a2, 0xb0e6, 0xd476, 0xd47b,
- 0xd47a, 0xadf2, 0xb0e1, 0xd4a5, 0xd4a8, 0xd473, 0xb3e8, 0x89fa,
- 0xd4a9, 0xb0e7, 0xb0d9, 0xb0d6, 0xd47e, 0xb0d3, 0xfb42, 0xd4a6,
- 0xfabf, 0xb0da, 0xd4aa, 0xd474, 0xd4a4, 0xb0dd, 0xd475, 0xd478,
- 0xd47d, 0xfba3, 0xb0de, 0xb0dc, 0xb0e8, 0xb0e3, 0xfaf7, 0xb0d7,
- 0xb1d2, 0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0x9e4e,
- 0xb0d4, 0x94dc, 0x95da, 0x9df8, 0x9f6a, 0xd471, 0xd472, 0xd86a,
- 0x8ab7, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, 0xb3d8, 0xd871,
- 0xb3de, 0xb3e4, 0xb5bd, 0xfb46, 0xb3e2, 0xd86e, 0xb3ef, 0xb3db,
- 0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, 0x8a46, 0xd866, 0xd873,
- 0xd86d, 0xb3e1, 0xd879, 0xb3dd, 0xb3f1, 0xb3ea, 0xb3df, 0xb3dc,
- 0xb3e7, 0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9,
- 0xd867, 0xfb47, 0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0x9148,
- 0xb3ed, 0xb3e9, 0xb3e5, 0x92de, 0xd870, 0x8b53, 0x9df6, 0xb3eb,
- 0x9bda, 0xdcd5, 0xdcd1, 0x9d7e, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5,
- 0xb6e6, 0xb6de, 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde,
- 0xb6dc, 0xdcd8, 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9,
- 0xdcdb, 0x89fd, 0x99e4, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0,
- 0x9e43, 0xb6d8, 0xb6e4, 0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db,
- 0xa25f, 0xb6d9, 0xdcd4, 0x9de9, 0x8f52, 0xb6e2, 0x9df5, 0x9df0,
- 0xdcdd, 0x99e7, 0xb9cd, 0xb9c8, 0xe155, 0xe151, 0x8bbd, 0xe14b,
- 0xb9c2, 0xb9be, 0xe154, 0xb9bf, 0xe14e, 0xe150, 0xe153, 0x9def,
- 0xb9c4, 0xb9cb, 0xb9c5, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, 0xb9cc,
- 0x9fb7, 0xe14a, 0xe14f, 0xb9c3, 0xe148, 0xb9c9, 0xb9c1, 0xb9c0,
- 0xe14d, 0xe152, 0x9dd0, 0xb9ca, 0x9feb, 0x8da9, 0x9dcf, 0x98e1,
- 0x9de5, 0xe147, 0xbc4d, 0xe547, 0xe544, 0x9dc8, 0xbc47, 0xbc53,
- 0xbc54, 0xbc4a, 0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0xfb4f, 0xe546,
- 0xbc49, 0xe548, 0xbc48, 0xe543, 0xe545, 0xbc4b, 0xe541, 0xe4fa,
- 0xe4f7, 0x9deb, 0xd86b, 0xe4fd, 0xe4f6, 0xe4fc, 0xe4fb, 0xe4f8,
- 0xfb54, 0xbc4f, 0xfb55, 0x9aa2, 0x8ad6, 0xbc4e, 0x9a5f, 0xbc50,
- 0xe4fe, 0xbeb2, 0xe540, 0x9ef5, 0xe945, 0xe8fd, 0x8fb7, 0xbebe,
- 0xe942, 0xbeb6, 0xbeba, 0xe941, 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3,
- 0xbebd, 0xe943, 0xe8fe, 0xbebc, 0xe8fc, 0xbebb, 0xe944, 0xe940,
- 0xbc51, 0xbebf, 0xe946, 0xbeb7, 0xbeb4, 0x9ad2, 0x9e6a, 0x9ee8,
- 0xecc6, 0xecc8, 0xc07b, 0xecc9, 0xecc7, 0xecc5, 0xecc4, 0xc07d,
- 0xecc3, 0xc07e, 0x8bbf, 0x91c2, 0x9d62, 0xecc1, 0xecc2, 0xc07a,
- 0xc0a1, 0xc07c, 0x9260, 0xecc0, 0xc250, 0xefbc, 0xefba, 0xefbf,
- 0xefbd, 0xefbb, 0xefbe, 0x925e, 0x91c1, 0x8ac5, 0x97a3, 0xc360,
- 0xf1f2, 0xf1f3, 0xc456, 0xf1f4, 0xf1f0, 0xf1f5, 0xf1f1, 0xc251,
- 0x8b6c, 0x8d7e, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457,
- 0x9c54, 0xc45a, 0xf5c5, 0xf5c6, 0x9dbd, 0xc4da, 0xc4d9, 0xc4db,
- 0xf5c4, 0xf6d8, 0xf6d7, 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8,
- 0xf8a6, 0xc5f1, 0xf8a5, 0xf8ee, 0x9cc5, 0xc949, 0xa57d, 0xa57c,
- 0xa65f, 0xa65e, 0xc9c7, 0xa65d, 0xc9c6, 0x895b, 0xa779, 0xcaa9,
- 0xcaa8, 0xa777, 0xa77a, 0xfb5c, 0xcaa7, 0xfb5b, 0xa778, 0xfb57,
- 0xcbf0, 0xcbf1, 0xa954, 0x98c7, 0xabaa, 0xfb5a, 0xd148, 0xd149,
- 0xae45, 0xae46, 0xd4ac, 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c,
- 0xb3f2, 0xb6e9, 0xb6ea, 0xdce1, 0x9cee, 0xb9cf, 0xb9ce, 0xe549,
- 0xe948, 0xe947, 0x92e2, 0xf96b, 0xa467, 0xc959, 0xc96e, 0xc96f,
- 0xa662, 0xa666, 0xc9c9, 0xa664, 0xa663, 0xc9c8, 0xa665, 0xa661,
- 0x94a7, 0xa660, 0xc9ca, 0xa7a6, 0x8ccc, 0xa7a3, 0x9bd4, 0xa77d,
- 0xcaaa, 0xfb64, 0xfb76, 0xcaab, 0xfb60, 0xa7a1, 0xcaad, 0xa77b,
- 0xcaae, 0xcaac, 0xa77e, 0xa7a2, 0xa7a5, 0xa7a4, 0xa77c, 0xcaaf,
- 0x99e5, 0x9ac2, 0x91fb, 0xa073, 0xa959, 0xcbfe, 0xa95b, 0xa95a,
- 0x9f72, 0xcc40, 0xa958, 0xa957, 0xcbf5, 0xcbf4, 0xcbf2, 0xcbf7,
- 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8, 0xa956, 0x9fcc,
- 0xcbfb, 0xa95c, 0xcc41, 0x98a5, 0x92e8, 0xcbf9, 0xabab, 0xa955,
- 0x9bbc, 0x96f3, 0xabac, 0xce54, 0x92e7, 0xce5a, 0xfc67, 0xabb2,
- 0xce58, 0xce5e, 0xce55, 0xce59, 0xce5b, 0xce5d, 0xce57, 0x8b7d,
- 0xce56, 0xce51, 0xce52, 0xabad, 0x9bf4, 0xabaf, 0xabae, 0xce53,
- 0xce5c, 0x9ef7, 0x9ec1, 0xabb1, 0x996f, 0xce50, 0xd153, 0xd152,
- 0xd157, 0xd14e, 0x96f1, 0xd151, 0xd150, 0x8e41, 0xd154, 0xd158,
- 0xae47, 0xae4a, 0x954a, 0xd14f, 0xd155, 0x97e6, 0xae49, 0xd14a,
- 0xabb0, 0xd4ba, 0xd156, 0xd14d, 0xae48, 0xd14c, 0x96f5, 0xd4b1,
- 0x92e6, 0x9f42, 0xb0ec, 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1,
- 0xd4bf, 0xfb67, 0xd4c5, 0xd4c9, 0xd4c0, 0xd4b4, 0xd4bc, 0x99a9,
- 0xd4ca, 0xd4c8, 0xd4be, 0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5,
- 0xd4b7, 0xb0f6, 0xb0f2, 0xd4ad, 0xd4c3, 0xd4b5, 0xfae6, 0xd4b3,
- 0xd4c6, 0xb0f3, 0xfb69, 0xd4cc, 0xb0ed, 0xb0ef, 0xd4bb, 0xd4b6,
- 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb, 0xd4c2, 0xd4c4, 0x97e5,
- 0xd4ae, 0xd8a1, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2, 0xb3fb, 0xb3f9,
- 0x967d, 0xd8a4, 0xb3f6, 0xd8a8, 0xfb6c, 0xd8a3, 0xd8a5, 0xd87d,
- 0xb3f4, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, 0xb3f7, 0xb3f8, 0xd14b,
- 0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, 0xd8b0, 0xd8af, 0x99a2,
- 0xd8b3, 0xdcef, 0xd8ac, 0x9abb, 0x9a65, 0x944e, 0xd8a7, 0xdce7,
- 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6, 0xdcea, 0xdce5, 0xb6ec, 0xb6f6,
- 0xdce2, 0xb6f0, 0xdce9, 0xb6ee, 0xb6ed, 0xdcec, 0xb6ef, 0xdcee,
- 0xfb6e, 0xdceb, 0xb6eb, 0x99df, 0xb6f5, 0xdcf0, 0xdce4, 0xdced,
- 0xdce3, 0x98e3, 0xb6f1, 0x9254, 0xb6f3, 0xdce8, 0xdcf1, 0x967b,
- 0x8aaf, 0xe15d, 0xb9d0, 0xe163, 0xb9d5, 0xe15f, 0xe166, 0xe157,
- 0xb9d7, 0xb9d1, 0xe15c, 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0xb9d6,
- 0xe15a, 0xe160, 0xe165, 0xe156, 0xb9d4, 0xe15e, 0xe162, 0xe168,
- 0xe158, 0xe161, 0x8c77, 0xb9d3, 0xe167, 0xe159, 0x8baf, 0x9ebd,
- 0xbc59, 0xe54b, 0xbc57, 0xbc56, 0xe54d, 0xe552, 0xe54e, 0xe551,
- 0xbc5c, 0x9ee6, 0xbea5, 0xbc5b, 0xfb6f, 0xe54a, 0xe550, 0xbc5a,
- 0xe54f, 0x8ee1, 0xe54c, 0xbc58, 0x9b7d, 0x9c7e, 0xe94d, 0xf9d9,
- 0xe94f, 0xe94a, 0xbec1, 0xe94c, 0xbec0, 0xe94e, 0xbec3, 0xe950,
- 0xbec2, 0xe949, 0xe94b, 0x92ea, 0xc0a5, 0xeccc, 0x8c78, 0xc0a4,
- 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca, 0xc253, 0xc252, 0xf1f6,
- 0xf1f8, 0xfb72, 0xf1f7, 0xc361, 0xc362, 0xfb71, 0xc363, 0xf442,
- 0xc45b, 0xf7d3, 0xf7d2, 0xc5f2, 0xa468, 0xa4d0, 0xa7a7, 0x895c,
- 0x98f0, 0x96f2, 0xce5f, 0xb3fc, 0xb3fd, 0xfb74, 0xdcf2, 0xb9d8,
- 0xe169, 0xe553, 0x8bc1, 0xc95a, 0x895d, 0x89de, 0xcab0, 0x895e,
- 0xc6ca, 0xcc42, 0xce60, 0xd159, 0xae4c, 0xfe42, 0xf1f9, 0xc4dc,
- 0xa469, 0xa57e, 0xc970, 0xa667, 0xa668, 0xa95d, 0xfb7b, 0xb0f7,
- 0xb9da, 0xb9db, 0xb9d9, 0xa46a, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b,
- 0xa4d4, 0xa5a1, 0xc971, 0xa5a2, 0x895f, 0x8960, 0xa669, 0xa66a,
- 0xc9cb, 0xa7a8, 0xcab1, 0xa961, 0xcc43, 0xa95f, 0xa960, 0xa95e,
- 0xd15a, 0xabb6, 0xabb5, 0xabb7, 0xabb4, 0xce61, 0xa962, 0xabb3,
- 0xae4d, 0xae4e, 0xae4f, 0xd4cd, 0xb3fe, 0xd8b4, 0xb0f8, 0x9bcd,
- 0xb6f8, 0xb9dd, 0xb9dc, 0xe16a, 0xbc5d, 0xbec4, 0xefc0, 0xf6da,
- 0xf7d4, 0xa46b, 0xa5a3, 0x9dd3, 0xa5a4, 0xc9d1, 0xa66c, 0xa66f,
- 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, 0xc9cc, 0xa671, 0xa670,
- 0xa66d, 0xa66b, 0xc9ce, 0x984c, 0xa7b3, 0xa7b0, 0xcab6, 0xcab9,
- 0xcab8, 0xa7aa, 0xa7b2, 0x9752, 0xa7af, 0xcab5, 0xcab3, 0xa7ae,
- 0x95c3, 0xa7a9, 0xa7ac, 0x9bb6, 0xcab4, 0xcabb, 0xcab7, 0xa7ad,
- 0xa7b1, 0xa7b4, 0xcab2, 0xcaba, 0xa7ab, 0x9ab9, 0xa967, 0xa96f,
- 0x97b3, 0xcc4f, 0xcc48, 0xa970, 0xcc53, 0xcc44, 0xcc4b, 0x9f74,
- 0x92f1, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50, 0xa963, 0xcc51,
- 0xcc4a, 0xcc4d, 0x97df, 0xa972, 0xa969, 0xcc54, 0xcc52, 0xfba6,
- 0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, 0xa96a, 0xa968,
- 0xa971, 0xa96d, 0xa965, 0xcc4e, 0xabb9, 0xfbab, 0xabc0, 0xce6f,
- 0xabb8, 0xce67, 0xce63, 0xce73, 0xce62, 0xabbb, 0xce6c, 0xabbe,
- 0xabc1, 0xabbc, 0xce70, 0xabbf, 0x9877, 0xae56, 0xce76, 0xce64,
- 0x9854, 0x95c5, 0xce66, 0xce6d, 0xce71, 0xce75, 0xce72, 0xce6b,
- 0xce6e, 0x9d55, 0xfbb2, 0xce68, 0xabc3, 0xce6a, 0xce69, 0xce74,
- 0xabba, 0xce65, 0xabc2, 0x957e, 0xabbd, 0xae5c, 0xd162, 0x9742,
- 0xae5b, 0x94e6, 0xd160, 0xae50, 0x92f5, 0xae55, 0xd15f, 0xd15c,
- 0xd161, 0xae51, 0xd15b, 0x8cc5, 0xae54, 0xae52, 0xd163, 0xae53,
- 0xae57, 0x92fd, 0xae58, 0xfba2, 0xae5a, 0x9c51, 0xae59, 0x94e9,
- 0x985c, 0x92f0, 0xd15d, 0xd15e, 0xd164, 0xd4d4, 0xb0f9, 0xd8c2,
- 0xd4d3, 0xd4e6, 0xb140, 0x944c, 0xd4e4, 0xb0fe, 0xb0fa, 0xd4ed,
- 0xd4dd, 0xd4e0, 0x916b, 0xb143, 0xd4ea, 0xd4e2, 0xb0fb, 0xb144,
- 0xd4e7, 0xd4e5, 0xd4d6, 0xd4eb, 0xd4df, 0xd4da, 0x8b78, 0xd4d0,
- 0xd4ec, 0xd4dc, 0xd4cf, 0x94e2, 0xb142, 0xd4e1, 0xd4ee, 0xd4de,
- 0xd4d2, 0xd4d7, 0xd4ce, 0x984f, 0xb141, 0xfbb5, 0xd4db, 0xd4d8,
- 0xb0fc, 0xd4d1, 0x9271, 0xd4e9, 0xb0fd, 0x9365, 0xd4d9, 0xd4d5,
- 0x985b, 0xd4e8, 0x9850, 0xb440, 0xd8bb, 0x97bc, 0xd8b8, 0xd8c9,
- 0xd8bd, 0xd8ca, 0x92f3, 0xb442, 0x9340, 0x984d, 0xd8c6, 0xd8c3,
- 0x9572, 0xfdef, 0xd8c4, 0xd8c7, 0xd8cb, 0xd4e3, 0xd8cd, 0xdd47,
- 0xfdc1, 0xb443, 0xd8ce, 0xd8b6, 0xd8c0, 0xfbba, 0xd8c5, 0x92eb,
- 0xb441, 0xb444, 0xd8cc, 0xd8cf, 0xd8ba, 0xd8b7, 0xfc73, 0x97b7,
- 0xd8b9, 0xd8be, 0xd8bc, 0xb445, 0xd8c8, 0xfbb4, 0xd8bf, 0xd8c1,
- 0xd8b5, 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9, 0xdd44,
- 0xdd40, 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd, 0xb6fc,
- 0xdcfb, 0xdd41, 0xb6f9, 0xb741, 0x90a7, 0xdcf4, 0xdcfe, 0xdcf3,
- 0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0x9741, 0x92f4,
- 0xfbbc, 0xe16e, 0xb9e2, 0xb9e1, 0xb9e3, 0xe17a, 0xe170, 0xe176,
- 0xe16b, 0xe179, 0xe178, 0xe17c, 0xe175, 0xb9de, 0xe174, 0xb9e4,
- 0x9577, 0xe16d, 0xb9df, 0xe17b, 0xb9e0, 0xe16f, 0xe172, 0xe177,
- 0xe171, 0xe16c, 0x9ee2, 0x8f78, 0xe173, 0xe555, 0xbc61, 0xe558,
- 0xe557, 0xe55a, 0xe55c, 0xf9dc, 0xbc5f, 0xe556, 0x9672, 0xe554,
- 0xe55d, 0xe55b, 0xe559, 0xe55f, 0xe55e, 0xbc63, 0xbc5e, 0xbc60,
- 0xbc62, 0x9eb5, 0xe560, 0xe957, 0x964b, 0xe956, 0xe955, 0x8cac,
- 0xe958, 0xe951, 0xe952, 0xe95a, 0xe953, 0xbec5, 0xe95c, 0xa0fa,
- 0xe95b, 0xe954, 0xecd1, 0xc0a8, 0xeccf, 0xecd4, 0xecd3, 0xe959,
- 0xc0a7, 0x9575, 0xecd2, 0xecce, 0xecd6, 0xecd5, 0xc0a6, 0xecd0,
- 0xbec6, 0xc254, 0xefc1, 0xf1fa, 0xf1fb, 0xf1fc, 0xc45c, 0x90da,
- 0xc45d, 0x9367, 0xf443, 0xfea4, 0xf5c8, 0xf5c7, 0x90df, 0xf6db,
- 0xf6dc, 0xf7d5, 0xf8a7, 0x9354, 0xa46c, 0xa46d, 0xa46e, 0xa4d5,
- 0xa5a5, 0xc9d3, 0xa672, 0xa673, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5,
- 0xa973, 0xcc55, 0xa975, 0xa974, 0xcc56, 0x8961, 0x8bb4, 0xabc4,
- 0xae5d, 0xd165, 0x9dc0, 0xd4f0, 0xb145, 0xb447, 0xd4ef, 0xb446,
- 0x8e48, 0xb9e5, 0xfbc5, 0xe17d, 0xbec7, 0xc0a9, 0xecd7, 0xfbc7,
- 0xc45e, 0xc570, 0xc6cb, 0xc972, 0xfa79, 0xa5a6, 0xc973, 0xa676,
- 0xa674, 0xa675, 0xa677, 0xa7ba, 0xa7b9, 0xcabc, 0xa7bb, 0x9e67,
- 0xcabd, 0xcc57, 0xcc58, 0x8cd9, 0xa976, 0xa978, 0xa97a, 0xa977,
- 0xa97b, 0xa979, 0xfbd2, 0x8962, 0x8963, 0xabc8, 0xabc5, 0xabc7,
- 0xabc9, 0xabc6, 0xd166, 0xce77, 0xfc7d, 0xd168, 0xd167, 0xae63,
- 0xae5f, 0xae60, 0xae62, 0xae64, 0xae61, 0xae66, 0xae65, 0xb14a,
- 0xd4f2, 0xd4f1, 0xb149, 0x9f6b, 0xb148, 0xb147, 0xb14b, 0xb146,
- 0xd8d5, 0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0xb44b, 0xd8d4, 0xb448,
- 0xb44a, 0xd8d3, 0xfbcc, 0xdd48, 0xfeae, 0xdd49, 0xdd4a, 0xb9e6,
- 0xb9ee, 0xe17e, 0xb9e8, 0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea,
- 0xb9e7, 0xb9eb, 0xbc66, 0xd8d0, 0xbc67, 0xbc65, 0xbc64, 0xe95d,
- 0xbec8, 0xecd8, 0xecd9, 0xfbd1, 0xc364, 0xc45f, 0xa46f, 0xa678,
- 0xfb75, 0xabca, 0xd169, 0xae67, 0xfbd4, 0xb14e, 0xb14d, 0xb14c,
- 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470, 0xc95c, 0xa4d6,
- 0xc974, 0xfbd6, 0xfbd8, 0xc9d4, 0xa679, 0xa97c, 0x8b5d, 0x934c,
- 0xdd4b, 0x9ae2, 0xa471, 0x8bc9, 0xa4d7, 0xc9d5, 0xcabe, 0xcabf,
- 0xa7bc, 0xd8d8, 0xb44e, 0xdd4c, 0xc0aa, 0xa472, 0xa4a8, 0xa4d8,
- 0xc975, 0xa5a7, 0xa7c0, 0xa7bf, 0xa7bd, 0xa7be, 0xcc59, 0xa97e,
- 0xa9a1, 0xcc5a, 0xa97d, 0xfbdb, 0x9fc9, 0xabce, 0xce78, 0xabcd,
- 0xabcb, 0xabcc, 0xae6a, 0xae68, 0x9f44, 0xd16b, 0xae69, 0xd16a,
- 0xae5e, 0xd4f3, 0xb150, 0xb151, 0x98ed, 0xb14f, 0xb9f0, 0xe1a2,
- 0xbc68, 0xbc69, 0xe561, 0xc0ab, 0xefc2, 0xefc3, 0xc4dd, 0xf8a8,
- 0xc94b, 0xa4d9, 0xa473, 0xc977, 0xc976, 0xa67a, 0xc9d7, 0xc9d8,
- 0xc9d6, 0xc9d9, 0xfbdd, 0xcac7, 0xcac2, 0xcac4, 0xcac6, 0xcac3,
- 0xa7c4, 0xcac0, 0xcac1, 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3,
- 0xcac9, 0x8df2, 0x8964, 0xfdf2, 0xcc68, 0x934d, 0xcc62, 0xcc5d,
- 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69, 0xcc6c, 0xcc67, 0xcc60,
- 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64, 0xcc5b, 0xcc5f, 0xcc6b,
- 0xa9a7, 0xa9a8, 0xcc5e, 0xcc6a, 0xa9a2, 0xa9a4, 0xfbe7, 0xa0f2,
- 0x9868, 0xceab, 0xcea4, 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b,
- 0xceac, 0xcea9, 0xce79, 0x9f58, 0xabd0, 0xcea7, 0xcea8, 0xcea6,
- 0xce7c, 0xce7a, 0xabcf, 0xcea2, 0xce7e, 0xcea1, 0xcead, 0x8d73,
- 0xae6f, 0xfbde, 0xae6e, 0xd16c, 0xae6b, 0xd16e, 0xfbdf, 0xae70,
- 0xd16f, 0xae73, 0x8c48, 0xae71, 0xd170, 0xceae, 0xd172, 0xae6d,
- 0xae6c, 0xd16d, 0xd171, 0xae72, 0xb153, 0xb152, 0xd4f5, 0xd4f9,
- 0xd4fb, 0xb154, 0xd4fe, 0xfbe3, 0xb158, 0xd541, 0xb15a, 0x8da8,
- 0xb156, 0xb15e, 0xfbe4, 0xb15b, 0xd4f7, 0xb155, 0xd4f6, 0xd4f4,
- 0xd543, 0xd4f8, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d,
- 0xd4fa, 0xb159, 0x9c75, 0xd544, 0x9878, 0xd540, 0xd8e7, 0xd8ee,
- 0xd8e3, 0xb451, 0xd8df, 0xd8ef, 0xd8d9, 0xd8ec, 0xd8ea, 0xd8e4,
- 0xd8ed, 0xd8e6, 0x8d60, 0xd8de, 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da,
- 0xd8f1, 0xfbe5, 0xb452, 0x8d61, 0xd8eb, 0xdd4f, 0xd8dd, 0xb44f,
- 0xd8e1, 0xb450, 0xd8e0, 0xd8e5, 0xd8e2, 0x8d62, 0xa0a1, 0xd8e8,
- 0x9c40, 0xdd53, 0xdd56, 0xdd4e, 0xdd50, 0xdd55, 0xdd54, 0xb743,
- 0xd8db, 0xdd52, 0xb744, 0x98ad, 0xdd4d, 0xdd51, 0x9eea, 0xe1a9,
- 0xe1b0, 0xe1a7, 0x8cd4, 0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, 0xe1a4,
- 0xe1a8, 0xe1a3, 0xb9f1, 0x9ceb, 0xe1a6, 0xb9f2, 0xe1ac, 0xe1ab,
- 0xe1aa, 0xfbe0, 0xe1af, 0x9f51, 0xe565, 0xe567, 0xbc6b, 0xe568,
- 0xe563, 0xe562, 0xe56c, 0xe56a, 0xbc6a, 0xe56d, 0xe564, 0xe569,
- 0xe56b, 0xe566, 0x8d65, 0xe961, 0xe966, 0xe960, 0xe965, 0x9cf1,
- 0xe95e, 0xe968, 0xe964, 0xe969, 0xe963, 0xe95f, 0xe967, 0xe96a,
- 0xe962, 0xfc58, 0xecda, 0xc0af, 0x8d66, 0xc0ad, 0xc0ac, 0xc0ae,
- 0xefc4, 0x9654, 0xf172, 0xf1fd, 0xf444, 0xf445, 0xc460, 0xf5c9,
- 0xc4de, 0xf5ca, 0xf6de, 0xc572, 0xc571, 0xf6dd, 0xc5c9, 0xfbe8,
- 0xf7d6, 0xc6cc, 0xa474, 0xa67b, 0xc9da, 0xcaca, 0xa8b5, 0xb15f,
- 0xa475, 0xa5aa, 0xa5a9, 0xa5a8, 0xa7c5, 0xae74, 0xdd57, 0xa476,
- 0xa477, 0xa478, 0xa4da, 0x9fce, 0xabd1, 0xceaf, 0xb453, 0xa479,
- 0xc95d, 0xa5ab, 0xa5ac, 0xc978, 0xa67c, 0xfbfc, 0xcacb, 0x9ae4,
- 0xa7c6, 0xcacc, 0xa9ae, 0x9f75, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d,
- 0xa9a9, 0xcc6f, 0xa9aa, 0xa9ad, 0xabd2, 0xabd4, 0xceb3, 0xceb0,
- 0xceb1, 0xceb2, 0xceb4, 0xabd3, 0xd174, 0xd173, 0xae76, 0xae75,
- 0xfbf1, 0xb162, 0xd546, 0xb161, 0xb163, 0xb160, 0xb455, 0xd545,
- 0xb456, 0xd8f3, 0x8d69, 0xb457, 0xd8f2, 0xb454, 0x934f, 0xdd5a,
- 0xdd5c, 0xb745, 0xdd5b, 0xdd59, 0xdd58, 0xe1b4, 0xb9f7, 0xb9f5,
- 0xb9f6, 0xe1b2, 0xe1b3, 0xb9f3, 0xe571, 0xe56f, 0x934e, 0xbc6d,
- 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0xe96d, 0xe96b, 0xe96c, 0xe56e,
- 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6, 0xe96e, 0xf1fe, 0xa47a,
- 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0xa9af, 0xb746, 0xfbf4, 0xa4db,
- 0xa5ae, 0xabd5, 0xb458, 0xc6ce, 0xc979, 0xc97a, 0xfbc3, 0xc9dc,
- 0x8965, 0xa7c8, 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1,
- 0xa7c7, 0x8c7a, 0xa9b3, 0xa9b4, 0xa9b1, 0x8c7b, 0xa9b0, 0xceb8,
- 0xa9b2, 0xabd6, 0xceb7, 0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79,
- 0xd175, 0xd177, 0xae77, 0xd178, 0xae78, 0xd176, 0xceb5, 0xd547,
- 0xd54a, 0xd54b, 0xd548, 0xb167, 0xb166, 0xb164, 0xb165, 0xd549,
- 0x8d6a, 0xb168, 0xb45a, 0xb45b, 0xb45c, 0xdd5d, 0xdd5f, 0xdd61,
- 0xb748, 0xb747, 0xb459, 0xdd60, 0xdd5e, 0x9353, 0xe1b8, 0x9dfb,
- 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9, 0xe1b7, 0xe1b5,
- 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574, 0xbc71, 0xbc74,
- 0xe575, 0xbc6f, 0xbc73, 0xe973, 0xe971, 0xe970, 0xe972, 0xe96f,
- 0xc366, 0xf446, 0xf447, 0xf5cb, 0xf6df, 0xc655, 0xfbfd, 0xa9b5,
- 0xa7ca, 0x9059, 0xfc40, 0xabd8, 0xfc41, 0xfc43, 0xa47b, 0xa4dc,
- 0xa5af, 0xc9dd, 0xa7cb, 0xcad2, 0xcebb, 0xabd9, 0xb9fa, 0xa47c,
- 0x9361, 0xfc46, 0x9362, 0xa6a1, 0xb749, 0xa47d, 0xa4dd, 0xa4de,
- 0xa5b1, 0xa5b0, 0xc9de, 0xa6a2, 0xcad3, 0xa7cc, 0xcc71, 0xcc72,
- 0xcc73, 0x8d6b, 0xa9b6, 0xa9b7, 0xcc70, 0xa9b8, 0xabda, 0xcebc,
- 0xd17a, 0xae7a, 0xd179, 0xb169, 0xd54c, 0xb16a, 0xd54d, 0xfc4c,
- 0xb45d, 0xdd62, 0xe1bf, 0xe1be, 0xb9fb, 0xbc75, 0xe576, 0xbeca,
- 0xe974, 0xc0b1, 0x95b8, 0xc573, 0xf7d8, 0xc6d0, 0x8bca, 0xcc74,
- 0xcebd, 0xb16b, 0xd8f4, 0xb74a, 0x987a, 0xc255, 0xc6d1, 0xa7ce,
- 0xfc51, 0xa7cd, 0xabdb, 0xd17b, 0xb16d, 0xb343, 0xb16e, 0xb16c,
- 0xb45e, 0xe1c0, 0xb9fc, 0xbc76, 0xfc54, 0xc94c, 0xc9df, 0xcad5,
- 0xa7cf, 0xcad4, 0xa7d0, 0xfaaf, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb,
- 0xa9b9, 0xa9ba, 0xcc75, 0x8d6c, 0xabdd, 0xcebe, 0xabe0, 0xabdc,
- 0xabe2, 0xabde, 0xabdf, 0xabe1, 0xae7d, 0xae7c, 0xae7b, 0xd54f,
- 0xb16f, 0xb172, 0xb170, 0xd54e, 0xb175, 0xb171, 0xd550, 0xb174,
- 0xb173, 0xfa61, 0xd8f6, 0xd8f5, 0xfc57, 0xb461, 0xb45f, 0xb460,
- 0xd8f7, 0xb74b, 0xdd64, 0xb74c, 0xdd63, 0x9b70, 0xe577, 0xbc78,
- 0xe1c1, 0xbc77, 0xb9fd, 0xa051, 0xecde, 0xe975, 0xc0b2, 0xecdd,
- 0xf240, 0xf448, 0xf449, 0x8c7c, 0xa4df, 0x8bcb, 0xa5b2, 0xc97b,
- 0xa7d2, 0xa7d4, 0xc9e2, 0xcad8, 0xcad7, 0xcad6, 0xc9e1, 0xc9e0,
- 0xa6a4, 0xa7d3, 0xa7d1, 0xa6a3, 0x936e, 0xa9bd, 0xcc78, 0xfcd5,
- 0xa9be, 0xcadd, 0xcadf, 0xcade, 0xcc79, 0xcada, 0xa7d8, 0xa7d6,
- 0xcad9, 0xcadb, 0xcae1, 0xa7d5, 0xcadc, 0xcae5, 0xa9c0, 0xcae2,
- 0xa7d7, 0xcae0, 0xcae3, 0xa9bf, 0xa9c1, 0xcae4, 0xccaf, 0xcca2,
- 0xcc7e, 0xccae, 0xcca9, 0xabe7, 0xa9c2, 0xccaa, 0xccad, 0xabe3,
- 0xccac, 0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, 0xcc7c, 0xcca5, 0xa9cd,
- 0xccb0, 0xabe4, 0xcca6, 0xabe5, 0xa9c9, 0xcca8, 0xfca9, 0xcecd,
- 0xabe6, 0xcc7b, 0xa9ca, 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7,
- 0xcc7a, 0xccab, 0xa9c4, 0xfc61, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5,
- 0xcebf, 0xcec0, 0x8966, 0xceca, 0xd1a1, 0xcecb, 0xabee, 0xcece,
- 0xcec4, 0xabed, 0xcec6, 0xcec7, 0xfacb, 0xcec9, 0xabe9, 0xaea3,
- 0xf9da, 0xcec5, 0xcec1, 0xaea4, 0xcecf, 0xae7e, 0xd17d, 0xcec8,
- 0xd17c, 0xcec3, 0xcecc, 0xabec, 0xaea1, 0xabf2, 0xaea2, 0xced0,
- 0xd17e, 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef, 0xaea5, 0xced1,
- 0xaea7, 0xabea, 0xcec2, 0x937a, 0xa0e0, 0x936b, 0xb176, 0xd1a4,
- 0xd1a6, 0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, 0xd1a3, 0xb178,
- 0xd551, 0xaead, 0xaeab, 0xd1ae, 0xd552, 0xd1a5, 0xaeac, 0xd1a9,
- 0xaeaf, 0xd1ab, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0xfc6b, 0xaea9,
- 0xb179, 0xd1a2, 0xb177, 0xa0dc, 0x9468, 0xb17a, 0xd555, 0xd55e,
- 0xb464, 0xfc6d, 0xb17c, 0xb1a3, 0xb465, 0xd560, 0xb1aa, 0xd8f9,
- 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554, 0xd562, 0xd565, 0xd949,
- 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac, 0xd55d, 0xd8f8, 0xd561,
- 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559, 0xb462, 0xd557, 0xd558,
- 0xb1a7, 0x8d71, 0xb1a6, 0xd55b, 0xb1ab, 0xd55f, 0xb1a4, 0xd55c,
- 0xfd64, 0xb1a9, 0xb466, 0xb463, 0xd8fb, 0x99ba, 0xd55a, 0xb17d,
- 0x9ad0, 0x9a61, 0xa0e5, 0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d,
- 0xd944, 0xb471, 0xdd65, 0xd946, 0xb753, 0xb469, 0xb46c, 0xd947,
- 0xa05b, 0xd948, 0xd94e, 0xb473, 0xb754, 0xd94a, 0xd94f, 0xd943,
- 0xb75e, 0x96ac, 0xb755, 0xb472, 0xd941, 0xd950, 0x9740, 0xb75d,
- 0xb470, 0xb74e, 0xd94d, 0xb474, 0xd945, 0xd8fe, 0xb46a, 0xd942,
- 0xd94b, 0x9ef1, 0xb74d, 0xb752, 0xb467, 0xd94c, 0xb750, 0x8c4d,
- 0xb468, 0xb75c, 0xe1c3, 0xdd70, 0xdd68, 0xe1c2, 0xdd6c, 0xdd6e,
- 0x9f7e, 0xdd6b, 0xb75b, 0xdd6a, 0xb75f, 0xe1d2, 0x8d72, 0xb75a,
- 0xba40, 0xdd71, 0xe1c4, 0xfc76, 0xb758, 0xdd69, 0xdd6d, 0xb9fe,
- 0xb74f, 0xdd66, 0xdd67, 0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f,
- 0x96a9, 0xe1c8, 0xe1c9, 0xe1ce, 0xbc7d, 0xe1d5, 0xba47, 0xa06e,
- 0xba46, 0xe1d0, 0xfcaa, 0xbc7c, 0xe1c5, 0xba45, 0xfbcd, 0xe1d4,
- 0xba43, 0xba44, 0xfc74, 0xe1d1, 0xe5aa, 0xbc7a, 0xb46e, 0xe1d3,
- 0xbca3, 0xe1cb, 0xbc7b, 0xa074, 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7,
- 0xe1cd, 0xba48, 0xbc79, 0xba42, 0xe57a, 0xe1cf, 0xbca1, 0xa071,
- 0xbca4, 0xe1cc, 0xfc79, 0xbc7e, 0xe579, 0xfc7c, 0xe57e, 0xbece,
- 0xe578, 0xe9a3, 0xe5a9, 0xbca8, 0xbca6, 0xbecc, 0xe5a6, 0xe5a2,
- 0xbcac, 0x9c50, 0xe978, 0x9379, 0x9378, 0xbcaa, 0xe5a1, 0xa0dd,
- 0xe976, 0xe5a5, 0xe5a8, 0xe57d, 0xbcab, 0xbca5, 0xe977, 0xbecd,
- 0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, 0xe57c, 0xe57b,
- 0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0x8d75, 0xe9a2, 0x8d76,
- 0xe97e, 0xece1, 0xbed1, 0xe9a1, 0x9374, 0xe97c, 0xc0b4, 0xecdf,
- 0xe979, 0xe97b, 0xc0b5, 0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d,
- 0xbecf, 0x8d77, 0xfca5, 0xfca2, 0xefcf, 0xefc7, 0x90c3, 0xece7,
- 0xefc8, 0xece3, 0xa079, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2,
- 0xece6, 0xefd0, 0xefcc, 0xefce, 0xefc9, 0xefca, 0xefcd, 0xefcb,
- 0xc367, 0xc36a, 0xc369, 0xc368, 0xc461, 0xf44a, 0xc462, 0xf241,
- 0xc4df, 0xf5cc, 0xc4e0, 0xc574, 0xc5ca, 0xf7d9, 0xf7da, 0xf7db,
- 0xf9ba, 0xa4e0, 0xc97c, 0xa5b3, 0xa6a6, 0xa6a7, 0xa6a5, 0xa6a8,
- 0xa7da, 0xa7d9, 0xccb1, 0xa9cf, 0xa9ce, 0xd1af, 0xb1ad, 0xb1ae,
- 0xb475, 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0xe1d7,
- 0xe1d6, 0xba49, 0xe1d8, 0x8d79, 0xe5ac, 0xbcae, 0xbed4, 0xc0b8,
- 0xc257, 0xc0b9, 0xa4e1, 0x8bfc, 0xa076, 0xcae6, 0xccb2, 0xa9d1,
- 0xa9d0, 0xa9d2, 0xabf3, 0xced2, 0xced3, 0xd1b0, 0xaeb0, 0xb1af,
- 0xb476, 0xd951, 0xa4e2, 0x8bcd, 0xa47e, 0xa4e3, 0xc97d, 0xa5b7,
- 0xa5b6, 0xa5b4, 0xa5b5, 0xa6ab, 0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3,
- 0xc9e4, 0xc9ea, 0xc9e6, 0xc9e8, 0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7,
- 0x9f5a, 0xa7e1, 0xa7ea, 0xa7e8, 0xcaf0, 0xcaed, 0xcaf5, 0xa7e6,
- 0xcaf6, 0xa7df, 0xcaf3, 0xa7e5, 0xcaef, 0xcaee, 0xa7e3, 0xcaf4,
- 0xa7e4, 0xa9d3, 0xa7de, 0xcaf1, 0x9ff4, 0xcae7, 0xa7db, 0x9fba,
- 0xa7ee, 0xcaec, 0xcaf2, 0xa7e0, 0xa7e2, 0xcae8, 0xcae9, 0xcaea,
- 0x8d7a, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc,
- 0xa7e9, 0x9e45, 0x93b0, 0xa075, 0xa9e1, 0xccbe, 0xccb7, 0xa9dc,
- 0xa9ef, 0xccb3, 0xccba, 0xccbc, 0xccbf, 0xa9ea, 0xccbb, 0xccb4,
- 0xa9e8, 0xccb8, 0xccc0, 0xa9d9, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6,
- 0xa9d7, 0xa9d8, 0x9b46, 0xa9d6, 0xfcae, 0xa9ee, 0xa9e6, 0xa9e0,
- 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7, 0xa9f0, 0xced4, 0xa9e4,
- 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0xfcb0, 0xa9ec, 0xa9ed, 0xa9eb,
- 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0xfa51, 0x8d7b, 0xceda, 0xac41,
- 0xabf8, 0xabfa, 0xac40, 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43,
- 0xced7, 0xcedf, 0xabfe, 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7,
- 0xabfb, 0xac42, 0xaeb3, 0xcee0, 0xabf9, 0xac45, 0xced9, 0xabfc,
- 0xaeb2, 0xabf6, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, 0xd1b2,
- 0xac44, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0x8d7c, 0xaec1, 0xd1be,
- 0xaebf, 0xaec0, 0xd1b4, 0xd1c4, 0x9ed6, 0xaeb6, 0x93ac, 0xd566,
- 0xd1c6, 0xd1c0, 0x9f5b, 0xd1b7, 0x93a9, 0xd1c9, 0xd1ba, 0xaebc,
- 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0xd1cb, 0xd1bf, 0xaeb8, 0xd1b8,
- 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, 0xd1cc, 0xaebb, 0xd1bc, 0xd1bb,
- 0xaec3, 0xaec2, 0xaeb4, 0xaeba, 0xaebd, 0xd1c8, 0xd1c2, 0xaeb7,
- 0xd1b3, 0xd1ca, 0xd1c1, 0xd1c3, 0xd1c7, 0xa07c, 0xd567, 0xb1b7,
- 0xb1cb, 0xb1ca, 0xb1bf, 0xfcb2, 0xd579, 0xd575, 0xd572, 0xd5a6,
- 0xb1ba, 0xb1b2, 0xd577, 0xb4a8, 0xb1b6, 0xd5a1, 0x8ac1, 0xb1cc,
- 0xb1c9, 0xd57b, 0xd56a, 0x9fb4, 0xb1c8, 0xd5a3, 0xd569, 0xb1bd,
- 0xb1c1, 0xd5a2, 0xd573, 0xb1c2, 0xb1bc, 0xd568, 0xfcac, 0xb478,
- 0xd5a5, 0xd571, 0xb1c7, 0xd574, 0xd5a4, 0xb1c6, 0xd952, 0xb1b3,
- 0xd56f, 0xb1b8, 0xb1c3, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e,
- 0xb1b0, 0xb1c4, 0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0xb1b1, 0xb1c0,
- 0xb1bb, 0xb1b9, 0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, 0xd954,
- 0xd953, 0x9e4c, 0xd56b, 0xd964, 0xb47a, 0x8fc5, 0xd96a, 0xd959,
- 0xd967, 0xdd77, 0xb47d, 0xd96b, 0xd96e, 0xb47c, 0xd95c, 0xd96d,
- 0xd96c, 0xb47e, 0xd955, 0xb479, 0xb4a3, 0x93ad, 0xb4a1, 0xd969,
- 0xd95f, 0xb4a5, 0xd970, 0xd968, 0xd971, 0xb4ad, 0xb4ab, 0xd966,
- 0xd965, 0x9dc3, 0xd963, 0xd95d, 0xb4a4, 0x8da2, 0xb4a2, 0xd1b9,
- 0xd956, 0x9d4a, 0xddb7, 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0xb4a6,
- 0xb4a7, 0xd958, 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961,
- 0xd95e, 0xfcb6, 0xb4ae, 0x8da3, 0x9e4b, 0x9e4d, 0xb770, 0x8da4,
- 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c, 0xddbb, 0xb769, 0xdd7a,
- 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e, 0xb76f, 0xdda5, 0xddb2,
- 0xddb8, 0xb76a, 0xb764, 0xdda3, 0xdd7d, 0xddba, 0xdda8, 0xdda9,
- 0xdd7e, 0xddb4, 0xddab, 0xddb5, 0xddad, 0xb765, 0xe1d9, 0xb768,
- 0xb766, 0xddb9, 0xddb0, 0xddac, 0x8afd, 0xdda1, 0xba53, 0xddaf,
- 0xb76d, 0xdda7, 0xfcb5, 0xdda6, 0xfcc3, 0x93b2, 0xb767, 0xb763,
- 0xe1ee, 0xddb3, 0xddae, 0xdda2, 0xe1e9, 0xe1da, 0xe1e5, 0xe1ec,
- 0xba51, 0xb4ac, 0xe1ea, 0xba4c, 0xba4b, 0xe1f1, 0x8da5, 0xe1db,
- 0xe1e8, 0xe1dc, 0xe1e7, 0xba4f, 0xe1eb, 0xd962, 0xe1f2, 0xe1e3,
- 0xba52, 0xe5ba, 0xbcaf, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0,
- 0xe5ae, 0x93a1, 0xe1df, 0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3,
- 0xba4e, 0xbcb1, 0xba50, 0xba55, 0x8ac6, 0xe1e1, 0xe1ed, 0xe1e6,
- 0xe5b1, 0xba4a, 0xbcb4, 0xe9aa, 0xe5b6, 0xe5b5, 0xe5b7, 0x8a5b,
- 0xe5b4, 0xbcb5, 0x894d, 0xbcbb, 0xbcb8, 0xbcb9, 0xe5af, 0xe5b2,
- 0xe5bc, 0xbcc1, 0xbcbf, 0xe5b3, 0xd95a, 0xbcb2, 0xe5b9, 0xe5b0,
- 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0xbcba, 0xbcbe, 0xbcc0,
- 0xbcbd, 0xbcbc, 0xfed4, 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3, 0x8a78,
- 0x93ab, 0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, 0x8da7, 0xbed6,
- 0xbedd, 0xe9ab, 0xbedb, 0xbed5, 0xbedc, 0xe9a8, 0xc0bb, 0xbed7,
- 0xbede, 0xc0ba, 0xe9a7, 0xe9a6, 0xbee0, 0x9f45, 0xbee1, 0xe9a5,
- 0xe9a4, 0xc0bc, 0xe9ae, 0xbeda, 0xe9ac, 0x8a56, 0xc0bd, 0xfcbf,
- 0xc0c2, 0xecea, 0xecec, 0xfcc0, 0xc0bf, 0x8ee6, 0xeced, 0xece9,
- 0x8aa4, 0xeceb, 0xc0c0, 0xc0c3, 0xece8, 0xc0be, 0xc0c1, 0xc259,
- 0xe9ad, 0xc258, 0xc25e, 0xefd4, 0xc25c, 0xc25d, 0xefd7, 0xefd3,
- 0xc25a, 0xefd1, 0xc36b, 0xefd5, 0xefd6, 0xefd2, 0xc25b, 0xf242,
- 0xf245, 0x8943, 0xf246, 0xf244, 0xf247, 0xc36c, 0xf243, 0x93f3,
- 0xf44e, 0xc464, 0xf44d, 0xf44c, 0xf44b, 0xc463, 0xc465, 0xf5cd,
- 0xc4e2, 0xc4e1, 0xfcab, 0x9ea2, 0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb,
- 0xc575, 0xf7dd, 0xf6e2, 0xf7dc, 0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9,
- 0xf8ef, 0xa4e4, 0x9dc7, 0xd972, 0xe9af, 0xc6d2, 0x8bce, 0xa6ac,
- 0xcaf7, 0xa7f1, 0xa7ef, 0xa7f0, 0xccc1, 0xa9f1, 0xac46, 0xcee7,
- 0xcee8, 0xac47, 0xd1ce, 0xaec4, 0xaec5, 0xd1cd, 0xfcc5, 0xb1d3,
- 0xb1cf, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, 0xb1d4, 0xb1d0,
- 0xd976, 0xb1cd, 0xb4af, 0xfccb, 0xb4b1, 0xb4b2, 0xd975, 0xd978,
- 0xb4b0, 0xd973, 0xd977, 0xd974, 0x93b3, 0xb771, 0xfcca, 0xddbc,
- 0xba56, 0xe1f4, 0xbee3, 0xbcc4, 0xe5bd, 0xbcc5, 0xbcc6, 0xe5bf,
- 0xe5be, 0xe5c0, 0xe9b1, 0xe9b0, 0xecef, 0xecee, 0xc0c4, 0xc0c5,
- 0xf248, 0xfcc9, 0x8dac, 0xa4e5, 0xfbc6, 0x8967, 0x8c7e, 0xd979,
- 0xb4b4, 0xb4b3, 0xddbd, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, 0xaec6,
- 0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, 0xe1f5, 0xba57, 0xe9b2,
- 0xa4e7, 0xa5b8, 0xa9f2, 0xccc2, 0xcee9, 0xac48, 0xb1d9, 0xd97c,
- 0xb4b5, 0xb773, 0xe5c1, 0xe5c2, 0xfccd, 0xecf0, 0xc25f, 0xf8f0,
- 0xa4e8, 0xccc3, 0xa9f3, 0xac49, 0x9cf3, 0xceea, 0xaec7, 0xd1d2,
- 0xd1d0, 0xd1d1, 0xaec8, 0xd1cf, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd,
- 0xb1da, 0xd97d, 0xfcd0, 0xd97e, 0xddbe, 0x95bb, 0xba59, 0xba58,
- 0xecf1, 0xefd9, 0xf24a, 0xf249, 0xf44f, 0xfcd3, 0xc95e, 0xac4a,
- 0xfcd4, 0xa4e9, 0xa5b9, 0xa6ae, 0xa6ad, 0xa6af, 0xa6b0, 0xc9ee,
- 0xc9ed, 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9, 0xcafc, 0xa9f4,
- 0xccc9, 0xccc5, 0xccce, 0x8dae, 0xa9fb, 0xa9f9, 0xccca, 0xccc6,
- 0xcccd, 0xa9f8, 0xaa40, 0xccc8, 0xccc4, 0xa9fe, 0xcccb, 0xa9f7,
- 0xcccc, 0xa9fa, 0xa9fc, 0xccd0, 0xcccf, 0xccc7, 0xa9f6, 0xa9f5,
- 0xa9fd, 0xfcd7, 0xceef, 0xcef5, 0x93db, 0xac50, 0xac4d, 0xceec,
- 0xcef1, 0xfe63, 0xac53, 0xac4b, 0xcef0, 0xac4e, 0xac51, 0xcef3,
- 0xac4c, 0xcef8, 0xac4f, 0x93d5, 0xac52, 0xceed, 0xcef2, 0xcef6,
- 0xceee, 0xceeb, 0xcef7, 0xcef4, 0xaed0, 0xaec9, 0xaecc, 0xfcda,
- 0xaecf, 0xd1d5, 0x9b71, 0xaeca, 0xd1d3, 0xfcdd, 0xaece, 0xaecb,
- 0xd1d6, 0xaecd, 0x8daf, 0xfaf2, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad,
- 0xb1de, 0xb1e3, 0xd1d4, 0xd5aa, 0xd5ae, 0x93d8, 0xb1e0, 0xd5a9,
- 0xb1e2, 0xfcdf, 0xb1e1, 0xd9a7, 0x93d3, 0xd9a2, 0xb4b6, 0xb4ba,
- 0xb4b7, 0xd9a5, 0xd9a8, 0xfce1, 0xb4b8, 0xb4b9, 0xb4be, 0xddc7,
- 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1, 0x8e76, 0xb4bd, 0xd9a4, 0xb779,
- 0xfc62, 0xddbf, 0xb776, 0xb777, 0xb775, 0xddc4, 0xddc3, 0xddc0,
- 0xb77b, 0x93d1, 0xddc2, 0xb4bb, 0x8db1, 0xddc6, 0xddc1, 0xb778,
- 0xb774, 0xb77a, 0xddc5, 0x9859, 0xba5c, 0xe1f8, 0xe1f7, 0xe1f6,
- 0xba5a, 0xfb52, 0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0xfb53, 0xbcc7,
- 0xe5c9, 0xe5c4, 0xbcca, 0xe5c6, 0xfb4d, 0xbcc9, 0xe5c3, 0x9cbf,
- 0xe5c7, 0xbee9, 0xbee6, 0xe9bb, 0xe9ba, 0xe9b9, 0xe9b4, 0x9b72,
- 0xe9b5, 0xbee7, 0xbee4, 0xbee8, 0xe9b3, 0xbee5, 0xe9b6, 0xe9b7,
- 0xe9bc, 0xfb50, 0x93be, 0xe9b8, 0xecf2, 0xc0c7, 0xefdc, 0xc0c6,
- 0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0xc36d, 0xf451, 0xf452,
- 0xc466, 0xf450, 0xc4e4, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0xa4ea,
- 0x9df1, 0xa6b1, 0xa6b2, 0xa7f3, 0xccd1, 0xac54, 0xaed1, 0xb1e4,
- 0xb0d2, 0xb4bf, 0xb4c0, 0xb3cc, 0xd9a9, 0xfceb, 0xb77c, 0xe1fa,
- 0xe1f9, 0xa4eb, 0xa6b3, 0xccd2, 0xaa42, 0xa0bb, 0xaa41, 0x9b7e,
- 0xcef9, 0xcefa, 0xd1d7, 0xd1d8, 0xaed2, 0xaed3, 0x8db3, 0xaed4,
- 0xd5af, 0x8c52, 0xb1e6, 0xb4c2, 0x9ae8, 0xb4c1, 0xddc8, 0xdf7a,
- 0xe1fb, 0xe9bd, 0x8edc, 0xc261, 0xc467, 0xa4ec, 0xa5bc, 0xa5bd,
- 0xa5bb, 0xa5be, 0xa5ba, 0xa6b6, 0xc9f6, 0xa6b5, 0xa6b7, 0x9cf9,
- 0xc9f1, 0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4,
- 0xfa50, 0xcafd, 0xa7fd, 0xcafe, 0xcb43, 0xa7fc, 0xcb47, 0xcb42,
- 0xcb45, 0xa7f5, 0xa7f6, 0xa7f7, 0xa7f8, 0xa840, 0xcb41, 0xa7fa,
- 0xa841, 0xcb40, 0xcb46, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, 0xa7fe,
- 0x98e7, 0xfcf3, 0xfcf2, 0xaa57, 0x8cca, 0xccd4, 0xaa43, 0xaa4d,
- 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53, 0xccd7, 0xaa49,
- 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4, 0xaa51, 0xaa4f,
- 0xcce5, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a, 0xaa50, 0xaa44,
- 0xccde, 0xccdd, 0xccd5, 0x93e5, 0xaa52, 0xcce1, 0xccd6, 0xaa55,
- 0xcce8, 0xaa45, 0xaa4c, 0xccd9, 0xcce2, 0xaa54, 0xaa47, 0xaa4b,
- 0xcce0, 0x9a59, 0x8db5, 0xfd4d, 0xcf5b, 0xac5c, 0xac69, 0xfd5e,
- 0xcf56, 0xcf4c, 0xac62, 0xcf4a, 0xac5b, 0xcf45, 0xac65, 0xcf52,
- 0xcefe, 0xcf41, 0x8f7d, 0xcf44, 0xcefb, 0xcf51, 0xcf61, 0xac60,
- 0xcf46, 0xcf58, 0xcefd, 0xcf5f, 0xcf60, 0xcf63, 0xcf5a, 0xcf4b,
- 0xcf53, 0xac66, 0xac59, 0xac61, 0xac6d, 0xac56, 0xac58, 0x9547,
- 0xfcf6, 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40, 0xac6c, 0xac67,
- 0xcf49, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c, 0xcf54, 0xac5e,
- 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f, 0xcf55, 0xac57,
- 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d, 0xcf42, 0x9250,
- 0xcf5e, 0xcf57, 0x8968, 0xac55, 0x8db6, 0xfcfb, 0xa07d, 0x98fc,
- 0x8969, 0xfe4f, 0x9256, 0xd1ec, 0xaeea, 0xd1ed, 0xd1e1, 0xaedf,
- 0xaeeb, 0xd1da, 0xfac9, 0xd1e3, 0xd1eb, 0x93e8, 0xd1d9, 0xd1f4,
- 0xaed5, 0xfcf8, 0xd1f3, 0xd1ee, 0xd1ef, 0xaedd, 0xaee8, 0xd1e5,
- 0xd1e6, 0xd1f0, 0xd1e7, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4,
- 0x9ce3, 0xfda9, 0xaed6, 0xaeda, 0xd1f2, 0xd1de, 0xaee6, 0xaee2,
- 0xfc44, 0xaee5, 0xaeec, 0xaedb, 0xaee7, 0xd1e9, 0xaee9, 0xaed8,
- 0x9640, 0xaed7, 0xd1db, 0x8db8, 0xd1df, 0xaee0, 0xd1f1, 0xd1e8,
- 0xd1e0, 0xaee4, 0xaee1, 0xaed9, 0xaedc, 0x9b4a, 0x8fb9, 0xfcfe,
- 0x896a, 0xd5c4, 0xd5b4, 0xd5b5, 0xd5b9, 0xd5c8, 0xd5c5, 0xd5be,
- 0xd5bd, 0xb1ed, 0xd5c1, 0xd5d0, 0xd5b0, 0xd5d1, 0xd5c3, 0xd5d5,
- 0xd5c9, 0xb1ec, 0xd5c7, 0xb1e7, 0xb1fc, 0xb1f2, 0x8db9, 0xb1f6,
- 0xb1f5, 0xd5b1, 0x917e, 0xd5ce, 0xd5d4, 0xd5cc, 0xd5d3, 0xd5c0,
- 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7, 0xd5cb, 0xb1f0, 0x93f4,
- 0xd5ca, 0xd5b3, 0xb1f8, 0xb1fa, 0xd5cd, 0xb1fb, 0xb1e9, 0xd5ba,
- 0xd5cf, 0xfb7c, 0xb1ef, 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7, 0xd5bb,
- 0xb1f4, 0xd5b6, 0xb1e8, 0xb1f1, 0xb1ee, 0xd5bf, 0xaede, 0xd9c0,
- 0xb1eb, 0x93e7, 0x97ef, 0xfe4a, 0xfd45, 0xb1f3, 0x96a5, 0xd9c3,
- 0xd9d9, 0xd9ce, 0xb4d6, 0xfee0, 0xb4d1, 0xd9bd, 0xb4d2, 0xd9cd,
- 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5, 0xb4c4, 0xd9b3, 0xb4c7,
- 0xb4c6, 0xb4d7, 0xd9ad, 0xd9cf, 0xd9d0, 0xb4c9, 0xb4c5, 0xd9bb,
- 0xb4d0, 0xd9b6, 0xd9d1, 0xb4cc, 0xd9c9, 0xd9d6, 0xd9b0, 0xd9b5,
- 0xd9af, 0xb4cb, 0xd9c2, 0xddde, 0xd9b1, 0xb4cf, 0xd9ba, 0xd9d2,
- 0xb4ca, 0xd9b7, 0xd9b4, 0xd9c5, 0xb4cd, 0xb4c3, 0xb4d9, 0xd9c8,
- 0xd9c7, 0xfd48, 0xfd47, 0xfef2, 0xfe6a, 0xd9ac, 0xb4c8, 0xd9d4,
- 0xd9bc, 0xd9be, 0x8dbd, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5,
- 0xd9b2, 0xd9b9, 0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0xd9cc,
- 0x9ba1, 0x8ca2, 0x9ab7, 0x8efc, 0xd9d8, 0xd9ae, 0x9fa1, 0xddf2,
- 0xb7a6, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0xfd51, 0xddec, 0xddcb,
- 0xddd2, 0xddea, 0xddf4, 0xdddc, 0xfaad, 0xddcf, 0xdde2, 0xdde7,
- 0xddd3, 0x8dbe, 0xdde4, 0xddd0, 0x89a4, 0xddd7, 0xddd8, 0xb7a8,
- 0xddeb, 0xdde9, 0xddcc, 0xddee, 0xddef, 0xddf1, 0xb7ac, 0xb7a4,
- 0x9ad9, 0xd5b8, 0xddd4, 0xdde6, 0xddd5, 0xb7a1, 0xb7b1, 0xdded,
- 0xb7af, 0xb7ab, 0xddca, 0xb7a3, 0xfd4e, 0xddcd, 0xb7b0, 0x8dc0,
- 0xdddd, 0xddc9, 0x97f0, 0xb7a9, 0xdde1, 0xddd1, 0xb7aa, 0xddda,
- 0xb77e, 0xb4d8, 0xdde3, 0xd9bf, 0xddce, 0x93b4, 0xfd44, 0xdde8,
- 0xb7a5, 0xdde5, 0xb7a2, 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0x9fa7,
- 0xb7a7, 0xdec6, 0x8dc2, 0xb7ae, 0x99b6, 0xe24a, 0xe248, 0xe25e,
- 0xe246, 0xe258, 0xb77d, 0xba5f, 0xe242, 0xe25d, 0xfd52, 0xe247,
- 0xe255, 0xba64, 0xba5d, 0xe25b, 0x8dc1, 0xe240, 0xe25a, 0x8e46,
- 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, 0xba5e, 0xe24b, 0xe259,
- 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, 0xe243, 0xe1fc, 0xa0d1,
- 0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, 0xe253, 0xba66, 0xe245,
- 0xe250, 0xe24c, 0xe24e, 0x9fca, 0xba60, 0xe25f, 0xba6e, 0xe24f,
- 0xe262, 0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256,
- 0xba69, 0x92cf, 0xba62, 0xe252, 0x9cf4, 0x8dc4, 0xe25c, 0xfd41,
- 0xe5d5, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de, 0xbccd, 0x9b4c, 0xe5e5,
- 0xe5d4, 0xbcd8, 0xe5db, 0xe5d0, 0xe5da, 0xbcd5, 0xe5ee, 0xe5eb,
- 0xe5dd, 0xe5ce, 0xfd57, 0xfcef, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8,
- 0xe5d3, 0xe5ca, 0xbcce, 0xbcd6, 0x9cde, 0xe5e7, 0xbcd7, 0xe5cb,
- 0xe5ed, 0xe5e0, 0xe5e6, 0xbcd4, 0xfd42, 0x986c, 0xe5e3, 0xe5ea,
- 0xbcd9, 0xbcd3, 0xe5dc, 0xe5cf, 0xe5ef, 0xe5cc, 0xe5e8, 0xbcd0,
- 0x97f9, 0xe5d6, 0x9558, 0xe5d7, 0xbccf, 0xbccc, 0xe5d2, 0xbcd2,
- 0xbccb, 0xe5e9, 0xe5ec, 0xe5d9, 0xe9ca, 0x985e, 0xfe7b, 0x94cd,
- 0xe9c2, 0x93ee, 0xe9be, 0xbef6, 0xbeeb, 0xbef0, 0xbeec, 0xe9cc,
- 0xe9d7, 0xbeea, 0xe9c4, 0xe9cd, 0xe5df, 0xe9ce, 0x8ca3, 0xbef1,
- 0xfd5a, 0xe9dd, 0xbef5, 0xbef8, 0xe9c0, 0xbef4, 0x93f5, 0xe9db,
- 0xe9dc, 0xe9d2, 0xe9d1, 0xe9c9, 0x93ef, 0x8eea, 0xe9d3, 0xe9da,
- 0xe9d9, 0x8f5b, 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0xe9c5, 0xe9d8,
- 0xbef7, 0xe9d6, 0xbef3, 0xbef2, 0x8c5e, 0xe9d0, 0x8dc6, 0xe9bf,
- 0xe9c1, 0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0xe9c6, 0xe9d4, 0x8dc8,
- 0x8dc7, 0xe9c7, 0x93f7, 0xc0cf, 0xed45, 0xc0c8, 0xecf5, 0x8dc9,
- 0xed41, 0xc0ca, 0xed48, 0xecfc, 0xecf7, 0xfbf2, 0xed49, 0xecf3,
- 0xecfe, 0x9670, 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9, 0xed40,
- 0xecf4, 0xc0d0, 0x8dcb, 0xed47, 0xecf9, 0xc0cc, 0xfd5c, 0xecfb,
- 0xecf8, 0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46,
- 0x8f65, 0xed42, 0x8dcd, 0xc263, 0xefe7, 0xc268, 0xc269, 0x9da8,
- 0x94f9, 0xc262, 0xefe6, 0x8dce, 0xefe3, 0xefe4, 0xc266, 0xefde,
- 0xefe2, 0xc265, 0xefdf, 0x93ea, 0xc267, 0xc264, 0xefdd, 0xefe1,
- 0xefe5, 0xfd5f, 0x93f0, 0x9fb6, 0xf251, 0xf24e, 0xf257, 0xf256,
- 0xf254, 0xf24f, 0xc372, 0x8dcf, 0x9763, 0xf250, 0xc371, 0xc0cd,
- 0xf253, 0xc370, 0xf258, 0xf252, 0xf24d, 0xefe0, 0xc36f, 0xf24c,
- 0xf456, 0xf455, 0xf255, 0xc468, 0xf459, 0xf45a, 0xf454, 0xf458,
- 0xf453, 0x8dd0, 0xf5d1, 0xf457, 0xc4e7, 0xc4e5, 0xf5cf, 0xf5d2,
- 0xf5ce, 0xf5d0, 0xc4e6, 0x93f1, 0xf6e5, 0xf6e6, 0xc576, 0xf6e4,
- 0xf7e2, 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0xc656, 0xf8f3, 0xf8f1,
- 0xf8f2, 0xf8f4, 0xfd62, 0xf9bb, 0xa4ed, 0xa6b8, 0xaa59, 0xcce9,
- 0xcf64, 0xd1f5, 0xd1f7, 0xd1f6, 0xd1f8, 0xb1fd, 0xd5d7, 0xd1f9,
- 0xfd65, 0xd5d6, 0xd5d8, 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd,
- 0xb4dc, 0xb4da, 0xd9dc, 0xddfa, 0xddf8, 0xddf7, 0xddf6, 0xddf5,
- 0xb7b2, 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb,
- 0xbcda, 0xe5f0, 0x9fdb, 0xe9df, 0xe9de, 0xe9e0, 0x93f8, 0xbef9,
- 0xed4b, 0xc0d3, 0xefe8, 0xc26a, 0xf259, 0xc577, 0xa4ee, 0xa5bf,
- 0xa6b9, 0xa842, 0xaa5a, 0xaa5b, 0xac6e, 0xd1fa, 0x8bf7, 0xb7b3,
- 0xfd66, 0xe6d1, 0xbefa, 0xc26b, 0xa4ef, 0x8bcf, 0xa6ba, 0xcceb,
- 0xaa5c, 0xccea, 0x8dd1, 0xcf65, 0xac6f, 0xcf66, 0xac70, 0xd1fc,
- 0xaeee, 0xaeed, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db, 0xd5da, 0xd9de,
- 0xd9e1, 0xb4de, 0xd9df, 0xb4dd, 0xd9e0, 0xddfb, 0xe266, 0xe267,
- 0xe268, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4, 0xe9e1, 0xe9e2,
- 0xe9e3, 0xed4c, 0xc0d4, 0xc26c, 0xf25a, 0xc4e8, 0xc95f, 0xac71,
- 0xcf67, 0xaeef, 0xb1fe, 0xb4df, 0xd9e2, 0xb7b5, 0xb7b4, 0x8dd2,
- 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, 0xe9e4, 0xefe9, 0xf7e3,
- 0xa4f0, 0xc960, 0xa5c0, 0xa843, 0xcb48, 0xac72, 0xb7b6, 0xa4f1,
- 0xcf68, 0xac73, 0xcf69, 0xc0d5, 0xa4f2, 0xfd71, 0xccec, 0xcf6a,
- 0xfd6f, 0xd242, 0xd241, 0xd1fe, 0xd1fd, 0xd243, 0xd240, 0x8dd3,
- 0xb240, 0xb241, 0xb4e0, 0xd9e3, 0xd9e4, 0xd9e5, 0xde41, 0xde42,
- 0xde40, 0x9fe7, 0xddfd, 0xddfe, 0xb7b7, 0xe26b, 0xe5f7, 0xe5f6,
- 0xe5f5, 0xe5f8, 0xe9e7, 0xe9e6, 0xbefb, 0xe9e8, 0xc0d6, 0xed4d,
- 0xefea, 0xf25b, 0xf6e7, 0xa4f3, 0xa5c2, 0xa5c1, 0xaa5d, 0xc961,
- 0xc97e, 0xa6bb, 0xc9f7, 0xcb49, 0xcb4a, 0xaa5e, 0x90bd, 0xcced,
- 0xac74, 0xcf6b, 0xcf6c, 0xaef0, 0xaef4, 0xd244, 0xaef3, 0xaef1,
- 0xaef2, 0xd5df, 0xb242, 0xb4e3, 0xb4e1, 0xb4e2, 0xd9e6, 0x9fd0,
- 0xba72, 0xa4f4, 0x8bd0, 0xc9a1, 0xfd72, 0xa5c3, 0x9cae, 0x8bd1,
- 0xc9a4, 0x8adb, 0xa5c6, 0xc9a3, 0xa5c5, 0xa5c4, 0xa844, 0xc9a2,
- 0xc9f8, 0xfae4, 0xc9fc, 0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb,
- 0xa6c1, 0xc9f9, 0xc9fd, 0xa6c2, 0xa6bd, 0x95ce, 0xa6be, 0xfd76,
- 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf, 0xa6c0, 0xa6c3, 0xcb5b,
- 0xcb59, 0xcb4c, 0xa851, 0xcb53, 0xa84c, 0xcb4d, 0xcb55, 0xfb62,
- 0xcb52, 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858, 0x8dd4, 0xa85a,
- 0xcb4b, 0xfd78, 0xa84d, 0xcb5c, 0xa854, 0xa857, 0x8ee3, 0xcd45,
- 0xa847, 0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, 0xa848,
- 0xa849, 0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, 0xa84e,
- 0xa853, 0xccee, 0xa85c, 0xcb57, 0xa852, 0xa85d, 0xa846, 0xcb54,
- 0xa84b, 0xcb58, 0xcd44, 0x9076, 0x98c6, 0x8dd5, 0xaa6a, 0xaa7a,
- 0xccf5, 0xaa71, 0x97d1, 0xcd4b, 0xaa62, 0x9eb6, 0xaa65, 0xcd42,
- 0xccf3, 0xccf7, 0xaa6d, 0xaa6f, 0xccfa, 0xaa76, 0xaa68, 0xaa66,
- 0xaa67, 0xaa75, 0xcd47, 0xaa70, 0xccf9, 0xccfb, 0xaa6e, 0xaa73,
- 0xccfc, 0xcd4a, 0xac75, 0xaa79, 0xfac7, 0xaa63, 0xcd49, 0xa042,
- 0xcd4d, 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d,
- 0xaa72, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0x9873,
- 0xaa7e, 0xaa77, 0xaa69, 0xaa5f, 0xaa64, 0xccf6, 0xaa60, 0xcd4e,
- 0x9ffc, 0xccf0, 0xccef, 0xccfd, 0xccf1, 0xaa7b, 0xaef5, 0xaa74,
- 0xccfe, 0xaa61, 0xaca6, 0xcd4c, 0x8ca5, 0xcf7c, 0xcfa1, 0x8dd7,
- 0xcfa4, 0xcf77, 0x92fb, 0x8dd8, 0xcfa7, 0xcfaa, 0xcfac, 0xcf74,
- 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, 0xcfad, 0xcf7b, 0xcf73,
- 0xd264, 0xac7e, 0xcfa2, 0xcf78, 0xcf7a, 0xaca5, 0xcf7d, 0xac7d,
- 0xcf70, 0xcfa8, 0xcfab, 0x944f, 0xac7a, 0x8dd9, 0xaca8, 0xcf6d,
- 0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, 0xcd48,
- 0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, 0xaca9,
- 0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, 0xcfa6,
- 0xac79, 0xcf7e, 0x896b, 0x97ce, 0xd24c, 0xaefd, 0xaf43, 0xfaf3,
- 0xfdae, 0xd255, 0xd25b, 0xd257, 0xd24a, 0xd24d, 0xd246, 0xd247,
- 0xaf4a, 0xaefa, 0xd256, 0xd25f, 0xaf45, 0xaef6, 0xaf40, 0xd24e,
- 0xaf42, 0xd24f, 0xd259, 0xfbaf, 0x92b7, 0xaf44, 0xd268, 0xd248,
- 0xaefc, 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a, 0xd267, 0xd261,
- 0xd253, 0xd262, 0x8dda, 0xd25c, 0xd265, 0xd263, 0xaf49, 0xd254,
- 0xaef9, 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251, 0xb243,
- 0x9c5a, 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0xfdad,
- 0xd258, 0xd25d, 0x8ddc, 0x9444, 0xb265, 0xd5e1, 0xd5e5, 0xb252,
- 0xb250, 0x8ddd, 0xb247, 0xd5e3, 0xd5e2, 0xb25b, 0xd5e8, 0xb255,
- 0xa0d6, 0xd5fa, 0xd647, 0xb244, 0xd5f7, 0xd5f0, 0xb267, 0xd5e0,
- 0xd5fc, 0xb264, 0xb258, 0xb263, 0xb24e, 0xd5ec, 0xd5fe, 0xd5f6,
- 0xb24f, 0xb249, 0xd645, 0xd5fd, 0xd640, 0xb251, 0xb259, 0xd642,
- 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, 0xb25e, 0xb246, 0xb25c, 0xd5f4,
- 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, 0xd5ed, 0xb248, 0xd5e7, 0xd646,
- 0xb24a, 0xd5f1, 0xb268, 0xb262, 0xd5e6, 0xb25f, 0xb25d, 0xb266,
- 0xd5f8, 0xb261, 0xd252, 0xd5f9, 0xb260, 0xd641, 0xb245, 0xd5f5,
- 0xb257, 0xd5e9, 0xb256, 0xb254, 0xb24c, 0xb24b, 0xd9e7, 0xd643,
- 0x8c41, 0xd5eb, 0x97d5, 0xd9fc, 0x944a, 0xb24d, 0x944d, 0x97cb,
- 0x8dde, 0x8ddf, 0xb541, 0xb25a, 0xb4ee, 0xd9f6, 0xb4fc, 0xd9ea,
- 0xb4eb, 0xb4e7, 0xda49, 0xb4ed, 0xb4f1, 0xb4ec, 0xb4f5, 0xda4d,
- 0xda44, 0x8de0, 0xfef9, 0xd9f1, 0xb4fa, 0xb4f4, 0xd9fd, 0xb4e4,
- 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55, 0xda56, 0xb4e5,
- 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd, 0xd9f2, 0xd9f9,
- 0xd9f3, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9, 0xd9eb, 0xb4ea,
- 0xd9f8, 0xb4f8, 0xb542, 0xfdc0, 0xfcf9, 0xd9fa, 0xda53, 0xda4b,
- 0xb4e6, 0xda51, 0xb4f2, 0xb4f0, 0xfb7e, 0xda57, 0xb4ef, 0xda41,
- 0xd9f4, 0xd9fe, 0xb547, 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f,
- 0xda4c, 0xda54, 0xb4e9, 0xda40, 0xb546, 0xda47, 0xb4f3, 0xb4f6,
- 0xda46, 0xb545, 0xd9f5, 0xd5e4, 0x92b3, 0xda50, 0xda4e, 0xda52,
- 0xfdaf, 0x8de1, 0xd9ec, 0xb540, 0x95d3, 0xde61, 0xde60, 0xde46,
- 0xb7bd, 0xde5f, 0xde49, 0xde4a, 0xb7c7, 0xde68, 0xb7c2, 0xde5e,
- 0x89c1, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48, 0xde4b, 0xde63,
- 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc, 0xb7cb, 0xb7c5,
- 0xde69, 0xb7b9, 0xde55, 0xde4c, 0xde59, 0xde65, 0xb7cd, 0xfd68,
- 0xb7bb, 0xde54, 0x9cb7, 0xde4d, 0xb7c4, 0x8de3, 0xb7c3, 0xde50,
- 0xde5a, 0xde64, 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0,
- 0xde4e, 0xb7bf, 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56,
- 0xe26c, 0xde58, 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0,
- 0xde44, 0xde5d, 0xfac0, 0x8de5, 0xfa64, 0xde5c, 0x8947, 0x8de4,
- 0x8de7, 0x8de8, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, 0xe26e,
- 0xbaaf, 0xba77, 0xe26d, 0xe2b0, 0xbab1, 0xe271, 0xe2a3, 0xfdc7,
- 0xe273, 0xe2b3, 0xe2af, 0xba75, 0xbaa1, 0xe653, 0xbaae, 0xba7d,
- 0xe26f, 0xfdb0, 0xe2ae, 0xbaa3, 0xe2ab, 0xe2b8, 0xe275, 0xe27e,
- 0x9445, 0x97d6, 0xe2b6, 0xe2ac, 0xba7c, 0xe27c, 0xba76, 0xba74,
- 0xbaa8, 0xfcc6, 0x9844, 0xe27a, 0xe277, 0xe278, 0xe2b2, 0xe2b7,
- 0xe2b5, 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0x8de9, 0xe270, 0xe5fa,
- 0xe279, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274, 0xbaaa,
- 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0x8dea, 0xe2a9, 0xe2a1, 0xe272,
- 0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0xfe50, 0xba79, 0xbcdf,
- 0xe2a6, 0xe5f9, 0xe2ad, 0xfdcc, 0xe276, 0xe644, 0xe64e, 0xbce2,
- 0xe64d, 0xe659, 0xbce4, 0xe64b, 0x9da7, 0xe64f, 0xbcef, 0xe646,
- 0xbce7, 0xfdcd, 0xe652, 0xe9f0, 0xbcf3, 0xbcf2, 0xe654, 0xe643,
- 0xe65e, 0xbced, 0xbce3, 0xe657, 0xe65b, 0xe660, 0xe655, 0xe649,
- 0xbce6, 0xbce9, 0xbcf1, 0xbcec, 0xe64c, 0xe2a2, 0xfdcf, 0xe648,
- 0xe65f, 0xbce8, 0x95d2, 0xbceb, 0xe661, 0xbce0, 0xe656, 0xe5fb,
- 0xe65c, 0xc0df, 0x8ded, 0xe64a, 0xbce1, 0xe645, 0xbce5, 0xe5fc,
- 0xbaab, 0xe641, 0xfcba, 0xe65a, 0xe642, 0xe640, 0xbcea, 0xe658,
- 0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, 0xfdc5, 0xe9f3,
- 0xfdd2, 0xbf49, 0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48,
- 0xbf43, 0xe9f5, 0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8,
- 0xea44, 0xea46, 0xbefd, 0xea45, 0xbf44, 0xbf4a, 0x9cdc, 0xbf47,
- 0xe9fe, 0xbf46, 0xe9f9, 0x95cf, 0xe9ed, 0xe9f2, 0x8dee, 0xe9fd,
- 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1, 0xe5fd, 0xe9ec, 0xe9ef,
- 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43, 0xe9ee, 0xe9fc, 0xfdd4,
- 0xed51, 0xc0e3, 0xc0d7, 0x96ec, 0x96eb, 0xc0db, 0xed53, 0xed59,
- 0xed57, 0xc0d9, 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0xed56,
- 0xed55, 0xed5b, 0xc0e2, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de,
- 0xc0e5, 0xc0d8, 0xed58, 0xed50, 0x90b6, 0xeff7, 0xfdc3, 0xc271,
- 0xeff4, 0xeff6, 0xc26f, 0xeff2, 0xeff3, 0xefee, 0x98ab, 0xe9f6,
- 0xefef, 0xc270, 0xefeb, 0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed,
- 0xeff1, 0xc273, 0xc272, 0xeff0, 0xc378, 0xf25f, 0xf265, 0xc379,
- 0xf25c, 0xc376, 0xc373, 0xf267, 0xc377, 0x96ee, 0xc374, 0xf25e,
- 0xf261, 0xf262, 0xf263, 0xf266, 0xeff5, 0xf25d, 0xc375, 0xf264,
- 0xf268, 0xf260, 0x8df4, 0xf45d, 0xc46a, 0xf460, 0xc46b, 0xf468,
- 0xf45f, 0xf45c, 0xf45e, 0xf462, 0xf465, 0xf464, 0xf467, 0xf45b,
- 0xc469, 0xf463, 0xf466, 0xf469, 0xf461, 0xf5d3, 0xf5d4, 0xf5d8,
- 0xf5d9, 0xf5d6, 0xf5d7, 0xf5d5, 0xfde0, 0xc4e9, 0x8c67, 0x8df6,
- 0xc578, 0xf6eb, 0x8df7, 0xf6e8, 0xf6e9, 0xf6ea, 0xc579, 0xf7e5,
- 0xf7e4, 0x8ffa, 0xf8af, 0xc5f4, 0xf8ad, 0xf8b0, 0xf8ae, 0xf8f5,
- 0xc657, 0xc665, 0xf9a3, 0xf96c, 0x97d0, 0xf9a2, 0xf9d0, 0xf9d1,
- 0xa4f5, 0x8bd2, 0x8df8, 0xa6c7, 0xca41, 0xcb5e, 0x90d9, 0xa85f,
- 0x8c47, 0xa862, 0xfaf0, 0xcb5f, 0xa860, 0xa861, 0xfde1, 0x8df9,
- 0xfde3, 0xcd58, 0xcd5a, 0xcd55, 0xcd52, 0xcd54, 0x8dfa, 0xaaa4,
- 0xfb63, 0xaaa2, 0x90a6, 0xcd56, 0xaaa3, 0xcd53, 0xcd50, 0xaaa1,
- 0xcd57, 0xcd51, 0xaaa5, 0xcd59, 0xcfaf, 0x9970, 0xcfb3, 0x91eb,
- 0xacb7, 0x9770, 0x986f, 0xfde2, 0xcfb6, 0xacaf, 0xacb2, 0xacb4,
- 0xacb6, 0xacb3, 0xcfb2, 0xcfb1, 0xacb1, 0xcfb4, 0xcfb5, 0xcfae,
- 0xacb5, 0x98f2, 0xacb0, 0x9afc, 0x896c, 0xfdfd, 0xcfb0, 0x995e,
- 0x95bd, 0xd277, 0xd278, 0xd279, 0xaf50, 0xaf4c, 0xd26e, 0xfde4,
- 0xd276, 0xd27b, 0xaf51, 0x91e6, 0xd26c, 0xd272, 0xd26b, 0xd275,
- 0xfde5, 0xfde6, 0xd271, 0xaf4d, 0xaf4f, 0xd27a, 0xd26a, 0xd26d,
- 0xd273, 0xfde7, 0xd274, 0xd27c, 0xd270, 0xaf4e, 0xb26d, 0xd64e,
- 0x9454, 0xd650, 0xd64c, 0x99b8, 0xd658, 0xd64a, 0xd657, 0xb269,
- 0xd648, 0xda5b, 0xd652, 0xb26c, 0x97e9, 0xd653, 0xd656, 0xd65a,
- 0xd64f, 0x9346, 0xd654, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649,
- 0xd65b, 0xd651, 0xd655, 0xd64b, 0xb548, 0xb549, 0xda65, 0xb54f,
- 0x9863, 0xda59, 0xda62, 0xda58, 0xb54c, 0xda60, 0xda5e, 0xda5f,
- 0xb54a, 0xda63, 0x95bc, 0xfded, 0xfdf7, 0xda5c, 0xda5a, 0xb54b,
- 0xda5d, 0xda61, 0x9870, 0x96f6, 0x8ea9, 0xb54d, 0xda64, 0x9451,
- 0x8e43, 0x8b5a, 0xde70, 0xde77, 0xde79, 0xdea1, 0xfdee, 0xb7da,
- 0xde6b, 0xb7d2, 0xfdf0, 0xde7a, 0xb7d7, 0xdea2, 0xb7ce, 0xfdf4,
- 0xde7d, 0x9bf5, 0xde6d, 0xde7e, 0xde6c, 0xb7dc, 0xde78, 0xb7cf,
- 0xdea3, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, 0xde6f, 0xde76, 0xde72,
- 0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, 0xb7db, 0xb7d0, 0xde75,
- 0x977e, 0xb7d5, 0xb54e, 0xde7b, 0x9bd5, 0xde73, 0x9ac3, 0x97c8,
- 0xa0db, 0x91d0, 0xde74, 0x9fe4, 0xe2c1, 0x8fdd, 0xbab4, 0x91e9,
- 0xe2bd, 0xe2c3, 0xe2bf, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, 0x98e0,
- 0xe2bc, 0xbab5, 0x92ca, 0x9857, 0xe2c0, 0xe2bb, 0x8c51, 0xbab7,
- 0xbab2, 0xfdeb, 0xe2c4, 0x9b49, 0xbab3, 0xe667, 0xe664, 0xe670,
- 0xe66a, 0xe66c, 0xbcf4, 0xe666, 0xe66e, 0x9d76, 0x9eaf, 0xe66d,
- 0xe66b, 0xe671, 0xbcf7, 0xe668, 0xe66f, 0xbcf5, 0x9ccc, 0xe663,
- 0xe665, 0xbcf6, 0xe662, 0xe672, 0xfdea, 0xe669, 0x8df1, 0xea4a,
- 0xbf51, 0xfdfb, 0xea55, 0xea53, 0xbf4b, 0xea49, 0xea4c, 0xea4d,
- 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56, 0xea51, 0xbf4f, 0xbf4c,
- 0xea50, 0xea4e, 0xbf52, 0xea52, 0xbf4d, 0x8e53, 0xbf4e, 0xea4f,
- 0xbf50, 0xea4b, 0xea54, 0xbf53, 0xea57, 0xea58, 0xbf54, 0xfacf,
- 0xc0e7, 0xc0ee, 0xed5c, 0xed62, 0xed60, 0xc0ea, 0xc0e9, 0xc0e6,
- 0xed5e, 0x96f9, 0xc0ec, 0xc0eb, 0xc0e8, 0xed61, 0xed5d, 0xed5f,
- 0xc0ed, 0x98bf, 0x9e49, 0xc277, 0xeffb, 0xc274, 0xc275, 0xeffd,
- 0xc276, 0xeffa, 0x8ca7, 0xeff9, 0xf26c, 0xeffc, 0xf26d, 0xc37a,
- 0xf26b, 0x9bca, 0xf26a, 0xf269, 0xc37b, 0xfdfe, 0x92dc, 0xc46c,
- 0xf46a, 0xf46b, 0xfe41, 0x91cc, 0x91e2, 0xf5dc, 0xf5db, 0xc4ea,
- 0xf5da, 0xf6ec, 0xf6ed, 0xf7e6, 0xf8b1, 0xfe44, 0xf8f6, 0xf9bc,
- 0xc679, 0xf9c6, 0xa4f6, 0x8bd3, 0xaaa6, 0xaaa7, 0xfe47, 0xacb8,
- 0xc0ef, 0xa4f7, 0xaaa8, 0xaf52, 0xb7dd, 0xa4f8, 0xb26e, 0xbab8,
- 0xc962, 0xfe48, 0xcfb7, 0xd27d, 0xe2c5, 0xc0f0, 0xa4f9, 0xaaa9,
- 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0xdea4, 0x9455, 0xb7de, 0xe2c6,
- 0xfe4b, 0xbcf8, 0xfe4c, 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0x8dbf,
- 0xa6c9, 0xca42, 0xa6c8, 0xa865, 0xa864, 0xa863, 0xcb60, 0x9e78,
- 0xaaaa, 0xaaab, 0xcd5b, 0xcfba, 0xcfbd, 0xacba, 0xcfbb, 0xacb9,
- 0xcfbc, 0xacbb, 0xd2a2, 0xd2a1, 0xd27e, 0xaf53, 0xd65d, 0xd65e,
- 0xb26f, 0xd65c, 0xd65f, 0xb552, 0xb270, 0xfe51, 0xb551, 0xda6b,
- 0xda6a, 0x9456, 0xda68, 0xda69, 0xda6c, 0xdea6, 0xdea5, 0xdea9,
- 0x9d61, 0xdea8, 0xdea7, 0xbab9, 0xe2c9, 0x9457, 0xe2c8, 0xbaba,
- 0xe2c7, 0xe673, 0xe674, 0xbcf9, 0xea59, 0xea5a, 0x9966, 0xf272,
- 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, 0xf46c, 0xf6ee,
- 0xf8f7, 0xa4fc, 0x8bd5, 0xc9a5, 0xa5c7, 0xc9a6, 0xa069, 0xca43,
- 0xca44, 0xcb66, 0xcb62, 0xcb61, 0xaaac, 0xcb65, 0xa867, 0xcb63,
- 0xa866, 0xcb67, 0xcb64, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0x98b4,
- 0xaaad, 0xaab0, 0xcd65, 0xcd61, 0xcd62, 0xcd5c, 0xaaaf, 0xcd5e,
- 0xaaae, 0xcd63, 0xcd60, 0xcfc2, 0xacbd, 0xacbe, 0xa049, 0xcfc5,
- 0xcfbf, 0xcfc4, 0xcfc0, 0xacbc, 0xcfc3, 0xcfc1, 0xd2a8, 0xd2a5,
- 0xd2a7, 0xaf58, 0xaf57, 0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56,
- 0xd2a6, 0xd667, 0xd2a3, 0xd2aa, 0xa04c, 0x9e65, 0xd662, 0xd666,
- 0xd665, 0xda6e, 0xda79, 0xd668, 0x98b5, 0xd663, 0xda6d, 0xb274,
- 0xb273, 0xd661, 0xd664, 0xb275, 0xb272, 0xb271, 0xd660, 0xd669,
- 0xda70, 0xda77, 0xb554, 0xda76, 0xda73, 0xfe58, 0xb556, 0x9975,
- 0xfe53, 0xa065, 0xda75, 0xfe59, 0xda6f, 0xda71, 0xda74, 0xda72,
- 0xb555, 0xda78, 0xb553, 0xb7df, 0x98b7, 0x98b8, 0xdead, 0xdeac,
- 0xdeaa, 0xb7e2, 0xb7e1, 0xdeae, 0x98ba, 0xdeab, 0xe2ca, 0xbabb,
- 0xb7e0, 0x98bb, 0xdeb0, 0xdeaf, 0xe2cd, 0xe2cb, 0xbcfa, 0x9fbc,
- 0xbabc, 0xe2cc, 0xe676, 0xbcfb, 0xe675, 0xe67e, 0xe67d, 0xe67b,
- 0xe67a, 0xe677, 0xe678, 0xe679, 0xe67c, 0xe6a1, 0xea5f, 0xea5c,
- 0xea5d, 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0xed64, 0xed65,
- 0xc0f1, 0xa04a, 0xc0f2, 0xed63, 0x9ec7, 0xc279, 0xeffe, 0xc278,
- 0xc37e, 0xc3a1, 0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, 0xc57a,
- 0xf7e8, 0xf7e7, 0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, 0xd66a,
- 0xa5c9, 0xc9a7, 0xa4fd, 0x8ca9, 0xca45, 0x98ae, 0xcb6c, 0xcb6a,
- 0xcb6b, 0xcb68, 0xa868, 0xcb69, 0x92d6, 0xfae1, 0xcd6d, 0x91d4,
- 0xaab3, 0xcd6b, 0xcd67, 0xcd6a, 0xcd66, 0xaab5, 0xcd69, 0xfade,
- 0xaab2, 0xaab1, 0xfe5b, 0xaab4, 0xcd6c, 0xcd68, 0xacc2, 0xacc5,
- 0xcfce, 0xcfcd, 0xcfcc, 0xacbf, 0xcfd5, 0xcfcb, 0x8c53, 0xacc1,
- 0xd2af, 0xcfd2, 0xcfd0, 0xacc4, 0xcfc8, 0xcfd3, 0xcfca, 0xcfd4,
- 0xcfd1, 0xcfc9, 0xfe5e, 0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0xfbd7,
- 0xfe5a, 0x94c5, 0xd2b4, 0xd2ab, 0xd2b6, 0xfaca, 0xd2ae, 0xd2b9,
- 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f, 0xaf5d,
- 0x98c1, 0x975c, 0xd2b1, 0xfe74, 0xd2ad, 0x9773, 0xd2b0, 0xd2bb,
- 0xd2b2, 0xaf5e, 0xcfcf, 0xaf5a, 0xaf5c, 0xfa46, 0x9764, 0xd678,
- 0xd66d, 0xd66b, 0xfe68, 0xd66c, 0x964e, 0xd673, 0x9765, 0xd674,
- 0xd670, 0xb27b, 0xd675, 0xd672, 0xd66f, 0x8c5a, 0xb279, 0xd66e,
- 0xb277, 0xb27a, 0xd671, 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676,
- 0xb27c, 0x89a1, 0x95fa, 0x92d4, 0xfe69, 0xda7e, 0xfb45, 0x98c8,
- 0xdaa1, 0xb560, 0x90ef, 0xdaa7, 0x98c9, 0x98ca, 0xdaa9, 0xdaa2,
- 0xb55a, 0xdaa6, 0xdaa5, 0xb55b, 0xb561, 0xb562, 0xdaa8, 0xb558,
- 0xda7d, 0xda7b, 0xdaa3, 0xda7a, 0xb55f, 0xda7c, 0xdaa4, 0xdaaa,
- 0xb559, 0xb55e, 0xb55c, 0xb55d, 0x946d, 0x94b7, 0xfe6c, 0xb557,
- 0x946b, 0xb7e9, 0xdeb7, 0xb7e8, 0xdebb, 0x92fc, 0xdeb1, 0x95eb,
- 0xdebc, 0xfe73, 0x976e, 0xfe5f, 0xdeb2, 0xdeb3, 0xdebd, 0xdeba,
- 0xdeb8, 0xdeb9, 0xdeb5, 0xdeb4, 0xfdbd, 0xdebe, 0xb7e5, 0x92d5,
- 0xdeb6, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec, 0xfeb9, 0xb7e7, 0xb7e6,
- 0xfe71, 0xe2ce, 0xbabe, 0xbabd, 0xfbbb, 0xe2d3, 0x947a, 0xbcfc,
- 0xbabf, 0x95fb, 0xfe77, 0xbac1, 0xe2d4, 0xb7e3, 0xbac0, 0xe2d0,
- 0xe2d2, 0xe2cf, 0xfe79, 0xe2d1, 0xfe75, 0xe6ab, 0x945d, 0xe6aa,
- 0xe6a7, 0xbd40, 0xea62, 0xbd41, 0xe6a6, 0xfe7c, 0xbcfe, 0xe6a8,
- 0xe6a5, 0xe6a2, 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0x9344, 0x8ea6,
- 0xed69, 0xea66, 0xea65, 0xea67, 0xed66, 0xbf5a, 0x92d3, 0xea63,
- 0x94b8, 0xbf58, 0xbf5c, 0xbf5b, 0xea64, 0xea68, 0xbf59, 0xfc71,
- 0xed6d, 0xc0f5, 0xc27a, 0xc0f6, 0xc0f3, 0xed6a, 0xed68, 0xed6b,
- 0xed6e, 0xc0f4, 0xed6c, 0xed67, 0x975e, 0xf042, 0xf045, 0xf275,
- 0xf040, 0x8cad, 0xf46f, 0xf046, 0xc3a2, 0xf044, 0xc27b, 0xf041,
- 0xf043, 0xf047, 0xf276, 0xf274, 0xfea7, 0xc3a3, 0xf273, 0x946a,
- 0xc46e, 0x93e3, 0x98cf, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, 0xf6f0,
- 0xf6f2, 0xc5d0, 0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, 0xb27d,
- 0xdebf, 0xbf5d, 0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0xa0d9, 0xcd6f,
- 0xa260, 0xcfd7, 0xcfd8, 0xa0bf, 0xa04d, 0xa0b8, 0xd2be, 0xd2bf,
- 0xb27e, 0xb2a1, 0xa0ce, 0xdaab, 0xdec2, 0xdec1, 0xdec0, 0xe2d5,
- 0xe2d6, 0xe2d7, 0xbac2, 0xa0b7, 0xe6ad, 0xe6ac, 0xea69, 0xbf5e,
- 0xbf5f, 0xfea9, 0xed72, 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048,
- 0xc27c, 0xf277, 0xf5de, 0xa5cc, 0x89c3, 0xacc6, 0xb2a2, 0xdec3,
- 0xfeab, 0xa5cd, 0xd2c0, 0xb2a3, 0xb563, 0xb564, 0xa5ce, 0xa5cf,
- 0xca46, 0xa86a, 0xa869, 0xacc7, 0xcfd9, 0xdaac, 0xa5d0, 0xa5d1,
- 0xa5d2, 0xa5d3, 0x9df4, 0x896d, 0xa86b, 0xa86c, 0xcb6e, 0xcb6d,
- 0x9c7b, 0xaab6, 0xcd72, 0xcd70, 0xcd71, 0x98d2, 0x9fa9, 0xcfda,
- 0xcfdb, 0xfeb2, 0xaccb, 0xacc9, 0xfeb1, 0xacca, 0xacc8, 0x97d9,
- 0xa0c4, 0xaf60, 0x9476, 0xaf64, 0xaf63, 0xd2c1, 0xaf62, 0xaf61,
- 0xd2c2, 0x9978, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4, 0xb2a5, 0xfeb3,
- 0xb566, 0xb565, 0xdaae, 0x98d3, 0xfeb4, 0xdaad, 0xb2a7, 0x98d4,
- 0xb7ed, 0xdec5, 0xb7ee, 0xdec4, 0x9fb9, 0xe2d8, 0xe6ae, 0xbd42,
- 0xea6a, 0x9471, 0xed73, 0xc3a6, 0xc3a5, 0xc57c, 0xa5d4, 0xcd73,
- 0x98d5, 0xfeb8, 0xb2a8, 0xe2d9, 0xbac3, 0xc6d4, 0xcb6f, 0xcb70,
- 0xcd74, 0xaab8, 0xaab9, 0xaab7, 0xfeba, 0xaccf, 0xacd0, 0xaccd,
- 0xacce, 0xcfdc, 0xcfdd, 0xaccc, 0xd2c3, 0x9e5c, 0xaf68, 0xaf69,
- 0xfebb, 0xb2ab, 0xd2c9, 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b,
- 0xaf6a, 0xaf65, 0xd2c8, 0xd2c7, 0xd2c4, 0xaf6d, 0xa044, 0xd2c6,
- 0xaf66, 0xaf67, 0x98d7, 0xb2ac, 0xd6a1, 0xd6a2, 0xb2ad, 0xd67c,
- 0xd67e, 0xd6a4, 0xd6a3, 0xd67d, 0xb2a9, 0xb2aa, 0xdab6, 0xb56b,
- 0xb56a, 0xdab0, 0xb568, 0x98d8, 0xdab3, 0xb56c, 0xdab4, 0xb56d,
- 0xdab1, 0xb567, 0xb569, 0xdab5, 0xdab2, 0xdaaf, 0xded2, 0xdec7,
- 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6, 0xded3, 0xded1, 0xdeca,
- 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc, 0xded4, 0xdecb, 0xb7f5,
- 0xb7ef, 0xb7f1, 0xfebc, 0xdec9, 0x9ffe, 0xe2db, 0xbac7, 0xe2df,
- 0xbac6, 0xe2dc, 0xbac5, 0xdec8, 0xdecf, 0xe2de, 0xbac8, 0xe2e0,
- 0xe2dd, 0xe2da, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2, 0xe6b0,
- 0xbd45, 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af, 0xbd47,
- 0xbac4, 0xe6b6, 0xbd44, 0xfebd, 0xea6c, 0xea6b, 0xea73, 0xea6d,
- 0xea72, 0xea6f, 0xbf60, 0xea71, 0xbf61, 0xbf62, 0x9ddd, 0xea70,
- 0xea6e, 0x9ee1, 0xc0f8, 0xed74, 0xc0f7, 0xed77, 0xed75, 0xed76,
- 0xc0f9, 0x98da, 0x9ddf, 0xfebf, 0xf04d, 0xfebe, 0xc2a1, 0xf04e,
- 0x9eeb, 0xc27d, 0xf04f, 0xc27e, 0xf04c, 0xf050, 0xf04a, 0xc3a7,
- 0xf278, 0xc3a8, 0xc46f, 0xf04b, 0xc470, 0x9e59, 0xa05c, 0xc4ee,
- 0xf5df, 0xc57e, 0xf6f4, 0xc57d, 0xfec0, 0xf7ea, 0xc5f5, 0xc5f6,
- 0x9477, 0x98dc, 0xf9cc, 0xfec1, 0xacd1, 0xcfde, 0x98de, 0xb56e,
- 0xb56f, 0xa5d5, 0xa6ca, 0xca47, 0xcb71, 0xa86d, 0xaaba, 0xacd2,
- 0xacd3, 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0xb2ae, 0xd6a5, 0xfec3,
- 0xdab8, 0xb571, 0xdab7, 0xb570, 0xded5, 0xbd4a, 0xe6bb, 0xe6b8,
- 0xe6b9, 0xe6ba, 0xfec8, 0xed78, 0xfec9, 0xf051, 0xf471, 0xf470,
- 0xf6f5, 0xa5d6, 0xcd75, 0xaf70, 0xb572, 0xded6, 0xfeca, 0xe2e1,
- 0xbd4b, 0xea74, 0xf052, 0xf472, 0xa5d7, 0xaabb, 0xacd7, 0xcfdf,
- 0xacd8, 0xacd6, 0xacd5, 0xd2cc, 0xaf71, 0xfecb, 0xaf72, 0xaf73,
- 0xb2b0, 0xd6a7, 0xb2af, 0x9fc2, 0x8c6b, 0xdab9, 0xb2b1, 0xb573,
- 0xded7, 0xb7f8, 0xb7f9, 0xbac9, 0xbaca, 0xbd4c, 0xbf64, 0xea75,
- 0xbf63, 0xed79, 0xc0fa, 0xf053, 0xf473, 0xa5d8, 0xa86e, 0xcd78,
- 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79, 0xcfe5, 0xacdb, 0xacda,
- 0xcfe7, 0xcfe6, 0xacdf, 0xacde, 0xacd9, 0xcfe1, 0xcfe2, 0xcfe3,
- 0xace0, 0xcfe0, 0xacdc, 0xcfe4, 0xacdd, 0x98c4, 0x94b0, 0x94b1,
- 0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2ce,
- 0xd2cd, 0xfed1, 0xaf75, 0xaf76, 0xd2d7, 0xd2d2, 0xa0c1, 0xd6b0,
- 0xfed2, 0xd2d8, 0xaf77, 0xaf74, 0xa0cd, 0xd6aa, 0xd6a9, 0xd6ab,
- 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2, 0xb2b5, 0xb2b2, 0xb2b6, 0xd6a8,
- 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af, 0xb2b3, 0xfed3, 0x98e5, 0xdabc,
- 0xdabe, 0xdaba, 0xdabb, 0xdabf, 0xdac1, 0xdac2, 0xdabd, 0xdac0,
- 0xb574, 0xdedb, 0xdee0, 0xded8, 0xdedc, 0xfed6, 0xdee1, 0xdedd,
- 0xb7fa, 0xb843, 0xb7fd, 0xded9, 0xdeda, 0xbace, 0xb846, 0xb7fe,
- 0xb844, 0xb7fc, 0xdedf, 0xb845, 0xdede, 0xb841, 0xb7fb, 0xb842,
- 0xdee2, 0xe2e6, 0xe2e8, 0x91e4, 0x8fc7, 0x94ae, 0xb840, 0x8a4f,
- 0x94b2, 0xe2e3, 0xbacc, 0xe2e9, 0xbacd, 0xe2e7, 0xe2e2, 0xe2e5,
- 0xe2ea, 0xbacb, 0xe2e4, 0xbd4e, 0xe6bf, 0xe6be, 0xbd51, 0xbd4f,
- 0xe6bc, 0xbd4d, 0xe6bd, 0xbd50, 0x8fd4, 0xea7d, 0xeaa1, 0x98ea,
- 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66, 0xbf67, 0xbf65,
- 0xea78, 0xea7b, 0xea7c, 0xbf68, 0xc140, 0xeda3, 0xc0fc, 0xed7b,
- 0xc0fe, 0xc141, 0xfed8, 0xc0fd, 0xeda2, 0xed7c, 0xc0fb, 0xeda1,
- 0xed7a, 0xed7e, 0xed7d, 0x9de0, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2,
- 0x98ee, 0xc2a3, 0xf054, 0x95c4, 0xf27b, 0xfce8, 0xc3a9, 0xf279,
- 0xf27a, 0x98ef, 0xf474, 0xf477, 0xf475, 0xf476, 0xf5e0, 0xc4ef,
- 0xf7eb, 0xf8b4, 0xc5f7, 0xf8f8, 0xf8f9, 0xc666, 0xa5d9, 0xace1,
- 0x8c6e, 0xdac3, 0xdee3, 0xa5da, 0xa86f, 0xaabe, 0xfad8, 0xcfe8,
- 0xcfe9, 0xaf78, 0xdac4, 0xb575, 0xb847, 0xc142, 0xeda4, 0xf27c,
- 0xf478, 0xa5db, 0xfedc, 0xcda1, 0xcd7a, 0xcd7c, 0xcd7e, 0xcd7d,
- 0xcd7b, 0xaabf, 0xa0ae, 0xace2, 0xcff2, 0xcfed, 0xcfea, 0x9d4c,
- 0xcff1, 0xace4, 0xace5, 0xcff0, 0xcfef, 0xcfee, 0xcfeb, 0xcfec,
- 0xcff3, 0xace3, 0x98f1, 0x98f3, 0xaf7c, 0x94c1, 0xafa4, 0xafa3,
- 0xd2e1, 0xd2db, 0xd2d9, 0xafa1, 0xd6b9, 0xaf7a, 0xd2de, 0xd2e2,
- 0xd2e4, 0xd2e0, 0xd2da, 0xafa2, 0xd2df, 0xd2dd, 0xaf79, 0xd2e5,
- 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc, 0xaf7e, 0xaf7b, 0x98f5, 0xfa4f,
- 0x96e2, 0x9450, 0xb2b9, 0x96a2, 0xd6ba, 0x98f6, 0xd6b3, 0xd6b5,
- 0xd6b7, 0x96e5, 0xd6b8, 0xd6b6, 0xb2ba, 0xd6bb, 0x98f7, 0xd6b4,
- 0xa046, 0x96e3, 0xdac8, 0xb576, 0xdad0, 0xdac5, 0xdad1, 0xdac6,
- 0xdac7, 0x98f8, 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577, 0xdac9,
- 0xdacc, 0xb578, 0xdacd, 0xdaca, 0xdeee, 0x9ee4, 0xdef2, 0xb84e,
- 0xe2f0, 0xb851, 0xdef0, 0xf9d6, 0xdeed, 0xdee8, 0xdeea, 0xdeeb,
- 0xdee4, 0x94c3, 0xb84d, 0xb84c, 0x94c2, 0xb848, 0xdee7, 0xb84f,
- 0xb850, 0xdee6, 0xdee9, 0xdef1, 0xb84a, 0xb84b, 0xdeef, 0xdee5,
- 0xe2f2, 0xbad0, 0xe2f4, 0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3,
- 0xbad1, 0xe2ef, 0xbad3, 0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0xfee1,
- 0xb849, 0xfee9, 0xe2eb, 0xbad2, 0xe2ed, 0x96e4, 0x89ac, 0x96db,
- 0xbd54, 0xe6c1, 0xbd58, 0xbd56, 0xbacf, 0xe6c8, 0xe6c9, 0xbd53,
- 0xfee2, 0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5,
- 0xe6c2, 0xbd59, 0xe6c4, 0x94c4, 0xfee3, 0xe6c6, 0xbd57, 0xfee7,
- 0x9ffb, 0xbf6a, 0xeaa8, 0xeaa2, 0xeaa6, 0xeaac, 0xeaad, 0xeaa9,
- 0xeaaa, 0xeaa7, 0x8c59, 0xeaa4, 0xbf6c, 0xbf69, 0xeaa3, 0xeaa5,
- 0xbf6b, 0xeaab, 0x93c9, 0xc146, 0x94e8, 0xfb56, 0xedaa, 0xeda5,
- 0xc145, 0x90c5, 0xc143, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6,
- 0xedad, 0xf056, 0xc147, 0xeda7, 0xedae, 0xedab, 0xa0a8, 0xf05a,
- 0xf057, 0xc2a6, 0xf05b, 0xf05d, 0xf05c, 0xf058, 0xf059, 0xf2a3,
- 0xc3aa, 0xf27e, 0xf2a2, 0xf27d, 0xf2a4, 0xf2a1, 0xf47a, 0xf47d,
- 0xf479, 0xc471, 0xf47b, 0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473,
- 0xf5e1, 0xfee5, 0xf5e3, 0xf5e2, 0x98fd, 0x98fb, 0xfee8, 0xf6f6,
- 0x8ebf, 0xf8b5, 0xf8fa, 0xa5dc, 0x8bd8, 0xfef7, 0xcb72, 0xaac0,
- 0xcda3, 0xaac1, 0xaac2, 0xcda2, 0xcff8, 0xcff7, 0xace6, 0xace9,
- 0xace8, 0xace7, 0xcff4, 0xcff6, 0xcff5, 0xd2e8, 0xafa7, 0xd2ec,
- 0xd2eb, 0xd2ea, 0xd2e6, 0xafa6, 0xafaa, 0xafad, 0x8f68, 0x94c6,
- 0xafae, 0xd2e7, 0xd2e9, 0xafac, 0xafab, 0xafa9, 0xafa8, 0xd6c2,
- 0x9dea, 0xd6c0, 0xd6bc, 0xb2bb, 0xd6bd, 0xb2bc, 0xd6be, 0xd6bf,
- 0xd6c1, 0xb2bd, 0xdad5, 0xfc69, 0xdad4, 0xdad3, 0xdad2, 0xdef6,
- 0xb852, 0xdef3, 0xdef5, 0x9cda, 0xb853, 0xfef3, 0xb854, 0xdef4,
- 0x9c72, 0xfef0, 0x89c9, 0xe341, 0xe2f9, 0xe2fa, 0xbad7, 0xbad5,
- 0xbad6, 0xe343, 0x9941, 0xe342, 0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb,
- 0xe340, 0xe2f8, 0x9942, 0xe6cb, 0xe6d0, 0xe6ce, 0xfef5, 0x91d7,
- 0xe6cd, 0xe6cc, 0xe6cf, 0xeaae, 0x94cc, 0xbf6d, 0xc148, 0xedb0,
- 0xfef8, 0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0xf2a5, 0xc3ab,
- 0xf4a1, 0xc5a1, 0xf6f7, 0xf8b7, 0xf8b6, 0xc9a8, 0xacea, 0xaceb,
- 0xd6c3, 0xb856, 0xa5dd, 0xa872, 0xa871, 0xa870, 0x97a8, 0xcda4,
- 0xfefc, 0xaac4, 0xaac3, 0xacee, 0xfdbf, 0xcffa, 0xcffd, 0xcffb,
- 0xacec, 0xaced, 0xfefe, 0xcff9, 0xcffc, 0xafb5, 0xd2f3, 0xd2f5,
- 0xd2f4, 0xafb2, 0xd2ef, 0x96d1, 0xafb0, 0xafaf, 0xafb3, 0xafb1,
- 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0, 0x94d5, 0x94d0,
- 0xd6c6, 0xd6c7, 0xd6c5, 0xd6c4, 0xb2be, 0xb57d, 0xdad6, 0xdad8,
- 0xdada, 0xb57c, 0x9944, 0xb57a, 0xdad7, 0xb57b, 0xdad9, 0xb579,
- 0xdf41, 0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0xdefb, 0xdef8,
- 0xdef9, 0xb858, 0xdf40, 0xb857, 0xb85c, 0xb85b, 0xb859, 0xdefd,
- 0xe349, 0xe348, 0x8c63, 0xe344, 0xa0b3, 0xbad8, 0xe347, 0xe346,
- 0xbad9, 0xbd5e, 0xe6d2, 0x94cf, 0xbd5f, 0xbd5b, 0xbd5d, 0x9ffa,
- 0xbd5a, 0xbd5c, 0x91e5, 0xeaaf, 0x9c6a, 0xbf70, 0xeab1, 0xeab0,
- 0x8e49, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0xedb5, 0xedb3,
- 0xc14a, 0xedb4, 0xedb6, 0xedb2, 0xedb1, 0xf060, 0xc2aa, 0xc2a8,
- 0xc2a9, 0x8e4c, 0xf2a6, 0xf2a7, 0xc3ad, 0xc3ac, 0xf4a3, 0xf4a4,
- 0xf4a2, 0xf6f8, 0xf6f9, 0xa5de, 0xca48, 0xa873, 0xcda5, 0xaac6,
- 0xaac5, 0xcda6, 0x8e4d, 0xd040, 0xacef, 0xcffe, 0xacf0, 0x9a73,
- 0xafb6, 0xd2f8, 0xd2f6, 0xd2fc, 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9,
- 0xd2fa, 0xd6c8, 0xd6ca, 0x9947, 0xb2bf, 0x8cb1, 0xd6c9, 0xb2c0,
- 0xb5a2, 0xb5a1, 0xb57e, 0xdadb, 0xdf44, 0xb85d, 0xb85e, 0xdf43,
- 0xdf42, 0xe34a, 0xbadb, 0xbada, 0xe34b, 0xe34c, 0xbd61, 0xbd60,
- 0x8e50, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4, 0xeab2, 0xeab6,
- 0xeab3, 0xbf73, 0x8e4f, 0x9949, 0xedb7, 0xc14b, 0xedb8, 0xedb9,
- 0x8e51, 0x8e52, 0xc2ab, 0xc2ac, 0xc475, 0x9ab2, 0x89a5, 0xc5d1,
- 0xa5df, 0x994c, 0xd041, 0x9ff8, 0xd2fd, 0xafb8, 0x8e56, 0x994d,
- 0x91ca, 0x8e57, 0xb3ba, 0xb3b9, 0x94e1, 0xb5a4, 0xdadd, 0xb5a3,
- 0xdadc, 0x9047, 0x8fd8, 0x8e58, 0xdf45, 0xbadc, 0xe34d, 0xbadd,
- 0xc476, 0xf4a5, 0xa6cb, 0xaac7, 0xcda7, 0xacf2, 0x94eb, 0xacf1,
- 0xd042, 0xd043, 0xd340, 0xd342, 0xafb9, 0xd344, 0xd347, 0xd345,
- 0x8e5c, 0x9553, 0xd346, 0xd343, 0xd2fe, 0xafba, 0xd348, 0xd341,
- 0x9fe5, 0xd6d3, 0xb2c6, 0xd6dc, 0xb2c3, 0xd6d5, 0xb2c7, 0x9f56,
- 0xb2c1, 0xd6d0, 0xd6dd, 0xd6d1, 0xd6ce, 0xb2c5, 0x954f, 0xb2c2,
- 0x8e5e, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8, 0xb2c8, 0xd6d9, 0xd6cf,
- 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb, 0xd6db, 0x996a, 0xdadf,
- 0xdae4, 0x9c64, 0x9cd9, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, 0xdae1,
- 0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, 0xb5a8,
- 0xb5ae, 0xb5a9, 0xb5aa, 0x8e5d, 0xb5a6, 0xdae5, 0xb861, 0xdf50,
- 0x9950, 0xdf53, 0xdf47, 0xdf4c, 0xdf46, 0xb863, 0xdf4a, 0x9951,
- 0xdf48, 0xb862, 0x8e62, 0xdf4f, 0xdf4e, 0xdf4b, 0xdf4d, 0xdf49,
- 0xbae1, 0xdf52, 0xb85f, 0xdf51, 0x9952, 0xe35d, 0xbae8, 0xe358,
- 0xbae7, 0xe34e, 0xe350, 0xbae0, 0xe355, 0xe354, 0xe357, 0xbae5,
- 0xe352, 0xe351, 0x8e68, 0xbae4, 0xbadf, 0xe353, 0xbae2, 0xe359,
- 0xe35b, 0xe356, 0xe34f, 0xbae3, 0xbd69, 0xbade, 0x8e61, 0x9f59,
- 0xe35c, 0xe6d9, 0xbd62, 0xe6db, 0xbd63, 0x8bb3, 0xbd65, 0xe6de,
- 0xe6d6, 0xbae6, 0xe6dc, 0xe6d8, 0xb860, 0xbd68, 0xbd64, 0xbd66,
- 0xbd67, 0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0xe6da, 0x9f5d, 0x8e66,
- 0xeac0, 0xeabb, 0xeac5, 0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba,
- 0xeab7, 0xeac6, 0xc151, 0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc,
- 0xbf7b, 0xeab9, 0xeabe, 0xbf7a, 0xeac1, 0xeac4, 0x8cb2, 0xedcb,
- 0xedcc, 0xedbc, 0xedc3, 0xedc1, 0xc14f, 0xedc8, 0xeabf, 0x8e6e,
- 0xedbf, 0x9f64, 0xedc9, 0xc14e, 0xedbe, 0xedbd, 0xedc7, 0xedc4,
- 0xedc6, 0xedba, 0xedca, 0xc14c, 0xedc5, 0xedce, 0xedc2, 0xc150,
- 0xc14d, 0xedc0, 0xedbb, 0xedcd, 0xbf75, 0x9953, 0xfab8, 0xf063,
- 0x9954, 0xf061, 0xf067, 0xc2b0, 0xf065, 0xf064, 0xc2b2, 0xf06a,
- 0xc2b1, 0xf06b, 0xf068, 0xc2ae, 0xf069, 0xf062, 0xc2af, 0xc2ad,
- 0xf2ab, 0xf066, 0xf06c, 0xf2a8, 0x8e70, 0xc3b2, 0xc3b0, 0xf2aa,
- 0xf2ac, 0xf2a9, 0xc3b1, 0xc3ae, 0xc3af, 0xc3b3, 0x9f61, 0xc478,
- 0x8e72, 0xf4aa, 0xf4a9, 0xf4a7, 0xf4a6, 0xf4a8, 0xc477, 0xc479,
- 0xc4f0, 0xa06b, 0xf5e5, 0xf5e4, 0x9f40, 0xf6fa, 0xf6fc, 0xf6fe,
- 0xf6fd, 0xf6fb, 0x94ed, 0xc5a3, 0xc5a2, 0xc5d3, 0xc5d2, 0xc5d4,
- 0xf7ed, 0xf7ec, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0x94ee, 0xc659,
- 0xf96d, 0x9fbd, 0xc67e, 0xa6cc, 0x8e7b, 0xcda8, 0xd045, 0xd046,
- 0xd044, 0x9957, 0x94f7, 0xacf3, 0x9f5f, 0xd047, 0xd048, 0xd049,
- 0x8e73, 0xd349, 0xd34f, 0x9f62, 0xd34d, 0xafbb, 0xd34b, 0xd34c,
- 0xd34e, 0x94f6, 0xd34a, 0xb2c9, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca,
- 0xd6df, 0x9958, 0xdae8, 0xb5af, 0xdaea, 0xdae7, 0xd6e1, 0xb5b0,
- 0x8e75, 0xf9db, 0xdae9, 0x9072, 0x94f8, 0xdf56, 0xb864, 0xdf54,
- 0xb865, 0xdf55, 0xb866, 0x995a, 0xbae9, 0xe361, 0xe35e, 0xe360,
- 0xbaea, 0xbaeb, 0xe35f, 0xa0b0, 0x8cb3, 0xe6df, 0x8e79, 0xe6e0,
- 0x8e78, 0xbd6b, 0xe6e2, 0xe6e1, 0x94f3, 0xa261, 0xeaca, 0xeacb,
- 0xeac7, 0x98af, 0xeac8, 0xbf7c, 0xbf7d, 0xeac9, 0xc157, 0xa0b2,
- 0xc153, 0xc158, 0xc154, 0xc156, 0xc152, 0xc155, 0x8e7a, 0xc2b3,
- 0xedcf, 0xf2ae, 0xf2ad, 0x995c, 0xf4ab, 0xc47a, 0xc47b, 0xf741,
- 0xf5e6, 0x8e7c, 0xf740, 0x8e7d, 0xf8fd, 0xf9a4, 0xa6cd, 0x8bd9,
- 0xa874, 0x89a2, 0xcda9, 0xaac8, 0xacf6, 0xd04c, 0xacf4, 0xd04a,
- 0xacf9, 0xacf5, 0xacfa, 0xacf8, 0xd04b, 0xacf7, 0xafbf, 0xafbe,
- 0xd35a, 0xafc7, 0xd353, 0xd359, 0xafc3, 0xd352, 0xd358, 0xd356,
- 0xafc2, 0xafc4, 0xd355, 0xafbd, 0xd354, 0xafc8, 0xafc5, 0xafc9,
- 0xafc6, 0xd351, 0xd350, 0xd357, 0xafc0, 0xafbc, 0xafc1, 0x9ed7,
- 0xd6f0, 0xd6e9, 0xb5b5, 0xd6e8, 0xb2cf, 0xb2d6, 0xb2d3, 0xb2d9,
- 0xb2d8, 0xb2d4, 0xd6e2, 0xd6e5, 0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef,
- 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed, 0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd,
- 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb, 0xd6ee, 0xa0b6, 0xdafb, 0xdaf2,
- 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7, 0xb5b4, 0xdaef, 0xdaeb,
- 0x9e42, 0xb86c, 0xdaf4, 0x8ea4, 0xb5b1, 0xdafa, 0xb5b8, 0xb5ba,
- 0xdaed, 0xb5b9, 0xdaf0, 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5, 0xdaf3,
- 0xb5b6, 0xdaec, 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0xb868, 0xdf5d,
- 0xdf5f, 0xdf61, 0xdf65, 0xdf5b, 0xdf59, 0xb86a, 0xdf60, 0xdf64,
- 0xdf5c, 0xdf58, 0xdf57, 0x8ea7, 0x8c76, 0xdf62, 0xdf5a, 0xdf5e,
- 0xb86b, 0xb869, 0xdf66, 0xb867, 0xdf63, 0xe372, 0x9542, 0xbaee,
- 0xe36a, 0xbd78, 0xe374, 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0x987d,
- 0xe375, 0xe362, 0x9755, 0xe377, 0xe366, 0x8ea8, 0xbafe, 0xbafb,
- 0xe376, 0xe370, 0xbaed, 0xbaf5, 0xbaf4, 0x8eaa, 0xbaf3, 0xbaf9,
- 0xe363, 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373, 0xbaef, 0xbaf0,
- 0xbaf8, 0xe368, 0xe367, 0xe364, 0xe36c, 0xe369, 0xe36d, 0xbafd,
- 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0x89a3, 0xe36b, 0x9960, 0x9962,
- 0xbafc, 0x94fc, 0x9961, 0xe6e7, 0xbd70, 0xbd79, 0xbd75, 0xe6e4,
- 0x94fa, 0xbd72, 0xbd76, 0xe6f0, 0xbd6c, 0xe6e8, 0xbd74, 0x8eae,
- 0x8eb2, 0xe6eb, 0xe6e6, 0xbd73, 0xbd77, 0xe6e5, 0xbd71, 0xe6ef,
- 0xbd6e, 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d, 0x8eb0, 0xe6ec,
- 0xe6e3, 0xbd7b, 0xe6ea, 0xbd6f, 0x9963, 0x97aa, 0xe6e9, 0x94fb,
- 0xbfa2, 0xbfa7, 0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9,
- 0xbfa8, 0xbfa1, 0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace,
- 0xead6, 0xbfa3, 0xead4, 0xbfa6, 0xbfa5, 0xead0, 0xead1, 0xeacd,
- 0xead7, 0xbfa4, 0xeade, 0xeadd, 0x8ebb, 0xedda, 0xedd6, 0xc15f,
- 0xedd0, 0xc159, 0xc169, 0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164,
- 0xc167, 0xedde, 0xc15c, 0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1,
- 0xc160, 0xc15a, 0xc168, 0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf,
- 0xc162, 0xc15b, 0xedd9, 0xc166, 0xedd7, 0xeddb, 0xf06e, 0xf074,
- 0xc2b9, 0xf077, 0xc2b4, 0xc2b5, 0xf06f, 0xf076, 0xf071, 0xc2ba,
- 0xc2b7, 0x8cdc, 0xf06d, 0xc2b6, 0xf073, 0xf075, 0xc2b8, 0xf072,
- 0xf070, 0x9876, 0x8ea1, 0xf2b8, 0xc3b7, 0xc3b8, 0xc3b4, 0x8cb4,
- 0xc3b5, 0x8eb7, 0xf2b4, 0xf2b2, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0,
- 0xf2af, 0xf2b3, 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d,
- 0xf4ad, 0x9da6, 0xf4af, 0xf4ae, 0xc4a1, 0xf5eb, 0xf5e8, 0xf5e9,
- 0xf5e7, 0xf5ea, 0xc4f2, 0xf5ec, 0x9eb0, 0xc4f1, 0xf742, 0x8eb8,
- 0xc5d5, 0xc5d7, 0xf7ee, 0xc5d6, 0xf8b9, 0xf940, 0xf942, 0xf8fe,
- 0xf941, 0xc66c, 0x9d70, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972,
- 0x8973, 0x8974, 0xa6ce, 0x8975, 0xacfb, 0xd26f, 0xafca, 0xb2da,
- 0xdafc, 0xdafd, 0x8ebc, 0x8ebd, 0xeadf, 0xc16a, 0xede1, 0x8ebe,
- 0xc2bb, 0x9dd1, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0x94fd, 0xf743,
- 0xc5f8, 0xca49, 0x8bd7, 0x8bda, 0xaac9, 0xa875, 0xd04d, 0xd360,
- 0xd35b, 0xd35f, 0xd35d, 0xafcb, 0xd35e, 0xd35c, 0xd6f1, 0xdafe,
- 0xdb40, 0xdf69, 0xdf6a, 0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67,
- 0xb86d, 0xbb40, 0xa0e2, 0xb870, 0xe37a, 0xbd7c, 0xe6f1, 0xbd7d,
- 0x9fe9, 0xbfa9, 0xeae2, 0xeae0, 0xeae1, 0xede4, 0xede3, 0xede2,
- 0xf2bb, 0xc3b9, 0xf2bc, 0xf744, 0xc5f9, 0xf8ba, 0xa6cf, 0xaacb,
- 0xaaca, 0xd04f, 0xacfc, 0xfda8, 0xd04e, 0xd362, 0x8ae7, 0xafcc,
- 0xd6f2, 0xd361, 0x8ec2, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db,
- 0xdb42, 0xdb43, 0xdb41, 0x8ec4, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e,
- 0xb872, 0xb871, 0xe6f2, 0xe6f4, 0x9964, 0xbd7e, 0xe6f3, 0xeae3,
- 0xbfaa, 0xf079, 0x9965, 0xf078, 0xc3bb, 0xf2bd, 0xc3bd, 0xc3bc,
- 0xf4b0, 0xf5ee, 0xc4f3, 0xa6d0, 0xd050, 0xacfd, 0xd365, 0xafce,
- 0xd364, 0xd363, 0xafcd, 0xd6fb, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd,
- 0xd6f8, 0xb2de, 0xd6fc, 0xd6f9, 0xd6fa, 0xb2df, 0xb5be, 0xb5bf,
- 0xdb44, 0xdf6f, 0xdf70, 0x954e, 0xe37e, 0xbb43, 0xbb41, 0xbb42,
- 0xe37b, 0xe37c, 0xe37d, 0xe6f9, 0x98b3, 0xe6fa, 0xbda1, 0xe6f7,
- 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4, 0xbfab, 0xbfac, 0xede6,
- 0xc16b, 0xede5, 0xefa8, 0xf07a, 0xf07b, 0xc2bc, 0x8ecb, 0xc2bd,
- 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, 0xc4a3, 0xa6d1, 0x8bdf, 0xa6d2,
- 0xacfe, 0xaacc, 0xafcf, 0xd051, 0x8ece, 0xb5c0, 0xa6d3, 0xad41,
- 0xd052, 0xd053, 0xad40, 0xad42, 0xa6d4, 0xd054, 0xafd1, 0xd366,
- 0xafd3, 0xafd0, 0xafd2, 0xd741, 0xb2e0, 0x8ecf, 0xd740, 0xd6fe,
- 0x9968, 0xdf71, 0xe3a1, 0x9969, 0xbda2, 0xbfae, 0xeae6, 0xeae5,
- 0xede7, 0x996b, 0x8ed1, 0xf5ef, 0x996c, 0xa6d5, 0xcb73, 0xcdaa,
- 0xad43, 0xd055, 0xd368, 0x8ed4, 0x8ed5, 0xafd4, 0xd367, 0xafd5,
- 0xd743, 0xb2e2, 0xd742, 0xd744, 0xb2e1, 0xdb46, 0xdb47, 0xdb45,
- 0xb5c1, 0x996d, 0xb874, 0xb875, 0xbb45, 0xa0be, 0xe3a3, 0xe3a2,
- 0xbb44, 0x8ed6, 0xa0bc, 0xa0b5, 0xe6fb, 0xa0b4, 0xe6fc, 0xeae7,
- 0xc170, 0xc16f, 0xc16d, 0xc16e, 0xc171, 0xf07c, 0xc2bf, 0xc2be,
- 0xf2c0, 0xf4b2, 0xc5a5, 0xc5a4, 0xa6d6, 0x8be0, 0xd1fb, 0xb877,
- 0xb5c2, 0xb876, 0xbb46, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9, 0xcdab,
- 0xcb76, 0xcb77, 0xa877, 0xcb74, 0xa876, 0xa879, 0xcb75, 0xa87b,
- 0xa87a, 0xcb78, 0xa878, 0x89b5, 0xaad1, 0xaacf, 0xcdad, 0xaace,
- 0x8edd, 0xaad3, 0xaad5, 0xaad2, 0xcdb0, 0xcdac, 0xaad6, 0xaad0,
- 0xa87c, 0xaad4, 0xcdaf, 0x9e5d, 0x9971, 0xcdae, 0xaacd, 0x89ae,
- 0x9de8, 0xd05b, 0xad47, 0xad48, 0xd05d, 0x9565, 0xd057, 0xd05a,
- 0xd063, 0xd061, 0xad49, 0xd067, 0xad4c, 0xd064, 0xd05c, 0xd059,
- 0xdb49, 0xd062, 0xad44, 0xd065, 0xd056, 0xd05f, 0xad46, 0xad4b,
- 0xd060, 0xad4f, 0xad4d, 0xd058, 0xad4a, 0xd05e, 0xad4e, 0xad45,
- 0xd066, 0x9972, 0x8b5c, 0xafda, 0xafe3, 0xafd8, 0xafd6, 0xd36a,
- 0xafde, 0xafdb, 0xd36c, 0x89b1, 0xafdd, 0xd36b, 0xd369, 0xd36e,
- 0xafe2, 0xafe0, 0xdb48, 0xd36f, 0xd36d, 0xafd7, 0xa0c0, 0xafd9,
- 0xafdc, 0x8edf, 0xafdf, 0x9566, 0xafe1, 0x9974, 0x9976, 0x9977,
- 0x9979, 0xd74e, 0xb2e4, 0x9dda, 0xd745, 0xd747, 0x8ee0, 0xd748,
- 0xd750, 0xd74c, 0xd74a, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746,
- 0xd74f, 0xb2e7, 0x935c, 0xb2e6, 0xd74b, 0xd749, 0xb2e3, 0xb2e8,
- 0x9de6, 0x8b5f, 0x9563, 0xb5c8, 0xdb51, 0xdb4f, 0xb5ca, 0x9567,
- 0xdb4a, 0xdfa1, 0xb5c9, 0xdb4e, 0x9de3, 0xdb4b, 0xb5c5, 0xb5cb,
- 0xdb50, 0xb5c7, 0xdb4d, 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4,
- 0xb5c3, 0x997c, 0x997d, 0x997e, 0xdf77, 0xdf75, 0xdf7b, 0xdf73,
- 0xdfa2, 0xdf78, 0xdf72, 0xb87b, 0xb8a3, 0xdf7d, 0xdf76, 0xb87e,
- 0x8b5b, 0xb87c, 0xdf7e, 0xb879, 0xb878, 0xdf79, 0xb87d, 0xb5cd,
- 0xdf7c, 0xdf74, 0xb87a, 0xb8a1, 0xb8a2, 0x99a3, 0xbb4c, 0xbb48,
- 0xbb4d, 0xe3a6, 0x99a4, 0xe3a5, 0xe3a7, 0xbb4a, 0xe3a4, 0xbb4b,
- 0xe3aa, 0xe3a9, 0xe3a8, 0xbb49, 0x99a6, 0xe741, 0xe744, 0xbda8,
- 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe, 0xbda6,
- 0xe742, 0xe6fd, 0x99a8, 0xeae9, 0xeaf3, 0xbfb1, 0xbfb0, 0x8abe,
- 0xeaed, 0xeaef, 0xeaea, 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0,
- 0xeaec, 0x9e61, 0xeaf2, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178,
- 0xc17a, 0xc177, 0xc176, 0x99aa, 0xc175, 0xc173, 0xede9, 0xedec,
- 0xc172, 0xeded, 0xa0c8, 0xc179, 0xedeb, 0xedea, 0xc2c0, 0xc2c1,
- 0xf0a1, 0xf07d, 0xf07e, 0xf2c2, 0xf2c1, 0xc3be, 0xf4b4, 0xc4a4,
- 0xf4b3, 0xf5f0, 0xf745, 0xc5a6, 0xf943, 0xf944, 0xc5d8, 0xa6da,
- 0x99ab, 0xaad7, 0xdb52, 0xbb4e, 0xc17b, 0xedef, 0xa6db, 0xafe5,
- 0xafe4, 0xdb53, 0xfec4, 0xeaf4, 0xa6dc, 0xad50, 0x98c2, 0xdb54,
- 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0xaad8, 0xd068, 0xafe6,
- 0xd370, 0xb2ea, 0xdb57, 0xb8a4, 0xbb50, 0xbfb3, 0xc17c, 0xc2c2,
- 0xf4b5, 0xa6de, 0xaad9, 0xafe7, 0xd752, 0xb5ce, 0xbb51, 0xe3ab,
- 0xe745, 0x8ee8, 0xa0ba, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0,
- 0xcdb1, 0xd069, 0xad51, 0xd372, 0xfd77, 0xafea, 0x8eee, 0xafe8,
- 0xafe9, 0xafeb, 0x9ebf, 0xd371, 0xd757, 0xd754, 0xd756, 0xb2eb,
- 0xb2ed, 0xb2ec, 0xd753, 0xb2ee, 0xd755, 0xdb58, 0xdb59, 0x89c2,
- 0xdb5a, 0xdfa6, 0xdfa7, 0xdfa5, 0xdfa8, 0xb8a5, 0xdfa4, 0xbb53,
- 0xe74a, 0xe746, 0xe749, 0xe74b, 0xe748, 0xe747, 0x99ac, 0xeaf5,
- 0xeaf6, 0xeaf7, 0xbfb4, 0xbfb5, 0xedf1, 0xedf0, 0xedf2, 0xf0a3,
- 0xf0a2, 0xf2c4, 0x956b, 0xf2c5, 0xf2c3, 0x956c, 0xc4a5, 0xf4b6,
- 0xf4b7, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, 0xc17d, 0xa6e2,
- 0xd758, 0xdb5b, 0x99af, 0xc641, 0xca4a, 0x994a, 0x8976, 0x8f48,
- 0xca4b, 0xca4d, 0xa6e3, 0xca4e, 0xca4c, 0xcba2, 0xcba3, 0xcb7b,
- 0xfbee, 0xcba1, 0xa8a1, 0xa8a2, 0xcb7c, 0xcb7a, 0xcb79, 0xcb7d,
- 0xa87e, 0xcb7e, 0xd06a, 0xcdb6, 0xaadc, 0xcdb5, 0xcdb7, 0xaadb,
- 0xcdbc, 0xaadf, 0xcdb2, 0xcdc0, 0xcdc6, 0xaae6, 0xcdc3, 0xaae3,
- 0x99ae, 0xcdb9, 0xcdbf, 0xcdc1, 0x8efb, 0xcdb4, 0xaae2, 0xaadd,
- 0xcdba, 0xaae4, 0xaae7, 0xaae1, 0xaada, 0xcdbe, 0xcdb8, 0xcdc5,
- 0xaae9, 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade, 0xaae8,
- 0x8cd0, 0xcdb3, 0xcdc2, 0xcdc4, 0x8b52, 0x99b0, 0x8977, 0x8f41,
- 0xad62, 0xad5c, 0xad64, 0xad61, 0xd071, 0xd074, 0xad5d, 0x99b1,
- 0xd06b, 0xad56, 0xad60, 0xad63, 0xad65, 0xd0a2, 0xd077, 0x8f49,
- 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, 0xd06f, 0xd07e, 0xd073,
- 0xd076, 0xd0a5, 0xfa4d, 0xad66, 0xd07d, 0xad5e, 0xd078, 0xd0a4,
- 0xd075, 0xd079, 0xd07c, 0x9de4, 0x8cb5, 0xd06d, 0xd0a3, 0xd07b,
- 0xfbe9, 0x9b54, 0xd06c, 0x99b2, 0xd070, 0xad5f, 0xad5a, 0xad53,
- 0xad58, 0xad54, 0xad67, 0xd06e, 0xd3a5, 0xad5b, 0x9e68, 0xd07a,
- 0xce41, 0xd3a8, 0xaffa, 0x8f4a, 0xd376, 0x8f42, 0xd3a3, 0xd37d,
- 0x8f51, 0xd3b2, 0xd3aa, 0xd37e, 0xd3a9, 0xd378, 0xd37c, 0xd3b5,
- 0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0xd3ac, 0xaffc,
- 0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, 0xaff1, 0xaff8,
- 0xd072, 0xdb5c, 0xd3a6, 0x9846, 0xd37a, 0xaffb, 0xd37b, 0xd3a1,
- 0xaffe, 0xd375, 0xd3af, 0xd3ae, 0xd3b6, 0xaff3, 0xaff0, 0xd3b4,
- 0xd3b0, 0xd3a7, 0xd3a2, 0xaff6, 0xaff2, 0xd377, 0xafee, 0xd3b1,
- 0xafef, 0xd379, 0x99b4, 0x8ef5, 0xfd55, 0x9ccd, 0x8978, 0xd75e,
- 0xd760, 0xd765, 0xd779, 0xb2fc, 0xb2f2, 0xd75d, 0xb2fd, 0xb2fe,
- 0xd768, 0xd76f, 0xd775, 0xd762, 0xd769, 0x8f53, 0xb340, 0xd777,
- 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef, 0xd761,
- 0xd759, 0x8f6f, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773,
- 0xb2f1, 0xd764, 0xd77a, 0xd76c, 0x8e63, 0xd76b, 0xb2f0, 0xb2fb,
- 0xb2f3, 0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, 0xd75b, 0xd767,
- 0xd76d, 0xb2f6, 0x8f56, 0xd778, 0xd771, 0xd774, 0xfe76, 0xb2f5,
- 0x9fc6, 0xdb6c, 0xdb60, 0xb5d7, 0xdb7d, 0xdba7, 0xdbaa, 0xb5d5,
- 0xdb68, 0xdba3, 0xdb69, 0xdb77, 0xb5e2, 0xdb73, 0xb5df, 0xfaac,
- 0xdb74, 0xdb5d, 0xdba4, 0x8f58, 0xb5e8, 0xdba1, 0xdb75, 0xdbac,
- 0xdb70, 0xdfc8, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a, 0xb5e9, 0xb5d4,
- 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0xdb63, 0xdb61, 0xb5d0,
- 0xdba5, 0xdb6a, 0xdba8, 0x9848, 0xdba9, 0xb5d8, 0xb5dd, 0xb5d9,
- 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0xb5d2, 0xdb5e, 0xdba2,
- 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, 0xdb6d, 0xb5d1, 0xb5e5,
- 0x99b7, 0xdb7c, 0xb5e7, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3,
- 0xb5e4, 0xdb79, 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0x9665, 0xfa6c,
- 0x9de7, 0xdbae, 0x9e62, 0x96cc, 0x8e67, 0xdb5f, 0xfc75, 0x987e,
- 0xdfc7, 0xdfdd, 0xb855, 0xdfcc, 0xfdb9, 0xdfca, 0xdfb5, 0xb8a9,
- 0xdfc5, 0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, 0xb5e3, 0xdfcf,
- 0xdfc0, 0xdfd6, 0xb8b0, 0xb8a8, 0x97fc, 0xdfaa, 0xdfb2, 0xdfcb,
- 0xdfc3, 0xdfdc, 0xdfc6, 0xb8b6, 0xdfd7, 0x98f9, 0xb8ad, 0x8f66,
- 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0, 0xdfe1, 0xdfb1, 0xdfd2, 0x956e,
- 0xdfdf, 0x9245, 0xdfab, 0xb5db, 0x8f60, 0xdfb9, 0xdfb8, 0xb8af,
- 0x9ed1, 0xdfbc, 0xdfbe, 0xdfcd, 0xdfde, 0xb8b2, 0xfecd, 0xb8b3,
- 0x99b9, 0xdfb0, 0xb8ab, 0xdfb4, 0xdfda, 0xb8b4, 0xb8ac, 0xb8ae,
- 0xb8b5, 0xdfe0, 0xdfd3, 0xdfce, 0x8f62, 0x974c, 0xdfbb, 0xdfba,
- 0xb8aa, 0xdfac, 0xb8a7, 0xdfc4, 0xdfad, 0xdfc2, 0xdfb7, 0xdfdb,
- 0x91c7, 0x955f, 0xb8a6, 0xdfb3, 0x99bb, 0xdfaf, 0xdfd5, 0xdfae,
- 0xbb60, 0xe3d3, 0x8e6d, 0x8f71, 0xe3c2, 0x94cb, 0xe3ac, 0xe3ca,
- 0xbb58, 0xe3bb, 0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, 0xe3cd,
- 0xe3ae, 0xe3c1, 0x95b1, 0xe3ad, 0xe3bf, 0xe3c8, 0xe3c6, 0xe3ba,
- 0xe3b5, 0xe3b3, 0x9af2, 0xe3b4, 0xe3c7, 0xe3d2, 0xe3bc, 0xbb5a,
- 0xe3b7, 0xe3cb, 0xbb5d, 0xe3b6, 0xe3b0, 0xe3c0, 0xbb61, 0x96c3,
- 0x99bd, 0xbb55, 0xbb5e, 0xe3b8, 0xe3b2, 0xbb57, 0xdfd4, 0xbb56,
- 0xe3c3, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9, 0xe3b1, 0xe3cc,
- 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0xe3c9, 0xe3ce, 0xa0cf,
- 0xe3d1, 0x8f6d, 0x99be, 0x8ef4, 0x8f72, 0x95e4, 0xe773, 0xe774,
- 0xe767, 0xe766, 0xe762, 0xbdb4, 0xbdac, 0xe776, 0xe775, 0xdfa9,
- 0xe75f, 0xe763, 0xe75d, 0xe770, 0xe761, 0x99bf, 0xe777, 0xe75a,
- 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6, 0xe74f, 0xe76d, 0x9242,
- 0xfba5, 0xbdb7, 0xdfbd, 0xe75b, 0xe752, 0xe755, 0xe77b, 0xe75c,
- 0xe753, 0xe751, 0xe74e, 0x99c0, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3,
- 0xe760, 0xe768, 0xbda9, 0xe778, 0xe77c, 0xbdab, 0xe757, 0xe76b,
- 0xe76f, 0xe754, 0xe779, 0xbdb2, 0xbdb1, 0xe74c, 0xbdb5, 0xe772,
- 0xe756, 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c,
- 0xe77d, 0xe77a, 0xe771, 0xfdb4, 0x8f77, 0x99c1, 0xe74d, 0xbdaa,
- 0xeb49, 0xeb40, 0xeb43, 0xfab9, 0xbfbb, 0xeb45, 0xeaf9, 0xeb41,
- 0xeb47, 0xbfb8, 0xbfbc, 0xbfb6, 0x8f40, 0xfa44, 0xeafb, 0xeb4c,
- 0xeb46, 0x99c2, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46, 0xeafe,
- 0xbfb7, 0x8f5c, 0xeb4a, 0xeb54, 0xbfbf, 0x8cbd, 0xeb51, 0xeafd,
- 0xeb44, 0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, 0xbfb9, 0xbfba,
- 0xbfbe, 0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0x99c4, 0x99c5, 0xeb4b,
- 0x8f7b, 0xeb4e, 0xee53, 0xee40, 0xee45, 0xee52, 0xee44, 0xedfb,
- 0xee41, 0xc1a2, 0xedf4, 0xee4d, 0xee4f, 0xedf3, 0xc1a1, 0xee51,
- 0xee49, 0xc1a8, 0xee50, 0xee42, 0xc1aa, 0xedf9, 0xeb52, 0xee4a,
- 0xee47, 0xedf5, 0xee55, 0xc1a4, 0xc1a5, 0xedf7, 0xee48, 0x8cb6,
- 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3, 0xee4c, 0xedfe, 0xee56,
- 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc, 0xc2cb, 0xedf6, 0xc1a9,
- 0xc2c4, 0xc17e, 0xc1a6, 0xc2c8, 0xf0b3, 0xf0a9, 0xf0a4, 0xf0aa,
- 0xf0b4, 0xf0b8, 0xf0b7, 0xc2ca, 0xc2c9, 0xf0ab, 0xf0b9, 0xf0ae,
- 0xf0a6, 0x8fa3, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2, 0xf0a5, 0xf0ac,
- 0xf0b1, 0xc2c7, 0xf0af, 0xc2c5, 0xf0b0, 0xc2c3, 0xc2c6, 0xf2d5,
- 0xf0b5, 0xc3c2, 0x8cce, 0xf2cd, 0xf2d1, 0xf2c9, 0xf2cc, 0xf2d4,
- 0xc3c0, 0xf2d9, 0xf2d2, 0x99c6, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3,
- 0xc3c4, 0xf2d7, 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8,
- 0x96cd, 0xf2d8, 0xf2d6, 0xf2c7, 0xf2cf, 0xf4be, 0xc3c5, 0xf2d0,
- 0xc4a7, 0xc4a9, 0xc4a6, 0x96c7, 0xf4c3, 0xf4bb, 0xf4b9, 0xf4bd,
- 0xf4ba, 0x8fa5, 0xf4bf, 0xf4c1, 0xc4aa, 0xc4ac, 0xf4c0, 0xc4ad,
- 0xc4ab, 0xf4c2, 0xfabb, 0x8c61, 0x9570, 0xc4a8, 0x9368, 0x8f7e,
- 0xc4f4, 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0xf5fd, 0xf5f4,
- 0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8,
- 0x8faa, 0xf5fc, 0xf5f2, 0xf74a, 0xc4f5, 0xf5f9, 0xa050, 0xf7f4,
- 0xf74b, 0xf749, 0xf747, 0xf748, 0xf74c, 0xc5d9, 0xf7f2, 0xf7f0,
- 0xf7f5, 0xf7f3, 0xf7f6, 0xc5da, 0xf7f1, 0x90d3, 0xf8bc, 0x9556,
- 0xf945, 0xf946, 0xf947, 0xf9c7, 0xf9bd, 0xca4f, 0xaaea, 0xad68,
- 0xd3b8, 0xd3b7, 0xb040, 0xb342, 0xd77c, 0xd77b, 0xb5ea, 0xb8b8,
- 0xb8b7, 0xb8b9, 0xe3d4, 0xe77e, 0xeb58, 0xeb5a, 0xeb59, 0xc1ab,
- 0xee57, 0xf0ba, 0xf9a5, 0xa6e4, 0x8fb8, 0xcdc9, 0xcdca, 0xcdc8,
- 0xcdc7, 0xaaeb, 0x99c8, 0xd0a9, 0xd0a7, 0xd0a6, 0xad69, 0xad6b,
- 0xad6a, 0xd0a8, 0x8faf, 0xd3c4, 0xd3c1, 0xd3bf, 0xb041, 0xd3c2,
- 0xb046, 0xd3bc, 0xd3cb, 0xd3cd, 0xd3bd, 0x99c9, 0xb043, 0xd3ce,
- 0xd3c9, 0xd3bb, 0xd3c0, 0xd3ca, 0xd3c6, 0xd3c3, 0xb048, 0xd3cc,
- 0xd3be, 0x9579, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0xd3c8,
- 0xd3ba, 0xb045, 0xb042, 0x9f49, 0xb34c, 0xd7a5, 0xb34b, 0x99ca,
- 0xd7a8, 0xd7ab, 0xb348, 0xb346, 0xd77e, 0xd7a9, 0xd7a7, 0xd7a4,
- 0xd7ac, 0xd7ad, 0xd7af, 0xd7b0, 0xd77d, 0xb345, 0xd7a2, 0xd7a1,
- 0xd7ae, 0xb347, 0xd7a3, 0xb349, 0xb344, 0xd7a6, 0xb34d, 0xb34a,
- 0xd7aa, 0xb5f1, 0xdbbf, 0xdbb4, 0xb5ee, 0xdfe7, 0xdbbd, 0xdbb1,
- 0xb5ec, 0xdbb6, 0xb5ef, 0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, 0xdbb2,
- 0xdbb5, 0xb5f0, 0xdbb3, 0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb,
- 0xb5ed, 0x99cb, 0xdfe8, 0xdfee, 0xdfe4, 0xdfea, 0xb8ba, 0xdfe6,
- 0xb8c0, 0xb8bf, 0xb8be, 0xdfed, 0xb8c1, 0xb8c2, 0xdfe3, 0xdff0,
- 0xb8c3, 0xb8bd, 0xb8bc, 0xdfec, 0xb8c4, 0xdfe2, 0xdfe5, 0xdfef,
- 0xdfeb, 0xe3f4, 0xe3e9, 0xb8bb, 0xbb6a, 0xe3dd, 0xe3f2, 0xe3de,
- 0xbb65, 0xe3db, 0xe3e4, 0xe3dc, 0xbb67, 0xe3d6, 0xe3f1, 0xbb68,
- 0xe3ee, 0xe3ef, 0xe3d7, 0xbb6d, 0xe3e6, 0xe3e0, 0xe3e7, 0xe3da,
- 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5, 0xbb69, 0xe3ec, 0xbb6c, 0xe3f0,
- 0xe3ea, 0xbb66, 0xe3e8, 0xe3e2, 0xbb64, 0xe3d9, 0xe3e1, 0xe3ed,
- 0xe3df, 0xe3e3, 0xbdc1, 0xdfe9, 0xe7b2, 0xe7bb, 0xe7b1, 0xe7ad,
- 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b, 0xe7a1, 0xbdc0, 0xe7a7, 0xbdbf,
- 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4, 0xe7ae, 0xe7b3, 0xbdbb, 0xe7ab,
- 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba, 0xbdbc, 0xe7bf, 0xbdbe, 0xe7c0,
- 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af, 0xe7b8, 0xe7b5, 0x9dd5, 0x8fb0,
- 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, 0xbdbd, 0xeb64, 0xe7b7,
- 0xe7bc, 0xfa7a, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67, 0x9e5f,
- 0xeb65, 0xeb60, 0xeb6f, 0x99cd, 0xa0c9, 0xbfc4, 0xeb5c, 0xeb68,
- 0xeb69, 0xeb5f, 0xeb5e, 0xeb6c, 0xeb62, 0xeb5d, 0xeb63, 0xeb6e,
- 0xeb5b, 0xeb6d, 0xeb6a, 0xbfc2, 0xbfc1, 0xbfc3, 0xeb66, 0xf0cb,
- 0x9adb, 0xa0c6, 0xee59, 0xc1b1, 0xee5d, 0xee5a, 0xee61, 0xee67,
- 0xee5c, 0x8fb4, 0xee70, 0xc1ae, 0xee6a, 0xee5f, 0xee6b, 0xee66,
- 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60, 0xee6e, 0xee58, 0xee6c,
- 0xc1ac, 0xa0d7, 0xee64, 0xee63, 0xee68, 0xee5b, 0xc1b0, 0xc1b4,
- 0xee62, 0xee69, 0xc1b5, 0xee65, 0xa0c7, 0xc1ad, 0xc1af, 0xf0c7,
- 0xf0c5, 0xa043, 0xf0cc, 0xf0c9, 0xf0cd, 0x8fb5, 0xf0be, 0xf0c6,
- 0xf0d1, 0xee6f, 0xf0c2, 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4,
- 0xf0c1, 0xf0bc, 0xf0bb, 0xf0d0, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8,
- 0x8fb2, 0xc2cc, 0xc2ce, 0xf0c3, 0xf0cf, 0xa061, 0xf2de, 0xf2df,
- 0xc3c9, 0xf2dc, 0xc3c6, 0xf2e4, 0xc3ca, 0xf2e6, 0xf2db, 0xf0ce,
- 0xf2e8, 0xf2dd, 0x9e5e, 0xc3c7, 0xf2e3, 0xf2e5, 0xf2e0, 0xf2e7,
- 0xf2e2, 0xf2e1, 0xc3c8, 0x8fb6, 0xf4c5, 0xf4c6, 0xf4c8, 0xc4ae,
- 0xc4af, 0xf4c9, 0xf4c7, 0x9fe8, 0xf4c4, 0xf642, 0xf645, 0xf641,
- 0xc4fa, 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644, 0xf751, 0xf74f,
- 0x9cb2, 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0x957c, 0xf7f9,
- 0xf7d7, 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0xf8bf, 0xc5fa, 0xf8be,
- 0xf8bd, 0xc5fb, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, 0xa6e5,
- 0xd0aa, 0x9fc7, 0xd3cf, 0xd3d0, 0x8fbb, 0x8fbc, 0xdbc0, 0xf647,
- 0xf8c0, 0xa6e6, 0xad6c, 0xd0ab, 0x8fec, 0xd7b1, 0xb34e, 0xdbc2,
- 0xdbc1, 0xb5f3, 0xb8c5, 0xe7c1, 0xbdc3, 0xbdc4, 0x8fc0, 0x936a,
- 0xbfc5, 0xc5fc, 0xa6e7, 0x8be4, 0x9c7c, 0xd0ac, 0xaaed, 0xd0ae,
- 0xd0ad, 0xad6d, 0xd3d1, 0x95a1, 0xd3d8, 0xb049, 0xd3d6, 0xd3d4,
- 0xd3db, 0xd3d2, 0xd3d3, 0xb04a, 0xb04e, 0xd3dc, 0xb04d, 0xd3da,
- 0xd3d7, 0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0xfeec, 0x95a3, 0xb350,
- 0xd7b2, 0xb355, 0xd7c2, 0xb354, 0xd7c4, 0x8c45, 0x8cb8, 0xd7b8,
- 0xb352, 0xd7c3, 0xd7b3, 0xb353, 0xd7bf, 0xd7bb, 0xd7bd, 0xd7b7,
- 0xd7be, 0x8fc1, 0xb34f, 0xd7ba, 0xa052, 0xd7b9, 0xd7b5, 0xd7c0,
- 0xd7bc, 0xd7b4, 0xd7b6, 0xb351, 0xd7c1, 0x99d0, 0xb5f6, 0xdbcd,
- 0x8fc3, 0x8fc4, 0xdbc9, 0xdbcb, 0xdbc6, 0xdbc5, 0xdbc3, 0xdbca,
- 0xdbcc, 0xdbc8, 0x95a4, 0xdbc7, 0xb5f4, 0xb5f5, 0x8fc6, 0x9e60,
- 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3, 0xdff4, 0xf9d8, 0xdff9,
- 0xb8cf, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, 0xb8ca, 0xb8c8, 0xdff7,
- 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, 0xb8cc, 0x95a5, 0xe3f6,
- 0xbb74, 0xe442, 0xe441, 0xe3fb, 0xbb76, 0xe440, 0xe3f7, 0xe3f8,
- 0xbb6e, 0xbb70, 0x9cb3, 0xe3fd, 0xe3f5, 0xbb72, 0xbb71, 0xe3f9,
- 0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0x99d1, 0xfef1, 0xdbce, 0xbb6f,
- 0xe7c2, 0xe7c9, 0xbdc6, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0xe7cc,
- 0xbdc5, 0xe7cb, 0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6,
- 0xe7c7, 0xe7c8, 0xbb75, 0xeb70, 0xeb7c, 0xbfca, 0xeb77, 0xeb79,
- 0x99d2, 0xbfc8, 0xeb71, 0xeb75, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b,
- 0xeb73, 0xeb74, 0xeb7a, 0xeb72, 0xeb76, 0xbfc7, 0xee72, 0xee71,
- 0xc1b7, 0xee77, 0xc1b9, 0xc1b6, 0xee73, 0xc1ba, 0xee74, 0xee75,
- 0xee78, 0x9cc2, 0xc1b8, 0xf0d6, 0x99d3, 0xf0d9, 0xf0d3, 0xf0d5,
- 0x95a7, 0xf0d4, 0xf0d7, 0xf0d8, 0xee76, 0xf0d2, 0x95a9, 0xc3cd,
- 0xf2ec, 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0, 0xc3ce,
- 0xc3cc, 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0x95a6, 0xf4cb,
- 0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, 0xf752,
- 0xc5a7, 0xf7fd, 0xf7fc, 0xf7fb, 0x9c5d, 0xf948, 0xf949, 0xf94b,
- 0xf94a, 0xca50, 0xa6e8, 0x98e2, 0xad6e, 0xd7c5, 0xb5f7, 0xdffa,
- 0xc2d0, 0x8fc9, 0xf2f2, 0xa0c2, 0x8fca, 0xa8a3, 0xb357, 0x99d4,
- 0xb356, 0xa0b9, 0xdbd0, 0xb5f8, 0xdbd2, 0xdbd1, 0xdffb, 0xb8d0,
- 0xe443, 0xe446, 0xe445, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf, 0x9b58,
- 0xbfcc, 0x8fcd, 0xa0d4, 0xbfcb, 0xc1bb, 0xee79, 0xee7b, 0xee7a,
- 0xc2d1, 0xf2f4, 0xf2f3, 0xf4cc, 0xc4b1, 0x8fce, 0xc4fd, 0xf754,
- 0xf753, 0xc65b, 0x8be5, 0x8979, 0xa8a4, 0xd0af, 0xad6f, 0xd7c8,
- 0xd7c6, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043, 0xdbd3, 0xdffc, 0xe041,
- 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd, 0xe044, 0x8fd0, 0xe449,
- 0xe447, 0xe448, 0xe7d3, 0xe7d1, 0xe7d2, 0xeb7d, 0xee7c, 0xee7d,
- 0xc2d2, 0xf2f5, 0xf4cd, 0xc4b2, 0xf64c, 0xf755, 0xc5a9, 0xf7fe,
- 0xf94c, 0xa8a5, 0xad71, 0xad72, 0xd0b0, 0xd0b1, 0xad70, 0xb054,
- 0xb052, 0xb051, 0xb058, 0xb050, 0xb059, 0xd3dd, 0xb056, 0xb053,
- 0xb057, 0xb055, 0xb04f, 0xb35f, 0x95b6, 0xb359, 0xd7cc, 0xb35e,
- 0xb360, 0xb35a, 0xb35b, 0xd7ca, 0x99d6, 0xb358, 0x95e5, 0xd7cb,
- 0xb35d, 0xd7c9, 0xb35c, 0xb644, 0xb646, 0x99d7, 0xdbd8, 0xb645,
- 0xb5f9, 0xb5fd, 0x95b5, 0xb8e4, 0xe049, 0xdbda, 0xb5fe, 0xdbdd,
- 0xdbde, 0xb643, 0xdbe0, 0xa0ca, 0xdbe2, 0xdbe3, 0xdbd7, 0xdbd6,
- 0xdbe4, 0xb642, 0xdbe1, 0xdbdf, 0xb640, 0xb5fb, 0xb647, 0xdbdb,
- 0xdbdc, 0xdbd9, 0xb641, 0xb5fc, 0xb5fa, 0xe048, 0xb8df, 0xb8da,
- 0xb8d5, 0x9ffd, 0xb8e5, 0xb8d6, 0xb8d2, 0xb8e1, 0xb8de, 0xb8e0,
- 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050, 0xe04d, 0xe045, 0xe04a,
- 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0xa058, 0xe047, 0xe04f, 0xe04b,
- 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, 0xe44c, 0xbb78, 0xbb7b,
- 0xe44e, 0x8fd6, 0xbba5, 0xe44d, 0xbb7d, 0x99d8, 0xbdcf, 0xe44f,
- 0xbba4, 0xe44b, 0xbba6, 0x8fd3, 0xbb79, 0xb8db, 0xbb7c, 0xbb7a,
- 0xbb7e, 0xbba2, 0xbb77, 0xbba7, 0xbba3, 0x8fe5, 0xbba1, 0xe44a,
- 0x8fe9, 0xbdd6, 0xbdd2, 0x99d9, 0xbdd9, 0xe7d6, 0xbdda, 0xe7e2,
- 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd, 0xbdd5, 0xe7de, 0xbdd4, 0xe7e1,
- 0xbdce, 0xe7df, 0xe7d5, 0xbdcd, 0xebaa, 0xbdd3, 0xbdd0, 0xbdd8,
- 0xe7d4, 0xe7d8, 0xbdcc, 0xe7d7, 0xe7d9, 0xe7da, 0xbdd7, 0xe7dc,
- 0xe7e0, 0xe7e4, 0x927c, 0xbddb, 0xbfd2, 0xeba5, 0xebab, 0xeba8,
- 0xeb7e, 0xebac, 0xeba1, 0xeba7, 0xbfcd, 0xbfd3, 0xebad, 0x9c45,
- 0xbfcf, 0xbfd9, 0xbfd4, 0xebaf, 0xeba9, 0xbfd0, 0xeba2, 0xbfda,
- 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, 0xbdd1, 0xbfce, 0xebb0, 0xbfdc,
- 0xbfd5, 0xebae, 0xbfd1, 0xbfd6, 0xbfd7, 0xc1c3, 0xeea4, 0xeead,
- 0xeeaa, 0xeeac, 0xc1c0, 0xeea5, 0x8fde, 0xeeab, 0xc1bc, 0xeea7,
- 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2, 0xc1bd,
- 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e, 0x8fdf,
- 0xc1c1, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, 0xc2d3,
- 0xf0da, 0xc2d6, 0xc2d5, 0xa04b, 0xf0e9, 0xf0e1, 0xf0de, 0xf0e4,
- 0xf0dd, 0xf0df, 0xf0e8, 0xf0e6, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2,
- 0xf0ec, 0xf0e3, 0x8fe2, 0xf2f9, 0xc3cf, 0xf341, 0xa0cc, 0xf64f,
- 0xc3d6, 0xf0e0, 0xf2f7, 0xc3d2, 0xf2f8, 0xf2fd, 0x8fe3, 0x8fe4,
- 0xc3d4, 0xc3d5, 0xf2f6, 0xf340, 0xf342, 0xf2fa, 0xf2fc, 0xf2fe,
- 0xf2fb, 0xf343, 0xc3d1, 0xc3d7, 0xc3d3, 0xc3d0, 0xf4d0, 0x9bc4,
- 0xc4b7, 0xf4ce, 0x9bfc, 0xf4d2, 0xf4d3, 0xc4b5, 0xf4d4, 0xf4d1,
- 0x964c, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0xc4b6, 0xc4b3, 0xc4fe,
- 0xc540, 0xf64e, 0xf64d, 0xf650, 0xf651, 0xc541, 0xf756, 0xf75b,
- 0xc5aa, 0x9af6, 0xf758, 0x8cae, 0xf757, 0xf75a, 0xf759, 0xf843,
- 0xc5dc, 0xf842, 0xf840, 0xf841, 0x8fe7, 0xc5fe, 0xc5fd, 0xf8c1,
- 0xf8c2, 0xc640, 0xf94d, 0xf94e, 0xc667, 0x8fe8, 0xc66d, 0xf9a9,
- 0xf9c8, 0x8be7, 0x897a, 0x897b, 0xa8a6, 0xd7cd, 0xd7ce, 0xe052,
- 0xe450, 0xe7e5, 0xc1c6, 0xc1c5, 0xf0ee, 0xf344, 0xf844, 0xa8a7,
- 0xd3de, 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6, 0xbddd,
- 0xeeb1, 0xc2d7, 0x99da, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, 0xb362,
- 0xd7cf, 0xd7d0, 0xdbe5, 0xb648, 0xb8e6, 0xe056, 0xe055, 0xe057,
- 0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0xeeb5, 0xeeb2,
- 0xeeb4, 0xeeb3, 0xc1c7, 0xf0ef, 0xf346, 0xf345, 0xcba4, 0xb05c,
- 0xb05b, 0xd3e0, 0xd7d1, 0xdbe7, 0xdbe6, 0xb649, 0xe059, 0xe05a,
- 0xe058, 0xb8e8, 0xb8e7, 0xbbaa, 0xbba9, 0xe7e7, 0xebb3, 0xebb1,
- 0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0xf0f2, 0xf0f1, 0xf0f0, 0xf347,
- 0x8fed, 0xf9aa, 0xa8a9, 0xad73, 0x95c0, 0xad74, 0xb05d, 0xb05e,
- 0xd3e2, 0xd3e1, 0xd7d2, 0xb368, 0xb366, 0xb363, 0xb367, 0xb365,
- 0xb364, 0xa0cb, 0xb64a, 0xdbea, 0xb8ed, 0xb64c, 0xb651, 0xdbec,
- 0xb653, 0xb652, 0xb655, 0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d,
- 0xdbe9, 0xb654, 0xb650, 0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0,
- 0xb8ea, 0xb8eb, 0xb8e9, 0xe05b, 0x9e48, 0xe454, 0xbbac, 0xbbad,
- 0xbbab, 0x99db, 0xe453, 0x8ff3, 0xe455, 0xe7ea, 0xe7ec, 0x8ff9,
- 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, 0xbddf, 0xbde9, 0xbde5, 0xbde6,
- 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, 0xe7eb, 0x95c1, 0xbde8, 0xa04e,
- 0xbde3, 0xbde4, 0xebb5, 0xebb7, 0xebb6, 0x99dc, 0xebb8, 0xbfe0,
- 0xebb4, 0xa064, 0xc1cb, 0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9,
- 0xf0f3, 0xf0f6, 0xf0f5, 0x8ff7, 0xf0f4, 0xc2d8, 0xf348, 0xf349,
- 0xc3d8, 0xf34a, 0xc3d9, 0x89b0, 0xa048, 0xc4ba, 0xc4b9, 0xf652,
- 0x8ffb, 0x8ff6, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, 0x9ddc,
- 0xf845, 0xc642, 0x99dd, 0x8be8, 0xa8aa, 0xb36a, 0xb369, 0xe05c,
- 0xe05d, 0xbbae, 0xebb9, 0xbdea, 0xebba, 0xeeb9, 0xa8ab, 0xd0b2,
- 0xad76, 0xad75, 0xd3e3, 0xb05f, 0xd3e4, 0xd7d5, 0x92c1, 0xd7d4,
- 0xd7d3, 0xdbee, 0xb658, 0x9fd6, 0xdbed, 0xb657, 0xdbef, 0xb656,
- 0xe05f, 0xe062, 0xe060, 0xe061, 0xe065, 0xe05e, 0xe066, 0xe063,
- 0xe064, 0xbbb0, 0xe456, 0xbbaf, 0xe7f2, 0xe7f0, 0xbdeb, 0xe7ef,
- 0xe7f1, 0xbdec, 0xebbb, 0xa0d2, 0xebbc, 0xc1cd, 0x9040, 0xf34c,
- 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, 0xf96f, 0xa8ac, 0xad77,
- 0xd3e5, 0xd3e7, 0xd3e6, 0xd7d8, 0xb36c, 0xd7d6, 0xb36b, 0xd7d9,
- 0x8ac4, 0xd7da, 0xd7d7, 0x99e0, 0xdbfb, 0xb660, 0xdbf3, 0xdbf9,
- 0xb65b, 0xb65e, 0xdbf2, 0xb659, 0xdbf6, 0xe06c, 0xb65d, 0xdbf1,
- 0x9ff0, 0xdbf7, 0xdbf4, 0xdbfa, 0xdbf0, 0xdbf8, 0xb65c, 0xb65f,
- 0xdbf5, 0xb65a, 0xb8f2, 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8,
- 0xb8f9, 0xe070, 0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0xe06b,
- 0xb8f4, 0xe067, 0xe06a, 0xe071, 0xb8f5, 0xe073, 0xb8f6, 0xbbb1,
- 0xe45b, 0xe461, 0xe459, 0xe462, 0x9ff3, 0xe458, 0xe45d, 0xe463,
- 0xe460, 0xe45f, 0xe45e, 0xe457, 0xe45c, 0xe45a, 0x9dbf, 0xbdf1,
- 0xbdee, 0xe7fb, 0xe841, 0xe843, 0xe840, 0xe7f8, 0xe7fa, 0xe845,
- 0xe842, 0xe7fc, 0xe846, 0xe7f9, 0xe844, 0xbdef, 0xbdf5, 0xbdf3,
- 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4, 0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe,
- 0x9ff6, 0xbdf2, 0x95c8, 0xbded, 0x9e5a, 0xe7f7, 0xebc6, 0xbfe2,
- 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0xebbf, 0xbfe5, 0x99e3, 0xebc3,
- 0xebc4, 0xebbe, 0xebc7, 0xebc0, 0xebc5, 0xbfe4, 0xbfe1, 0xebc1,
- 0x8a4a, 0xeebf, 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb,
- 0xeeba, 0x9ff1, 0xeebd, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa,
- 0xc2d9, 0xf141, 0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, 0xf0f9,
- 0xf142, 0xf0f8, 0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, 0x8aa7,
- 0xf144, 0xf352, 0xc3de, 0xf34f, 0xf353, 0x99e6, 0xc3db, 0xf351,
- 0xc3e0, 0x9ff7, 0xc3dd, 0x9fed, 0xf350, 0xc3df, 0xf354, 0xc3da,
- 0x8a5c, 0x9dae, 0xc4bc, 0xc4be, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc,
- 0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0xf761,
- 0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, 0xf846,
- 0xf75f, 0xf8c6, 0xf8c3, 0xf8c4, 0xf8c5, 0xc65c, 0xf951, 0xf950,
- 0xf94f, 0xf970, 0x95c9, 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060,
- 0x9048, 0x99e8, 0xb8fa, 0x9049, 0x8cba, 0xbdf6, 0x90b1, 0xebc8,
- 0xc2df, 0xf355, 0x904a, 0xf9ac, 0xa8ae, 0xaaee, 0xad79, 0xad78,
- 0x99ea, 0xb063, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0xd7df, 0xd7db,
- 0x9bd1, 0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, 0xd7e0, 0xd7e1,
- 0x99eb, 0x99ec, 0xdc43, 0xdc41, 0xdc45, 0xdc46, 0xdc4c, 0xdc48,
- 0xdc4a, 0x99ed, 0xdc42, 0xdbfc, 0xdc49, 0x99ee, 0xdc4b, 0xdc44,
- 0xdc47, 0xdbfd, 0xb662, 0xdc40, 0xdbfe, 0xb661, 0xb663, 0xb8fd,
- 0xe075, 0xe077, 0xe076, 0xe07b, 0xb8fb, 0xe078, 0xe074, 0xe079,
- 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0xe467, 0xe466, 0xe464, 0xe465,
- 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d, 0xe84e, 0xe849, 0x904c,
- 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9, 0xe84b, 0xe84c,
- 0xe848, 0xbe40, 0xbdfb, 0xbdfa, 0xbdfc, 0xe847, 0x904d, 0xebca,
- 0xbfe8, 0x95cb, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce,
- 0xbfe9, 0xebcd, 0xbfe7, 0xc1d3, 0xc1d6, 0xeec1, 0x97e2, 0xc1d4,
- 0xeec0, 0xc1d2, 0xc1d5, 0xf146, 0xf147, 0xf148, 0xc2e0, 0x95cc,
- 0xf149, 0xc2e1, 0xc3e2, 0xf358, 0xf359, 0xf357, 0xf356, 0xf35a,
- 0xc3e1, 0xf4dd, 0xf4db, 0xf4dc, 0xf4de, 0xf4da, 0xf4df, 0xf658,
- 0x9f78, 0xf659, 0xf657, 0xc546, 0xf764, 0xc5af, 0xf765, 0xf848,
- 0xf847, 0x897c, 0x897d, 0x897e, 0x995d, 0xa8af, 0xb664, 0xb940,
- 0x9b5a, 0xbbb6, 0x9050, 0xbfec, 0x8c4f, 0xbfeb, 0xc3e3, 0xc47c,
- 0xc547, 0xa8b0, 0xb064, 0xb941, 0x9054, 0xf35b, 0xc6d6, 0x9aa8,
- 0x99ef, 0xfeeb, 0x9da3, 0x9da1, 0x9943, 0x9945, 0x9d7d, 0xcba6,
- 0x99f0, 0xa8b1, 0xa8b4, 0xa8b3, 0xa8b2, 0xcba5, 0x99f1, 0xcdcd,
- 0x99f2, 0xcdcf, 0xaaef, 0x8cbc, 0x9d60, 0xaaf1, 0xcdcc, 0xcdce,
- 0xaaf0, 0xcdd1, 0xcdd0, 0xcdd2, 0xa0a3, 0xd0b6, 0xd0b4, 0xad7c,
- 0xd0b3, 0xada3, 0xad7e, 0xad7b, 0xada4, 0xad7d, 0xada2, 0xada1,
- 0xd0b5, 0xad7a, 0xb06a, 0xd3eb, 0xd3f1, 0xb067, 0xb06e, 0x905b,
- 0xb069, 0xd3ee, 0xd3f0, 0xb06c, 0xd3ea, 0xd3ed, 0xb068, 0xb065,
- 0xd3ec, 0xb06b, 0xd3ef, 0xb06d, 0xb066, 0x9edb, 0xd7e3, 0xd7e6,
- 0xb370, 0xb37a, 0xb376, 0xd7e4, 0x9d79, 0xb37e, 0xb377, 0xb37c,
- 0xb372, 0xb36f, 0xb371, 0xb37d, 0xd7e5, 0xb375, 0xb378, 0xb374,
- 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2, 0xdc4d, 0xb665, 0xdc4f,
- 0xb667, 0xb669, 0x99f3, 0xdc4e, 0xb666, 0xb66a, 0x9062, 0xb668,
- 0xb947, 0xe0a3, 0xb94f, 0xe07e, 0xb950, 0xb945, 0xe0a1, 0xb94a,
- 0xe0a2, 0xb943, 0xb942, 0x9f55, 0xb94d, 0xb94c, 0xb94b, 0xb949,
- 0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0x9bf9, 0xbbb8, 0xbbbb,
- 0xbbbf, 0xbbb9, 0xbbbe, 0xbbbc, 0xbbb7, 0x9065, 0xbbbd, 0xbbba,
- 0x96e0, 0xe852, 0xbe43, 0xbe41, 0xe853, 0x98be, 0xbe44, 0xbe42,
- 0xe851, 0xe850, 0xbff0, 0xe84f, 0xbfee, 0xbfed, 0xebd0, 0xbe45,
- 0xbfef, 0xebd1, 0xbff2, 0xebd2, 0xbff1, 0xc1d8, 0xeec3, 0xc1d7,
- 0xc1dc, 0xc1da, 0xc1db, 0xc2e3, 0xc1d9, 0xeec2, 0xebd3, 0xc2e2,
- 0xc2e4, 0xc3e4, 0xc3e5, 0xf4e0, 0xc5de, 0xc5dd, 0xa8b6, 0xca55,
- 0xb06f, 0xca52, 0xca53, 0xca51, 0xca54, 0xcbaa, 0xcba7, 0xcbac,
- 0xcba8, 0xa8b7, 0xa8ba, 0xcba9, 0xa8b9, 0xcbab, 0x9068, 0xa8b8,
- 0x906c, 0xcdd5, 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6, 0xcdd4, 0xaaf2,
- 0xaaf5, 0xaaf3, 0x95d8, 0xd0b8, 0xd0bc, 0xd0b9, 0xada7, 0xada8,
- 0x906a, 0xd0bb, 0xd0bd, 0xd0bf, 0xada5, 0xd0be, 0xada6, 0xd7ee,
- 0xd0ba, 0xd3f2, 0xd3fb, 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc,
- 0xb071, 0xd3f7, 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8,
- 0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0xd7e8, 0xd7ea,
- 0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0xdc56, 0xebd4, 0xdc57,
- 0xdc54, 0xb3a3, 0xb66e, 0xdc53, 0xdc59, 0xdc58, 0xb66b, 0xdc5c,
- 0xdc52, 0xdc5b, 0xdc50, 0xdc5a, 0xdc55, 0xb66d, 0xe0aa, 0xe0a5,
- 0xe0ab, 0xe0a6, 0xe0a4, 0xe0a7, 0xb951, 0xe0a9, 0xe0a8, 0xb952,
- 0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c,
- 0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0xe859, 0xbe48, 0xf14a,
- 0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, 0xbe46,
- 0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0xeec4, 0xc1dd,
- 0xf14b, 0xf14c, 0xf14d, 0xf35d, 0xf35c, 0xf4e2, 0xf4e1, 0xf65b,
- 0xf65c, 0xf65a, 0xf766, 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075,
- 0xb074, 0xd440, 0xd441, 0xd3fe, 0x9fb2, 0xb073, 0xd7f5, 0xd7f6,
- 0xd7f2, 0xb3a4, 0xd7f3, 0x9fae, 0xd7f4, 0x9fb0, 0x89ad, 0xdc5f,
- 0xdc61, 0xdc5d, 0xdc60, 0xb66f, 0xdc5e, 0xb670, 0x906e, 0xdd73,
- 0xb955, 0xb954, 0xb953, 0xe0ac, 0xe0ad, 0x9e71, 0xe473, 0xe475,
- 0xbbc6, 0xbbc3, 0x9e4a, 0xbbc5, 0xbbc4, 0xe474, 0xe472, 0x9fdc,
- 0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a,
- 0xbe4b, 0xe85d, 0xbe4c, 0x89ab, 0xebdb, 0x9fb8, 0xebdc, 0xebd9,
- 0xebda, 0xbff4, 0xebd8, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb,
- 0xc1df, 0xeec9, 0xeecc, 0xeeca, 0xeec6, 0xc1de, 0xf14f, 0xf150,
- 0xf14e, 0x9070, 0xf152, 0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151,
- 0xf35e, 0xc3e6, 0xf4e5, 0xf4e6, 0xc4bf, 0xf4e4, 0x8b63, 0xf4e3,
- 0xf65d, 0xc548, 0x95dc, 0xf849, 0xf8c8, 0xf8c7, 0xc643, 0xc65d,
- 0xf8c9, 0xf971, 0x9071, 0xc66f, 0xa8bc, 0xaaf6, 0xb956, 0xc4c0,
- 0xa8bd, 0xadab, 0xb3a5, 0xb671, 0xc2e7, 0xaaf7, 0xd0c1, 0xd0c0,
- 0xd442, 0xfc5e, 0xb078, 0xb076, 0xb07a, 0xd444, 0xb079, 0xb077,
- 0x8949, 0xd443, 0xb3a8, 0xd7fc, 0x965b, 0xb3a7, 0xb3a9, 0xd842,
- 0xb3ab, 0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0xd7f9, 0xd7fa,
- 0xd7f8, 0xb3a6, 0x8c50, 0xd841, 0xd7fb, 0xd7fd, 0x94a6, 0xdc6d,
- 0x8fd5, 0xdc6c, 0xdc6a, 0xdc62, 0xdc71, 0xdc65, 0xdc6f, 0xdc76,
- 0xdc6e, 0xb679, 0x9e73, 0xb675, 0xdc63, 0xdc69, 0xb677, 0x9075,
- 0xdc68, 0xb678, 0xb67a, 0xdc6b, 0x99f7, 0xb672, 0xb673, 0xdc77,
- 0xdc75, 0xdc74, 0xdc66, 0xdc72, 0xb676, 0x8cbf, 0xb674, 0xdc73,
- 0xdc64, 0xdc67, 0xdc70, 0x99f9, 0x9663, 0x95b9, 0xe4ba, 0xe0b7,
- 0xe0b0, 0xe0c3, 0xe0cc, 0xe0b3, 0xb961, 0x94d4, 0xe0c0, 0xb957,
- 0xb959, 0xb965, 0xe0b1, 0xfcfa, 0xb95a, 0xb95c, 0xb966, 0xb95b,
- 0x9077, 0x90ab, 0xb964, 0xe0b9, 0xe0ae, 0xb962, 0xe0b8, 0xb95e,
- 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, 0xe0c6, 0xb960, 0xe0af, 0xe0c9,
- 0xe0c4, 0x9d4d, 0xe0cb, 0xb958, 0x99fa, 0xb967, 0xb95d, 0x92e3,
- 0xe0b5, 0x97bb, 0xe0bd, 0xe0c1, 0x9078, 0xe0c5, 0xb95f, 0xe0b4,
- 0xe0b2, 0xe0be, 0x99fb, 0xe0bb, 0xe0ba, 0x97e0, 0xe0bf, 0xe0c2,
- 0xe0c7, 0xe478, 0x96dc, 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc, 0xbbd0,
- 0xe4ad, 0xe4b5, 0xe4a6, 0xbbc8, 0x9ca8, 0xe4aa, 0xe0b6, 0x9772,
- 0xbbc9, 0xe4b1, 0xe4b6, 0xe4ae, 0x9440, 0xe4b0, 0xe4b9, 0xe4b2,
- 0xe47e, 0xe4a9, 0x92f2, 0xbbd1, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb,
- 0xe4a5, 0xbbca, 0xe4b3, 0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0xe47b,
- 0xe4af, 0xe4ac, 0xe4a7, 0xe477, 0xe476, 0xe4a1, 0xe4b4, 0xbbcf,
- 0xe4b7, 0xe47d, 0xe4a3, 0xbe52, 0x99fd, 0x99fc, 0xbe5a, 0xbe55,
- 0xe8a4, 0xe8a1, 0xe867, 0xbe50, 0xf9d7, 0x964a, 0xbe4f, 0xbe56,
- 0x96d8, 0x99fe, 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e,
- 0xe8a3, 0xbe58, 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877,
- 0xe875, 0xe868, 0xe862, 0xe87d, 0xbe57, 0xe87e, 0x904b, 0xe878,
- 0xe86d, 0xe86b, 0xe866, 0xfa41, 0xe86e, 0xe87b, 0xe86a, 0xe87a,
- 0xe8a2, 0x9a40, 0xbe53, 0x975b, 0xe876, 0xe87c, 0xe872, 0xe86c,
- 0xbe51, 0x9a41, 0x91dd, 0xe4a8, 0xe870, 0xbe59, 0xe869, 0x93fc,
- 0x9a42, 0x9a43, 0x9659, 0xebf4, 0xbff7, 0xebf3, 0xebf0, 0xec44,
- 0xbffb, 0x9a44, 0xec41, 0xebf8, 0xec43, 0xebe9, 0xebf6, 0x9051,
- 0xbffd, 0xebe1, 0x94bf, 0xebdf, 0xec42, 0xec40, 0xebfe, 0xebed,
- 0xebec, 0xebe2, 0xc040, 0xebe8, 0xebf2, 0xebfd, 0xc043, 0xec45,
- 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0xebef, 0xebde, 0xebe0, 0xbff5,
- 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041, 0xebdd, 0xc1e3,
- 0xebf9, 0xebfc, 0xbffc, 0x90a2, 0xebeb, 0xc044, 0xbff9, 0x9cab,
- 0x9776, 0xbff8, 0xebf5, 0xebfb, 0xbff6, 0xebe4, 0xebfa, 0xebe5,
- 0xfc55, 0xfe45, 0x94a8, 0x9a45, 0xfa4b, 0x9de1, 0xebea, 0xeed2,
- 0x96d9, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3,
- 0xeed8, 0xeed9, 0xeee2, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, 0xeed4,
- 0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0xeee8, 0x9774, 0xeeda, 0xeee7,
- 0xfdf5, 0xeee9, 0xeed0, 0xc1e6, 0x92e5, 0xeeea, 0x9645, 0x91da,
- 0xeede, 0x90a3, 0xc1ea, 0xeedb, 0xa05f, 0xc1ec, 0xeee4, 0x90af,
- 0x97bf, 0xc1e4, 0xeed6, 0xeee5, 0x914c, 0xeedf, 0xebe3, 0xeee6,
- 0xeed3, 0x967a, 0xc1e9, 0xeeeb, 0x91de, 0xc1e2, 0xeece, 0x9a46,
- 0xfeb0, 0x9779, 0x946c, 0xf160, 0xf159, 0xc2e9, 0xf154, 0xf163,
- 0xf15b, 0xeedc, 0x9858, 0xf165, 0xf155, 0xc2e8, 0xf15f, 0xc2ea,
- 0xc2f2, 0xc2f0, 0xf161, 0xc2f1, 0xf157, 0x9266, 0xf158, 0xf15d,
- 0xf162, 0x93fb, 0xeecd, 0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e,
- 0xf15a, 0xf168, 0xf36a, 0xf15c, 0xc2ee, 0x9a47, 0xc2ed, 0xeecf,
- 0xc2ef, 0xf164, 0xf166, 0xc2ec, 0xf169, 0xf153, 0xf156, 0x9749,
- 0x9748, 0x934a, 0x9ce2, 0xf373, 0xf363, 0xc3eb, 0xf371, 0x9264,
- 0xf361, 0xc3ec, 0xf36c, 0x91df, 0xf368, 0xc3f1, 0xf372, 0xf362,
- 0xf365, 0xc3e9, 0xf374, 0xfb79, 0xf36d, 0xf370, 0xc3ef, 0xc3f4,
- 0xc3f2, 0xf369, 0xf364, 0x96d7, 0xc3ed, 0xc3ee, 0xf360, 0xc3ea,
- 0x9343, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3, 0xf36b, 0xf375, 0xc3f5,
- 0xf367, 0xf36e, 0xfdcb, 0xfe7a, 0x91db, 0x8c6a, 0xf4f3, 0xf542,
- 0xf4f5, 0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed,
- 0xf4fe, 0xf4f4, 0x97af, 0xc4c2, 0x95dd, 0xf544, 0xf4f6, 0x9348,
- 0xf4fb, 0xf4fd, 0xf4e7, 0xf541, 0xf4f2, 0xf4f7, 0xf4eb, 0xf4ef,
- 0xf543, 0xf4f9, 0xf4e8, 0xf4ec, 0xf4ee, 0xf4f8, 0x9a4b, 0xc4c1,
- 0xf4f1, 0xfc45, 0x9a4d, 0xf4ea, 0x91bc, 0x90e2, 0x90b4, 0x95e1,
- 0xf4f0, 0xf661, 0xf666, 0xc54f, 0xf668, 0x9a4e, 0xc549, 0xf664,
- 0xf66a, 0xc54e, 0xc54a, 0xc54b, 0xf660, 0xf667, 0xc54d, 0xf665,
- 0xc54c, 0xf65f, 0xf663, 0xf662, 0x9a4f, 0xf65e, 0xf669, 0xfe40,
- 0xfe43, 0xc5b1, 0xf76d, 0xf770, 0xf76c, 0xf76e, 0xf76f, 0xf769,
- 0xf76a, 0xf767, 0x96dd, 0xf76b, 0xf768, 0xc5b2, 0xc5b3, 0x9a51,
- 0xf84b, 0xf84d, 0x96a7, 0x90b0, 0xf84c, 0xf84e, 0xc5e0, 0xf84a,
- 0xc5df, 0xc5e1, 0x9c4e, 0x9443, 0xf8cb, 0xf8cc, 0xc644, 0xf8ca,
- 0x8eba, 0xf953, 0xf952, 0xf954, 0xc65f, 0xf955, 0xc65e, 0xf956,
- 0xf972, 0xf975, 0xf974, 0xc668, 0xf973, 0x9a52, 0xfcc1, 0xc672,
- 0xc670, 0xc671, 0xc677, 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0x8be9,
- 0x9caf, 0x8bfd, 0x9abc, 0x9ab8, 0x9aae, 0x9aa7, 0x9a53, 0x9d74,
- 0xaaf8, 0x8bea, 0xd844, 0xdc78, 0xe8a5, 0xf376, 0x8beb, 0xaaf9,
- 0xadac, 0xb07b, 0x90b2, 0xd845, 0xd846, 0xb3ac, 0xb67d, 0xdc7a,
- 0xdc79, 0xb6a3, 0xb67c, 0xdc7b, 0xb67e, 0xb6a2, 0xb6a1, 0xb67b,
- 0x95e9, 0x95e8, 0xb968, 0x95e6, 0xe0d0, 0xe0ce, 0xe0cf, 0xe0cd,
- 0x90b5, 0xbbd2, 0x9a54, 0xbbd5, 0xbbd7, 0xbbd6, 0x90b3, 0x95e7,
- 0xbbd3, 0xbbd4, 0x8b50, 0xe8a7, 0xe8a6, 0xbe5b, 0xe8a8, 0xe8a9,
- 0xbe5c, 0xec4d, 0xec4b, 0xeef3, 0xec49, 0xec4a, 0xc046, 0xec46,
- 0xec4e, 0xec48, 0xec4c, 0xeeef, 0xeef1, 0xeef2, 0xc1f3, 0xeeee,
- 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0, 0xc1f1, 0xec47, 0xc2f5, 0xf16e,
- 0xf16c, 0xf16d, 0xc2f3, 0xc2f6, 0xc2f4, 0xf377, 0xf378, 0xc3f6,
- 0xf545, 0xf547, 0xf546, 0xc4c4, 0xc550, 0xf66d, 0xf66c, 0xf66b,
- 0x8bec, 0x9a56, 0xaafa, 0x8bfb, 0xc9aa, 0xca58, 0xa6e9, 0xca56,
- 0xca59, 0xca57, 0xcbae, 0xa8c1, 0xa8c2, 0xcbb0, 0xa8bf, 0xcbaf,
- 0xcbad, 0xa8c0, 0xa8be, 0x9a57, 0xa0aa, 0xcdd8, 0xcddb, 0xaafd,
- 0xcdda, 0xcdd9, 0xaafc, 0xaafb, 0x9fa6, 0xab40, 0xcddc, 0xaafe,
- 0x99cc, 0xd0c6, 0xadae, 0xadaf, 0xadb0, 0xd0c7, 0xd0c3, 0xadad,
- 0xd0c4, 0xd0c5, 0xd0c2, 0x9c59, 0xb0a4, 0xb0a1, 0xd445, 0xb0a2,
- 0xb0a5, 0xd446, 0xb07e, 0xb07c, 0xb07d, 0xb0a3, 0x99b5, 0xb3ad,
- 0xd849, 0xb3b5, 0xd848, 0xd84b, 0xb3b1, 0xd84a, 0xb6ab, 0xb3af,
- 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, 0xb3b0, 0x90be, 0xd847, 0xb6a7,
- 0xdc7d, 0xdca3, 0x9faf, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9, 0xdc7c,
- 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0xb6aa, 0xb6a5, 0x95f2, 0xe0d3,
- 0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0x90bf, 0xe0d4, 0xb969, 0xbbd8,
- 0xbbda, 0xbbd9, 0xe4bb, 0xe4bc, 0xe8ab, 0x90c1, 0xe8aa, 0xfee4,
- 0xc047, 0xc048, 0xec4f, 0xc049, 0xeef6, 0xeef4, 0xeef5, 0xc1f4,
- 0xf16f, 0xc3f7, 0x90c4, 0xc1f5, 0xab41, 0xb0a6, 0xd447, 0x90c7,
- 0xd84c, 0xb3b6, 0xb6ad, 0xdca4, 0xdca6, 0xb6af, 0xb6ae, 0xb6b0,
- 0xb6b1, 0xdca5, 0xb96e, 0xb96f, 0xb96d, 0xbbdb, 0xb96c, 0xe0d5,
- 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6, 0xf170, 0xf174, 0xc2f9,
- 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb, 0xf173, 0xf379, 0xc2f7,
- 0xc3f8, 0xf8cd, 0xab42, 0xb3b8, 0xb3b7, 0xb6b2, 0xdca8, 0xdca7,
- 0xb6b3, 0x92e4, 0xe0d9, 0xb973, 0xb970, 0xe0d8, 0xb972, 0xe0d6,
- 0xb971, 0xe0d7, 0xe4bd, 0xbbdd, 0xe8af, 0x9f52, 0xbe5d, 0xe8ad,
- 0xbe5e, 0xbe5f, 0xe8ae, 0xbe60, 0xec51, 0xc04e, 0xc04b, 0xc050,
- 0xec53, 0xc04c, 0xec52, 0xc04f, 0xc04d, 0xeef9, 0xeefb, 0x90db,
- 0xc1f7, 0xeefa, 0xc1f8, 0xeef8, 0xeef7, 0xa066, 0xf177, 0xf176,
- 0xc2fc, 0xf178, 0xf37e, 0xc3fa, 0xf37d, 0xf37a, 0xc3f9, 0xf37b,
- 0xf37c, 0xf548, 0xf549, 0xc4c5, 0x90d2, 0xc553, 0xf66e, 0x90d4,
- 0xc551, 0xc552, 0xf66f, 0xc5b4, 0xc5b5, 0xf771, 0x9a5b, 0x95fd,
- 0xc645, 0xf8cf, 0xc647, 0xf8ce, 0xf8d0, 0xc646, 0xf957, 0xf9ad,
- 0x8bc4, 0xab43, 0x8c66, 0xb974, 0x90de, 0xe4be, 0xe8b0, 0xc051,
- 0xc052, 0x9ce4, 0xab44, 0x90e1, 0xbe61, 0xc3fb, 0xadb1, 0xc053,
- 0xc5e2, 0xadb2, 0xd84d, 0xdca9, 0x9e46, 0xdcab, 0xdcaa, 0x9651,
- 0xe0dd, 0xe0da, 0xb975, 0xb976, 0xe0db, 0xe0dc, 0xe4c0, 0xe4c5,
- 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8, 0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2,
- 0xe4c6, 0xbbdf, 0xfb58, 0xe8b3, 0x90e6, 0xe8b1, 0xbe63, 0xbe62,
- 0xe8b2, 0xbe64, 0xec56, 0xec55, 0xc054, 0xec54, 0xeefc, 0x9650,
- 0xeefe, 0xef41, 0xef40, 0x90e7, 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd,
- 0xf17d, 0xf1a2, 0xc2fe, 0xf17b, 0xf17e, 0xf17c, 0xf179, 0xc340,
- 0xf17a, 0x90e8, 0x9a5d, 0xf3a1, 0x9f7a, 0xf3a3, 0xf3a2, 0x9b5c,
- 0xf54a, 0x9f7c, 0xf54b, 0xfc52, 0x90e9, 0xf670, 0x90ea, 0xc5b7,
- 0x9a5e, 0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, 0x9f76, 0xc669,
- 0xadb3, 0xb6b4, 0xe4ca, 0xe4c9, 0xe8b5, 0xe8b4, 0x90eb, 0xc1fa,
- 0xef43, 0xef42, 0xf1a5, 0xf1a3, 0xf1a6, 0xf1a4, 0xc3fc, 0xf3a4,
- 0xf3a5, 0xf3a6, 0x90ec, 0xf671, 0xf772, 0xf8d2, 0x8bee, 0xadb4,
- 0x90ee, 0xec57, 0xef44, 0x91c6, 0xadb5, 0x90f2, 0xbbe0, 0xec58,
- 0xc341, 0xf1a7, 0xc3fd, 0xf54c, 0xf54d, 0xc554, 0xf851, 0xadb6,
- 0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, 0xb6b7, 0xb97a,
- 0xb97c, 0xe0df, 0xe0e0, 0xe0de, 0xb977, 0xb978, 0xb97b, 0xb979,
- 0xfcbc, 0x8a74, 0xe4cb, 0xbbe1, 0xbbe2, 0xe8bc, 0xbe67, 0xe8b7,
- 0xe8b6, 0x9657, 0xe8bb, 0xbe65, 0x9cef, 0xc05b, 0xe8b8, 0xe8bd,
- 0xe8ba, 0xe8b9, 0xbe66, 0xc059, 0x9fdf, 0xec5a, 0xc055, 0xec5b,
- 0x90f7, 0x90f6, 0xec59, 0xc058, 0xc056, 0xc05a, 0xc057, 0xef45,
- 0xef4a, 0xef46, 0xef49, 0xc1fb, 0x9b5e, 0xedd4, 0xef48, 0xef47,
- 0x90f8, 0xc344, 0xc342, 0xc345, 0xc343, 0xf1a8, 0xf1a9, 0xf1aa,
- 0xc346, 0xf3aa, 0xc440, 0xf3a8, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe,
- 0xf551, 0xf54e, 0xf54f, 0xf550, 0xf672, 0xc556, 0x90f9, 0xc555,
- 0x8cc9, 0xf774, 0xf773, 0xc5b8, 0xfa6a, 0xc5e3, 0xc649, 0xc660,
- 0xf958, 0xf9ae, 0xf9af, 0x8bef, 0xadb7, 0xdcad, 0xe0e1, 0xe4cc,
- 0xe4cd, 0xbbe3, 0xbbe4, 0xe8be, 0xbe68, 0x9fe0, 0xc1fc, 0x9142,
- 0xf1ab, 0x9a62, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab,
- 0xf675, 0xf552, 0xf553, 0x9569, 0xc4c6, 0xf674, 0x9144, 0x9143,
- 0xf673, 0x9141, 0xf775, 0xf9b0, 0x8bf0, 0xadb8, 0x9660, 0x8bf1,
- 0xadb9, 0x99f6, 0x9149, 0xb0a7, 0xd448, 0xd84f, 0x914a, 0xb6b8,
- 0xb6bb, 0xb6b9, 0xdcae, 0x914b, 0xb6bd, 0xb6ba, 0x9a64, 0xb6bc,
- 0xb97e, 0x8abf, 0xe0e2, 0xe0e3, 0xe8c0, 0xb97d, 0xb9a1, 0xb9a2,
- 0xe4cf, 0xe4ce, 0xbbe5, 0xbbe6, 0xe4d0, 0xe8bf, 0xbbe8, 0xbe69,
- 0xbbe7, 0x9a66, 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a, 0xe8c2, 0xe8c5,
- 0xe8c3, 0xe8c4, 0xbe6c, 0x9a67, 0xc061, 0xc05f, 0x9a69, 0xc05e,
- 0xec5d, 0xc060, 0xec5c, 0xef4b, 0xec5e, 0xc05d, 0xec5f, 0xef4e,
- 0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, 0xef54, 0xef53, 0xef50,
- 0xef4f, 0xc1fd, 0x9a6a, 0x9652, 0x914d, 0xf1ae, 0x9666, 0xf1ad,
- 0xc34a, 0xc348, 0xc349, 0x9f7b, 0xf1ac, 0x9a6b, 0xf3b1, 0xc443,
- 0xf3b0, 0xf3af, 0xc444, 0xa06c, 0xf558, 0xf557, 0x9667, 0xf555,
- 0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557,
- 0xf676, 0xf556, 0xf777, 0xc5e4, 0x9a6c, 0xc661, 0xf959, 0xf9b1,
- 0x9a6d, 0x8bf2, 0xadba, 0xd850, 0xef55, 0xadbb, 0x966a, 0xe4d2,
- 0xe4d1, 0xec60, 0xef57, 0xef56, 0xfcea, 0xc34c, 0xf3b2, 0xf3b3,
- 0xc4c9, 0x966c, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be, 0xe0e4, 0xe0e6,
- 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0x91c4, 0xe4d4, 0xe4d6,
- 0xe4d5, 0x9677, 0xe4d8, 0xbbe9, 0xe4d7, 0xe4d3, 0x99f4, 0x9a6f,
- 0xe4d9, 0xe8cc, 0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, 0xbe6e,
- 0xbe71, 0xbe73, 0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, 0xe8ce,
- 0xbe74, 0x9fab, 0xbe70, 0xe8c6, 0xbe6d, 0xbe6f, 0x8cbe, 0x8ec1,
- 0xc063, 0xec66, 0xec64, 0xec63, 0x9555, 0xec69, 0xec68, 0xec67,
- 0xec62, 0xc062, 0xec61, 0xec65, 0xc064, 0xef5a, 0x9152, 0xef5e,
- 0xef5b, 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60, 0xef61,
- 0xc240, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8, 0xf1b7,
- 0xf1b1, 0xf1b5, 0xf1b0, 0x9153, 0xf1b2, 0xc34d, 0xf1af, 0x9155,
- 0xf1b4, 0xf3c0, 0xf3b5, 0xc445, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf,
- 0xf3b7, 0xf3be, 0x955d, 0xf3bb, 0x9671, 0xf3ba, 0xf3bd, 0xf3b8,
- 0xf3b6, 0x9c6d, 0xf3bc, 0xf560, 0xf55e, 0xc4ca, 0xf55d, 0xf563,
- 0xf561, 0x9673, 0xc4cb, 0xf55c, 0xf55a, 0xf55b, 0xc4cd, 0xf55f,
- 0xc4cc, 0xf562, 0xf678, 0xf67e, 0x9154, 0x9a71, 0xf679, 0xc55b,
- 0xf6a1, 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558, 0xf67a,
- 0xf77d, 0xf7a1, 0xf77e, 0xf77b, 0xc5bb, 0xf778, 0xf77c, 0xf7a3,
- 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, 0x9156, 0xf853,
- 0xc5e5, 0xc5e6, 0x966d, 0xf8d3, 0xc64a, 0xf976, 0xc66a, 0x9557,
- 0xf9b3, 0xc66b, 0xf9b4, 0xf9b5, 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd,
- 0x89c6, 0x89c7, 0xb0a9, 0xe0e9, 0xe0e8, 0xbbea, 0xbbeb, 0xe4da,
- 0x8a6a, 0xe8d2, 0xec6c, 0x8b57, 0xbe75, 0xc065, 0xec6a, 0x9fe1,
- 0xec6d, 0xc066, 0x9b5f, 0xef64, 0xec6b, 0xf1b9, 0xc34e, 0xf3c1,
- 0xf566, 0xf564, 0xf565, 0xf6a2, 0xc55c, 0xf7a4, 0xc5ea, 0xc5bc,
- 0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0xa05d, 0xb0aa, 0xf1ba, 0xd449,
- 0x915b, 0xb9a6, 0x915c, 0xe4db, 0xbbec, 0xe4dc, 0xe8d4, 0xe8d3,
- 0xc068, 0xbe76, 0xbe77, 0xe8d7, 0xe8d6, 0xe8d5, 0x915e, 0xec6e,
- 0xec71, 0xec70, 0xec6f, 0xc067, 0xef68, 0xef66, 0xef65, 0x9f5c,
- 0xef67, 0x9f57, 0xc34f, 0xf1bc, 0xf1bd, 0xc350, 0xf1bb, 0x9f65,
- 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0x9a72, 0xf567, 0xf569,
- 0xf568, 0x9160, 0xf6a3, 0xf6a6, 0xf6a4, 0xf6a5, 0xf7a5, 0xc5bd,
- 0xf854, 0xf855, 0xf856, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0xbe78,
- 0xc069, 0xf1be, 0x9f5e, 0xf7a6, 0x9161, 0xf9c4, 0xd44a, 0xc67b,
- 0xb0ac, 0xec72, 0x9164, 0xf1bf, 0xf3c6, 0x9f41, 0xf6a7, 0xf7a7,
- 0xb0ad, 0xe4dd, 0xe4de, 0x9169, 0xbbed, 0xbbee, 0xe8d9, 0xbe7a,
- 0xbe79, 0xe8d8, 0xef69, 0xf1c0, 0xf1c2, 0xf1c1, 0xc353, 0xc352,
- 0xc351, 0x9168, 0xc55e, 0xf6a8, 0xc55d, 0xf7a9, 0xf7a8, 0xc64c,
- 0xf8d5, 0xb3bd, 0xe0ea, 0xe4e1, 0xe4df, 0xe4e0, 0xe8e2, 0xe8dd,
- 0xe8da, 0xe8e1, 0x9a74, 0xe8e3, 0xbe7c, 0xe8e0, 0xe8dc, 0xe8db,
- 0xe8df, 0xe8de, 0xbe7b, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77,
- 0x96b2, 0xec73, 0x9a75, 0xec79, 0xfda5, 0xec74, 0xef72, 0xec75,
- 0xeca2, 0x9ee9, 0x8bba, 0x916d, 0xa060, 0xec7c, 0xc06a, 0xec7b,
- 0xec7a, 0xec7e, 0x9fde, 0xef6a, 0xef6d, 0x9fc3, 0xef6c, 0x96b5,
- 0xef74, 0xef6f, 0xef73, 0xef71, 0xef70, 0xef6e, 0xef6b, 0xc243,
- 0xc242, 0xc244, 0xc241, 0xef75, 0xa067, 0xf1c8, 0xf1cb, 0xf1c9,
- 0xf1cd, 0xf1ce, 0xf1c6, 0xc358, 0xf1c7, 0xf1c5, 0xf1cc, 0xf1c4,
- 0xf1c3, 0xc357, 0xc355, 0xc354, 0x96b3, 0xf1ca, 0xf3cf, 0xf3d5,
- 0xc44a, 0xf3d0, 0xf3d3, 0xf3d7, 0xc44b, 0xf3d2, 0x9a76, 0xf3ca,
- 0xf3c9, 0xf3d6, 0xf3cd, 0xf3cb, 0xf3d4, 0xf3cc, 0xc449, 0xc448,
- 0x95d5, 0xf3c7, 0xf3c8, 0xf3d1, 0x9eca, 0xf3ce, 0x9a77, 0x9a78,
- 0xf56c, 0xf56f, 0xc356, 0x9170, 0x916f, 0xf56d, 0xf573, 0xf571,
- 0xf56b, 0xf576, 0x9fa3, 0xf56a, 0x9171, 0xc4cf, 0xf572, 0x96b1,
- 0xf56e, 0xc4ce, 0xf575, 0x9f63, 0xf574, 0x9f67, 0xf6ab, 0xf6aa,
- 0x8bb9, 0x9a7a, 0xf6b1, 0xf6ad, 0xf6b0, 0xc560, 0x8b56, 0xf6ae,
- 0xf6af, 0xf6a9, 0xf6ac, 0xc55f, 0x9ada, 0xc5bf, 0xf7b4, 0xf7af,
- 0xf7b3, 0x96b0, 0xf7b6, 0xf7b2, 0xf7ae, 0x9a7e, 0xc5c1, 0xf7b1,
- 0xf7b5, 0xc5c0, 0xf7ac, 0xf570, 0xf7b0, 0xf7ad, 0x9dde, 0xf7aa,
- 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860, 0x96ad,
- 0xf859, 0xf857, 0x96ae, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, 0xf858,
- 0xf85e, 0x9ea1, 0xf8da, 0xc64d, 0xf8db, 0xf8d9, 0xf8d6, 0xf8d8,
- 0xf8d7, 0xf95a, 0xf95c, 0xf95b, 0xf979, 0x9e50, 0xf978, 0xf977,
- 0xf97a, 0xc673, 0xc674, 0xf9ca, 0xf9ce, 0x96af, 0x8bf4, 0xb3be,
- 0xdcaf, 0xe0ed, 0xb9a7, 0xe0eb, 0xe0ec, 0xe4e2, 0xe4e3, 0xbbf1,
- 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, 0xe8eb, 0xe8e5, 0xe8ec, 0xe8e4,
- 0xe8e6, 0xe8e7, 0xe8ea, 0x9fa4, 0xbea1, 0xe8ef, 0xe8ee, 0xbe7d,
- 0xe8e9, 0xe8ed, 0xbe7e, 0x96bd, 0xecac, 0xc06f, 0xeca7, 0xc06b,
- 0x96f4, 0xeca4, 0xecaa, 0xecad, 0xc070, 0xeca9, 0xeca6, 0xecae,
- 0xeca5, 0x96b8, 0xecab, 0xc06c, 0xeca3, 0xc06d, 0xc06e, 0xeca8,
- 0xefa9, 0xef7a, 0xef7b, 0xef7e, 0xef7c, 0xef76, 0xfaa1, 0xef79,
- 0xefa5, 0xef7d, 0x91a7, 0xc245, 0xefa7, 0xefa4, 0xc246, 0xefa6,
- 0xef77, 0xefa2, 0xefa3, 0xa05e, 0xefa1, 0x9a7d, 0xf1d2, 0xf1d4,
- 0xf1d7, 0x8948, 0xf1d1, 0x9eb1, 0xc359, 0xf1d9, 0xf1d0, 0xf1da,
- 0xf1d6, 0xf1d8, 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf, 0xc35a,
- 0x9ddb, 0xf1db, 0xc35b, 0xc44d, 0xef78, 0xf3f1, 0xf3e8, 0xc44f,
- 0xf3e4, 0xc450, 0x95bf, 0x8a73, 0xf3ed, 0xf3e7, 0xf3dd, 0xc44e,
- 0xf3ea, 0xf3e5, 0xf3e6, 0xf3d8, 0xf3df, 0xf3ee, 0xf3eb, 0x9efe,
- 0xf3e3, 0x917a, 0xf3ef, 0xf3de, 0xf3d9, 0xf3ec, 0x917b, 0xf3db,
- 0xf3e9, 0xf3e0, 0xf3f0, 0xf3dc, 0xc44c, 0xf3da, 0xf3e1, 0xf3e2,
- 0xf57d, 0xf57b, 0x9aa3, 0xf5a2, 0xf5ae, 0xf5a5, 0xf57c, 0xf578,
- 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577, 0xf5a1, 0xf5a6,
- 0xf5a8, 0xf5ab, 0xf579, 0x96c2, 0xf5af, 0xf5b0, 0xf5a9, 0xf5ad,
- 0xf5a4, 0x9f77, 0xf6c1, 0xf6c4, 0xc561, 0xf6c3, 0xf6c8, 0xf6c6,
- 0xc562, 0xf6bd, 0xf6b3, 0xf6b2, 0xc564, 0xf6bf, 0xf6c0, 0xf6bc,
- 0xf6b4, 0x9aa4, 0xf6b9, 0xf5ac, 0x9aa5, 0xf6b5, 0xc563, 0xf6bb,
- 0x91a1, 0xf6ba, 0xf6b6, 0xf6c2, 0x89b8, 0xf6b7, 0xf7bb, 0xf6c5,
- 0xf6c7, 0xf6be, 0xf6b8, 0xf7bc, 0xf7be, 0xf7b8, 0xc5c2, 0x9173,
- 0xf7c5, 0xf7c3, 0xc5c3, 0xf7c2, 0xf7c1, 0xf7ba, 0xf7b7, 0xf7bd,
- 0xf7c6, 0xf7b9, 0xf7bf, 0xf869, 0xf86e, 0xf864, 0xf867, 0xc5ee,
- 0xf86b, 0xf872, 0xf7c0, 0xf865, 0xf86f, 0xf873, 0xf86a, 0xf863,
- 0xf86d, 0xf86c, 0xf871, 0xf870, 0xf7c4, 0xf868, 0xf862, 0xf866,
- 0xc64e, 0xc64f, 0xf861, 0x9aa6, 0xf8e6, 0xf8dd, 0xf8e5, 0xf8e2,
- 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0, 0xf8de, 0xf8e4,
- 0x89bd, 0xf95d, 0x89b9, 0xf95e, 0x917d, 0xf960, 0xf95f, 0xf962,
- 0xf961, 0xf97c, 0xf97b, 0xf9b7, 0xf9b8, 0x96bb, 0xf9c5, 0xc678,
- 0xc67c, 0x9ff2, 0xf9cf, 0xc67d, 0x8bf5, 0xb3bf, 0xc4d0, 0xf6c9,
- 0x9aa9, 0xc650, 0xc651, 0xb3c0, 0xe0ee, 0x9f54, 0xb9a8, 0xe8f0,
- 0x9fe3, 0x9eed, 0xecb0, 0xecb1, 0xecaf, 0xefab, 0xefaa, 0xc247,
- 0xf1df, 0xefac, 0xf1de, 0x91aa, 0xf3f3, 0xc451, 0xc453, 0xf3f2,
- 0x91ab, 0xa070, 0xc452, 0x9f6d, 0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca,
- 0xc565, 0x91ac, 0xc5ef, 0xf8e8, 0xf963, 0x91ad, 0xf9d2, 0xb3c1,
- 0xa0fd, 0xe4e5, 0x9fe2, 0xbea2, 0x91af, 0x9e41, 0x9aaa, 0xecb3,
- 0xecb2, 0x91b0, 0xefad, 0x9aab, 0xc454, 0xc4d1, 0xf7c7, 0xf9cb,
- 0xb3c2, 0xbbf2, 0x9aac, 0xbea3, 0x9a4a, 0xf3f4, 0x91b2, 0xf874,
- 0xb6c0, 0x8bf6, 0x9aad, 0x89b6, 0xefae, 0xc664, 0xb6c1, 0xbea4,
- 0xc248, 0xf875, 0xb6c2, 0xe8f1, 0xc072, 0xecb4, 0xecb5, 0xc071,
- 0xefaf, 0xc24c, 0xc24a, 0xc24b, 0xc249, 0xf1e0, 0xc35c, 0x9aaf,
- 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6, 0xc4d2, 0xf6cb, 0xf6cd, 0xf6cc,
- 0xc566, 0xf7c8, 0x9ab0, 0xf876, 0xf877, 0xc5f0, 0xf964, 0xf97d,
- 0xc675, 0x9ab1, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5, 0xe0ef, 0x9aa1,
- 0xefb1, 0xf1e2, 0xf1e1, 0x91b9, 0xf878, 0xc652, 0x91ba, 0xf965,
- 0xf97e, 0xb9a9, 0xe8f2, 0xe8f3, 0xecb7, 0xb9aa, 0xc35d, 0xf1e3,
- 0x91be, 0xf6cf, 0xc567, 0xf6d0, 0xf6ce, 0xf879, 0xf8e9, 0xb9ab,
- 0xefb4, 0xefb3, 0xefb2, 0xf1e4, 0xa041, 0x8bb7, 0xf1e8, 0xf1e7,
- 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6, 0xf5b9, 0xc4d3, 0xf5b8, 0xf6d1,
- 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9, 0xf87c, 0xf87b, 0xf87a, 0x91c0,
- 0xbbf3, 0xecb8, 0xc24d, 0xf3f7, 0xf3f8, 0xf7cc, 0xf87d, 0x9ab3,
- 0x91c3, 0xf8ea, 0xf966, 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e, 0xf1e9,
- 0xf3f9, 0xf6d2, 0xf87e, 0xa0fc, 0xbea6, 0x9fee, 0xefb5, 0xf1ea,
- 0xf3fa, 0xf3fb, 0xf3fc, 0xf5be, 0x9f69, 0xf5ba, 0xc568, 0xf5bd,
- 0xf5bc, 0xc4d4, 0xf5bb, 0xc4d6, 0x91c8, 0xc4d5, 0xf6d4, 0xf6d3,
- 0xc569, 0xc56a, 0x91c9, 0xc5c6, 0xf7cd, 0xc5c5, 0xf8a3, 0xf8a4,
- 0xf8a2, 0xf8a1, 0xc654, 0xf8eb, 0xf8ec, 0xf8ed, 0xc653, 0xf967,
- 0xf96a, 0xf969, 0xf968, 0xf9d3, 0x8de6, 0xc073, 0x91cb, 0xc365,
- 0xf5bf, 0xf6d5, 0xc5c7, 0xf7ce, 0xf9d5, 0x89c8, 0xc074, 0x8daa,
- 0xefb6, 0xf7cf, 0xf9a1, 0x9fdd, 0xfa40, 0xfa41, 0xfa42, 0xfa43,
- 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0xfa4a, 0xfa4b,
- 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, 0xfa52, 0xfa53,
- 0xfa54, 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59, 0xfa5a, 0xfa5b,
- 0xfa5c, 0xfa5d, 0xfa5e, 0xadc5, 0xfa60, 0xfa61, 0xfa62, 0xfa63,
- 0xfa64, 0xfa65, 0xb0b0, 0xfa67, 0xfa68, 0xfa69, 0xfa6a, 0xfa6b,
- 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, 0xfa72, 0xfa73,
- 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79, 0xfa7a, 0xfa7b,
- 0xfa7c, 0xfa7d, 0xfa7e, 0xfaa1, 0xfaa2, 0xfaa3, 0xfaa4, 0xfaa5,
- 0xfaa6, 0xfaa7, 0xfaa8, 0xfaa9, 0xfaaa, 0xfaab, 0xfaac, 0xfaad,
- 0xfaae, 0xfaaf, 0xfab0, 0xfab1, 0xfab2, 0xfab3, 0xfab4, 0xfab5,
- 0xfab6, 0xfab7, 0xfab8, 0xfab9, 0xfaba, 0xfabb, 0xfabc, 0xa55d,
- 0xfabe, 0xfabf, 0xfac0, 0xfac1, 0xfac2, 0xfac3, 0xfac4, 0xa2cd,
- 0xfac6, 0xfac7, 0xfac8, 0xfac9, 0xfaca, 0xfacb, 0xfacc, 0xfacd,
- 0xface, 0xfacf, 0xfad0, 0xfad1, 0xfad2, 0xfad3, 0xfad4, 0xadeb,
- 0xfad6, 0xfad7, 0xfad8, 0xfad9, 0xfada, 0xfadb, 0xfadc, 0xfadd,
- 0xfade, 0xfadf, 0xfae0, 0xfae1, 0xfae2, 0xfae3, 0xfae4, 0xfae5,
- 0xfae6, 0xfae7, 0xfae8, 0xfae9, 0xfaea, 0xfaeb, 0xfaec, 0xfaed,
- 0xfaee, 0xfaef, 0xfaf0, 0xfaf1, 0xfaf2, 0xfaf3, 0xfaf4, 0xfaf5,
- 0xfaf6, 0xfaf7, 0xfaf8, 0xfaf9, 0xfafa, 0xfafb, 0xfafc, 0xfafd,
- 0xfafe, 0xfb40, 0xfb41, 0xfb42, 0xfb43, 0xfb44, 0xfb45, 0xfb46,
- 0xfb47, 0x9def, 0xfb49, 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e,
- 0xfb4f, 0xfb50, 0xfb51, 0xfb52, 0xfb53, 0xfb54, 0xfb55, 0xfb56,
- 0xfb57, 0xfb58, 0xfb59, 0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5e,
- 0xfb5f, 0xfb60, 0xfb61, 0xfb62, 0xfb63, 0xfb64, 0xfb65, 0xfb66,
- 0xfb67, 0xfb68, 0xfb69, 0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e,
- 0xfb6f, 0xfb70, 0xfb71, 0xfb72, 0xfb73, 0xfb74, 0xfb75, 0xfb76,
- 0xfb77, 0xfb78, 0xfb79, 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xfb7e,
- 0xfba1, 0xfba2, 0xfba3, 0xfba4, 0xfba5, 0xfba6, 0xfba7, 0xfba8,
- 0xfba9, 0xfbaa, 0xfbab, 0xfbac, 0xfbad, 0xfbae, 0xfbaf, 0xfbb0,
- 0xfbb1, 0xfbb2, 0xfbb3, 0xfbb4, 0xfbb5, 0xfbb6, 0xfbb7, 0xb440,
- 0xfbb9, 0xfbba, 0xfbbb, 0xfbbc, 0xfbbd, 0xfbbe, 0xfbbf, 0xfbc0,
- 0xfbc1, 0xfbc2, 0xfbc3, 0xfbc4, 0xfbc5, 0xfbc6, 0xfbc7, 0xfbc8,
- 0xfbc9, 0xfbca, 0xfbcb, 0xfbcc, 0xfbcd, 0xfbce, 0xfbcf, 0xfbd0,
- 0xfbd1, 0xfbd2, 0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6, 0xfbd7, 0xfbd8,
- 0xfbd9, 0xfbda, 0xfbdb, 0xfbdc, 0xfbdd, 0xfbde, 0xfbdf, 0xfbe0,
- 0xfbe1, 0xfbe2, 0xfbe3, 0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7, 0xfbe8,
- 0xfbe9, 0xfbea, 0xfbeb, 0xfbec, 0xfbed, 0xfbee, 0xfbef, 0xfbf0,
- 0xfbf1, 0xfbf2, 0xc9db, 0xfbf4, 0xfbf5, 0xfbf6, 0xfbf7, 0xfbf8,
- 0x9dfb, 0xfbfa, 0xfbfb, 0xfbfc, 0xfbfd, 0xfbfe, 0xfc40, 0xfc41,
- 0xfc42, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xfc49,
- 0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, 0xfc4e, 0xd8f4, 0xfc50, 0xfc51,
- 0xfc52, 0xfc53, 0xfc54, 0xfc55, 0xfc56, 0xfc57, 0xfc58, 0xfc59,
- 0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, 0xfc5e, 0xfc5f, 0xfc60, 0xfc61,
- 0xfc62, 0xfc63, 0xfc64, 0xfc65, 0xfc66, 0xfc67, 0xfc68, 0xfc69,
- 0xfc6a, 0xfc6b, 0xa0dc, 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71,
- 0xfc72, 0xfc73, 0xfc74, 0xfc75, 0xfc76, 0xfc77, 0xfc78, 0xfc79,
- 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfca1, 0xfca2, 0xfca3,
- 0xfca4, 0xfca5, 0xfca6, 0xfca7, 0xfca8, 0xfca9, 0xfcaa, 0xfcab,
- 0xfcac, 0xfcad, 0xfcae, 0xfcaf, 0xfcb0, 0xfcb1, 0xfcb2, 0xfcb3,
- 0xfcb4, 0xfcb5, 0xfcb6, 0xfcb7, 0xfcb8, 0xbcb5, 0xfcba, 0xfcbb,
- 0xfcbc, 0xfcbd, 0xfcbe, 0xfcbf, 0xfcc0, 0xfcc1, 0xfcc2, 0xfcc3,
- 0xfcc4, 0xfcc5, 0xfcc6, 0xfcc7, 0xfcc8, 0xfcc9, 0xfcca, 0xfccb,
- 0xfccc, 0xfccd, 0xfcce, 0xfccf, 0xfcd0, 0xfcd1, 0xfcd2, 0xfcd3,
- 0xfcd4, 0xfcd5, 0xfcd6, 0xfcd7, 0xfcd8, 0xfcd9, 0xfcda, 0xfcdb,
- 0xfcdc, 0xfcdd, 0xfcde, 0xfcdf, 0xfce0, 0xfce1, 0xb4b8, 0xfce3,
- 0xfce4, 0xfce5, 0xfce6, 0xfce7, 0xfce8, 0xfce9, 0xfcea, 0xfceb,
- 0xfcec, 0xfced, 0xfcee, 0xfcef, 0xfcf0, 0xa7fb, 0xfcf2, 0xfcf3,
- 0xfcf4, 0xfcf5, 0xfcf6, 0xfcf7, 0xfcf8, 0xfcf9, 0xfcfa, 0xfcfb,
- 0xfcfc, 0xfcfd, 0xfcfe, 0xfd40, 0xfd41, 0xfd42, 0xfd43, 0xfd44,
- 0xfd45, 0xfd46, 0xfd47, 0xfd48, 0xfd49, 0xfd4a, 0xfd4b, 0xfd4c,
- 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51, 0xfd52, 0xfd53, 0xfd54,
- 0xfd55, 0xfd56, 0xfd57, 0xfd58, 0xfd59, 0xfd5a, 0xfd5b, 0xfd5c,
- 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, 0xfd61, 0xfd62, 0xfd63, 0xfd64,
- 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69, 0xfd6a, 0xfd6b, 0xfd6c,
- 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, 0xfd72, 0xfd73, 0xfd74,
- 0xfd75, 0xfd76, 0xfd77, 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c,
- 0xfd7d, 0xfd7e, 0xfda1, 0xfda2, 0xfda3, 0xfda4, 0xfda5, 0xfda6,
- 0xfda7, 0xfda8, 0xfda9, 0xfdaa, 0xfdab, 0xfdac, 0xfdad, 0xfdae,
- 0xfdaf, 0xfdb0, 0xfdb1, 0xfdb2, 0xfdb3, 0xfdb4, 0xfdb5, 0xfdb6,
- 0xcb58, 0xb4fc, 0xfdb9, 0xfdba, 0xb4e4, 0xfdbc, 0xfdbd, 0xfdbe,
- 0xfdbf, 0xfdc0, 0xfdc1, 0xfdc2, 0xfdc3, 0xfdc4, 0xfdc5, 0xfdc6,
- 0xfdc7, 0xfdc8, 0xfdc9, 0xfdca, 0xfdcb, 0xfdcc, 0xfdcd, 0xfdce,
- 0xfdcf, 0xfdd0, 0xfdd1, 0xfdd2, 0xfdd3, 0xfdd4, 0xfdd5, 0xfdd6,
- 0xfdd7, 0xfdd8, 0xfdd9, 0xfdda, 0xfddb, 0xfddc, 0xfddd, 0xfdde,
- 0xfddf, 0xfde0, 0xfde1, 0xfde2, 0xfde3, 0xfde4, 0xfde5, 0xfde6,
- 0xfde7, 0xfde8, 0xfde9, 0xfdea, 0xfdeb, 0xfdec, 0xfded, 0xfdee,
- 0xfdef, 0xfdf0, 0xb54e, 0xfdf2, 0xfdf3, 0xfdf4, 0xfdf5, 0xfdf6,
- 0xfdf7, 0xfdf8, 0xfdf9, 0xfdfa, 0xfdfb, 0xfdfc, 0xfdfd, 0xfdfe,
- 0xfe40, 0xfe41, 0xfe42, 0xfe43, 0xfe44, 0xfe45, 0xfe46, 0xfe47,
- 0xfe48, 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f,
- 0xfe50, 0xfe51, 0x9975, 0xfe53, 0xfe54, 0xfe55, 0xfe56, 0xfe57,
- 0xfe58, 0xfe59, 0xfe5a, 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f,
- 0xfe60, 0xfe61, 0xfe62, 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe67,
- 0xfe68, 0xfe69, 0xfe6a, 0xfe6b, 0xfe6c, 0xfe6d, 0xfe6e, 0xb7ec,
- 0xfe70, 0xfe71, 0xfe72, 0xfe73, 0xfe74, 0xfe75, 0xfe76, 0xfe77,
- 0xfe78, 0xfe79, 0xfe7a, 0xfe7b, 0xfe7c, 0xfe7d, 0xfe7e, 0xfea1,
- 0xfea2, 0xfea3, 0xfea4, 0xfea5, 0xfea6, 0xfea7, 0xfea8, 0xfea9,
- 0xa260, 0xfeab, 0xfeac, 0xfead, 0xfeae, 0xfeaf, 0xfeb0, 0xfeb1,
- 0xfeb2, 0xfeb3, 0xfeb4, 0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8, 0xfeb9,
- 0xfeba, 0xfebb, 0xfebc, 0xfebd, 0xfebe, 0xfebf, 0xfec0, 0xfec1,
- 0xfec2, 0xfec3, 0xfec4, 0xfec5, 0xfec6, 0xfec7, 0xfec8, 0xfec9,
- 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, 0xfecf, 0xfed0, 0xfed1,
- 0xfed2, 0xfed3, 0xfed4, 0xfed5, 0xfed6, 0xfed7, 0xfed8, 0xfed9,
- 0xfeda, 0xfedb, 0xfedc, 0xcff1, 0xfede, 0xfedf, 0xfee0, 0xfee1,
- 0xfee2, 0xfee3, 0xfee4, 0xfee5, 0xfee6, 0xfee7, 0xfee8, 0xfee9,
- 0xfeea, 0xfeeb, 0xfeec, 0xfeed, 0xfeee, 0xfeef, 0xfef0, 0xfef1,
- 0xfef2, 0xfef3, 0xfef4, 0xfef5, 0xfef6, 0xfef7, 0xfef8, 0xfef9,
- 0xfefa, 0xfefb, 0xfefc, 0xfefd, 0xfefe, 0x8e40, 0x8e41, 0x8e42,
- 0x8e43, 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 0x8e4a,
- 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e52,
- 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a,
- 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62,
- 0x8e63, 0x8e64, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0xbae6, 0x8e6a,
- 0x8e6b, 0x8e6c, 0x8e6d, 0x8e6e, 0xedca, 0x8e70, 0x8e71, 0x8e72,
- 0x8e73, 0x8e74, 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a,
- 0x8e7b, 0x8e7c, 0x8e7d, 0xa261, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4,
- 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0xbafc, 0x8eac,
- 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0xbfa6,
- 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc,
- 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4,
- 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc,
- 0xaacc, 0x8ece, 0x8ecf, 0xbfae, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4,
- 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc,
- 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4,
- 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec,
- 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4,
- 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc,
- 0x8efd, 0x8efe, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45,
- 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d,
- 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55,
- 0x8f56, 0xb5d7, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d,
- 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65,
- 0x8f66, 0x8f67, 0x8f68, 0xe3c8, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d,
- 0xdb79, 0x8f6f, 0x8f70, 0x8f71, 0x8f72, 0x8f73, 0x8f74, 0x8f75,
- 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d,
- 0x8f7e, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7,
- 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x8fae, 0x8faf,
- 0x8fb0, 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb6, 0x8fb7,
- 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe, 0x8fbf,
- 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6, 0x8fc7,
- 0x8fc8, 0x8fc9, 0x8fca, 0xbfcc, 0xa0d4, 0x8fcd, 0x8fce, 0x8fcf,
- 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0x8fd6, 0x8fd7,
- 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde, 0x8fdf,
- 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, 0x8fe6, 0x8fe7,
- 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, 0x8fec, 0x8fed, 0x8fee, 0x8fef,
- 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ff7,
- 0x8ff8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0xb05f, 0x9040,
- 0x9041, 0x9042, 0x9043, 0x9044, 0x9045, 0x9046, 0x9047, 0x9048,
- 0x9049, 0x904a, 0x904b, 0x904c, 0x904d, 0x904e, 0x904f, 0x9050,
- 0x9051, 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0x9057, 0x9058,
- 0x9059, 0x905a, 0x905b, 0x905c, 0x905d, 0x905e, 0x905f, 0x9060,
- 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, 0x9068,
- 0x9069, 0x906a, 0x906b, 0x906c, 0xb3a3, 0x906e, 0x906f, 0x9070,
- 0x9071, 0x9072, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, 0x9078,
- 0x9079, 0xf9d7, 0x907b, 0x907c, 0x907d, 0x907e, 0x90a1, 0x90a2,
- 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8, 0x90a9, 0x90aa,
- 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0, 0x90b1, 0x90b2,
- 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8, 0x90b9, 0x90ba,
- 0x90bb, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0, 0x90c1, 0x90c2,
- 0x90c3, 0x90c4, 0x90c5, 0x90c6, 0x90c7, 0x90c8, 0x90c9, 0x90ca,
- 0x90cb, 0x90cc, 0x90cd, 0x90ce, 0x90cf, 0x90d0, 0x90d1, 0x90d2,
- 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0x90d7, 0x90d8, 0x90d9, 0x90da,
- 0x90db, 0xc052, 0x90dd, 0x90de, 0x90df, 0x90e0, 0x90e1, 0x90e2,
- 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8, 0x90e9, 0x90ea,
- 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, 0xc554, 0x90f2,
- 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8, 0x90f9, 0x90fa,
- 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, 0x9141, 0x9142, 0x9143,
- 0x9144, 0x9145, 0x9146, 0x9147, 0x9148, 0x9149, 0x914a, 0x914b,
- 0x914c, 0x914d, 0x914e, 0x914f, 0x9150, 0x9151, 0x9152, 0x9153,
- 0x9154, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159, 0x915a, 0x915b,
- 0x915c, 0x915d, 0x915e, 0x915f, 0x9160, 0x9161, 0x9162, 0x9163,
- 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, 0x916a, 0x916b,
- 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171, 0x9172, 0x9173,
- 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, 0x917a, 0x917b,
- 0x917c, 0x917d, 0x917e, 0x91a1, 0x91a2, 0x91a3, 0x91a4, 0x91a5,
- 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91aa, 0x91ab, 0x91ac, 0x91ad,
- 0x91ae, 0x91af, 0x91b0, 0x91b1, 0x91b2, 0x91b3, 0x91b4, 0x91b5,
- 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba, 0x91bb, 0x91bc, 0x91bd,
- 0x91be, 0xf1e3, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4, 0x91c5,
- 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, 0x91cb, 0x91cc, 0x91cd,
- 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d2, 0x91d3, 0x91d4, 0x91d5,
- 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dc, 0x91dd,
- 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5,
- 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed,
- 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5,
- 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd,
- 0x91fe, 0x9240, 0x9241, 0x9242, 0x9243, 0x9242, 0x9245, 0x9246,
- 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d, 0x924e,
- 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, 0x9256,
- 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, 0x925e,
- 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266,
- 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d, 0x926e,
- 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9274, 0x9275, 0x9276,
- 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e,
- 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, 0x92a8,
- 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92ae, 0xa259, 0xa25a,
- 0xa25c, 0xa25b, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8,
- 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0,
- 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0xa05f,
- 0x92c9, 0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0,
- 0xe6ab, 0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8,
- 0x92d9, 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0,
- 0x92e1, 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8,
- 0x92e9, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0,
- 0x92f1, 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8,
- 0x92f9, 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x9340, 0x9341,
- 0x9342, 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349,
- 0x934a, 0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351,
- 0x9352, 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359,
- 0x935a, 0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361,
- 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369,
- 0x936a, 0x936b, 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371,
- 0x9372, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379,
- 0x937a, 0x937b, 0x937c, 0x937d, 0x937e, 0x93a1, 0x93a2, 0x93a3,
- 0x93a4, 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab,
- 0x93ac, 0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3,
- 0x93b4, 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb,
- 0x93bc, 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3,
- 0x93c4, 0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb,
- 0x93cc, 0x93cd, 0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3,
- 0x93d4, 0x93d5, 0x93d6, 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db,
- 0x93dc, 0x93dd, 0x93de, 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3,
- 0x93e4, 0x93e5, 0x93e6, 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb,
- 0x93ec, 0x93ed, 0x93ee, 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3,
- 0x93f4, 0x93f5, 0x93f6, 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb,
- 0x93fc, 0x93fd, 0x93fe, 0x9440, 0x9441, 0x9442, 0x9443, 0x9444,
- 0x9445, 0x9446, 0xd256, 0x9448, 0x9449, 0x944a, 0x944b, 0x944c,
- 0x944d, 0x944e, 0x944f, 0x9450, 0x9451, 0x9452, 0x9453, 0x9454,
- 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945a, 0x945b, 0x945c,
- 0x945d, 0x945e, 0x945f, 0x9460, 0x9461, 0x9462, 0x9463, 0x9464,
- 0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946a, 0x946b, 0x946c,
- 0x946d, 0x946e, 0x946f, 0x9470, 0x9471, 0x9472, 0x9473, 0x9474,
- 0x9475, 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c,
- 0x947d, 0x947e, 0x94a1, 0x94a2, 0x94a3, 0x94a4, 0x94a5, 0x94a6,
- 0x94a7, 0x94a8, 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae,
- 0x94af, 0x94b0, 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6,
- 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be,
- 0x94bf, 0x94c0, 0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6,
- 0x94c7, 0x94c8, 0x94c9, 0xe6d0, 0x94cb, 0x94cc, 0x94cd, 0x94ce,
- 0x94cf, 0x94d0, 0x94d1, 0x94d2, 0x94d3, 0x94d4, 0x94d5, 0x94d6,
- 0x94d7, 0x94d8, 0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de,
- 0x94df, 0x94e0, 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0x94e6,
- 0x94e7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0x94ec, 0x94ed, 0x94ee,
- 0x94ef, 0x94f0, 0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6,
- 0x94f7, 0x94f8, 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, 0x94fe,
- 0x9540, 0x9541, 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547,
- 0x9548, 0x9549, 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f,
- 0x9550, 0x9551, 0x9552, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557,
- 0x9558, 0x9559, 0x955a, 0x955b, 0x955c, 0x955d, 0x955e, 0x955f,
- 0x9560, 0x9561, 0x9562, 0x9563, 0x9564, 0x9565, 0x9566, 0x9567,
- 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, 0x956d, 0x956e, 0x956f,
- 0x9570, 0x9571, 0x9572, 0x9573, 0x9574, 0x9575, 0x9576, 0x9577,
- 0x9578, 0x9579, 0x957a, 0x957b, 0x957c, 0x957d, 0x957e, 0x95a1,
- 0x95a2, 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9,
- 0x95aa, 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1,
- 0x95b2, 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9,
- 0x95ba, 0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1,
- 0x95c2, 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9,
- 0x95ca, 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1,
- 0x95d2, 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0xca52,
- 0x95da, 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1,
- 0x95e2, 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9,
- 0x95ea, 0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1,
- 0x95f2, 0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9,
- 0x95fa, 0x95fb, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642,
- 0x9643, 0x9ce4, 0x9645, 0x9646, 0x9647, 0x9648, 0x9649, 0x964a,
- 0x964b, 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, 0x9651, 0x9652,
- 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, 0x965a,
- 0x965b, 0x965c, 0x965d, 0x965e, 0x965f, 0x9660, 0x9661, 0x9662,
- 0x9663, 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a,
- 0x966b, 0x966c, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9672,
- 0x9673, 0x9674, 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a,
- 0x967b, 0x967c, 0x967d, 0x967e, 0x96a1, 0x96a2, 0x96a3, 0x96a4,
- 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac,
- 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4,
- 0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc,
- 0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, 0x96c3, 0x96c4,
- 0x96c5, 0x96c6, 0x96c7, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc,
- 0x96cd, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0x96d2, 0x96d3, 0x96d4,
- 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc,
- 0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4,
- 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec,
- 0x96ee, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, 0x96f4,
- 0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0xe959,
- 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745,
- 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d,
- 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755,
- 0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x975b, 0x975c, 0x975d,
- 0x975e, 0x975f, 0x9760, 0x9761, 0x9762, 0x9763, 0x9764, 0x9765,
- 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d,
- 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, 0x9773, 0x9774, 0x9775,
- 0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d,
- 0x977e, 0x97a1, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6, 0x97a7,
- 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae, 0x97af,
- 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6, 0x97b7,
- 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be, 0x97bf,
- 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, 0x97c7,
- 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce, 0x97cf,
- 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7,
- 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de, 0x97df,
- 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6, 0x97e7,
- 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee, 0x97ef,
- 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, 0x97f7,
- 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe, 0x9840,
- 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, 0x9848,
- 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f, 0x9850,
- 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, 0x9858,
- 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, 0x985f, 0x9860,
- 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868,
- 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0x9870,
- 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878,
- 0x9879, 0x987a, 0x987b, 0x987c, 0x987d, 0x987e, 0x98a1, 0x98a2,
- 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8, 0x98a9, 0x98aa,
- 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2,
- 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba,
- 0x98bb, 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2,
- 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca,
- 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0, 0x98d1, 0x98d2,
- 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0x98d8, 0x98d9, 0x98da,
- 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, 0x98e0, 0x98e1, 0x98e2,
- 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8, 0x98e9, 0x98ea,
- 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0, 0x98f1, 0x98f2,
- 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8, 0x98f9, 0x98fa,
- 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x9940, 0x9941, 0x9942, 0x9943,
- 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a, 0x994b,
- 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952, 0x9953,
- 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b,
- 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9963,
- 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b,
- 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971, 0x9972, 0x9973,
- 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, 0x997a, 0x997b,
- 0x997c, 0x997d, 0x997e, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a5,
- 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad,
- 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, 0x99b3, 0x99b4, 0x99b5,
- 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, 0x99bb, 0x99bc, 0x99bd,
- 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0x99c5,
- 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd,
- 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, 0x99d3, 0x99d4, 0x99d5,
- 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd,
- 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5,
- 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed,
- 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, 0x99f3, 0x99f4, 0x99f5,
- 0x99f6, 0x99f7, 0x99f8, 0x99f9, 0x99fa, 0x99fb, 0x99fc, 0x99fd,
- 0x99fe, 0x9a40, 0x9a41, 0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46,
- 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e,
- 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56,
- 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e,
- 0x9a5f, 0x9a60, 0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66,
- 0x9a67, 0x9a68, 0x9a69, 0x9a6a, 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e,
- 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, 0x9a74, 0x9a75, 0x9a76,
- 0x9a77, 0x9a78, 0x9a79, 0x9a7a, 0x9a7b, 0x9a7c, 0x9a7d, 0x9a7e,
- 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8,
- 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, 0x9aae, 0x9aaf, 0x9ab0,
- 0x9ab1, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8,
- 0x9ab9, 0x9aba, 0x9abb, 0x9abc, 0x9abd, 0x9abe, 0x9abf, 0x9ac0,
- 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8,
- 0x9ac9, 0x9aca, 0x9acb, 0x9acc, 0x9acd, 0x9ace, 0x9acf, 0x9ad0,
- 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8,
- 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add, 0x9ade, 0x9adf, 0x9ae0,
- 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8,
- 0x9ae9, 0x9aea, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0x9aef, 0x9af0,
- 0x9af1, 0x9af2, 0x9af3, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8,
- 0x9af9, 0x9afa, 0x9afb, 0x9afc, 0x9afd, 0x9afe, 0x9b40, 0x9b41,
- 0x9b42, 0x9b43, 0x9b44, 0x9b45, 0x9b46, 0x9b47, 0x9b48, 0x9b49,
- 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d, 0x9b4e, 0x9b4f, 0x9b50, 0x9b51,
- 0x9b52, 0x9b53, 0x9b54, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59,
- 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61,
- 0x9b62, 0x9b63, 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69,
- 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71,
- 0x9b72, 0x9b73, 0x9b74, 0x9b75, 0xeff9, 0x9b77, 0xc5f7, 0x9b79,
- 0x9b7a, 0xf5e8, 0x9b7c, 0x9b7d, 0x9b7e, 0x9ba1, 0x9ba2, 0x9ba3,
- 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab,
- 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3,
- 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb,
- 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3,
- 0x9bc4, 0x9bc5, 0xe8cd, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb,
- 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3,
- 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb,
- 0x9bdc, 0x9bdd, 0xd0c0, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3,
- 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb,
- 0xfd64, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3,
- 0x9bf4, 0x9bf5, 0xbf47, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb,
- 0x9bfc, 0x9bfd, 0x9bfe, 0x9c40, 0x9c41, 0xebc9, 0x9c43, 0x9c44,
- 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c,
- 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0xcde7, 0x9c54,
- 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c,
- 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0xc0e7, 0x9c63, 0x9c64,
- 0x9c65, 0x9c66, 0x9c67, 0xdc52, 0x9c69, 0x9c6a, 0xf86d, 0x9c6c,
- 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73, 0x9c74,
- 0x9c75, 0x9c76, 0xdb5d, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c,
- 0x9c7d, 0x9c7e, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6,
- 0x9ca7, 0x9ca8, 0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae,
- 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6,
- 0x9cb7, 0x9cb8, 0x9cb9, 0x9cba, 0x9cbb, 0xc95c, 0xafb0, 0x9cbe,
- 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6,
- 0x9cc7, 0x9cc8, 0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce,
- 0x9ccf, 0xd4d1, 0x9cd1, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6,
- 0x9cd7, 0x9cd8, 0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde,
- 0x9cdf, 0x9ce0, 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6,
- 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, 0x9ced, 0x9cee,
- 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6,
- 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe,
- 0x9d40, 0x9d41, 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47,
- 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f,
- 0x9d50, 0x9d51, 0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0xe07c,
- 0x9d58, 0x9d59, 0xb5ae, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f,
- 0x9d60, 0x9d61, 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67,
- 0x9d68, 0x9d69, 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f,
- 0x9d70, 0x9d71, 0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77,
- 0x9d78, 0x9d79, 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9da1,
- 0x9da2, 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9,
- 0x9daa, 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1,
- 0x9db2, 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9,
- 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1,
- 0x9dc2, 0x9dc3, 0xa9e4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9,
- 0x9dca, 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1,
- 0x9dd2, 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9,
- 0x9dda, 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1,
- 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9,
- 0x9dea, 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1,
- 0x9df2, 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9,
- 0x9dfa, 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, 0x9e42,
- 0x9e43, 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4a,
- 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e52,
- 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0x9e5a,
- 0x9e5b, 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, 0x9e60, 0x9e61, 0x9e62,
- 0x9e63, 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a,
- 0x9e6b, 0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e72,
- 0x9e73, 0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a,
- 0x9e7b, 0x9e7c, 0x9e7d, 0x9e7e, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4,
- 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0xabec, 0x9eaa, 0x9eab, 0x9eac,
- 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4,
- 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc,
- 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4,
- 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc,
- 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4,
- 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc,
- 0x9edd, 0x9ede, 0x9edf, 0x9ee0, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4,
- 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec,
- 0x9eed, 0x9eee, 0xdecd, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4,
- 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc,
- 0xc9fc, 0x9efe, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45,
- 0x9f46, 0x9f47, 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d,
- 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0x9f52, 0x9f53, 0x9f54, 0x9f55,
- 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d,
- 0x9f5e, 0x9f5f, 0xf9c4, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0x9f65,
- 0x91be, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d,
- 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0x9f74, 0x9f75,
- 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d,
- 0x9f7e, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0x9fa6, 0x9fa7,
- 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae, 0x9faf,
- 0x9fb0, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0x9fb6, 0x9fb7,
- 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0x9fbe, 0x9fbf,
- 0x9fc0, 0x9fc1, 0x9fc2, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6, 0x9fc7,
- 0x9fc8, 0x9fc9, 0x9fca, 0xb9b0, 0x9fcc, 0x9fcd, 0x9fce, 0x9fcf,
- 0x9fd0, 0x9fd1, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, 0x9fd7,
- 0x9361, 0x9fd9, 0x9fda, 0x9fdb, 0x9fdc, 0x9fdd, 0x9fde, 0x9fdf,
- 0x9fe0, 0x9fe1, 0x9fe2, 0x9fe3, 0x9fe4, 0x9fe5, 0x9fe6, 0x9fe7,
- 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, 0x9fed, 0x9fee, 0x9fef,
- 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6, 0x9ff7,
- 0x9ff8, 0x9ff9, 0x9ffa, 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe, 0xa040,
- 0xa041, 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047, 0xa048,
- 0xa049, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xa04e, 0xa04f, 0xa050,
- 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, 0xa057, 0xa058,
- 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, 0xa05e, 0xa05f, 0xa060,
- 0xa061, 0xa062, 0x8fb6, 0xa064, 0xa065, 0xa066, 0xa067, 0xa068,
- 0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f, 0xa070,
- 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa9f0, 0xa078,
- 0xa079, 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa07e, 0xa0a1, 0xa0a2,
- 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, 0xa0a9, 0xa0aa,
- 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0, 0xa0b1, 0xa0b2,
- 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, 0xa0b9, 0xa0ba,
- 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0, 0xa0c1, 0xa0c2,
- 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, 0xa0c9, 0xa0ca,
- 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d2,
- 0xa0d3, 0xa0d4, 0x947a, 0xa0d6, 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da,
- 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, 0xde72, 0xa0e0, 0xa0e1, 0xa0e2,
- 0xa0e3, 0x9455, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, 0xa0e9, 0xa0ea,
- 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, 0xa0f1, 0xa0f2,
- 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, 0xa0f9, 0xa0fa,
- 0xa0fb, 0xa0fc, 0xa0fd, 0xa0fe, 0x8140, 0x8141, 0x8142, 0x8143,
- 0x8144, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, 0x814a, 0x814b,
- 0x814c, 0x814d, 0x814e, 0x814f, 0x8150, 0x8151, 0x8152, 0x8153,
- 0x8154, 0x8155, 0x8156, 0x8157, 0x8158, 0x8159, 0x815a, 0x815b,
- 0x815c, 0x815d, 0x815e, 0x815f, 0x8160, 0x8161, 0x8162, 0x8163,
- 0x8164, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 0x816a, 0x816b,
- 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171, 0x8172, 0x8173,
- 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179, 0x817a, 0x817b,
- 0x817c, 0x817d, 0x817e, 0x81a1, 0x81a2, 0x81a3, 0x81a4, 0x81a5,
- 0x81a6, 0x81a7, 0x81a8, 0x81a9, 0x81aa, 0x81ab, 0x81ac, 0x81ad,
- 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2, 0x81b3, 0x81b4, 0x81b5,
- 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81ba, 0x81bb, 0x81bc, 0x81bd,
- 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2, 0x81c3, 0x81c4, 0x81c5,
- 0x81c6, 0x81c7, 0x81c8, 0x81c9, 0x81ca, 0x81cb, 0x81cc, 0x81cd,
- 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, 0x81d3, 0x81d4, 0x81d5,
- 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db, 0x81dc, 0x81dd,
- 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e3, 0x81e4, 0x81e5,
- 0x81e6, 0x81e7, 0x81e8, 0x81e9, 0x81ea, 0x81eb, 0x81ec, 0x81ed,
- 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f2, 0x81f3, 0x81f4, 0x81f5,
- 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, 0x81fb, 0x81fc, 0x81fd,
- 0x81fe, 0x8240, 0x8241, 0x8242, 0x8243, 0x8244, 0x8245, 0x8246,
- 0x8247, 0x8248, 0x8249, 0x824a, 0x824b, 0x824c, 0x824d, 0x824e,
- 0x824f, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256,
- 0x8257, 0x8258, 0x8259, 0x825a, 0x825b, 0x825c, 0x825d, 0x825e,
- 0x825f, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266,
- 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0x826d, 0x826e,
- 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276,
- 0x8277, 0x8278, 0x8279, 0x827a, 0x827b, 0x827c, 0x827d, 0x827e,
- 0x82a1, 0x82a2, 0x82a3, 0x82a4, 0x82a5, 0x82a6, 0x82a7, 0x82a8,
- 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0x82ae, 0x82af, 0x82b0,
- 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0x82b7, 0x82b8,
- 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0,
- 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8,
- 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d0,
- 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5, 0x82d6, 0x82d7, 0x82d8,
- 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0,
- 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8,
- 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed, 0x82ee, 0x82ef, 0x82f0,
- 0x82f1, 0x82f2, 0x82f3, 0x82f4, 0x82f5, 0x82f6, 0x82f7, 0x82f8,
- 0x82f9, 0x82fa, 0x82fb, 0x82fc, 0x82fd, 0x82fe, 0x8340, 0x8341,
- 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349,
- 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351,
- 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359,
- 0x835a, 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, 0x8360, 0x8361,
- 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369,
- 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, 0x836f, 0x8370, 0x8371,
- 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, 0x8377, 0x8378, 0x8379,
- 0x837a, 0x837b, 0x837c, 0x837d, 0x837e, 0x83a1, 0x83a2, 0x83a3,
- 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab,
- 0x83ac, 0x83ad, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b2, 0x83b3,
- 0x83b4, 0x83b5, 0x83b6, 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb,
- 0x83bc, 0x83bd, 0x83be, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3,
- 0x83c4, 0x83c5, 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb,
- 0x83cc, 0x83cd, 0x83ce, 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3,
- 0x83d4, 0x83d5, 0x83d6, 0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db,
- 0x83dc, 0x83dd, 0x83de, 0x83df, 0x83e0, 0x83e1, 0x83e2, 0x83e3,
- 0x83e4, 0x83e5, 0x83e6, 0x83e7, 0x83e8, 0x83e9, 0x83ea, 0x83eb,
- 0x83ec, 0x83ed, 0x83ee, 0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3,
- 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83f8, 0x83f9, 0x83fa, 0x83fb,
- 0x83fc, 0x83fd, 0x83fe, 0x8440, 0x8441, 0x8442, 0x8443, 0x8444,
- 0x8445, 0x8446, 0x8447, 0x8448, 0x8449, 0x844a, 0x844b, 0x844c,
- 0x844d, 0x844e, 0x844f, 0x8450, 0x8451, 0x8452, 0x8453, 0x8454,
- 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845a, 0x845b, 0x845c,
- 0x845d, 0x845e, 0x845f, 0x8460, 0x8461, 0x8462, 0x8463, 0x8464,
- 0x8465, 0x8466, 0x8467, 0x8468, 0x8469, 0x846a, 0x846b, 0x846c,
- 0x846d, 0x846e, 0x846f, 0x8470, 0x8471, 0x8472, 0x8473, 0x8474,
- 0x8475, 0x8476, 0x8477, 0x8478, 0x8479, 0x847a, 0x847b, 0x847c,
- 0x847d, 0x847e, 0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6,
- 0x84a7, 0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae,
- 0x84af, 0x84b0, 0x84b1, 0x84b2, 0x84b3, 0x84b4, 0x84b5, 0x84b6,
- 0x84b7, 0x84b8, 0x84b9, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be,
- 0x84bf, 0x84c0, 0x84c1, 0x84c2, 0x84c3, 0x84c4, 0x84c5, 0x84c6,
- 0x84c7, 0x84c8, 0x84c9, 0x84ca, 0x84cb, 0x84cc, 0x84cd, 0x84ce,
- 0x84cf, 0x84d0, 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6,
- 0x84d7, 0x84d8, 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84dd, 0x84de,
- 0x84df, 0x84e0, 0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6,
- 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee,
- 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6,
- 0x84f7, 0x84f8, 0x84f9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0x84fe,
- 0x8540, 0x8541, 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547,
- 0x8548, 0x8549, 0x854a, 0x854b, 0x854c, 0x854d, 0x854e, 0x854f,
- 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x8556, 0x8557,
- 0x8558, 0x8559, 0x855a, 0x855b, 0x855c, 0x855d, 0x855e, 0x855f,
- 0x8560, 0x8561, 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567,
- 0x8568, 0x8569, 0x856a, 0x856b, 0x856c, 0x856d, 0x856e, 0x856f,
- 0x8570, 0x8571, 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577,
- 0x8578, 0x8579, 0x857a, 0x857b, 0x857c, 0x857d, 0x857e, 0x85a1,
- 0x85a2, 0x85a3, 0x85a4, 0x85a5, 0x85a6, 0x85a7, 0x85a8, 0x85a9,
- 0x85aa, 0x85ab, 0x85ac, 0x85ad, 0x85ae, 0x85af, 0x85b0, 0x85b1,
- 0x85b2, 0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b7, 0x85b8, 0x85b9,
- 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c0, 0x85c1,
- 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85c9,
- 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1,
- 0x85d2, 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9,
- 0x85da, 0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1,
- 0x85e2, 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85e9,
- 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1,
- 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9,
- 0x85fa, 0x85fb, 0x85fc, 0x85fd, 0x85fe, 0x8640, 0x8641, 0x8642,
- 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864a,
- 0x864b, 0x864c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8652,
- 0x8653, 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865a,
- 0x865b, 0x865c, 0x865d, 0x865e, 0x865f, 0x8660, 0x8661, 0x8662,
- 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a,
- 0x866b, 0x866c, 0x866d, 0x866e, 0x866f, 0x8670, 0x8671, 0x8672,
- 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, 0x867a,
- 0x867b, 0x867c, 0x867d, 0x867e, 0x86a1, 0x86a2, 0x86a3, 0x86a4,
- 0x86a5, 0x86a6, 0x86a7, 0x86a8, 0x86a9, 0x86aa, 0x86ab, 0x86ac,
- 0x86ad, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b2, 0x86b3, 0x86b4,
- 0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, 0x86ba, 0x86bb, 0x86bc,
- 0x86bd, 0x86be, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4,
- 0x86c5, 0x86c6, 0x86c7, 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc,
- 0x86cd, 0x86ce, 0x86cf, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4,
- 0x86d5, 0x86d6, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc,
- 0x86dd, 0x86de, 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4,
- 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0x86ea, 0x86eb, 0x86ec,
- 0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0x86f2, 0x86f3, 0x86f4,
- 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0x86fa, 0x86fb, 0x86fc,
- 0x86fd, 0x86fe, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745,
- 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d,
- 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8754, 0x8755,
- 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, 0x875c, 0x875d,
- 0x875e, 0x875f, 0x8760, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765,
- 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d,
- 0x876e, 0x876f, 0x8770, 0x8771, 0x8772, 0x8773, 0x8774, 0x8775,
- 0x8776, 0x8777, 0x8778, 0x8779, 0x877a, 0x877b, 0x877c, 0x877d,
- 0x877e, 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0x87a5, 0x87a6, 0x87a7,
- 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae, 0x87af,
- 0x87b0, 0x87b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6, 0x87b7,
- 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be, 0x87bf,
- 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6, 0x87c7,
- 0x87c8, 0x87c9, 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce, 0x87cf,
- 0x87d0, 0x87d1, 0x87d2, 0x87d3, 0x87d4, 0x87d5, 0x87d6, 0x87d7,
- 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0x87dd, 0x87de, 0x87df,
- 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e5, 0x87e6, 0x87e7,
- 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, 0x87ed, 0x87ee, 0x87ef,
- 0x87f0, 0x87f1, 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7,
- 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe, 0x8840,
- 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847, 0x8848,
- 0x8849, 0x884a, 0x884b, 0x884c, 0x884d, 0x884e, 0x884f, 0x8850,
- 0x8851, 0x8852, 0x8853, 0x8854, 0x8855, 0x8856, 0x8857, 0x8858,
- 0x8859, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, 0x885f, 0x8860,
- 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, 0x8868,
- 0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f, 0x8870,
- 0x8871, 0x8872, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, 0x8878,
- 0x8879, 0x887a, 0x887b, 0x887c, 0x887d, 0x887e, 0x88a1, 0x88a2,
- 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 0x88aa,
- 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0, 0x88b1, 0x88b2,
- 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, 0x88b9, 0x88ba,
- 0x88bb, 0x88bc, 0x88bd, 0x88be, 0x88bf, 0x88c0, 0x88c1, 0x88c2,
- 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0x88ca,
- 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0, 0x88d1, 0x88d2,
- 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da,
- 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0, 0x88e1, 0x88e2,
- 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, 0x88e9, 0x88ea,
- 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f2,
- 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8, 0x88f9, 0x88fa,
- 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941, 0x8942, 0x8943,
- 0x8944, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894a, 0x894b,
- 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8952, 0x8953,
- 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0x895a, 0x895b,
- 0x895c, 0x895d, 0x895e, 0x895f, 0x8960, 0x8961, 0x8962, 0x8963,
- 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b,
- 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973,
- 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897b,
- 0x897c, 0x897d, 0x897e, 0x89a1, 0x89a2, 0x89a3, 0x89a4, 0x89a5,
- 0x89a6, 0x89a7, 0x89a8, 0x89a9, 0x89aa, 0x89ab, 0x89ac, 0x89ad,
- 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, 0x89b3, 0x89b4, 0x89b5,
- 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba, 0x89bb, 0x89bc, 0x89bd,
- 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2, 0x89c3, 0x89c4, 0x89c5,
- 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, 0x89cb, 0x89cc, 0x89cd,
- 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d2, 0x89d3, 0x89d4, 0x89d5,
- 0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da, 0x89db, 0x89dc, 0x89dd,
- 0x89de, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e3, 0x89e4, 0x89e5,
- 0x89e6, 0x89e7, 0x89e8, 0x89e9, 0x89ea, 0x89eb, 0x89ec, 0x89ed,
- 0x89ee, 0x89ef, 0x89f0, 0x89f1, 0x89f2, 0x89f3, 0x89f4, 0x89f5,
- 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x89fb, 0x89fc, 0x89fd,
- 0x89fe, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46,
- 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e,
- 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56,
- 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e,
- 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66,
- 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e,
- 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76,
- 0x8a77, 0x8a78, 0x8a79, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e,
- 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8,
- 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0,
- 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8,
- 0x8ab9, 0x8aba, 0x8abb, 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0,
- 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8,
- 0x8ac9, 0x8aca, 0x8acb, 0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0,
- 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8,
- 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0,
- 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8,
- 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0,
- 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8,
- 0x8af9, 0x8afa, 0x8afb, 0x8afc, 0x8afd, 0x8afe, 0x8b40, 0x8b41,
- 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46, 0x8b47, 0x8b48, 0x8b49,
- 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, 0x8b4e, 0x8b4f, 0x8b50, 0x8b51,
- 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0x8b56, 0x8b57, 0x8b58, 0x8b59,
- 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, 0x8b5e, 0x8b5f, 0x8b60, 0x8b61,
- 0x8b62, 0x8b63, 0x8b64, 0x8b65, 0x8b66, 0x8b67, 0x8b68, 0x8b69,
- 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, 0x8b71,
- 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79,
- 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8ba1, 0x8ba2, 0x8ba3,
- 0x8ba4, 0x8ba5, 0x8ba6, 0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab,
- 0x8bac, 0x8bad, 0x8bae, 0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3,
- 0x8bb4, 0x8bb5, 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb,
- 0x8bbc, 0x8bbd, 0x8bbe, 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3,
- 0x8bc4, 0x8bc5, 0x8bc6, 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb,
- 0x8bcc, 0x8bcd, 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0x8bd3,
- 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb,
- 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3,
- 0x8be4, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb,
- 0x8bec, 0x8bed, 0x8bee, 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3,
- 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb,
- 0x8bfc, 0x8bfd, 0x8bfe, 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44,
- 0x8c45, 0x8c46, 0x8c47, 0x8c48, 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c,
- 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54,
- 0x8c55, 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5a, 0x8c5b, 0x8c5c,
- 0x8c5d, 0x8c5e, 0x8c5f, 0x8c60, 0x8c61, 0x8c62, 0x8c63, 0x8c64,
- 0x8c65, 0x8c66, 0x8c67, 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c,
- 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72, 0x8c73, 0x8c74,
- 0x8c75, 0x8c76, 0x8c77, 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c,
- 0x8c7d, 0x8c7e, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6,
- 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, 0x8cae,
- 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6,
- 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe,
- 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6,
- 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce,
- 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6,
- 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde,
- 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6,
- 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, 0x8cee,
- 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6,
- 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe,
- 0x8d40, 0x8d41, 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47,
- 0x8d48, 0x8d49, 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f,
- 0x8d50, 0x8d51, 0x8d52, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57,
- 0x8d58, 0x8d59, 0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f,
- 0x8d60, 0x8d61, 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67,
- 0x8d68, 0x8d69, 0x8d6a, 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f,
- 0x8d70, 0x8d71, 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77,
- 0x8d78, 0x8d79, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8da1,
- 0x8da2, 0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9,
- 0x8daa, 0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1,
- 0x8db2, 0x8db3, 0x8db4, 0x8db5, 0x8db6, 0x8db7, 0x8db8, 0x8db9,
- 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, 0x8dc1,
- 0x8dc2, 0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9,
- 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1,
- 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9,
- 0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1,
- 0x8de2, 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9,
- 0x8dea, 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1,
- 0x8df2, 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, 0x8df8, 0x8df9,
- 0x8dfa, 0x8dfb, 0x8dfc, 0x8dfd, 0x8dfe, 0xc6a1, 0xc6a2, 0xc6a3,
- 0xc6a4, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab,
- 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3,
- 0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb,
- 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c0, 0xc6c1, 0xc6c2, 0xc6c3,
- 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb,
- 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3,
- 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db,
- 0xc6dc, 0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3,
- 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb,
- 0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3,
- 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb,
- 0xc6fc, 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742, 0xc743, 0xc744,
- 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xc74c,
- 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752, 0xc753, 0xc754,
- 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, 0xc75b, 0xc75c,
- 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xc764,
- 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c,
- 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0xc774,
- 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, 0xc77c,
- 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6,
- 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac, 0xc7ad, 0xc7ae,
- 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b4, 0xc7b5, 0xc7b6,
- 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7bc, 0xc7bd, 0xc7be,
- 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6,
- 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, 0xc7cb, 0xc7cc, 0xc7cd, 0xc7ce,
- 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6,
- 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, 0xc7dc, 0xc7dd, 0xc7de,
- 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0xc7e4, 0xc7e5, 0xc7e6,
- 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec, 0xc7ed, 0xc7ee,
- 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, 0xc7f5, 0xc7f6,
- 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe,
- 0xc840, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847,
- 0xc848, 0xc849, 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, 0xc84f,
- 0xc850, 0xc851, 0xc852, 0xc853, 0xc854, 0xc855, 0xc856, 0xc857,
- 0xc858, 0xc859, 0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f,
- 0xc860, 0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867,
- 0xc868, 0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f,
- 0xc870, 0xc871, 0xc872, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877,
- 0xc878, 0xc879, 0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc8a1,
- 0xc8a2, 0xc8a3, 0xc8a4, 0xc8a5, 0xc8a6, 0xc8a7, 0xc8a8, 0xc8a9,
- 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, 0xc8b1,
- 0xc8b2, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9,
- 0xc8ba, 0xc8bb, 0xc8bc, 0xc8bd, 0xc8be, 0xc8bf, 0xc8c0, 0xc8c1,
- 0xc8c2, 0xc8c3, 0xc8c4, 0xc8c5, 0xc8c6, 0xc8c7, 0xc8c8, 0xc8c9,
- 0xc8ca, 0xc8cb, 0xc8cc, 0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1,
- 0xc8d2, 0xc8d3, 0xc8d4, 0xc8d5, 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9,
- 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0xc8e0, 0xc8e1,
- 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9,
- 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1,
- 0xc8f2, 0xc8f3, 0xc8f4, 0xc8f5, 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9,
- 0xc8fa, 0xc8fb, 0xc8fc, 0xc8fd, 0xc8fe, 0xb05a, 0xa7f3, 0xa8ae,
- 0xb8eb, 0xb7c6, 0xa6ea, 0xa579, 0x8bf8, 0xc074, 0xabb4, 0xaaf7,
- 0xb3e2, 0xa960, 0xc369, 0xc4ee, 0xc3b9, 0xc5da, 0xc1b3, 0xbb72,
- 0xc5de, 0xbcd6, 0xaca5, 0xaf4f, 0xaf5f, 0xb8a8, 0xb954, 0xc064,
- 0xb6c3, 0xa75a, 0xc4e6, 0xc4ea, 0xc4f5, 0xc67d, 0xb450, 0xc0dd,
- 0xc2c5, 0xc4b0, 0xa9d4, 0xc3be, 0xc4fa, 0xb459, 0xaed4, 0xaef6,
- 0xaf54, 0xa8d3, 0xa74e, 0xb3d2, 0xbedb, 0xc372, 0xc46c, 0xbf63,
- 0xa6d1, 0xc4aa, 0xb8b8, 0xb8f4, 0xc553, 0xbe7c, 0xc64f, 0xb84c,
- 0xb853, 0xbaf1, 0xdb77, 0xbffd, 0xb3c0, 0xbdd7, 0xc362, 0xa7cb,
- 0xc5a2, 0xc5a4, 0xa863, 0xbd55, 0xb8ef, 0xb970, 0xc253, 0xb9f0,
- 0xbcd3, 0xb25c, 0xba7c, 0xb2d6, 0xc15c, 0xadae, 0xb0c7, 0xa6d8,
- 0xbbfe, 0xade2, 0xb857, 0xbaf0, 0xb5d9, 0xb3ae, 0xc5aa, 0xced4,
- 0xbcd6, 0xbfd5, 0xa4a6, 0xb9e7, 0xabe3, 0xb276, 0xb2a7, 0xa55f,
- 0xeda8, 0xab4b, 0xb45f, 0xa4a3, 0xaa63, 0xbcc6, 0xafc1, 0xb0d1,
- 0xb6eb, 0xacd9, 0xb8ad, 0xbba1, 0xb1fe, 0xa8b0, 0xa848, 0xac42,
- 0xad59, 0xb1b0, 0xb2a4, 0xab47, 0xa8e2, 0xb1e7, 0xc2b3, 0xa87d,
- 0xbdcc, 0xb671, 0xc079, 0xa766, 0xa46b, 0xc366, 0xaec8, 0xc26f,
- 0xc472, 0xbe5b, 0xc67a, 0xc452, 0xbea4, 0xa44f, 0xbee4, 0xbefa,
- 0xf765, 0xa67e, 0xbca6, 0xc5ca, 0xbcbf, 0xbaa7, 0xb7d2, 0xe6a3,
- 0xbd6d, 0xc170, 0xbdfb, 0xbdac, 0xb373, 0xc1e5, 0xa643, 0xa648,
- 0xab7c, 0xaf50, 0xb5f5, 0xbba1, 0xb747, 0xa9c0, 0xb1c9, 0xc0d4,
- 0xc3ae, 0xc279, 0xa54f, 0xcbf1, 0xb9e7, 0xc0ad, 0xccb0, 0xacc2,
- 0xbcfc, 0xb2dc, 0xb2e2, 0xb961, 0xb973, 0xc646, 0xbbe2, 0xa8d2,
- 0xc2a7, 0xc4bf, 0xc1f5, 0xb463, 0xa446, 0xb9b1, 0xbc64, 0xa7bf,
- 0xaec6, 0xbcd6, 0xbf52, 0xc0f8, 0xe764, 0xbff1, 0xc073, 0xb777,
- 0xa8bf, 0xbc42, 0xccd8, 0xac68, 0xac79, 0xb7c8, 0xaf5b, 0xaf64,
- 0xb2b8, 0xafc3, 0xc3fe, 0xa4bb, 0xbcae, 0xb3b0, 0xaddb, 0xb15b,
- 0xb25f, 0xbdfc, 0xabdf, 0xb758, 0xaedf, 0xb276, 0xb6a9, 0xa751,
- 0xa64f, 0xbc69, 0xa9f6, 0xa7f5, 0xb1f9, 0xaa64, 0xb27a, 0xb567,
- 0xbfa9, 0xb8cc, 0xa8bd, 0xc2f7, 0xb0ce, 0xb7c4, 0xa75b, 0xbf4d,
- 0xbf5a, 0xc4a9, 0xc5ec, 0xc5ef, 0xaa4c, 0xb24f, 0xc17b, 0xa5df,
- 0xb2c1, 0xb2c9, 0xaaac, 0xaaa5, 0xc3d1, 0xa4b0, 0xaff9, 0xa8eb,
- 0xa4c1, 0xabd7, 0xa9dd, 0xbf7d, 0xa676, 0xac7d, 0xbcc9, 0xbfe7,
- 0xa6e6, 0xadb0, 0xa8a3, 0xb9f8, 0xc94a, 0xddfc, 0xb6ef, 0xb4b8,
- 0xe8f9, 0xbdde, 0xaf71, 0xafab, 0xb2bb, 0xbad6, 0xb974, 0xbaeb,
- 0xa6d0, 0xbdd1, 0xb668, 0xb3a3, 0xb6ba, 0xb97d, 0xc05d, 0xc562,
- 0xa14a, 0xa157, 0xa159, 0xa15b, 0xa15f, 0xa160, 0xa163, 0xa164,
- 0xa167, 0xa168, 0xa16b, 0xa16c, 0xa16f, 0xa170, 0xa173, 0xa174,
- 0xa177, 0xa178, 0xa17b, 0xa17c, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb,
- 0xa1c8, 0xa1c9, 0xa15c, 0xa14d, 0xa14e, 0xa14f, 0xa151, 0xa152,
- 0xa153, 0xa154, 0xa17d, 0xa17e, 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4,
- 0xa1cc, 0xa1cd, 0xa1ce, 0xa1de, 0xa1df, 0xa1e0, 0xa1e1, 0xa1e2,
- 0xa242, 0xa24c, 0xa24d, 0xa24e, 0xa149, 0xc8d0, 0xa1ad, 0xa243,
- 0xa248, 0xa1ae, 0xc8cf, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141,
- 0xa1d0, 0xa144, 0xa1fe, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3,
- 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5,
- 0xa1d7, 0xa1d6, 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2,
- 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da,
- 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2,
- 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xc6e4, 0xa240,
- 0xc6e5, 0xa173, 0xa1c4, 0xa1a5, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec,
- 0xa2ed, 0xa2ee, 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4,
- 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc,
- 0xa2fd, 0xa2fe, 0xa340, 0xa341, 0xa342, 0xa343, 0xa161, 0xa155,
- 0xa162, 0xa1e3, 0xa14e, 0xa246, 0xa247, 0xc8cd, 0xa1c3, 0xc8ce,
- 0xa244, 0xf9fe,
-};
-
-static const Summary16 big5hkscs_uni2indx_page00[16] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x81ac }, { 6, 0x01b3 },
- { 12, 0x0703 }, { 17, 0x008c }, { 20, 0x3703 }, { 27, 0x178c },
-};
-static const Summary16 big5hkscs_uni2indx_page02[29] = {
- /* 0x0200 */
- { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 },
- { 56, 0x0000 }, { 56, 0x0813 }, { 60, 0x0402 }, { 62, 0x0020 },
- { 63, 0x0408 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 },
- { 65, 0x2ec0 }, { 71, 0x0200 }, { 72, 0x0000 }, { 72, 0x0000 },
- /* 0x0300 */
- { 72, 0x0020 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 },
- { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 },
- { 73, 0x0000 }, { 73, 0xfffe }, { 88, 0x03fb }, { 97, 0xfffe },
- { 112, 0x03fb },
-};
-static const Summary16 big5hkscs_uni2indx_page20[44] = {
- /* 0x2000 */
- { 191, 0x0000 }, { 191, 0x3378 }, { 199, 0x00f4 }, { 204, 0x482c },
- { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 },
- { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 },
- { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 },
- /* 0x2100 */
- { 209, 0x0228 }, { 212, 0x0040 }, { 213, 0x0002 }, { 214, 0x0000 },
- { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x03ff }, { 224, 0x03ff },
- { 234, 0x0000 }, { 234, 0x03cf }, { 242, 0x0000 }, { 242, 0x0300 },
- { 244, 0x0000 }, { 244, 0x0000 }, { 244, 0x0080 }, { 245, 0x0000 },
- /* 0x2200 */
- { 245, 0x0000 }, { 245, 0xc560 }, { 251, 0x4e29 }, { 258, 0x0030 },
- { 260, 0x0000 }, { 260, 0x0004 }, { 261, 0x00cb }, { 266, 0x0000 },
- { 266, 0x0000 }, { 266, 0x0220 }, { 268, 0x0020 }, { 269, 0x8000 },
-};
-static const Summary16 big5hkscs_uni2indx_page25[21] = {
- /* 0x2500 */
- { 291, 0x1005 }, { 294, 0x1111 }, { 298, 0x1010 }, { 300, 0x1010 },
- { 302, 0x0000 }, { 302, 0xffff }, { 318, 0xffff }, { 334, 0x001f },
- { 339, 0xfffe }, { 354, 0x0038 }, { 357, 0x0003 }, { 359, 0x300c },
- { 363, 0xc8c0 }, { 368, 0x0000 }, { 368, 0x003c }, { 372, 0x0000 },
- /* 0x2600 */
- { 372, 0x0260 }, { 375, 0x0000 }, { 375, 0x0000 }, { 375, 0x0000 },
- { 375, 0x0007 },
-};
-static const Summary16 big5hkscs_uni2indx_page30[62] = {
- /* 0x3000 */
- { 408, 0xffef }, { 423, 0x7037 }, { 431, 0x03fe }, { 440, 0x0001 },
- { 441, 0xfffe }, { 456, 0xffff }, { 472, 0xffff }, { 488, 0xffff },
- { 504, 0xffff }, { 520, 0x780f }, { 528, 0xfffe }, { 543, 0xffff },
- { 559, 0xffff }, { 575, 0xffff }, { 591, 0xffff }, { 607, 0x707f },
- /* 0x3100 */
- { 617, 0xffe0 }, { 628, 0xffff }, { 644, 0x03ff }, { 654, 0x0000 },
- { 654, 0x0000 }, { 654, 0x0000 }, { 654, 0x0000 }, { 654, 0x0000 },
- { 654, 0x0000 }, { 654, 0xfffc }, { 668, 0x0000 }, { 668, 0x0000 },
- { 668, 0x0000 }, { 668, 0x0000 }, { 668, 0x0000 }, { 668, 0x0000 },
- /* 0x3200 */
- { 668, 0x0000 }, { 668, 0x0000 }, { 668, 0xffff }, { 684, 0xffff },
- { 700, 0x000f }, { 704, 0x0000 }, { 704, 0x0000 }, { 704, 0x0000 },
- { 704, 0xffff }, { 720, 0xffff }, { 736, 0xffff }, { 752, 0x0001 },
- { 753, 0x0000 }, { 753, 0x0000 }, { 753, 0x0000 }, { 753, 0x0000 },
- /* 0x3300 */
- { 753, 0x0000 }, { 753, 0x0000 }, { 753, 0x0000 }, { 753, 0x0000 },
- { 753, 0x0000 }, { 753, 0x0000 }, { 753, 0x0000 }, { 753, 0x0000 },
- { 753, 0xc000 }, { 755, 0x7000 }, { 758, 0x0002 }, { 759, 0x0000 },
- { 759, 0x4010 }, { 761, 0x0026 },
-};
-static const Summary16 big5hkscs_uni2indx_page4e[1307] = {
- /* 0x4e00 */
- { 1275, 0xff9b }, { 1288, 0xd773 }, { 1299, 0xfd52 }, { 1309, 0xbbcf },
- { 1321, 0xebac }, { 1331, 0xff4c }, { 1342, 0x0600 }, { 1344, 0xc108 },
- { 1348, 0x7bff }, { 1362, 0xcf3e }, { 1373, 0x797f }, { 1385, 0x9ec8 },
- { 1393, 0x6fdf }, { 1406, 0xf7f0 }, { 1417, 0x4f3a }, { 1426, 0xa9ff },
- /* 0x4f00 */
- { 1438, 0xef3f }, { 1451, 0x27bf }, { 1462, 0xb304 }, { 1468, 0xffdd },
- { 1482, 0xfbee }, { 1495, 0xffff }, { 1511, 0xde9f }, { 1523, 0xfffd },
- { 1538, 0xafff }, { 1552, 0x7df7 }, { 1565, 0xc904 }, { 1570, 0xaeed },
- { 1581, 0xffbf }, { 1596, 0xffdb }, { 1610, 0xd033 }, { 1617, 0x67ff },
- /* 0x5000 */
- { 1630, 0xfbe9 }, { 1642, 0xdffe }, { 1656, 0xffef }, { 1671, 0x18bb },
- { 1679, 0xffeb }, { 1693, 0xfdea }, { 1705, 0xff7f }, { 1720, 0x24fd },
- { 1729, 0x79af }, { 1740, 0x7f77 }, { 1753, 0xf04c }, { 1760, 0xfdff },
- { 1775, 0xeff6 }, { 1788, 0xaefb }, { 1800, 0xf7fb }, { 1814, 0xfb7b },
- /* 0x5100 */
- { 1827, 0x7fff }, { 1842, 0x95bf }, { 1853, 0x6e77 }, { 1864, 0xbfbf },
- { 1878, 0x3bfb }, { 1890, 0xfef4 }, { 1902, 0x7faf }, { 1915, 0x13f2 },
- { 1923, 0xa7c5 }, { 1932, 0x55fe }, { 1943, 0x5db5 }, { 1953, 0x73ff },
- { 1966, 0xfff8 }, { 1979, 0xf99f }, { 1991, 0x2017 }, { 1996, 0x777b },
- /* 0x5200 */
- { 2008, 0x5fef }, { 2021, 0xf0cf }, { 2031, 0x47f3 }, { 2041, 0x1dff },
- { 2053, 0x7eda }, { 2064, 0xfef4 }, { 2076, 0xff07 }, { 2087, 0xbfbc },
- { 2099, 0xbf9f }, { 2112, 0x8fdb }, { 2123, 0x7f5b }, { 2135, 0x5a20 },
- { 2140, 0x32af }, { 2149, 0xebef }, { 2162, 0x8a5f }, { 2171, 0xdfbb },
- /* 0x5300 */
- { 2184, 0xef62 }, { 2194, 0xb6e7 }, { 2205, 0xb49f }, { 2215, 0xfb9f },
- { 2228, 0x77bf }, { 2241, 0xf49e }, { 2251, 0xf2db }, { 2262, 0xfbbf },
- { 2276, 0xc414 }, { 2281, 0xf7dc }, { 2293, 0x7ff5 }, { 2306, 0x0a55 },
- { 2312, 0x3f2e }, { 2322, 0x8fd7 }, { 2333, 0xff7f }, { 2348, 0x59ef },
- /* 0x5400 */
- { 2359, 0xffda }, { 2372, 0xff5f }, { 2386, 0xfffb }, { 2401, 0x7bff },
- { 2415, 0xedef }, { 2428, 0x0010 }, { 2429, 0xbfff }, { 2444, 0xfdff },
- { 2459, 0xf9f7 }, { 2472, 0x55ff }, { 2484, 0xffff }, { 2500, 0xffdf },
- { 2515, 0xfbff }, { 2530, 0x4441 }, { 2534, 0xefff }, { 2549, 0xbd8e },
- /* 0x5500 */
- { 2559, 0xfffe }, { 2574, 0x459f }, { 2583, 0xfde8 }, { 2594, 0xdbff },
- { 2608, 0xeffb }, { 2622, 0xf0ef }, { 2633, 0x0e7e }, { 2642, 0xfaee },
- { 2654, 0xffdf }, { 2669, 0xb73f }, { 2681, 0x7ffe }, { 2695, 0x9e3f },
- { 2706, 0xffff }, { 2722, 0xffff }, { 2738, 0x97fe }, { 2750, 0xfee7 },
- /* 0x5600 */
- { 2763, 0xf377 }, { 2775, 0xf8ff }, { 2788, 0xf6af }, { 2800, 0xeffd },
- { 2814, 0xf76f }, { 2827, 0x679d }, { 2837, 0xff7f }, { 2852, 0xdfdf },
- { 2866, 0xfeff }, { 2881, 0xf7ad }, { 2893, 0xfdf2 }, { 2905, 0xf2fe },
- { 2917, 0x3f6f }, { 2929, 0xecda }, { 2939, 0xecb7 }, { 2950, 0xa683 },
- /* 0x5700 */
- { 2957, 0x3f9f }, { 2969, 0xfd7c }, { 2981, 0xf70d }, { 2991, 0xe81d },
- { 2999, 0xfeef }, { 3013, 0x8897 }, { 3020, 0xafd6 }, { 3031, 0xfcff },
- { 3045, 0xbd0d }, { 3054, 0xffb9 }, { 3067, 0x44bf }, { 3076, 0xff70 },
- { 3087, 0xd9de }, { 3098, 0xf0b5 }, { 3107, 0xf2ff }, { 3120, 0x7fff },
- /* 0x5800 */
- { 3135, 0x7fff }, { 3150, 0x7a15 }, { 3158, 0xf7ff }, { 3173, 0xafff },
- { 3187, 0xff91 }, { 3198, 0xffbe }, { 3212, 0xbb3c }, { 3222, 0xfe7e },
- { 3235, 0xcfef }, { 3248, 0xf71f }, { 3260, 0xdfeb }, { 3273, 0xfc6b },
- { 3284, 0xcbe6 }, { 3294, 0xff7f }, { 3309, 0x9b9d }, { 3319, 0xfe1d },
- /* 0x5900 */
- { 3330, 0xf4fc }, { 3341, 0x96f6 }, { 3351, 0xfeb5 }, { 3363, 0x5196 },
- { 3370, 0xc7b1 }, { 3379, 0x15bb }, { 3388, 0x6ea7 }, { 3398, 0xfbff },
- { 3413, 0xe63f }, { 3424, 0xe7dd }, { 3436, 0xd1ff }, { 3448, 0x7fff },
- { 3463, 0xfffb }, { 3478, 0x7f5f }, { 3491, 0xff7b }, { 3505, 0xffff },
- /* 0x5a00 */
- { 3521, 0xbe0f }, { 3531, 0xdfee }, { 3544, 0x7ebb }, { 3556, 0x73e8 },
- { 3565, 0x37ff }, { 3578, 0xffff }, { 3594, 0x7fff }, { 3609, 0xff83 },
- { 3620, 0xdd5e }, { 3631, 0xfeff }, { 3646, 0xdae7 }, { 3657, 0xffff },
- { 3673, 0xffdf }, { 3688, 0xffe8 }, { 3700, 0x7f7f }, { 3714, 0xeffd },
- /* 0x5b00 */
- { 3728, 0xbbae }, { 3739, 0xeefb }, { 3752, 0xfdfb }, { 3766, 0xf115 },
- { 3774, 0xfdfb }, { 3788, 0xbdfb }, { 3801, 0x7b7c }, { 3812, 0xbdff },
- { 3826, 0xdbbf }, { 3839, 0xffed }, { 3853, 0x75fc }, { 3864, 0x8379 },
- { 3872, 0x7cff }, { 3885, 0xc3ff }, { 3897, 0xdfff }, { 3912, 0x856f },
- /* 0x5c00 */
- { 3921, 0xffba }, { 3934, 0xd47f }, { 3945, 0x153d }, { 3953, 0xdf8b },
- { 3964, 0xfff3 }, { 3978, 0x737b }, { 3989, 0xf7bd }, { 4002, 0x5e1a },
- { 4010, 0xbf60 }, { 4019, 0xf63f }, { 4031, 0xffff }, { 4047, 0x05eb },
- { 4055, 0xdfc6 }, { 4066, 0xcfdf }, { 4079, 0xf720 }, { 4087, 0xabf3 },
- /* 0x5d00 */
- { 4098, 0xf8c3 }, { 4107, 0xeff7 }, { 4121, 0xd3fd }, { 4133, 0xf7ff },
- { 4148, 0x5fef }, { 4161, 0x4ae7 }, { 4170, 0x9bac }, { 4179, 0xfe97 },
- { 4191, 0x6ff7 }, { 4204, 0xf6bc }, { 4215, 0xff97 }, { 4228, 0x37f7 },
- { 4240, 0xaacf }, { 4250, 0xe9f6 }, { 4261, 0x49e7 }, { 4270, 0xe2bf },
- /* 0x5e00 */
- { 4281, 0x5e5c }, { 4290, 0xaff6 }, { 4302, 0x6b3f }, { 4313, 0x61d8 },
- { 4320, 0xfd3f }, { 4333, 0xfbb8 }, { 4344, 0xffcf }, { 4358, 0xff7d },
- { 4372, 0xbfdd }, { 4385, 0x1ee4 }, { 4393, 0x7dfd }, { 4406, 0x63ff },
- { 4418, 0x7ff6 }, { 4431, 0xffff }, { 4447, 0xd3ef }, { 4459, 0xdfde },
- /* 0x5f00 */
- { 4472, 0xfdb6 }, { 4484, 0xadbc }, { 4494, 0x63fc }, { 4504, 0x15eb },
- { 4513, 0xff59 }, { 4525, 0x33d3 }, { 4534, 0xbebe }, { 4546, 0xfbdf },
- { 4560, 0x1fef }, { 4572, 0xdbc7 }, { 4583, 0xfff3 }, { 4597, 0xfee6 },
- { 4609, 0xb23f }, { 4619, 0xebf7 }, { 4632, 0xed3b }, { 4643, 0xadba },
- /* 0x6000 */
- { 4653, 0xfe01 }, { 4661, 0x7eff }, { 4675, 0xffff }, { 4691, 0x0abe },
- { 4699, 0x36ff }, { 4711, 0xef3d }, { 4723, 0xfffc }, { 4737, 0xc0a5 },
- { 4743, 0x77fb }, { 4756, 0xfcf5 }, { 4768, 0x019d }, { 4774, 0xffff },
- { 4790, 0xfffb }, { 4805, 0xffba }, { 4818, 0x03df }, { 4827, 0xffff },
- /* 0x6100 */
- { 4843, 0xfffb }, { 4858, 0xbf7d }, { 4871, 0xdb8c }, { 4880, 0xe8d5 },
- { 4889, 0xfff7 }, { 4904, 0xff7d }, { 4918, 0xddff }, { 4932, 0x76ff },
- { 4945, 0x7e8f }, { 4956, 0xbf7f }, { 4970, 0xff96 }, { 4982, 0xd7ff },
- { 4996, 0xbfef }, { 5010, 0xc549 }, { 5017, 0x6ffd }, { 5030, 0xffe7 },
- /* 0x6200 */
- { 5044, 0x779b }, { 5055, 0x8e77 }, { 5065, 0x7ebf }, { 5078, 0xe6dd },
- { 5089, 0x7fcf }, { 5102, 0x5f1f }, { 5113, 0xe17f }, { 5124, 0xfedf },
- { 5138, 0xd7ff }, { 5152, 0x21ff }, { 5162, 0xff50 }, { 5172, 0xfb7b },
- { 5185, 0xfffc }, { 5199, 0x9fff }, { 5213, 0xf820 }, { 5219, 0xffff },
- /* 0x6300 */
- { 5235, 0xfb8f }, { 5247, 0x017b }, { 5254, 0xff00 }, { 5262, 0x7ffe },
- { 5276, 0xffff }, { 5292, 0x07f3 }, { 5301, 0xfbb0 }, { 5311, 0xbfe7 },
- { 5324, 0xffbf }, { 5339, 0xfbd7 }, { 5352, 0xffbf }, { 5367, 0x6203 },
- { 5372, 0xffff }, { 5388, 0xffef }, { 5403, 0xefff }, { 5418, 0x5b7f },
- /* 0x6400 */
- { 5430, 0xfec0 }, { 5439, 0xddfd }, { 5452, 0xfdff }, { 5467, 0xeffd },
- { 5481, 0x680b }, { 5487, 0xff1f }, { 5500, 0xfbe3 }, { 5512, 0xbfff },
- { 5527, 0xbfa4 }, { 5537, 0xf7ef }, { 5551, 0xfa7d }, { 5563, 0xf85f },
- { 5574, 0xeebf }, { 5587, 0x2fdd }, { 5598, 0xbfff }, { 5613, 0xfd9f },
- /* 0x6500 */
- { 5626, 0xf6db }, { 5638, 0xfbfb }, { 5652, 0xfe7f }, { 5666, 0xebfd },
- { 5679, 0xa76a }, { 5688, 0xf3fa }, { 5700, 0xbdfc }, { 5712, 0x9ffc },
- { 5724, 0x1bff }, { 5736, 0xfaf7 }, { 5749, 0xddb7 }, { 5761, 0xfbed },
- { 5774, 0xf87e }, { 5785, 0xecdf }, { 5797, 0xf36f }, { 5809, 0xbc3f },
- /* 0x6600 */
- { 5820, 0xfffd }, { 5835, 0xf13f }, { 5846, 0xe9ff }, { 5859, 0x067f },
- { 5868, 0x9fbe }, { 5880, 0xfe8e }, { 5891, 0xddfe }, { 5904, 0x7fdf },
- { 5918, 0x7ff1 }, { 5930, 0xa7f7 }, { 5942, 0xef17 }, { 5953, 0xefff },
- { 5968, 0xffd1 }, { 5980, 0x7f44 }, { 5989, 0x7b59 }, { 5999, 0xd3df },
- /* 0x6700 */
- { 6011, 0xff3f }, { 6025, 0xebfd }, { 6038, 0x7def }, { 6051, 0xff7a },
- { 6064, 0xfbf0 }, { 6075, 0xf6eb }, { 6087, 0xbc87 }, { 6096, 0xffff },
- { 6112, 0xfafa }, { 6124, 0xb7bf }, { 6137, 0xd011 }, { 6142, 0x8fff },
- { 6155, 0xff7f }, { 6170, 0xffdf }, { 6185, 0xfefc }, { 6198, 0xd7ff },
- /* 0x6800 */
- { 6212, 0x201f }, { 6218, 0xfddd }, { 6231, 0xef67 }, { 6243, 0x7ffe },
- { 6257, 0xffff }, { 6273, 0x207b }, { 6280, 0xe820 }, { 6285, 0xfbf6 },
- { 6298, 0x9fff }, { 6312, 0xb9df }, { 6324, 0xffdf }, { 6339, 0x227f },
- { 6348, 0x7ff8 }, { 6360, 0xf5ff }, { 6374, 0xdfdb }, { 6387, 0x3fff },
- /* 0x6900 */
- { 6401, 0xffff }, { 6417, 0x0fbf }, { 6428, 0x9420 }, { 6432, 0xfbfd },
- { 6446, 0xdf7f }, { 6460, 0xfffe }, { 6475, 0xffff }, { 6491, 0x0fff },
- { 6503, 0x646d }, { 6511, 0xdffb }, { 6525, 0xffff }, { 6541, 0xfaff },
- { 6555, 0xfe5f }, { 6568, 0x027b }, { 6575, 0x7bf6 }, { 6587, 0xffde },
- /* 0x6a00 */
- { 6601, 0xbfff }, { 6616, 0xfffa }, { 6630, 0x39eb }, { 6640, 0xff3c },
- { 6652, 0xfbfb }, { 6666, 0xefff }, { 6681, 0xafff }, { 6695, 0xc452 },
- { 6701, 0xf6bf }, { 6714, 0xfeff }, { 6729, 0xf9ff }, { 6743, 0x6ffe },
- { 6756, 0xbfec }, { 6768, 0xff1b }, { 6780, 0xdda3 }, { 6790, 0x1f4b },
- /* 0x6b00 */
- { 6799, 0x8f3d }, { 6809, 0x67cf }, { 6820, 0xb12b }, { 6828, 0xfffe },
- { 6843, 0x7fee }, { 6856, 0xdaf7 }, { 6868, 0xa4ff }, { 6879, 0xcfd4 },
- { 6889, 0xf75f }, { 6902, 0xcbf2 }, { 6912, 0xecfd }, { 6924, 0xb4ed },
- { 6934, 0xbffb }, { 6948, 0x5ddd }, { 6959, 0x9ddf }, { 6971, 0xff8d },
- /* 0x6c00 */
- { 6983, 0xbb7f }, { 6996, 0xbf7b }, { 7009, 0xddfb }, { 7022, 0xeffb },
- { 7036, 0xfe4f }, { 7048, 0xffb5 }, { 7061, 0xefe3 }, { 7073, 0xef7f },
- { 7087, 0xffff }, { 7103, 0xbf7d }, { 7116, 0xfc04 }, { 7123, 0xffdf },
- { 7138, 0xfeff }, { 7153, 0xfeff }, { 7168, 0xffaf }, { 7182, 0x822f },
- /* 0x6d00 */
- { 7189, 0xffff }, { 7205, 0xefc7 }, { 7217, 0xfff5 }, { 7231, 0xffff },
- { 7247, 0x4007 }, { 7251, 0xdf80 }, { 7259, 0xf7ff }, { 7274, 0xfff7 },
- { 7289, 0xffff }, { 7305, 0x01ff }, { 7314, 0xdc30 }, { 7321, 0xffbe },
- { 7335, 0xbff5 }, { 7348, 0xffff }, { 7364, 0xff7f }, { 7379, 0x7eff },
- /* 0x6e00 */
- { 7393, 0x843d }, { 7400, 0xbf20 }, { 7408, 0xffff }, { 7424, 0xff7f },
- { 7439, 0xeefb }, { 7452, 0xff7f }, { 7467, 0xcbff }, { 7480, 0x13de },
- { 7489, 0xeb40 }, { 7496, 0xffdd }, { 7510, 0xccff }, { 7522, 0xffff },
- { 7538, 0xffff }, { 7554, 0x3f7f }, { 7567, 0xfb04 }, { 7575, 0xfff6 },
- /* 0x6f00 */
- { 7589, 0xffff }, { 7605, 0xd7fc }, { 7617, 0xfeff }, { 7632, 0xffff },
- { 7648, 0xc01b }, { 7654, 0xfdff }, { 7669, 0xfedf }, { 7683, 0xffdd },
- { 7697, 0x7ff7 }, { 7711, 0xe0fd }, { 7721, 0xffff }, { 7737, 0xff7f },
- { 7752, 0xffdf }, { 7767, 0xff38 }, { 7778, 0xfbdf }, { 7792, 0xddd7 },
- /* 0x7000 */
- { 7804, 0xfefb }, { 7818, 0xfff2 }, { 7831, 0x9fdf }, { 7844, 0xdfbf },
- { 7858, 0x3f7f }, { 7871, 0xfdf7 }, { 7885, 0x9fff }, { 7899, 0xf7f3 },
- { 7912, 0xce7e }, { 7923, 0x877e }, { 7933, 0xfafb }, { 7946, 0x7fbb },
- { 7959, 0xfdf1 }, { 7971, 0xf7ff }, { 7986, 0x8017 }, { 7991, 0xfffb },
- /* 0x7100 */
- { 8006, 0x7e75 }, { 8017, 0xfe89 }, { 8027, 0xdb6f }, { 8039, 0x4c7f },
- { 8049, 0xfeff }, { 8064, 0xf75f }, { 8077, 0x5fff }, { 8091, 0x7def },
- { 8104, 0xd7f7 }, { 8117, 0xffd7 }, { 8131, 0xb7bf }, { 8144, 0xf7bf },
- { 8158, 0xcfff }, { 8172, 0xbf77 }, { 8185, 0x79f7 }, { 8197, 0xfb77 },
- /* 0x7200 */
- { 8210, 0xf6ef }, { 8223, 0xeef9 }, { 8235, 0x7fdc }, { 8247, 0xef61 },
- { 8257, 0x9fd7 }, { 8269, 0xffed }, { 8283, 0xd6cf }, { 8294, 0xfbdd },
- { 8307, 0xfbf7 }, { 8321, 0xedff }, { 8335, 0xf7fe }, { 8349, 0xa435 },
- { 8356, 0x7e7f }, { 8369, 0x97d7 }, { 8380, 0x0f5f }, { 8390, 0xffd8 },
- /* 0x7300 */
- { 8402, 0x9d97 }, { 8412, 0x7bcf }, { 8424, 0x7fec }, { 8436, 0xdfff },
- { 8451, 0xf73f }, { 8464, 0xef87 }, { 8475, 0xdfe7 }, { 8488, 0xfdff },
- { 8503, 0xdfff }, { 8518, 0xf1fc }, { 8529, 0x3ff7 }, { 8542, 0xdffc },
- { 8555, 0xffed }, { 8569, 0x7ffd }, { 8583, 0xefff }, { 8598, 0xfff8 },
- /* 0x7400 */
- { 8611, 0x3fff }, { 8625, 0xfef6 }, { 8638, 0xff7f }, { 8653, 0x97ff },
- { 8666, 0xefff }, { 8681, 0xfeff }, { 8696, 0xffbd }, { 8710, 0xf67f },
- { 8723, 0x3fef }, { 8736, 0xdfb5 }, { 8748, 0xaffb }, { 8761, 0xeff7 },
- { 8775, 0x9d2f }, { 8785, 0xfff9 }, { 8799, 0x53ff }, { 8811, 0xe9f7 },
- /* 0x7500 */
- { 8823, 0xf9bd }, { 8835, 0xf7ff }, { 8850, 0xff66 }, { 8862, 0xefbf },
- { 8876, 0xfdc5 }, { 8887, 0xbe3a }, { 8897, 0xfcfd }, { 8910, 0xe7c5 },
- { 8920, 0xfcd9 }, { 8931, 0x6737 }, { 8941, 0x0cbc }, { 8948, 0xff7f },
- { 8963, 0xfdbf }, { 8977, 0xffb7 }, { 8991, 0xa0df }, { 9000, 0xffff },
- /* 0x7600 */
- { 9016, 0xbf8f }, { 9028, 0xfe7b }, { 9041, 0xb3ff }, { 9054, 0x3d3f },
- { 9065, 0xf3cd }, { 9076, 0x97df }, { 9088, 0xf6f7 }, { 9101, 0xff7f },
- { 9116, 0xcfd6 }, { 9127, 0x7e6d }, { 9138, 0xec72 }, { 9147, 0xedb1 },
- { 9157, 0x777c }, { 9168, 0xfe5c }, { 9179, 0xf6fa }, { 9191, 0x5fbf },
- /* 0x7700 */
- { 9204, 0xdfba }, { 9216, 0xee2f }, { 9227, 0xabfd }, { 9239, 0x7ffe },
- { 9253, 0xfcf9 }, { 9265, 0xdf74 }, { 9276, 0xffef }, { 9291, 0xff84 },
- { 9301, 0xfbbf }, { 9315, 0xffaa }, { 9327, 0xbdaf }, { 9339, 0xfeff },
- { 9354, 0xfebc }, { 9366, 0x7fb9 }, { 9378, 0xf3ed }, { 9390, 0x7f9f },
- /* 0x7800 */
- { 9403, 0xf36c }, { 9413, 0xf11f }, { 9423, 0xffef }, { 9438, 0x33bf },
- { 9449, 0x7fbc }, { 9461, 0x701f }, { 9469, 0xff75 }, { 9482, 0xde03 },
- { 9490, 0xf3fb }, { 9503, 0xc7fa }, { 9514, 0xbfbf }, { 9528, 0x5f5f },
- { 9540, 0xffba }, { 9553, 0xedbf }, { 9566, 0xf7bf }, { 9580, 0xfebf },
- /* 0x7900 */
- { 9594, 0x5276 }, { 9602, 0x7a9f }, { 9613, 0xfffa }, { 9627, 0xff7e },
- { 9641, 0x9ff7 }, { 9654, 0xffff }, { 9670, 0x2fbf }, { 9682, 0xf61f },
- { 9693, 0xedcf }, { 9705, 0xbfff }, { 9720, 0x7ff7 }, { 9734, 0xefdf },
- { 9748, 0xfb73 }, { 9760, 0xf176 }, { 9770, 0x7edd }, { 9782, 0x0dd2 },
- /* 0x7a00 */
- { 9789, 0x3d7d }, { 9800, 0xdfbf }, { 9814, 0xed45 }, { 9823, 0xfe83 },
- { 9833, 0x7ff9 }, { 9846, 0x9dd0 }, { 9854, 0x7ba7 }, { 9865, 0xef73 },
- { 9877, 0x9ffb }, { 9890, 0xc3ff }, { 9902, 0xdf0d }, { 9912, 0xddff },
- { 9926, 0x8fbf }, { 9938, 0xbf0a }, { 9947, 0xeefd }, { 9960, 0xeec0 },
- /* 0x7b00 */
- { 9968, 0xdf73 }, { 9980, 0xef1f }, { 9992, 0xfffd }, { 10007, 0x0b3f },
- { 10016, 0xfffd }, { 10031, 0x0177 }, { 10038, 0xf2ff }, { 10051, 0x09ff },
- { 10061, 0xfdb4 }, { 10072, 0x3bf7 }, { 10084, 0xb01f }, { 10092, 0x43b6 },
- { 10100, 0xded3 }, { 10111, 0xff31 }, { 10122, 0x1fff }, { 10135, 0xff9f },
- /* 0x7c00 */
- { 10149, 0xfeef }, { 10163, 0xfa27 }, { 10173, 0x3fef }, { 10186, 0xfba9 },
- { 10197, 0x37bd }, { 10208, 0xbedb }, { 10220, 0xfef9 }, { 10233, 0xff3d },
- { 10246, 0x777b }, { 10258, 0xd1f6 }, { 10268, 0xd1ee }, { 10278, 0xff3e },
- { 10291, 0x7fac }, { 10302, 0xf6ff }, { 10316, 0xf5c5 }, { 10326, 0x7bff },
- /* 0x7d00 */
- { 10340, 0xffff }, { 10356, 0xffff }, { 10372, 0xdb27 }, { 10382, 0xff6f },
- { 10396, 0xe4ff }, { 10408, 0xfd7f }, { 10422, 0xefce }, { 10434, 0xbe0f },
- { 10444, 0xfb7b }, { 10457, 0xf0de }, { 10467, 0xffdf }, { 10482, 0xffbf },
- { 10497, 0xfef7 }, { 10511, 0xff9d }, { 10524, 0xd7fb }, { 10537, 0x6eff },
- /* 0x7e00 */
- { 10550, 0xff88 }, { 10560, 0xfcff }, { 10574, 0xeebf }, { 10587, 0xffff },
- { 10603, 0x13ff }, { 10614, 0xdfff }, { 10629, 0xffaf }, { 10643, 0xfffd },
- { 10658, 0xfdc7 }, { 10670, 0x9ffe }, { 10683, 0x1010 }, { 10685, 0x0400 },
- { 10686, 0x8080 }, { 10688, 0x8000 }, { 10689, 0x0000 }, { 10689, 0x0000 },
- /* 0x7f00 */
- { 10689, 0x0040 }, { 10690, 0x0000 }, { 10690, 0x0000 }, { 10690, 0xe7c0 },
- { 10698, 0xffbb }, { 10712, 0xf93f }, { 10724, 0x7feb }, { 10737, 0xffef },
- { 10752, 0xffe8 }, { 10764, 0x7cfe }, { 10776, 0xf3ff }, { 10790, 0xffff },
- { 10806, 0xfeaf }, { 10819, 0xf8b7 }, { 10830, 0xffef }, { 10845, 0xffbf },
- /* 0x8000 */
- { 10860, 0xf9ff }, { 10874, 0xfbf7 }, { 10888, 0xd773 }, { 10899, 0xfafb },
- { 10912, 0x85c8 }, { 10918, 0x7d57 }, { 10929, 0x90de }, { 10937, 0xe3ef },
- { 10949, 0x9ef5 }, { 10960, 0xbf6d }, { 10972, 0xeeae }, { 10983, 0x35f6 },
- { 10993, 0xf7fc }, { 11006, 0x7ff3 }, { 11019, 0xb27b }, { 11029, 0x7f7f },
- /* 0x8100 */
- { 11043, 0x57ef }, { 11055, 0xeff4 }, { 11067, 0xbebe }, { 11079, 0x6695 },
- { 11087, 0xfddc }, { 11099, 0x5e7f }, { 11111, 0xeaf7 }, { 11123, 0x97df },
- { 11135, 0xbfdd }, { 11148, 0xffa8 }, { 11159, 0x5fed }, { 11171, 0xfeff },
- { 11186, 0xb7ff }, { 11200, 0xefa7 }, { 11212, 0xf7ff }, { 11227, 0xdfdc },
- /* 0x8200 */
- { 11239, 0x3fb7 }, { 11251, 0xfd77 }, { 11264, 0xbf67 }, { 11276, 0xf7fc },
- { 11289, 0xcab5 }, { 11298, 0xdfff }, { 11313, 0xfb7e }, { 11326, 0xfff6 },
- { 11340, 0xecb9 }, { 11350, 0xef1f }, { 11362, 0xffff }, { 11378, 0xfffb },
- { 11393, 0x841d }, { 11399, 0xdbff }, { 11413, 0xfdff }, { 11428, 0xffff },
- /* 0x8300 */
- { 11444, 0x3bff }, { 11457, 0x7fc0 }, { 11466, 0xbff5 }, { 11479, 0xbffe },
- { 11493, 0xffbf }, { 11508, 0x00df }, { 11515, 0x804c }, { 11519, 0xfdf8 },
- { 11531, 0xffea }, { 11544, 0x7fff }, { 11559, 0xdffd }, { 11573, 0xe201 },
- { 11578, 0xffff }, { 11594, 0xfbfa }, { 11607, 0xffbf }, { 11622, 0xff7f },
- /* 0x8400 */
- { 11637, 0xfefa }, { 11650, 0x195f }, { 11659, 0xfa5b }, { 11670, 0xffff },
- { 11686, 0x7ffd }, { 11700, 0xffff }, { 11716, 0xfbff }, { 11731, 0xe7ff },
- { 11745, 0xe145 }, { 11752, 0xffdf }, { 11767, 0xff9f }, { 11781, 0xff57 },
- { 11794, 0xfef7 }, { 11808, 0x4cdf }, { 11818, 0xdfb6 }, { 11830, 0xffdf },
- /* 0x8500 */
- { 11845, 0xffed }, { 11859, 0xf7ff }, { 11874, 0xfffb }, { 11889, 0x691b },
- { 11897, 0x7fff }, { 11912, 0xeffe }, { 11926, 0xffff }, { 11942, 0x5feb },
- { 11954, 0xffff }, { 11970, 0xfff3 }, { 11984, 0x87df }, { 11995, 0xe7fb },
- { 12008, 0xebff }, { 12022, 0xf7e7 }, { 12035, 0xff7f }, { 12050, 0xffc7 },
- /* 0x8600 */
- { 12063, 0xbef7 }, { 12076, 0xdfd3 }, { 12088, 0xf7ff }, { 12103, 0xdf7e },
- { 12116, 0x79ed }, { 12127, 0xda7d }, { 12138, 0xffbe }, { 12152, 0x5e9f },
- { 12163, 0x7ce0 }, { 12171, 0x77ff }, { 12185, 0xa7bf }, { 12197, 0xffff },
- { 12213, 0x1bff }, { 12225, 0xffdb }, { 12239, 0xbf5c }, { 12250, 0x4fe0 },
- /* 0x8700 */
- { 12258, 0x7fff }, { 12273, 0x5f0e }, { 12282, 0x77ff }, { 12296, 0xddbf },
- { 12309, 0xf04f }, { 12318, 0xffff }, { 12334, 0xffff }, { 12350, 0x2ffb },
- { 12362, 0xbbfe }, { 12375, 0xfddf }, { 12389, 0xfe3c }, { 12400, 0xffff },
- { 12416, 0x5f7f }, { 12429, 0xffde }, { 12443, 0xfdff }, { 12458, 0xdefc },
- /* 0x8800 */
- { 12470, 0xbf7f }, { 12484, 0xbbfb }, { 12497, 0xffff }, { 12513, 0xfbef },
- { 12527, 0xfd7f }, { 12541, 0x6eec }, { 12551, 0xefbf }, { 12565, 0xf2f7 },
- { 12577, 0xfb9f }, { 12590, 0xdfef }, { 12604, 0x5d97 }, { 12614, 0xf7f6 },
- { 12627, 0xfea7 }, { 12639, 0xfff5 }, { 12653, 0xd9c2 }, { 12661, 0xffff },
- /* 0x8900 */
- { 12677, 0x5ee7 }, { 12688, 0xc7ff }, { 12701, 0xfefe }, { 12715, 0x79ef },
- { 12727, 0xbade }, { 12738, 0xffdf }, { 12753, 0xfe7f }, { 12767, 0xdede },
- { 12779, 0x8fef }, { 12791, 0xf9fa }, { 12803, 0xf6fe }, { 12816, 0xf6c4 },
- { 12825, 0x0043 }, { 12828, 0xbe7c }, { 12839, 0x3bff }, { 12852, 0xdddf },
- /* 0x8a00 */
- { 12865, 0xd59d }, { 12875, 0xf9ef }, { 12888, 0x3eac }, { 12897, 0xff53 },
- { 12909, 0xf773 }, { 12921, 0x4bf7 }, { 12932, 0x7bcf }, { 12944, 0xdeff },
- { 12958, 0xb8fe }, { 12969, 0x577f }, { 12981, 0x8ffb }, { 12993, 0xff55 },
- { 13005, 0xabfd }, { 13017, 0xfffe }, { 13032, 0xedd7 }, { 13044, 0xddff },
- /* 0x8b00 */
- { 13058, 0xfdf7 }, { 13072, 0xffff }, { 13088, 0xfdfd }, { 13102, 0xfeeb },
- { 13115, 0xffef }, { 13130, 0xf7ff }, { 13145, 0xbfed }, { 13158, 0xef91 },
- { 13168, 0x5d7f }, { 13180, 0xdf7d }, { 13193, 0x0001 }, { 13194, 0x4000 },
- { 13195, 0x0000 }, { 13195, 0x0000 }, { 13195, 0x0004 }, { 13196, 0x0000 },
- /* 0x8c00 */
- { 13196, 0x0000 }, { 13196, 0x0000 }, { 13196, 0x0000 }, { 13196, 0xfa80 },
- { 13203, 0xffee }, { 13217, 0xb4f3 }, { 13227, 0xbf76 }, { 13239, 0x2fef },
- { 13251, 0xb677 }, { 13262, 0xffbf }, { 13277, 0xbfbf }, { 13291, 0xfffd },
- { 13306, 0xb5bf }, { 13318, 0xfefe }, { 13332, 0x7fff }, { 13347, 0x7fbf },
- /* 0x8d00 */
- { 13361, 0xbffd }, { 13375, 0x3bff }, { 13388, 0x0000 }, { 13388, 0x0000 },
- { 13388, 0x0000 }, { 13388, 0x0000 }, { 13388, 0xfbd0 }, { 13398, 0x2fdd },
- { 13409, 0xf637 }, { 13420, 0x9a7f }, { 13431, 0xffeb }, { 13445, 0xd6fc },
- { 13456, 0xf9ef }, { 13469, 0xbffb }, { 13483, 0xdfdf }, { 13497, 0xf41f },
- /* 0x8e00 */
- { 13507, 0xe6ff }, { 13520, 0xffff }, { 13536, 0x6fff }, { 13550, 0xf77b },
- { 13563, 0xfff7 }, { 13578, 0xfef9 }, { 13591, 0xb7ff }, { 13605, 0x5dfe },
- { 13617, 0x7ff7 }, { 13631, 0xe5ff }, { 13644, 0x3ffb }, { 13657, 0x3645 },
- { 13664, 0xfe0d }, { 13674, 0xfd9e }, { 13686, 0xfbf7 }, { 13700, 0xdff6 },
- /* 0x8f00 */
- { 13713, 0x6fef }, { 13726, 0xffff }, { 13742, 0xf679 }, { 13753, 0xcbfd },
- { 13765, 0xefff }, { 13780, 0xffff }, { 13796, 0x40df }, { 13804, 0x0000 },
- { 13804, 0x0000 }, { 13804, 0x9808 }, { 13808, 0xe1e9 }, { 13817, 0xdfff },
- { 13832, 0xfe76 }, { 13844, 0x04ff }, { 13853, 0x6d7f }, { 13865, 0xfff1 },
- /* 0x9000 */
- { 13878, 0xb97f }, { 13890, 0xfef7 }, { 13904, 0xe01f }, { 13912, 0xf1fe },
- { 13924, 0xfe96 }, { 13935, 0x7b7f }, { 13948, 0xfb9f }, { 13961, 0xfffd },
- { 13976, 0xadff }, { 13989, 0xcbb3 }, { 13999, 0xc5ef }, { 14010, 0xe97f },
- { 14022, 0x4dba }, { 14031, 0xbff0 }, { 14042, 0xbf3f }, { 14055, 0xfe3f },
- /* 0x9100 */
- { 14068, 0xebff }, { 14082, 0xffd7 }, { 14096, 0xffdf }, { 14111, 0xcf7f },
- { 14124, 0xfffb }, { 14139, 0xd7ef }, { 14152, 0xd7bf }, { 14165, 0x17fd },
- { 14176, 0xfeff }, { 14191, 0xfe0f }, { 14202, 0xffaf }, { 14216, 0x7eff },
- { 14230, 0xfaff }, { 14244, 0xb7fb }, { 14257, 0x7ffc }, { 14270, 0xe7fa },
- /* 0x9200 */
- { 14282, 0xf7ff }, { 14297, 0x56ff }, { 14309, 0x6dfa }, { 14320, 0xf7ff },
- { 14335, 0xff73 }, { 14348, 0xedff }, { 14362, 0xf8ff }, { 14375, 0xffc5 },
- { 14387, 0xffff }, { 14403, 0x3ffa }, { 14415, 0x5fff }, { 14429, 0xdefe },
- { 14442, 0xffff }, { 14458, 0xebbf }, { 14471, 0xdffb }, { 14485, 0xffdf },
- /* 0x9300 */
- { 14500, 0xfbdf }, { 14514, 0xef7d }, { 14527, 0xffff }, { 14543, 0x137b },
- { 14552, 0xffff }, { 14568, 0xdff7 }, { 14582, 0x7fff }, { 14597, 0x7ffb },
- { 14611, 0xf7ff }, { 14626, 0xfff7 }, { 14641, 0xf7ff }, { 14656, 0xa9bf },
- { 14667, 0xfddd }, { 14680, 0xffff }, { 14696, 0x51df }, { 14706, 0xfffb },
- /* 0x9400 */
- { 14721, 0xffdb }, { 14735, 0x2bff }, { 14747, 0x7ff1 }, { 14759, 0xffef },
- { 14774, 0xbffd }, { 14788, 0x69b7 }, { 14798, 0xffbd }, { 14812, 0xfbff },
- { 14827, 0x002f }, { 14832, 0x8000 }, { 14833, 0x0004 }, { 14834, 0x0000 },
- { 14834, 0x000a }, { 14836, 0x1000 }, { 14837, 0x0000 }, { 14837, 0x0040 },
- /* 0x9500 */
- { 14838, 0x0000 }, { 14838, 0x0000 }, { 14838, 0x2000 }, { 14839, 0x0000 },
- { 14839, 0x0080 }, { 14840, 0x0000 }, { 14840, 0x0000 }, { 14840, 0xbd80 },
- { 14847, 0xfb6d }, { 14859, 0xdbdf }, { 14872, 0x7fff }, { 14887, 0xfee3 },
- { 14899, 0x3fe9 }, { 14910, 0xdc7f }, { 14922, 0x013f }, { 14929, 0x0010 },
- /* 0x9600 */
- { 14930, 0x0000 }, { 14930, 0x7000 }, { 14933, 0xf51f }, { 14944, 0xbf0f },
- { 14955, 0xfc3f }, { 14967, 0xf95b }, { 14978, 0xbe1e }, { 14988, 0x79ff },
- { 15001, 0xeffb }, { 15015, 0x5bfe }, { 15027, 0x57be }, { 15038, 0xbb5b },
- { 15049, 0x7fff }, { 15064, 0xfffc }, { 15078, 0x872e }, { 15086, 0xaff7 },
- /* 0x9700 */
- { 15099, 0xebfd }, { 15112, 0xfb4f }, { 15124, 0xdfff }, { 15139, 0xe767 },
- { 15150, 0x0bdf }, { 15160, 0xfde6 }, { 15172, 0x7747 }, { 15182, 0xfddf },
- { 15196, 0xefbf }, { 15210, 0xff90 }, { 15220, 0x7d7f }, { 15233, 0xefde },
- { 15246, 0xfbff }, { 15261, 0xf3fd }, { 15274, 0x606b }, { 15281, 0xef6f },
- /* 0x9800 */
- { 15294, 0xf5ff }, { 15308, 0xf9ff }, { 15322, 0xebdb }, { 15334, 0x0bbd },
- { 15343, 0xfffa }, { 15357, 0xfb8f }, { 15369, 0x9ffd }, { 15382, 0x003f },
- { 15388, 0x0000 }, { 15388, 0x0000 }, { 15388, 0xf300 }, { 15394, 0xffde },
- { 15408, 0x5fdf }, { 15421, 0xd800 }, { 15425, 0xbeef }, { 15438, 0x7676 },
- /* 0x9900 */
- { 15448, 0x57ad }, { 15458, 0xdfff }, { 15473, 0xffb2 }, { 15485, 0xffaf },
- { 15499, 0x7faf }, { 15512, 0xfbff }, { 15527, 0x000e }, { 15530, 0x0000 },
- { 15530, 0x0000 }, { 15530, 0x7bc0 }, { 15538, 0xfdfa }, { 15551, 0x3f3f },
- { 15563, 0xfabe }, { 15575, 0xbfff }, { 15590, 0x76ff }, { 15603, 0xfff3 },
- /* 0x9a00 */
- { 15617, 0xfefe }, { 15631, 0xfe73 }, { 15643, 0xfeff }, { 15658, 0xfff7 },
- { 15673, 0xf77f }, { 15687, 0xdffd }, { 15701, 0x1ffd }, { 15713, 0x0000 },
- { 15713, 0x8000 }, { 15714, 0x0000 }, { 15714, 0xa900 }, { 15718, 0xffdf },
- { 15733, 0xa4c7 }, { 15741, 0x91ff }, { 15752, 0xf8cf }, { 15763, 0xfede },
- /* 0x9b00 */
- { 15776, 0xff7e }, { 15790, 0xc7f7 }, { 15802, 0xefbd }, { 15815, 0xdebe },
- { 15827, 0xfd7f }, { 15841, 0x8f77 }, { 15852, 0x93d3 }, { 15861, 0xfcf3 },
- { 15873, 0xe9ef }, { 15885, 0xecaf }, { 15896, 0xed77 }, { 15908, 0xa361 },
- { 15915, 0x87db }, { 15925, 0x7ef8 }, { 15936, 0x3ff7 }, { 15949, 0xa193 },
- /* 0x9c00 */
- { 15956, 0x7fe4 }, { 15967, 0xb8bd }, { 15977, 0xbb7b }, { 15989, 0xfefe },
- { 16003, 0xff73 }, { 16016, 0xe3fd }, { 16028, 0x61cd }, { 16036, 0x1fbe },
- { 16047, 0x0000 }, { 16047, 0x0000 }, { 16047, 0x0000 }, { 16047, 0x0000 },
- { 16047, 0x0000 }, { 16047, 0x0000 }, { 16047, 0x26e0 }, { 16053, 0xbefe },
- /* 0x9d00 */
- { 16066, 0x13fd }, { 16076, 0xebf5 }, { 16088, 0xe36f }, { 16099, 0xebdb },
- { 16111, 0xde3f }, { 16123, 0xffdf }, { 16138, 0xff83 }, { 16149, 0xfbbf },
- { 16163, 0x1fff }, { 16176, 0xffdd }, { 16190, 0xbfff }, { 16205, 0xfffe },
- { 16220, 0xffbf }, { 16235, 0xffff }, { 16251, 0xfb7e }, { 16264, 0xfffd },
- /* 0x9e00 */
- { 16279, 0xfeff }, { 16294, 0xffbf }, { 16309, 0x0000 }, { 16309, 0x0000 },
- { 16309, 0x0000 }, { 16309, 0x0000 }, { 16309, 0x0000 }, { 16309, 0xbe20 },
- { 16316, 0x7fff }, { 16331, 0xffff }, { 16347, 0xfff7 }, { 16362, 0xf8f3 },
- { 16373, 0xf1df }, { 16385, 0xfd7b }, { 16398, 0xe9f5 }, { 16409, 0xffff },
- /* 0x9f00 */
- { 16425, 0xc7c7 }, { 16435, 0x5fed }, { 16447, 0xfffd }, { 16462, 0x6bff },
- { 16475, 0xffff }, { 16491, 0xfffd }, { 16506, 0xdeff }, { 16520, 0xcff7 },
- { 16533, 0x6000 }, { 16535, 0x9337 }, { 16544, 0x0035 },
-};
-static const Summary16 big5hkscs_uni2indx_pagee0[419] = {
- /* 0xe000 */
- { 16548, 0xffff }, { 16564, 0xffff }, { 16580, 0xffff }, { 16596, 0xffff },
- { 16612, 0xffff }, { 16628, 0xffff }, { 16644, 0xffff }, { 16660, 0xffff },
- { 16676, 0xffff }, { 16692, 0xffff }, { 16708, 0xffff }, { 16724, 0xffff },
- { 16740, 0xffff }, { 16756, 0xffff }, { 16772, 0xffff }, { 16788, 0xffff },
- /* 0xe100 */
- { 16804, 0xffff }, { 16820, 0xffff }, { 16836, 0xffff }, { 16852, 0xffff },
- { 16868, 0xffff }, { 16884, 0xffff }, { 16900, 0xffff }, { 16916, 0xffff },
- { 16932, 0xffff }, { 16948, 0xffff }, { 16964, 0xffff }, { 16980, 0xffff },
- { 16996, 0xffff }, { 17012, 0xffff }, { 17028, 0xffff }, { 17044, 0xffff },
- /* 0xe200 */
- { 17060, 0xffff }, { 17076, 0xffff }, { 17092, 0xffff }, { 17108, 0xffff },
- { 17124, 0xffff }, { 17140, 0xffff }, { 17156, 0xffff }, { 17172, 0xffff },
- { 17188, 0xffff }, { 17204, 0xffff }, { 17220, 0xffff }, { 17236, 0xffff },
- { 17252, 0xffff }, { 17268, 0xffff }, { 17284, 0xffff }, { 17300, 0xffff },
- /* 0xe300 */
- { 17316, 0xffff }, { 17332, 0xffff }, { 17348, 0xffff }, { 17364, 0xffff },
- { 17380, 0xffff }, { 17396, 0xffff }, { 17412, 0xffff }, { 17428, 0xffff },
- { 17444, 0xffff }, { 17460, 0xffff }, { 17476, 0xffff }, { 17492, 0xffff },
- { 17508, 0xffff }, { 17524, 0xffff }, { 17540, 0xffff }, { 17556, 0xffff },
- /* 0xe400 */
- { 17572, 0xffff }, { 17588, 0xffff }, { 17604, 0xffff }, { 17620, 0xffff },
- { 17636, 0xffff }, { 17652, 0xffff }, { 17668, 0xffff }, { 17684, 0xffff },
- { 17700, 0xffff }, { 17716, 0xffff }, { 17732, 0xffff }, { 17748, 0xffff },
- { 17764, 0xffff }, { 17780, 0xffff }, { 17796, 0xffff }, { 17812, 0xffff },
- /* 0xe500 */
- { 17828, 0xffff }, { 17844, 0xffff }, { 17860, 0xffff }, { 17876, 0xffff },
- { 17892, 0xffff }, { 17908, 0xffff }, { 17924, 0xffff }, { 17940, 0xffff },
- { 17956, 0xffff }, { 17972, 0xffff }, { 17988, 0xffff }, { 18004, 0xffff },
- { 18020, 0xffff }, { 18036, 0xffff }, { 18052, 0xffff }, { 18068, 0xffff },
- /* 0xe600 */
- { 18084, 0xffff }, { 18100, 0xffff }, { 18116, 0xffff }, { 18132, 0xffff },
- { 18148, 0xffff }, { 18164, 0xffff }, { 18180, 0xffff }, { 18196, 0xffff },
- { 18212, 0xffff }, { 18228, 0xffff }, { 18244, 0xffff }, { 18260, 0xffff },
- { 18276, 0xffff }, { 18292, 0xffff }, { 18308, 0xffff }, { 18324, 0xffff },
- /* 0xe700 */
- { 18340, 0xffff }, { 18356, 0xffff }, { 18372, 0xffff }, { 18388, 0xffff },
- { 18404, 0xffff }, { 18420, 0xffff }, { 18436, 0xffff }, { 18452, 0xffff },
- { 18468, 0xffff }, { 18484, 0xffff }, { 18500, 0xffff }, { 18516, 0xffff },
- { 18532, 0xffff }, { 18548, 0xffff }, { 18564, 0xffff }, { 18580, 0xffff },
- /* 0xe800 */
- { 18596, 0xffff }, { 18612, 0xffff }, { 18628, 0xffff }, { 18644, 0xffff },
- { 18660, 0xffff }, { 18676, 0xffff }, { 18692, 0xffff }, { 18708, 0xffff },
- { 18724, 0xffff }, { 18740, 0xffff }, { 18756, 0xffff }, { 18772, 0xffff },
- { 18788, 0xffff }, { 18804, 0xffff }, { 18820, 0xffff }, { 18836, 0xffff },
- /* 0xe900 */
- { 18852, 0xffff }, { 18868, 0xffff }, { 18884, 0xffff }, { 18900, 0xffff },
- { 18916, 0xffff }, { 18932, 0xffff }, { 18948, 0xffff }, { 18964, 0xffff },
- { 18980, 0xffff }, { 18996, 0xffff }, { 19012, 0xffff }, { 19028, 0xffff },
- { 19044, 0xffff }, { 19060, 0xffff }, { 19076, 0xffff }, { 19092, 0xffff },
- /* 0xea00 */
- { 19108, 0xffff }, { 19124, 0xffff }, { 19140, 0xffff }, { 19156, 0xffff },
- { 19172, 0xffff }, { 19188, 0xffff }, { 19204, 0xffff }, { 19220, 0xffff },
- { 19236, 0xffff }, { 19252, 0xffff }, { 19268, 0xffff }, { 19284, 0xffff },
- { 19300, 0xffff }, { 19316, 0xffff }, { 19332, 0xffff }, { 19348, 0xffff },
- /* 0xeb00 */
- { 19364, 0xffff }, { 19380, 0xffff }, { 19396, 0xffff }, { 19412, 0xffff },
- { 19428, 0xffff }, { 19444, 0xffff }, { 19460, 0xffff }, { 19476, 0xffff },
- { 19492, 0xffff }, { 19508, 0xffff }, { 19524, 0xffff }, { 19540, 0xffff },
- { 19556, 0xffff }, { 19572, 0xffff }, { 19588, 0xffff }, { 19604, 0xffff },
- /* 0xec00 */
- { 19620, 0xffff }, { 19636, 0xffff }, { 19652, 0xffff }, { 19668, 0xffff },
- { 19684, 0xffff }, { 19700, 0xffff }, { 19716, 0xffff }, { 19732, 0xffff },
- { 19748, 0xffff }, { 19764, 0xffff }, { 19780, 0xffff }, { 19796, 0xffff },
- { 19812, 0xffff }, { 19828, 0xffff }, { 19844, 0xffff }, { 19860, 0xffff },
- /* 0xed00 */
- { 19876, 0xffff }, { 19892, 0xffff }, { 19908, 0xffff }, { 19924, 0xffff },
- { 19940, 0xffff }, { 19956, 0xffff }, { 19972, 0xffff }, { 19988, 0xffff },
- { 20004, 0xffff }, { 20020, 0xffff }, { 20036, 0xffff }, { 20052, 0xffff },
- { 20068, 0xffff }, { 20084, 0xffff }, { 20100, 0xffff }, { 20116, 0xffff },
- /* 0xee00 */
- { 20132, 0xffff }, { 20148, 0xffff }, { 20164, 0xffff }, { 20180, 0xffff },
- { 20196, 0xffff }, { 20212, 0xffff }, { 20228, 0xffff }, { 20244, 0xffff },
- { 20260, 0xffff }, { 20276, 0xffff }, { 20292, 0xffff }, { 20308, 0xffff },
- { 20324, 0xffff }, { 20340, 0xffff }, { 20356, 0xffff }, { 20372, 0xffff },
- /* 0xef00 */
- { 20388, 0xffff }, { 20404, 0xffff }, { 20420, 0xffff }, { 20436, 0xffff },
- { 20452, 0xffff }, { 20468, 0xffff }, { 20484, 0xffff }, { 20500, 0xffff },
- { 20516, 0xffff }, { 20532, 0xffff }, { 20548, 0xffff }, { 20564, 0xffff },
- { 20580, 0xffff }, { 20596, 0xffff }, { 20612, 0xffff }, { 20628, 0xffff },
- /* 0xf000 */
- { 20644, 0xffff }, { 20660, 0xffff }, { 20676, 0xffff }, { 20692, 0xffff },
- { 20708, 0xffff }, { 20724, 0xffff }, { 20740, 0xffff }, { 20756, 0xffff },
- { 20772, 0xffff }, { 20788, 0xffff }, { 20804, 0xffff }, { 20820, 0xffff },
- { 20836, 0xffff }, { 20852, 0xffff }, { 20868, 0xffff }, { 20884, 0xffff },
- /* 0xf100 */
- { 20900, 0xffff }, { 20916, 0xffff }, { 20932, 0xffff }, { 20948, 0xffff },
- { 20964, 0xffff }, { 20980, 0xffff }, { 20996, 0xffff }, { 21012, 0xffff },
- { 21028, 0xffff }, { 21044, 0xffff }, { 21060, 0xffff }, { 21076, 0xffff },
- { 21092, 0xffff }, { 21108, 0xffff }, { 21124, 0xffff }, { 21140, 0xffff },
- /* 0xf200 */
- { 21156, 0xffff }, { 21172, 0xffff }, { 21188, 0xffff }, { 21204, 0xffff },
- { 21220, 0xffff }, { 21236, 0xffff }, { 21252, 0xffff }, { 21268, 0xffff },
- { 21284, 0xffff }, { 21300, 0xffff }, { 21316, 0xffff }, { 21332, 0xffff },
- { 21348, 0xffff }, { 21364, 0xffff }, { 21380, 0xffff }, { 21396, 0xffff },
- /* 0xf300 */
- { 21412, 0xffff }, { 21428, 0xffff }, { 21444, 0xffff }, { 21460, 0xffff },
- { 21476, 0xffff }, { 21492, 0xffff }, { 21508, 0xffff }, { 21524, 0xffff },
- { 21540, 0xffff }, { 21556, 0xffff }, { 21572, 0xffff }, { 21588, 0xffff },
- { 21604, 0xffff }, { 21620, 0xffff }, { 21636, 0xffff }, { 21652, 0xffff },
- /* 0xf400 */
- { 21668, 0xffff }, { 21684, 0xffff }, { 21700, 0xffff }, { 21716, 0xffff },
- { 21732, 0xffff }, { 21748, 0xffff }, { 21764, 0xffff }, { 21780, 0xffff },
- { 21796, 0xffff }, { 21812, 0xffff }, { 21828, 0xffff }, { 21844, 0xffff },
- { 21860, 0xffff }, { 21876, 0xffff }, { 21892, 0xffff }, { 21908, 0xffff },
- /* 0xf500 */
- { 21924, 0xffff }, { 21940, 0xffff }, { 21956, 0xffff }, { 21972, 0xffff },
- { 21988, 0xffff }, { 22004, 0xffff }, { 22020, 0xffff }, { 22036, 0xffff },
- { 22052, 0xffff }, { 22068, 0xffff }, { 22084, 0xffff }, { 22100, 0xffff },
- { 22116, 0xffff }, { 22132, 0xffff }, { 22148, 0xffff }, { 22164, 0xffff },
- /* 0xf600 */
- { 22180, 0xffff }, { 22196, 0xffff }, { 22212, 0xffff }, { 22228, 0xffff },
- { 22244, 0xffff }, { 22260, 0xffff }, { 22276, 0xffff }, { 22292, 0xffff },
- { 22308, 0xffff }, { 22324, 0xffff }, { 22340, 0xffff }, { 22356, 0xffff },
- { 22372, 0xffff }, { 22388, 0xffff }, { 22404, 0xffff }, { 22420, 0xffff },
- /* 0xf700 */
- { 22436, 0xffff }, { 22452, 0xffff }, { 22468, 0xffff }, { 22484, 0xffff },
- { 22500, 0xffff }, { 22516, 0xffff }, { 22532, 0xffff }, { 22548, 0xffff },
- { 22564, 0xffff }, { 22580, 0xffff }, { 22596, 0xffff }, { 22612, 0xffff },
- { 22628, 0xffff }, { 22644, 0xffff }, { 22660, 0xffff }, { 22676, 0xffff },
- /* 0xf800 */
- { 22692, 0xffff }, { 22708, 0xffff }, { 22724, 0xffff }, { 22740, 0xffff },
- { 22756, 0x01ff }, { 22765, 0x0000 }, { 22765, 0x0000 }, { 22765, 0x0000 },
- { 22765, 0x0000 }, { 22765, 0x0000 }, { 22765, 0x0000 }, { 22765, 0x0000 },
- { 22765, 0x0000 }, { 22765, 0x0000 }, { 22765, 0x0000 }, { 22765, 0x0000 },
- /* 0xf900 */
- { 22765, 0xffff }, { 22781, 0xffff }, { 22797, 0xefff }, { 22812, 0xffff },
- { 22828, 0xffff }, { 22844, 0xffff }, { 22860, 0xffff }, { 22876, 0xfdff },
- { 22891, 0xffff }, { 22907, 0xffdf }, { 22922, 0xffff }, { 22938, 0xffff },
- { 22954, 0xffff }, { 22970, 0xffff }, { 22986, 0xff7f }, { 23001, 0xfffd },
- /* 0xfa00 */
- { 23016, 0x3fff }, { 23030, 0x7ee5 }, { 23041, 0x3c64 },
-};
-static const Summary16 big5hkscs_uni2indx_pagefe[31] = {
- /* 0xfe00 */
- { 23048, 0x0000 }, { 23048, 0x0000 }, { 23048, 0x0000 }, { 23048, 0xfffb },
- { 23063, 0xfe1f }, { 23075, 0xfef7 }, { 23089, 0x0f7f }, { 23100, 0x0000 },
- { 23100, 0x0000 }, { 23100, 0x0000 }, { 23100, 0x0000 }, { 23100, 0x0000 },
- { 23100, 0x0000 }, { 23100, 0x0000 }, { 23100, 0x0000 }, { 23100, 0x0000 },
- /* 0xff00 */
- { 23100, 0xfffe }, { 23115, 0xffff }, { 23131, 0xffff }, { 23147, 0xffff },
- { 23163, 0xffff }, { 23179, 0x7fff }, { 23194, 0x0010 }, { 23195, 0x0000 },
- { 23195, 0x0000 }, { 23195, 0x0000 }, { 23195, 0x0000 }, { 23195, 0x0000 },
- { 23195, 0x0000 }, { 23195, 0x0000 }, { 23195, 0x203f },
-};
-
-static int
-big5hkscs_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- const Summary16 *summary = NULL;
- if (wc >= 0x0000 && wc < 0x0100)
- summary = &big5hkscs_uni2indx_page00[(wc>>4)];
- else if (wc >= 0x0200 && wc < 0x03d0)
- summary = &big5hkscs_uni2indx_page02[(wc>>4)-0x020];
- else if (wc >= 0x2000 && wc < 0x22c0)
- summary = &big5hkscs_uni2indx_page20[(wc>>4)-0x200];
- else if (wc >= 0x2500 && wc < 0x2650)
- summary = &big5hkscs_uni2indx_page25[(wc>>4)-0x250];
- else if (wc >= 0x3000 && wc < 0x33e0)
- summary = &big5hkscs_uni2indx_page30[(wc>>4)-0x300];
- else if (wc >= 0x4e00 && wc < 0x9fb0)
- summary = &big5hkscs_uni2indx_page4e[(wc>>4)-0x4e0];
- else if (wc >= 0xe000 && wc < 0xfa30)
- summary = &big5hkscs_uni2indx_pagee0[(wc>>4)-0xe00];
- else if (wc >= 0xfe00 && wc < 0xfff0)
- summary = &big5hkscs_uni2indx_pagefe[(wc>>4)-0xfe0];
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- unsigned short c;
- /* Keep in `used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add `summary->indx' and the number of bits set in `used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- c = big5hkscs_2charset[summary->indx + used];
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
-
diff --git a/nx-X11/lib/X11/lcUniConv/cp1133.h b/nx-X11/lib/X11/lcUniConv/cp1133.h
deleted file mode 100644
index cf79b7aa1..000000000
--- a/nx-X11/lib/X11/lcUniConv/cp1133.h
+++ /dev/null
@@ -1,91 +0,0 @@
-
-/*
- * IBM-CP1133
- */
-
-static const unsigned short cp1133_2uni_1[64] = {
- /* 0xa0 */
- 0x00a0, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0eaa, 0x0e8a,
- 0x0e8d, 0x0e94, 0x0e95, 0x0e96, 0x0e97, 0x0e99, 0x0e9a, 0x0e9b,
- /* 0xb0 */
- 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, 0x0ea1, 0x0ea2, 0x0ea3, 0x0ea5,
- 0x0ea7, 0x0eab, 0x0ead, 0x0eae, 0xfffd, 0xfffd, 0xfffd, 0x0eaf,
- /* 0xc0 */
- 0x0eb0, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, 0x0eb8,
- 0x0eb9, 0x0ebc, 0x0eb1, 0x0ebb, 0x0ebd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xd0 */
- 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0x0ec8, 0x0ec9, 0x0eca,
- 0x0ecb, 0x0ecc, 0x0ecd, 0x0ec6, 0xfffd, 0x0edc, 0x0edd, 0x20ad,
-};
-static const unsigned short cp1133_2uni_2[16] = {
- /* 0xf0 */
- 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7,
- 0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x00a2, 0x00ac, 0x00a6, 0xfffd,
-};
-
-static int
-cp1133_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else if (c < 0xe0) {
- unsigned short wc = cp1133_2uni_1[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- else if (c < 0xf0) {
- }
- else {
- unsigned short wc = cp1133_2uni_2[c-0xf0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char cp1133_page00[16] = {
- 0xa0, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
-};
-static const unsigned char cp1133_page0e[96] = {
- 0x00, 0xa1, 0xa2, 0x00, 0xa3, 0x00, 0x00, 0xa4, /* 0x80-0x87 */
- 0xa5, 0x00, 0xa7, 0x00, 0x00, 0xa8, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x00, 0x00, 0xa9, 0xaa, 0xab, 0xac, /* 0x90-0x97 */
- 0x00, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, /* 0x98-0x9f */
- 0x00, 0xb4, 0xb5, 0xb6, 0x00, 0xb7, 0x00, 0xb8, /* 0xa0-0xa7 */
- 0x00, 0x00, 0xa6, 0xb9, 0x00, 0xba, 0xbb, 0xbf, /* 0xa8-0xaf */
- 0xc0, 0xca, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, /* 0xb0-0xb7 */
- 0xc7, 0xc8, 0x00, 0xcb, 0xc9, 0xcc, 0x00, 0x00, /* 0xb8-0xbf */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xdb, 0x00, /* 0xc0-0xc7 */
- 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x00, 0x00, /* 0xc8-0xcf */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */
- 0xf8, 0xf9, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, /* 0xd8-0xdf */
-};
-
-static int
-cp1133_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00b0)
- c = cp1133_page00[wc-0x00a0];
- else if (wc >= 0x0e80 && wc < 0x0ee0)
- c = cp1133_page0e[wc-0x0e80];
- else if (wc == 0x20ad)
- c = 0xdf;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/cp1251.h b/nx-X11/lib/X11/lcUniConv/cp1251.h
deleted file mode 100644
index 8c0847a0c..000000000
--- a/nx-X11/lib/X11/lcUniConv/cp1251.h
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*
- * CP1251
- */
-
-static const unsigned short cp1251_2uni[128] = {
- /* 0x80 */
- 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
- 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,
- /* 0x90 */
- 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
- 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,
- /* 0xa0 */
- 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
- 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
- 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
- /* 0xc0 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
- 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
- /* 0xd0 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
- 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
- /* 0xe0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
- 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
- /* 0xf0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
- 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-};
-
-static int
-cp1251_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = cp1251_2uni[c-0x80];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char cp1251_page00[32] = {
- 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
-};
-static const unsigned char cp1251_page04[152] = {
- 0x00, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */
- 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x00, 0xa1, 0x8f, /* 0x08-0x0f */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */
- 0x00, 0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, /* 0x50-0x57 */
- 0xbc, 0x9a, 0x9c, 0x9e, 0x9d, 0x00, 0xa2, 0x9f, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
-};
-static const unsigned char cp1251_page20[48] = {
- 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
- 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
-};
-
-static int
-cp1251_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00c0)
- c = cp1251_page00[wc-0x00a0];
- else if (wc >= 0x0400 && wc < 0x0498)
- c = cp1251_page04[wc-0x0400];
- else if (wc >= 0x2010 && wc < 0x2040)
- c = cp1251_page20[wc-0x2010];
- else if (wc == 0x20ac)
- c = 0x88;
- else if (wc == 0x2116)
- c = 0xb9;
- else if (wc == 0x2122)
- c = 0x99;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/cp1255.h b/nx-X11/lib/X11/lcUniConv/cp1255.h
deleted file mode 100644
index 61b2b59d7..000000000
--- a/nx-X11/lib/X11/lcUniConv/cp1255.h
+++ /dev/null
@@ -1,120 +0,0 @@
-
-/*
- * CP1255
- */
-
-static const unsigned short cp1255_2uni[128] = {
- /* 0x80 */
- 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
- 0x02c6, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x90 */
- 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
- 0x02dc, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa0 */
- 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7,
- 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
- 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
- /* 0xc0 */
- 0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7,
- 0x05b8, 0x05b9, 0xfffd, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf,
- /* 0xd0 */
- 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3,
- 0x05f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xe0 */
- 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
- 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
- /* 0xf0 */
- 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
- 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd,
-};
-
-static int
-cp1255_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = cp1255_2uni[c-0x80];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char cp1255_page00[88] = {
- 0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */
-};
-static const unsigned char cp1255_page02[32] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
-};
-static const unsigned char cp1255_page05[72] = {
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xb0-0xb7 */
- 0xc8, 0xc9, 0x00, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xb8-0xbf */
- 0xd0, 0xd1, 0xd2, 0xd3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */
- 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
- 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
-};
-static const unsigned char cp1255_page20[56] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
- 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
-};
-
-static int
-cp1255_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00f8)
- c = cp1255_page00[wc-0x00a0];
- else if (wc == 0x0192)
- c = 0x83;
- else if (wc >= 0x02c0 && wc < 0x02e0)
- c = cp1255_page02[wc-0x02c0];
- else if (wc >= 0x05b0 && wc < 0x05f8)
- c = cp1255_page05[wc-0x05b0];
- else if (wc >= 0x2008 && wc < 0x2040)
- c = cp1255_page20[wc-0x2008];
- else if (wc == 0x20aa)
- c = 0xa4;
- else if (wc == 0x20ac)
- c = 0x80;
- else if (wc == 0x2122)
- c = 0x99;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/cp1256.h b/nx-X11/lib/X11/lcUniConv/cp1256.h
deleted file mode 100644
index 72284f4c1..000000000
--- a/nx-X11/lib/X11/lcUniConv/cp1256.h
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/*
- * CP1256
- */
-
-static const unsigned short cp1256_2uni[128] = {
- /* 0x80 */
- 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
- 0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
- /* 0x90 */
- 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
- 0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba,
- /* 0xa0 */
- 0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
- 0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
- 0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f,
- /* 0xc0 */
- 0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
- 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
- /* 0xd0 */
- 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7,
- 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643,
- /* 0xe0 */
- 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7,
- 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7,
- 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2,
-};
-
-static int
-cp1256_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) cp1256_2uni[c-0x80];
- return 1;
-}
-
-static const unsigned char cp1256_page00[96] = {
- 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0xe0, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0x00, 0xee, 0xef, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0xf7, /* 0xf0-0xf7 */
- 0x00, 0xf9, 0x00, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
-};
-static const unsigned char cp1256_page01[72] = {
- 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
-};
-static const unsigned char cp1256_page06[208] = {
- 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */
- 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, /* 0x30-0x37 */
- 0xd9, 0xda, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, /* 0x40-0x47 */
- 0xe6, 0xec, 0xed, 0xf0, 0xf1, 0xf2, 0xf3, 0xf5, /* 0x48-0x4f */
- 0xf6, 0xf8, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, /* 0x80-0x87 */
- 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0xa8-0xaf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xb8-0xbf */
- 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
-};
-static const unsigned char cp1256_page20[56] = {
- 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0xfd, 0xfe, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
- 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
-};
-
-static int
-cp1256_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0100)
- c = cp1256_page00[wc-0x00a0];
- else if (wc >= 0x0150 && wc < 0x0198)
- c = cp1256_page01[wc-0x0150];
- else if (wc == 0x02c6)
- c = 0x88;
- else if (wc >= 0x0608 && wc < 0x06d8)
- c = cp1256_page06[wc-0x0608];
- else if (wc >= 0x2008 && wc < 0x2040)
- c = cp1256_page20[wc-0x2008];
- else if (wc == 0x20ac)
- c = 0x80;
- else if (wc == 0x2122)
- c = 0x99;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/gb2312.h b/nx-X11/lib/X11/lcUniConv/gb2312.h
deleted file mode 100644
index 2eec308d2..000000000
--- a/nx-X11/lib/X11/lcUniConv/gb2312.h
+++ /dev/null
@@ -1,2552 +0,0 @@
-
-/*
- * GB2312.1980-0
- */
-
-static const unsigned short gb2312_2uni_page21[831] = {
- /* 0x21 */
- 0x3000, 0x3001, 0x3002, 0x30fb, 0x02c9, 0x02c7, 0x00a8, 0x3003,
- 0x3005, 0x2015, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c,
- 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
- 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1,
- 0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a,
- 0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312,
- 0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d,
- 0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234,
- 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4,
- 0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb,
- 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2,
- 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,
- /* 0x22 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f,
- 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
- 0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477,
- 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f,
- 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
- 0x2468, 0x2469, 0xfffd, 0xfffd, 0x3220, 0x3221, 0x3222, 0x3223,
- 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xfffd, 0xfffd,
- 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
- 0x2168, 0x2169, 0x216a, 0x216b, 0xfffd, 0xfffd,
- /* 0x23 */
- 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08,
- 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
- 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
- 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
- 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
- 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
- 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
- 0xff39, 0xff3a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40,
- 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
- 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
- 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
- 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
- /* 0x24 */
- 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
- 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
- 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
- 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
- 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
- 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
- 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
- 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
- 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
- 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
- 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x25 */
- 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
- 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
- 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
- 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
- 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
- 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
- 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
- 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
- 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
- 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
- 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x26 */
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
- 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
- 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
- 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
- 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x27 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
- 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
- 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
- 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
- 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
- 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
- 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x28 */
- 0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8,
- 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2,
- 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc,
- 0x00fc, 0x00ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3105, 0x3106, 0x3107, 0x3108,
- 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110,
- 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118,
- 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120,
- 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
- 0x3129, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x29 */
- 0xfffd, 0xfffd, 0xfffd, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504,
- 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c,
- 0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514,
- 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c,
- 0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524,
- 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c,
- 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534,
- 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c,
- 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544,
- 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b,
-};
-static const unsigned short gb2312_2uni_page30[6768] = {
- /* 0x30 */
- 0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691,
- 0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d,
- 0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848,
- 0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884,
- 0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed,
- 0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776,
- 0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf,
- 0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed,
- 0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc,
- 0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886,
- 0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d,
- 0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265,
- /* 0x31 */
- 0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5,
- 0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351,
- 0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907,
- 0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29,
- 0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4,
- 0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9,
- 0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5,
- 0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16,
- 0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab,
- 0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b,
- 0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175,
- 0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3,
- /* 0x32 */
- 0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2,
- 0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236,
- 0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa,
- 0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016,
- 0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29,
- 0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b,
- 0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf,
- 0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7,
- 0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336,
- 0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6,
- 0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20,
- 0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316,
- /* 0x33 */
- 0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e,
- 0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632,
- 0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3,
- 0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1,
- 0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59,
- 0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f,
- 0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60,
- 0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64,
- 0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0,
- 0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7,
- 0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8,
- 0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a,
- /* 0x34 */
- 0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd,
- 0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97,
- 0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524,
- 0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822,
- 0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148,
- 0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471,
- 0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07,
- 0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106,
- 0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb,
- 0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54,
- 0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26,
- 0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e,
- /* 0x35 */
- 0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6,
- 0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb,
- 0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48,
- 0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053,
- 0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49,
- 0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c,
- 0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730,
- 0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382,
- 0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43,
- 0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc,
- 0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc,
- 0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0,
- /* 0x36 */
- 0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a,
- 0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b,
- 0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661,
- 0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec,
- 0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6,
- 0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e,
- 0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566,
- 0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a,
- 0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0,
- 0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25,
- 0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c,
- 0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c,
- /* 0x37 */
- 0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5,
- 0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492,
- 0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af,
- 0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632,
- 0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561,
- 0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8,
- 0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f,
- 0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa,
- 0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af,
- 0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b,
- 0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90,
- 0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d,
- /* 0x38 */
- 0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85,
- 0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74,
- 0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236,
- 0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490,
- 0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89,
- 0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f,
- 0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b,
- 0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f,
- 0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c,
- 0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b,
- 0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9,
- 0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9,
- /* 0x39 */
- 0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a,
- 0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1,
- 0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2,
- 0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30,
- 0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37,
- 0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250,
- 0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173,
- 0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c,
- 0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845,
- 0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842,
- 0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505,
- 0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8,
- /* 0x3a */
- 0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163,
- 0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a,
- 0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a,
- 0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a,
- 0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d,
- 0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2,
- 0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a,
- 0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8,
- 0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f,
- 0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c,
- 0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6,
- 0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56,
- /* 0x3b */
- 0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1,
- 0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd,
- 0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853,
- 0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115,
- 0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757,
- 0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d,
- 0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de,
- 0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd,
- 0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f,
- 0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b,
- 0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e,
- 0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95,
- /* 0x3c */
- 0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9,
- 0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca,
- 0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0,
- 0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d,
- 0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2,
- 0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939,
- 0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be,
- 0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1,
- 0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270,
- 0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3,
- 0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274,
- 0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6,
- /* 0x3d */
- 0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa,
- 0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868,
- 0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901,
- 0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc,
- 0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a,
- 0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb,
- 0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a,
- 0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01,
- 0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f,
- 0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1,
- 0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb,
- 0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78,
- /* 0x3e */
- 0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8,
- 0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f,
- 0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756,
- 0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0,
- 0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551,
- 0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8,
- 0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9,
- 0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd,
- 0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350,
- 0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b,
- 0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd,
- 0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb,
- /* 0x3f */
- 0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361,
- 0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a,
- 0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b,
- 0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777,
- 0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3,
- 0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543,
- 0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7,
- 0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6,
- 0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef,
- 0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50,
- 0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4,
- 0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080,
- /* 0x40 */
- 0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec,
- 0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a,
- 0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f,
- 0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8,
- 0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca,
- 0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c,
- 0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d,
- 0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b,
- 0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece,
- 0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4,
- 0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1,
- 0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0,
- /* 0x41 */
- 0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9,
- 0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f,
- 0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae,
- 0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e,
- 0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5,
- 0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217,
- 0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716,
- 0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce,
- 0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc,
- 0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409,
- 0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3,
- 0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf,
- /* 0x42 */
- 0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3,
- 0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3,
- 0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42,
- 0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415,
- 0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f,
- 0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6,
- 0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1,
- 0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523,
- 0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988,
- 0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417,
- 0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992,
- 0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b,
- /* 0x43 */
- 0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b,
- 0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192,
- 0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176,
- 0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e,
- 0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c,
- 0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f,
- 0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8,
- 0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5,
- 0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf,
- 0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d,
- 0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f,
- 0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478,
- /* 0x44 */
- 0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9,
- 0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c,
- 0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd,
- 0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766,
- 0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c,
- 0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537,
- 0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462,
- 0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5,
- 0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b,
- 0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f,
- 0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d,
- 0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81,
- /* 0x45 */
- 0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53,
- 0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650,
- 0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25,
- 0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c,
- 0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43,
- 0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224,
- 0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486,
- 0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9,
- 0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6,
- 0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c,
- 0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812,
- 0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7,
- /* 0x46 */
- 0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41,
- 0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2,
- 0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058,
- 0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4,
- 0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb,
- 0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9,
- 0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd,
- 0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4,
- 0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566,
- 0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77,
- 0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14,
- 0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390,
- /* 0x47 */
- 0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1,
- 0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d,
- 0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49,
- 0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2,
- 0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8,
- 0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207,
- 0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6,
- 0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752,
- 0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30,
- 0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18,
- 0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a,
- 0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20,
- /* 0x48 */
- 0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743,
- 0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d,
- 0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0,
- 0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4,
- 0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed,
- 0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203,
- 0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9,
- 0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9,
- 0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1,
- 0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e,
- 0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428,
- 0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1,
- /* 0x49 */
- 0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b,
- 0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802,
- 0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b,
- 0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b,
- 0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247,
- 0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a,
- 0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6,
- 0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c,
- 0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe,
- 0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5,
- 0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17,
- 0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3,
- /* 0x4a */
- 0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee,
- 0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe,
- 0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2,
- 0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16,
- 0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc,
- 0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02,
- 0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88,
- 0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2,
- 0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f,
- 0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72,
- 0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f,
- 0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31,
- /* 0x4b */
- 0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813,
- 0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e,
- 0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1,
- 0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b,
- 0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3,
- 0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5,
- 0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20,
- 0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083,
- 0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3,
- 0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f,
- 0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501,
- 0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854,
- /* 0x4c */
- 0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0,
- 0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a,
- 0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08,
- 0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64,
- 0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018,
- 0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6,
- 0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279,
- 0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511,
- 0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5,
- 0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c,
- 0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3,
- 0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3,
- /* 0x4d */
- 0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a,
- 0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876,
- 0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f,
- 0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60,
- 0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f,
- 0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258,
- 0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3,
- 0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c,
- 0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38,
- 0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b,
- 0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51,
- 0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01,
- /* 0x4e */
- 0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f,
- 0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f,
- 0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3,
- 0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b,
- 0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33,
- 0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1,
- 0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c,
- 0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7,
- 0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e,
- 0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff,
- 0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852,
- 0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a,
- /* 0x4f */
- 0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184,
- 0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60,
- 0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6,
- 0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0,
- 0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148,
- 0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2,
- 0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf,
- 0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8,
- 0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4,
- 0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61,
- 0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee,
- 0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653,
- /* 0x50 */
- 0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954,
- 0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa,
- 0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8,
- 0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23,
- 0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165,
- 0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c,
- 0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8,
- 0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d,
- 0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700,
- 0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9,
- 0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed,
- 0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384,
- /* 0x51 */
- 0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74,
- 0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb,
- 0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5,
- 0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259,
- 0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6,
- 0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814,
- 0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf,
- 0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5,
- 0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a,
- 0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f,
- 0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b,
- 0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476,
- /* 0x52 */
- 0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200,
- 0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce,
- 0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b,
- 0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d,
- 0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0,
- 0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a,
- 0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091,
- 0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6,
- 0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3,
- 0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335,
- 0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6,
- 0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690,
- /* 0x53 */
- 0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9,
- 0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71,
- 0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8,
- 0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38,
- 0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24,
- 0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709,
- 0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2,
- 0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59,
- 0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88,
- 0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd,
- 0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea,
- 0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89,
- /* 0x54 */
- 0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a,
- 0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed,
- 0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f,
- 0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3,
- 0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300,
- 0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55,
- 0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d,
- 0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f,
- 0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1,
- 0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23,
- 0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe,
- 0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67,
- /* 0x55 */
- 0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8,
- 0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb,
- 0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d,
- 0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd,
- 0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756,
- 0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db,
- 0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087,
- 0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517,
- 0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827,
- 0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707,
- 0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0,
- 0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f,
- /* 0x56 */
- 0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431,
- 0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c,
- 0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307,
- 0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7,
- 0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9,
- 0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d,
- 0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd,
- 0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5,
- 0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4,
- 0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010,
- 0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457,
- 0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51,
- /* 0x57 */
- 0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13,
- 0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5,
- 0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58,
- 0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c,
- 0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179,
- 0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4,
- 0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5,
- 0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f,
- 0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b,
- 0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a,
- 0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750,
- 0x5ea7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x58 */
- 0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98,
- 0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315,
- 0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997,
- 0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69,
- 0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d,
- 0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326,
- 0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e,
- 0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c,
- 0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54,
- 0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede,
- 0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09,
- 0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d,
- /* 0x59 */
- 0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89,
- 0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94,
- 0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1,
- 0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e,
- 0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043,
- 0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9,
- 0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107,
- 0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46,
- 0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9,
- 0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156,
- 0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34,
- 0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc,
- /* 0x5a */
- 0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa,
- 0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce,
- 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf,
- 0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6,
- 0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c,
- 0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b,
- 0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a,
- 0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369,
- 0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c,
- 0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674,
- 0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099,
- 0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba,
- /* 0x5b */
- 0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7,
- 0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef,
- 0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139,
- 0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be,
- 0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4,
- 0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c,
- 0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c,
- 0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742,
- 0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d,
- 0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7,
- 0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2,
- 0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd,
- /* 0x5c */
- 0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844,
- 0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8,
- 0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8,
- 0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be,
- 0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb,
- 0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4,
- 0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307,
- 0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311,
- 0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351,
- 0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b,
- 0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317,
- 0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365,
- /* 0x5d */
- 0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0,
- 0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385,
- 0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e,
- 0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807,
- 0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411,
- 0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea,
- 0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a,
- 0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c,
- 0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1,
- 0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba,
- 0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c,
- 0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a,
- /* 0x5e */
- 0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564,
- 0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8,
- 0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7,
- 0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629,
- 0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955,
- 0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c,
- 0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322,
- 0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a,
- 0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc,
- 0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452,
- 0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c,
- 0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496,
- /* 0x5f */
- 0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7,
- 0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519,
- 0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412,
- 0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443,
- 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477,
- 0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d,
- 0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3,
- 0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9,
- 0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de,
- 0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523,
- 0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549,
- 0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c,
- /* 0x60 */
- 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c,
- 0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f,
- 0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594,
- 0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec,
- 0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3,
- 0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608,
- 0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d,
- 0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c,
- 0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c,
- 0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5,
- 0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f,
- 0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c,
- /* 0x61 */
- 0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a,
- 0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a,
- 0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3,
- 0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02,
- 0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b,
- 0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d,
- 0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d,
- 0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89,
- 0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc,
- 0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3,
- 0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2,
- 0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa,
- /* 0x62 */
- 0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315,
- 0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d,
- 0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7,
- 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b,
- 0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a,
- 0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91,
- 0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3,
- 0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4,
- 0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4,
- 0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035,
- 0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f,
- 0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042,
- /* 0x63 */
- 0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092,
- 0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6,
- 0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100,
- 0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7,
- 0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3,
- 0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608,
- 0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616,
- 0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54,
- 0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68,
- 0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad,
- 0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa,
- 0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe,
- /* 0x64 */
- 0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19,
- 0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52,
- 0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93,
- 0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5,
- 0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9,
- 0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b,
- 0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44,
- 0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7,
- 0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2,
- 0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f,
- 0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d,
- 0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1,
- /* 0x65 */
- 0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde,
- 0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f,
- 0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f,
- 0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07,
- 0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6,
- 0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d,
- 0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051,
- 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074,
- 0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56,
- 0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66,
- 0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e,
- 0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3,
- /* 0x66 */
- 0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af,
- 0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8,
- 0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13,
- 0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec,
- 0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2,
- 0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8,
- 0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15,
- 0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75,
- 0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85,
- 0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b,
- 0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7,
- 0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9,
- /* 0x67 */
- 0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb,
- 0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8,
- 0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa,
- 0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b,
- 0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b,
- 0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
- 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32,
- 0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e,
- 0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7,
- 0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a,
- 0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b,
- 0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c,
- /* 0x68 */
- 0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477,
- 0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b,
- 0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea,
- 0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5,
- 0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e,
- 0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a,
- 0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd,
- 0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832,
- 0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883,
- 0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a,
- 0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b,
- 0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9,
- /* 0x69 */
- 0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971,
- 0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998,
- 0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966,
- 0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4,
- 0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff,
- 0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e,
- 0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28,
- 0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337,
- 0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d,
- 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72,
- 0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c,
- 0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b,
- /* 0x6a */
- 0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217,
- 0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7,
- 0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee,
- 0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600,
- 0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006,
- 0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677,
- 0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6,
- 0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45,
- 0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7,
- 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e,
- 0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b,
- 0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0,
- /* 0x6b */
- 0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9,
- 0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a,
- 0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b,
- 0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c,
- 0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4,
- 0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4,
- 0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4,
- 0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a,
- 0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153,
- 0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d,
- 0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5,
- 0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb,
- /* 0x6c */
- 0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59,
- 0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40,
- 0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4,
- 0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096,
- 0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca,
- 0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168,
- 0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5,
- 0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228,
- 0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248,
- 0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953,
- 0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985,
- 0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0,
- /* 0x6d */
- 0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab,
- 0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206,
- 0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800,
- 0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d,
- 0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823,
- 0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847,
- 0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1,
- 0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec,
- 0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b,
- 0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707,
- 0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738,
- 0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768,
- /* 0x6e */
- 0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791,
- 0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e,
- 0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61,
- 0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e,
- 0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a,
- 0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a,
- 0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac,
- 0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9,
- 0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca,
- 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5,
- 0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0,
- 0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea,
- /* 0x6f */
- 0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7,
- 0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507,
- 0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514,
- 0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522,
- 0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536,
- 0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544,
- 0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553,
- 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f,
- 0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568,
- 0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573,
- 0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb,
- 0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14,
- /* 0x70 */
- 0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e,
- 0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22,
- 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36,
- 0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44,
- 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51,
- 0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66,
- 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d,
- 0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3,
- 0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2,
- 0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7,
- 0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c,
- 0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619,
- /* 0x71 */
- 0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f,
- 0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c,
- 0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80,
- 0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad,
- 0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2,
- 0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5,
- 0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919,
- 0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966,
- 0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014,
- 0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029,
- 0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052,
- 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883,
- /* 0x72 */
- 0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e,
- 0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c,
- 0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b,
- 0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6,
- 0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9,
- 0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0,
- 0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707,
- 0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e,
- 0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729,
- 0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760,
- 0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764,
- 0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2,
- /* 0x73 */
- 0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5,
- 0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0,
- 0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe,
- 0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44,
- 0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15,
- 0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e,
- 0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58,
- 0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b,
- 0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac,
- 0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4,
- 0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea,
- 0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b,
- /* 0x74 */
- 0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201,
- 0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d,
- 0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e,
- 0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e,
- 0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7,
- 0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c,
- 0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc,
- 0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf,
- 0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3,
- 0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4,
- 0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47,
- 0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164,
- /* 0x75 */
- 0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172,
- 0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2,
- 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba,
- 0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5,
- 0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde,
- 0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3,
- 0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f,
- 0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35,
- 0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a,
- 0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94,
- 0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98,
- 0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc,
- /* 0x76 */
- 0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3,
- 0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d,
- 0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88,
- 0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc,
- 0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8,
- 0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82,
- 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90,
- 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f,
- 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8,
- 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3,
- 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd,
- 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb,
- /* 0x77 */
- 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5,
- 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c,
- 0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2,
- 0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc,
- 0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45,
- 0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d,
- 0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb,
- 0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23,
- 0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92,
- 0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf,
- 0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c,
- 0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44,
-};
-
-static int
-gb2312_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = (s[0] & 0x7F);
- if ((c1 >= 0x21 && c1 <= 0x29) || (c1 >= 0x30 && c1 <= 0x77)) {
- if (n >= 2) {
- unsigned char c2 = (s[1] & 0x7F);
- if (c2 >= 0x21 && c2 < 0x7f) {
- unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
- unsigned short wc = 0xfffd;
- if (i < 1410) {
- if (i < 831)
- wc = gb2312_2uni_page21[i];
- } else {
- if (i < 8178)
- wc = gb2312_2uni_page30[i-1410];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short gb2312_2charset[7445] = {
- 0x2168, 0x216c, 0x2127, 0x2163, 0x2140, 0x2141, 0x2824, 0x2822,
- 0x2828, 0x2826, 0x283a, 0x282c, 0x282a, 0x2830, 0x282e, 0x2142,
- 0x2834, 0x2832, 0x2839, 0x2821, 0x2825, 0x2827, 0x2829, 0x282d,
- 0x2831, 0x2823, 0x282b, 0x282f, 0x2833, 0x2835, 0x2836, 0x2837,
- 0x2838, 0x2126, 0x2125, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625,
- 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d,
- 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635,
- 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645,
- 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c, 0x264d,
- 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655,
- 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723, 0x2724,
- 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d,
- 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735,
- 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d,
- 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754,
- 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d,
- 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765,
- 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d,
- 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x212a, 0x212c, 0x212e,
- 0x212f, 0x2130, 0x2131, 0x212d, 0x216b, 0x2164, 0x2165, 0x2179,
- 0x2166, 0x216d, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276,
- 0x2277, 0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x217b, 0x217c,
- 0x217a, 0x217d, 0x214a, 0x2147, 0x2146, 0x214c, 0x2158, 0x215e,
- 0x214f, 0x214e, 0x2144, 0x2145, 0x2149, 0x2148, 0x2152, 0x2153,
- 0x2160, 0x215f, 0x2143, 0x214b, 0x2157, 0x2156, 0x2155, 0x2159,
- 0x2154, 0x215c, 0x215d, 0x215a, 0x215b, 0x2151, 0x214d, 0x2150,
- 0x2259, 0x225a, 0x225b, 0x225c, 0x225d, 0x225e, 0x225f, 0x2260,
- 0x2261, 0x2262, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a,
- 0x224b, 0x224c, 0x224d, 0x224e, 0x224f, 0x2250, 0x2251, 0x2252,
- 0x2253, 0x2254, 0x2255, 0x2256, 0x2257, 0x2258, 0x2231, 0x2232,
- 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a,
- 0x223b, 0x223c, 0x223d, 0x223e, 0x223f, 0x2240, 0x2241, 0x2242,
- 0x2243, 0x2244, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929,
- 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 0x2930, 0x2931,
- 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939,
- 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941,
- 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949,
- 0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951,
- 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959,
- 0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961,
- 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969,
- 0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f, 0x2176, 0x2175,
- 0x2178, 0x2177, 0x2174, 0x2173, 0x2170, 0x2172, 0x2171, 0x216f,
- 0x216e, 0x2162, 0x2161, 0x2121, 0x2122, 0x2123, 0x2128, 0x2129,
- 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, 0x213a, 0x213b,
- 0x213e, 0x213f, 0x217e, 0x2132, 0x2133, 0x213c, 0x213d, 0x2421,
- 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429,
- 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431,
- 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439,
- 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441,
- 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449,
- 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451,
- 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459,
- 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461,
- 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
- 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471,
- 0x2472, 0x2473, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526,
- 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d, 0x252e,
- 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536,
- 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, 0x253d, 0x253e,
- 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546,
- 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e,
- 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556,
- 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
- 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566,
- 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e,
- 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576,
- 0x2124, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 0x284a, 0x284b,
- 0x284c, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, 0x2852, 0x2853,
- 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, 0x285b,
- 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, 0x2862, 0x2863,
- 0x2864, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 0x2265, 0x2266,
- 0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226c, 0x226d, 0x226e,
- 0x523b, 0x3621, 0x465f, 0x4d72, 0x5549, 0x487d, 0x494f, 0x4f42,
- 0x5822, 0x323b, 0x536b, 0x5824, 0x3373, 0x5728, 0x4752, 0x5827,
- 0x4a40, 0x4770, 0x317b, 0x5235, 0x3454, 0x362b, 0x4b3f, 0x5829,
- 0x362a, 0x413d, 0x514f, 0x4925, 0x582d, 0x3876, 0x513e, 0x635c,
- 0x5650, 0x3761, 0x342e, 0x4159, 0x583c, 0x4d68, 0x3524, 0x4e2a,
- 0x5677, 0x4076, 0x3e59, 0x582f, 0x444b, 0x3e43, 0x5831, 0x4334,
- 0x5265, 0x562e, 0x4e5a, 0x5527, 0x3a75, 0x3726, 0x4056, 0x4639,
- 0x4552, 0x4747, 0x3954, 0x334b, 0x5252, 0x583f, 0x3e45, 0x4672,
- 0x5232, 0x4f30, 0x4f67, 0x4a69, 0x5840, 0x4272, 0x4252, 0x4869,
- 0x472c, 0x414b, 0x5368, 0x5579, 0x4a42, 0x367e, 0x5821, 0x535a,
- 0x3f77, 0x5446, 0x3b25, 0x5841, 0x4e65, 0x3e2e, 0x5828, 0x5147,
- 0x5029, 0x583d, 0x596f, 0x4d76, 0x3f3a, 0x3d3b, 0x3a25, 0x5260,
- 0x327a, 0x3a60, 0x4436, 0x4f6d, 0x3e29, 0x4d24, 0x4141, 0x4757,
- 0x5971, 0x5974, 0x484b, 0x5869, 0x525a, 0x4a32, 0x484a, 0x586c,
- 0x586a, 0x5846, 0x3d76, 0x464d, 0x3370, 0x586b, 0x3d71, 0x3d69,
- 0x4854, 0x3453, 0x4258, 0x3256, 0x5750, 0x4a4b, 0x4b7b, 0x554c,
- 0x3836, 0x4f49, 0x595a, 0x5870, 0x472a, 0x586e, 0x347a, 0x416e,
- 0x5254, 0x586d, 0x5247, 0x586f, 0x4347, 0x5176, 0x5659, 0x5872,
- 0x5875, 0x3c7e, 0x3c5b, 0x484e, 0x375d, 0x3742, 0x4673, 0x5878,
- 0x5241, 0x4e69, 0x3c3f, 0x377c, 0x3725, 0x505d, 0x565a, 0x5345,
- 0x3b6f, 0x3b61, 0x5871, 0x4921, 0x4e30, 0x342b, 0x5873, 0x494b,
- 0x5876, 0x4257, 0x5877, 0x4e31, 0x5879, 0x322e, 0x3940, 0x5923,
- 0x3069, 0x4166, 0x496c, 0x4b45, 0x4b46, 0x5924, 0x3568, 0x352b,
- 0x4e3b, 0x354d, 0x5721, 0x5774, 0x5353, 0x4c65, 0x3a4e, 0x5922,
- 0x595c, 0x5360, 0x587d, 0x3770, 0x5777, 0x587e, 0x587a, 0x5921,
- 0x4463, 0x5336, 0x5874, 0x595d, 0x587b, 0x4565, 0x4050, 0x5170,
- 0x305b, 0x3c51, 0x5926, 0x5925, 0x592c, 0x592e, 0x592b, 0x4a39,
- 0x5929, 0x5636, 0x335e, 0x5928, 0x407d, 0x4a4c, 0x592a, 0x5927,
- 0x5930, 0x3631, 0x3929, 0x5240, 0x4f40, 0x4242, 0x3d44, 0x556c,
- 0x3260, 0x4748, 0x3f6b, 0x592d, 0x592f, 0x4e6a, 0x3a6e, 0x4756,
- 0x3163, 0x3459, 0x366d, 0x5934, 0x3f21, 0x595e, 0x474e, 0x407e,
- 0x5938, 0x4b57, 0x377d, 0x5935, 0x5937, 0x3123, 0x5361, 0x5939,
- 0x5045, 0x5936, 0x5931, 0x5932, 0x4129, 0x5933, 0x3c73, 0x505e,
- 0x3829, 0x3e63, 0x593d, 0x593a, 0x3033, 0x5942, 0x5944, 0x3136,
- 0x593f, 0x3539, 0x3e73, 0x4c48, 0x3a72, 0x5250, 0x5943, 0x3d68,
- 0x332b, 0x5945, 0x3e6b, 0x5946, 0x593b, 0x445f, 0x593e, 0x5941,
- 0x5940, 0x552e, 0x5635, 0x4763, 0x5948, 0x3c59, 0x594a, 0x593c,
- 0x594b, 0x462b, 0x5949, 0x5776, 0x4d23, 0x3d21, 0x594c, 0x453c,
- 0x4d35, 0x594d, 0x5947, 0x3325, 0x3f7e, 0x3835, 0x407c, 0x3078,
- 0x3476, 0x594e, 0x594f, 0x3422, 0x5950, 0x345f, 0x3041, 0x5951,
- 0x4935, 0x4f71, 0x5952, 0x4145, 0x5956, 0x492e, 0x5955, 0x5954,
- 0x5957, 0x4b5b, 0x3d29, 0x4627, 0x5953, 0x5958, 0x5959, 0x4865,
- 0x405c, 0x3679, 0x5823, 0x544a, 0x542a, 0x5056, 0x3364, 0x5557,
- 0x4f48, 0x3962, 0x3f4b, 0x4362, 0x3652, 0x4d43, 0x596e, 0x5970,
- 0x3533, 0x3635, 0x3e24, 0x486b, 0x482b, 0x304b, 0x392b, 0x4179,
- 0x5962, 0x403c, 0x3932, 0x3958, 0x504b, 0x3178, 0x4664, 0x3e5f,
- 0x3564, 0x5748, 0x5178, 0x3c66, 0x4a5e, 0x3c3d, 0x5966, 0x5867,
- 0x445a, 0x3854, 0x483d, 0x3261, 0x5459, 0x4330, 0x4361, 0x5a22,
- 0x485f, 0x5034, 0x3e7c, 0x4529, 0x395a, 0x5a23, 0x5429, 0x5a24,
- 0x597b, 0x362c, 0x376b, 0x3179, 0x597c, 0x3365, 0x3e76, 0x3f76,
- 0x5231, 0x4064, 0x3633, 0x597e, 0x597d, 0x3e3b, 0x4660, 0x573c,
- 0x5a21, 0x4139, 0x3572, 0x4168, 0x3c75, 0x3455, 0x415d, 0x447d,
- 0x3c38, 0x3732, 0x376f, 0x596c, 0x463e, 0x3f2d, 0x3b4b, 0x354a,
- 0x5b49, 0x5057, 0x4d39, 0x303c, 0x3376, 0x3b77, 0x5b4a, 0x3a2f,
- 0x5464, 0x3536, 0x3573, 0x5856, 0x4850, 0x3756, 0x4750, 0x5857,
- 0x3f2f, 0x5b3b, 0x5858, 0x504c, 0x3b2e, 0x6b3e, 0x4150, 0x4175,
- 0x5472, 0x3855, 0x3434, 0x3375, 0x493e, 0x4550, 0x4559, 0x407b,
- 0x3170, 0x5859, 0x394e, 0x353d, 0x585a, 0x5646, 0x4b22, 0x482f,
- 0x4932, 0x344c, 0x3f4c, 0x3974, 0x585b, 0x585c, 0x3667, 0x3c41,
- 0x4c6a, 0x4f77, 0x585d, 0x4730, 0x3950, 0x3d23, 0x4c5e, 0x464a,
- 0x5860, 0x585e, 0x585f, 0x307e, 0x3e67, 0x4a23, 0x3c74, 0x3831,
- 0x386e, 0x5862, 0x3d4b, 0x5864, 0x5863, 0x457c, 0x5865, 0x5866,
- 0x4126, 0x4830, 0x306c, 0x3926, 0x3c53, 0x4e71, 0x5b3d, 0x4153,
- 0x362f, 0x567a, 0x452c, 0x3d59, 0x5b3e, 0x5b3f, 0x4078, 0x3e22,
- 0x404d, 0x5b40, 0x4a46, 0x322a, 0x5342, 0x4363, 0x512b, 0x5b42,
- 0x4055, 0x5b43, 0x3f31, 0x443c, 0x475a, 0x5b44, 0x5968, 0x4957,
- 0x3934, 0x4e70, 0x5448, 0x307c, 0x3452, 0x5059, 0x5969, 0x5e4b,
- 0x596b, 0x5830, 0x3b2f, 0x3131, 0x3357, 0x584e, 0x5451, 0x3d33,
- 0x3f6f, 0x4f3b, 0x5850, 0x374b, 0x5851, 0x4625, 0x4778, 0x523d,
- 0x5852, 0x4464, 0x4a2e, 0x4727, 0x5826, 0x497d, 0x4e67, 0x3b5c,
- 0x306b, 0x3b2a, 0x502d, 0x3130, 0x5764, 0x573f, 0x3525, 0x4274,
- 0x444f, 0x3229, 0x3237, 0x3165, 0x5f32, 0x553c, 0x3f28, 0x422c,
- 0x5855, 0x4231, 0x5854, 0x4e54, 0x5a60, 0x4e40, 0x5834, 0x432e,
- 0x5321, 0x4e23, 0x3c34, 0x4834, 0x4251, 0x3e6d, 0x5036, 0x5a61,
- 0x4764, 0x3327, 0x3672, 0x4c7c, 0x407a, 0x4077, 0x5139, 0x5161,
- 0x5847, 0x325e, 0x4065, 0x3a71, 0x5848, 0x542d, 0x4f61, 0x5849,
- 0x584a, 0x4f43, 0x3378, 0x3e47, 0x584b, 0x5b4c, 0x4825, 0x4f58,
- 0x487e, 0x324e, 0x5356, 0x3266, 0x3c30, 0x5351, 0x4b2b, 0x3734,
- 0x3722, 0x4a65, 0x4821, 0x4a5c, 0x3164, 0x5070, 0x4551, 0x5b45,
- 0x357e, 0x3f5a, 0x3945, 0x3e64, 0x416d, 0x5f36, 0x5f35, 0x563b,
- 0x3d50, 0x5559, 0x3048, 0x3623, 0x3f49, 0x4c28, 0x5f33, 0x4a37,
- 0x5352, 0x584f, 0x5236, 0x3a45, 0x4b3e, 0x4c3e, 0x5f37, 0x3570,
- 0x5f34, 0x5375, 0x3354, 0x3877, 0x5f3a, 0x3a4f, 0x3c2a, 0x3575,
- 0x4d2c, 0x437b, 0x3a73, 0x4074, 0x4d42, 0x4f72, 0x5f38, 0x4f45,
- 0x4240, 0x5f39, 0x4270, 0x3e7d, 0x415f, 0x4d4c, 0x5277, 0x374d,
- 0x5f41, 0x5f44, 0x3771, 0x3049, 0x3656, 0x3754, 0x3a2c, 0x4c7d,
- 0x3f54, 0x4b31, 0x4674, 0x5628, 0x5f45, 0x4e62, 0x3333, 0x4e7c,
- 0x3435, 0x4e47, 0x3a70, 0x4e61, 0x513d, 0x5f40, 0x3474, 0x334a,
- 0x3866, 0x5f3b, 0x4445, 0x5f3c, 0x5f3d, 0x5f3e, 0x453b, 0x5f3f,
- 0x5f42, 0x5431, 0x5f43, 0x473a, 0x4e58, 0x4458, 0x5f4a, 0x5f4f,
- 0x565c, 0x5f49, 0x5f5a, 0x4e36, 0x3a47, 0x5f4e, 0x5f48, 0x455e,
- 0x496b, 0x3a74, 0x437c, 0x3e57, 0x5f46, 0x5f4d, 0x4558, 0x5526,
- 0x3a4d, 0x3e4c, 0x533d, 0x3840, 0x5664, 0x5f47, 0x393e, 0x3f27,
- 0x417c, 0x5f4b, 0x5f4c, 0x5f50, 0x5f5b, 0x5f65, 0x5f57, 0x5f56,
- 0x5749, 0x5f63, 0x5f64, 0x656b, 0x5227, 0x5f52, 0x3f29, 0x545b,
- 0x3f48, 0x5f54, 0x4f4c, 0x5f5d, 0x514a, 0x5f5e, 0x3027, 0x4637,
- 0x5f53, 0x3a65, 0x365f, 0x4d5b, 0x397e, 0x5455, 0x5f5f, 0x4f6c,
- 0x3025, 0x5f67, 0x5f51, 0x5146, 0x5f55, 0x5f58, 0x5f59, 0x5f5c,
- 0x3b29, 0x5f60, 0x5f61, 0x5f62, 0x5f66, 0x5f68, 0x5334, 0x3867,
- 0x4536, 0x5f6a, 0x495a, 0x4128, 0x4444, 0x3f5e, 0x4f78, 0x555c,
- 0x5f6e, 0x3238, 0x3a5f, 0x5f6c, 0x5b41, 0x5164, 0x4b74, 0x343d,
- 0x3026, 0x5f71, 0x4c46, 0x5f72, 0x5f6d, 0x5f69, 0x5f6b, 0x5f6f,
- 0x5f70, 0x3b3d, 0x5f73, 0x5f74, 0x3b23, 0x4a5b, 0x4e28, 0x6027,
- 0x332a, 0x6026, 0x6021, 0x5f7e, 0x4d59, 0x5f7c, 0x5f7a, 0x3f50,
- 0x5744, 0x494c, 0x5f78, 0x3021, 0x5f7d, 0x5f7b, 0x6022, 0x6028,
- 0x3748, 0x4621, 0x4936, 0x4032, 0x5f75, 0x453e, 0x5844, 0x5f79,
- 0x4476, 0x6023, 0x6024, 0x6025, 0x5025, 0x6034, 0x4c64, 0x6031,
- 0x3f26, 0x602f, 0x4e39, 0x602b, 0x4946, 0x402e, 0x602e, 0x3a6d,
- 0x3a30, 0x6029, 0x5f76, 0x6033, 0x6038, 0x342d, 0x6039, 0x4f32,
- 0x3a48, 0x6030, 0x507a, 0x602c, 0x547b, 0x5f77, 0x4567, 0x602d,
- 0x5377, 0x6036, 0x6037, 0x6044, 0x5061, 0x603c, 0x6049, 0x604a,
- 0x603e, 0x602a, 0x4924, 0x6041, 0x6032, 0x4a48, 0x6043, 0x6035,
- 0x4e4b, 0x4b43, 0x604d, 0x6046, 0x6042, 0x604b, 0x603a, 0x603f,
- 0x6040, 0x6045, 0x6047, 0x6048, 0x604c, 0x603b, 0x4b54, 0x6055,
- 0x6056, 0x6052, 0x6050, 0x3c4e, 0x6051, 0x3842, 0x5845, 0x506a,
- 0x426f, 0x604f, 0x603d, 0x6054, 0x6053, 0x6057, 0x605c, 0x6058,
- 0x5676, 0x3330, 0x576c, 0x4b3b, 0x605a, 0x4e7b, 0x3a59, 0x6061,
- 0x605d, 0x522d, 0x6062, 0x605b, 0x6059, 0x605f, 0x6060, 0x605e,
- 0x6064, 0x4677, 0x582c, 0x546b, 0x6066, 0x4a49, 0x6065, 0x3841,
- 0x6067, 0x6068, 0x6069, 0x6063, 0x3a3f, 0x4c67, 0x606a, 0x4f79,
- 0x606b, 0x4842, 0x3d40, 0x4452, 0x606c, 0x606d, 0x4774, 0x4b44,
- 0x606e, 0x3b58, 0x5836, 0x5272, 0x606f, 0x4d45, 0x365a, 0x6071,
- 0x5430, 0x4027, 0x3451, 0x4e27, 0x6070, 0x6072, 0x394c, 0x397a,
- 0x4d3c, 0x6073, 0x4654, 0x6074, 0x5432, 0x4826, 0x6076, 0x6075,
- 0x6077, 0x4d41, 0x4a25, 0x545a, 0x5b57, 0x5b59, 0x5b58, 0x3967,
- 0x5b5c, 0x5b5d, 0x3558, 0x5b5a, 0x5b5b, 0x3321, 0x5b5f, 0x3b78,
- 0x5637, 0x5b60, 0x3e79, 0x373b, 0x5b50, 0x4c2e, 0x3f32, 0x3b35,
- 0x5778, 0x3f53, 0x3f69, 0x3c61, 0x4c33, 0x5b5e, 0x3053, 0x4e6b,
- 0x3758, 0x5739, 0x4642, 0x4024, 0x4c39, 0x5b67, 0x5b61, 0x463a,
- 0x5b63, 0x5b68, 0x4577, 0x5b6a, 0x5b69, 0x3f40, 0x5b66, 0x5b65,
- 0x3439, 0x402c, 0x4222, 0x5b62, 0x5b64, 0x504d, 0x5b6d, 0x405d,
- 0x5b72, 0x3662, 0x5b73, 0x5b52, 0x3938, 0x542b, 0x5b6c, 0x3f51,
- 0x5b70, 0x5b51, 0x3566, 0x5b6b, 0x3f65, 0x5b6e, 0x5b71, 0x5b79,
- 0x3921, 0x3023, 0x4271, 0x3347, 0x5b6f, 0x5b78, 0x4652, 0x5b74,
- 0x5b75, 0x5b77, 0x5b76, 0x5b7e, 0x5372, 0x323a, 0x5b7d, 0x5c24,
- 0x5b7b, 0x5b7a, 0x5b7c, 0x4560, 0x3b79, 0x5c23, 0x5c25, 0x4c43,
- 0x3651, 0x5d40, 0x5c21, 0x5c22, 0x4735, 0x3669, 0x5c27, 0x5c26,
- 0x5c29, 0x3124, 0x354c, 0x3f30, 0x515f, 0x3642, 0x5c28, 0x4b7a,
- 0x6b73, 0x4b5c, 0x4b7e, 0x4c41, 0x487b, 0x5c2a, 0x4c6e, 0x5c2b,
- 0x5b53, 0x5c2f, 0x5c2c, 0x3e33, 0x4a7b, 0x5c2d, 0x494a, 0x4439,
- 0x473d, 0x5c2e, 0x5476, 0x5066, 0x442b, 0x3655, 0x5b54, 0x315a,
- 0x5b55, 0x5b56, 0x3a3e, 0x4840, 0x4a3f, 0x4849, 0x5733, 0x4979,
- 0x3f47, 0x3a78, 0x523c, 0x623a, 0x3426, 0x3138, 0x3834, 0x4f44,
- 0x5967, 0x4f26, 0x4d62, 0x596d, 0x3660, 0x5239, 0x393b, 0x6239,
- 0x6237, 0x3473, 0x4c6c, 0x4c2b, 0x3772, 0x5832, 0x516b, 0x3a3b,
- 0x4a27, 0x4d37, 0x5244, 0x3f64, 0x3c50, 0x3661, 0x5e45, 0x5e46,
- 0x5b3c, 0x5159, 0x4666, 0x444e, 0x376e, 0x375c, 0x3f7c, 0x5760,
- 0x4675, 0x313c, 0x5e48, 0x3d31, 0x4c57, 0x5e4a, 0x5e49, 0x356c,
- 0x495d, 0x3042, 0x452e, 0x452b, 0x444c, 0x3c69, 0x4b7d, 0x3a43,
- 0x6579, 0x4867, 0x657a, 0x4d7d, 0x5731, 0x383e, 0x4268, 0x4851,
- 0x657b, 0x364a, 0x3c4b, 0x517d, 0x6621, 0x436e, 0x6624, 0x657e,
- 0x6625, 0x4d57, 0x3741, 0x657c, 0x657d, 0x6623, 0x445d, 0x6628,
- 0x6627, 0x4343, 0x465e, 0x662a, 0x4437, 0x6622, 0x4a3c, 0x3d63,
- 0x3943, 0x6626, 0x5055, 0x4e2f, 0x6629, 0x6630, 0x5226, 0x3d2a,
- 0x662d, 0x662f, 0x4051, 0x524c, 0x3c27, 0x6631, 0x5276, 0x574b,
- 0x4d7e, 0x4d5e, 0x4226, 0x662b, 0x662c, 0x3d3f, 0x662e, 0x6633,
- 0x6632, 0x6636, 0x6638, 0x446f, 0x4448, 0x3e6a, 0x496f, 0x6637,
- 0x3670, 0x4364, 0x5369, 0x6634, 0x6635, 0x4822, 0x663d, 0x6639,
- 0x4645, 0x4d71, 0x663b, 0x663c, 0x3b69, 0x663e, 0x663a, 0x4037,
- 0x5324, 0x663f, 0x4974, 0x6643, 0x6644, 0x5076, 0x433d, 0x4344,
- 0x6642, 0x6641, 0x6647, 0x4f31, 0x6b74, 0x664a, 0x6645, 0x3c5e,
- 0x4929, 0x3c35, 0x4f53, 0x6648, 0x6649, 0x664e, 0x6650, 0x6651,
- 0x664b, 0x3555, 0x664c, 0x664f, 0x445b, 0x6646, 0x664d, 0x6652,
- 0x6654, 0x6653, 0x6655, 0x5978, 0x6656, 0x6657, 0x5753, 0x665d,
- 0x665e, 0x3f57, 0x5450, 0x5756, 0x3466, 0x4b6f, 0x665a, 0x5843,
- 0x574e, 0x5022, 0x434f, 0x665f, 0x3c3e, 0x3942, 0x665b, 0x5127,
- 0x3a22, 0x424f, 0x582b, 0x4a6b, 0x656e, 0x665c, 0x3775, 0x4866,
- 0x4475, 0x6532, 0x447e, 0x4b7c, 0x6533, 0x552c, 0x536e, 0x4a58,
- 0x3032, 0x4b4e, 0x4d6a, 0x3a6a, 0x6535, 0x6534, 0x575a, 0x3959,
- 0x5666, 0x3628, 0x4d70, 0x524b, 0x3126, 0x4a35, 0x3368, 0x4973,
- 0x3f4d, 0x507b, 0x4a52, 0x6536, 0x3b42, 0x4f5c, 0x392c, 0x5457,
- 0x3a26, 0x5167, 0x4f7c, 0x3c52, 0x6537, 0x485d, 0x3f6d, 0x3176,
- 0x4b5e, 0x3c45, 0x3c44, 0x527a, 0x435c, 0x3f5c, 0x383b, 0x4342,
- 0x3a2e, 0x5422, 0x475e, 0x442f, 0x326c, 0x3951, 0x653b, 0x4148,
- 0x552f, 0x653c, 0x653e, 0x3467, 0x3654, 0x4b42, 0x5130, 0x353c,
- 0x4a59, 0x3762, 0x4964, 0x3d2b, 0x4e3e, 0x5770, 0x5021, 0x4959,
- 0x367b, 0x6658, 0x3c62, 0x333e, 0x4950, 0x6659, 0x3322, 0x5e4c,
- 0x5348, 0x5e4d, 0x5222, 0x5e4e, 0x3e4d, 0x5e4f, 0x4a2c, 0x527c,
- 0x335f, 0x656a, 0x4461, 0x3e21, 0x4e32, 0x4472, 0x3e56, 0x4628,
- 0x3263, 0x3e53, 0x477c, 0x4c6b, 0x3d6c, 0x4e5d, 0x4a3a, 0x4641,
- 0x656c, 0x503c, 0x5539, 0x656d, 0x4a74, 0x4d40, 0x4245, 0x656f,
- 0x4244, 0x6570, 0x6578, 0x4d4d, 0x493d, 0x5259, 0x6128, 0x536c,
- 0x4b6a, 0x4671, 0x612c, 0x6127, 0x6129, 0x612a, 0x612f, 0x326d,
- 0x612b, 0x385a, 0x612d, 0x612e, 0x6130, 0x353a, 0x6131, 0x6133,
- 0x6138, 0x5152, 0x6136, 0x6135, 0x416b, 0x6137, 0x5440, 0x6132,
- 0x613a, 0x3036, 0x6134, 0x3f79, 0x6139, 0x613b, 0x613e, 0x613c,
- 0x5645, 0x4f3f, 0x613d, 0x613f, 0x424d, 0x366b, 0x5378, 0x474d,
- 0x3765, 0x3e7e, 0x6140, 0x6141, 0x6147, 0x3367, 0x4669, 0x345e,
- 0x5142, 0x6148, 0x6146, 0x6145, 0x6143, 0x6142, 0x3140, 0x5538,
- 0x6144, 0x614b, 0x614c, 0x614a, 0x6f7a, 0x6153, 0x6152, 0x4736,
- 0x6149, 0x614e, 0x6150, 0x6154, 0x6151, 0x614d, 0x614f, 0x6155,
- 0x6156, 0x6157, 0x6158, 0x615a, 0x615b, 0x4e21, 0x675d, 0x3428,
- 0x565d, 0x5132, 0x3332, 0x3924, 0x5773, 0x4749, 0x3e5e, 0x392e,
- 0x4e57, 0x326e, 0x5b4f, 0x3c3a, 0x5251, 0x4b48, 0x304d, 0x4f6f,
- 0x5963, 0x3d6d, 0x3152, 0x4a50, 0x323c, 0x4b27, 0x372b, 0x4a26,
- 0x4f23, 0x6078, 0x554a, 0x607b, 0x607a, 0x4541, 0x4c7b, 0x4131,
- 0x6079, 0x5663, 0x322f, 0x5644, 0x355b, 0x3478, 0x5621, 0x4f2f,
- 0x306f, 0x607c, 0x6121, 0x3323, 0x607d, 0x607e, 0x4331, 0x435d,
- 0x6122, 0x3779, 0x3b4f, 0x6123, 0x443b, 0x6124, 0x6125, 0x6126,
- 0x3431, 0x3849, 0x463d, 0x446a, 0x3222, 0x5052, 0x675b, 0x3b43,
- 0x5357, 0x5344, 0x3963, 0x624f, 0x572f, 0x476c, 0x3153, 0x3432,
- 0x6251, 0x5072, 0x422e, 0x6250, 0x3f62, 0x5326, 0x3557, 0x6252,
- 0x356a, 0x436d, 0x387d, 0x382e, 0x4553, 0x374f, 0x6254, 0x6253,
- 0x3648, 0x5779, 0x4d25, 0x6258, 0x6256, 0x4a7c, 0x3f35, 0x5339,
- 0x6255, 0x6257, 0x412e, 0x4048, 0x625b, 0x625a, 0x402a, 0x414e,
- 0x625c, 0x625d, 0x625e, 0x5b48, 0x5153, 0x4d22, 0x3d28, 0x5e43,
- 0x5825, 0x3f2a, 0x5b4d, 0x526c, 0x467a, 0x452a, 0x5e44, 0x3157,
- 0x5f2e, 0x4a3d, 0x5f31, 0x392d, 0x527d, 0x3825, 0x3a6b, 0x335a,
- 0x355c, 0x5545, 0x4356, 0x4f52, 0x3b21, 0x6573, 0x6572, 0x6574,
- 0x4d64, 0x4875, 0x352f, 0x473f, 0x6576, 0x6c30, 0x6566, 0x3969,
- 0x3531, 0x423c, 0x6568, 0x6567, 0x6569, 0x524d, 0x616a, 0x504e,
- 0x4d2e, 0x5165, 0x324a, 0x316b, 0x3172, 0x456d, 0x5543, 0x5330,
- 0x615c, 0x615d, 0x525b, 0x3339, 0x314b, 0x4d79, 0x5577, 0x615e,
- 0x3e36, 0x347d, 0x615f, 0x3a5c, 0x6160, 0x3b32, 0x4249, 0x6161,
- 0x506c, 0x4d3d, 0x6162, 0x3543, 0x4547, 0x6163, 0x6164, 0x5379,
- 0x6165, 0x512d, 0x6166, 0x4e22, 0x6167, 0x3542, 0x6168, 0x3b55,
- 0x5044, 0x6260, 0x3158, 0x5264, 0x6261, 0x3c49, 0x484c, 0x6263,
- 0x6c7e, 0x6c7d, 0x5f2f, 0x6262, 0x563e, 0x4d7c, 0x4326, 0x6343,
- 0x5652, 0x6267, 0x6268, 0x5347, 0x626c, 0x3f6c, 0x626d, 0x6265,
- 0x3340, 0x446e, 0x626e, 0x5043, 0x3a76, 0x6269, 0x375e, 0x3b33,
- 0x4c2c, 0x4b4b, 0x6264, 0x6266, 0x626a, 0x626b, 0x6277, 0x6274,
- 0x5475, 0x6273, 0x452d, 0x557a, 0x4542, 0x3240, 0x626f, 0x6272,
- 0x412f, 0x4b3c, 0x3521, 0x6279, 0x3c31, 0x6271, 0x5054, 0x5439,
- 0x6275, 0x3956, 0x6276, 0x4753, 0x6270, 0x575c, 0x6d21, 0x6278,
- 0x6d25, 0x627e, 0x4a51, 0x4135, 0x3b50, 0x3f56, 0x3a63, 0x4b21,
- 0x6d26, 0x6d23, 0x6d22, 0x3b56, 0x6d27, 0x5074, 0x6d24, 0x3a5e,
- 0x3677, 0x6321, 0x3632, 0x4c71, 0x3927, 0x4f22, 0x4721, 0x3f52,
- 0x3671, 0x627a, 0x627b, 0x627d, 0x627c, 0x4455, 0x6322, 0x5341,
- 0x6327, 0x4744, 0x4f24, 0x6329, 0x3a37, 0x6328, 0x3b5a, 0x6323,
- 0x6324, 0x632a, 0x6326, 0x4e72, 0x5346, 0x3b3c, 0x5443, 0x447a,
- 0x6d28, 0x507c, 0x6325, 0x4375, 0x632d, 0x312f, 0x6332, 0x3c42,
- 0x632c, 0x353f, 0x4769, 0x6330, 0x3e2a, 0x4d6f, 0x3b73, 0x4c68,
- 0x632f, 0x6331, 0x4f27, 0x632e, 0x4e29, 0x3b5d, 0x356b, 0x3e65,
- 0x3252, 0x334d, 0x3139, 0x632b, 0x3251, 0x352c, 0x395f, 0x3668,
- 0x4f6b, 0x6337, 0x3b4c, 0x4847, 0x504a, 0x6338, 0x336e, 0x6d29,
- 0x537a, 0x5364, 0x6d2a, 0x6339, 0x5262, 0x6335, 0x535e, 0x3850,
- 0x6333, 0x6336, 0x375f, 0x6334, 0x4022, 0x633a, 0x5438, 0x3448,
- 0x633b, 0x3b45, 0x4977, 0x4965, 0x443d, 0x6d2b, 0x427d, 0x3b5b,
- 0x3f2e, 0x4e3f, 0x633c, 0x3f36, 0x316f, 0x5477, 0x633e, 0x6d2d,
- 0x633f, 0x3a29, 0x6d2c, 0x633d, 0x6340, 0x3a36, 0x362e, 0x5038,
- 0x3043, 0x6d2e, 0x6d2f, 0x4041, 0x6341, 0x4533, 0x6342, 0x5c32,
- 0x6d30, 0x386a, 0x4e6c, 0x6a27, 0x5067, 0x4a79, 0x4856, 0x4f37,
- 0x3349, 0x4e52, 0x3d64, 0x635e, 0x3b72, 0x6a28, 0x553d, 0x465d,
- 0x6a29, 0x6a2a, 0x6a2c, 0x6a2b, 0x6a2e, 0x6a2d, 0x3d58, 0x6a2f,
- 0x423e, 0x3441, 0x3477, 0x3b27, 0x6c66, 0x6c65, 0x373f, 0x4b79,
- 0x3162, 0x6c67, 0x4948, 0x6c68, 0x6c69, 0x4a56, 0x5e50, 0x3245,
- 0x547a, 0x464b, 0x3047, 0x3472, 0x4853, 0x4d50, 0x3f38, 0x3f5b,
- 0x4724, 0x5634, 0x4029, 0x5e51, 0x4928, 0x516f, 0x4524, 0x3067,
- 0x3336, 0x4845, 0x3062, 0x3776, 0x457a, 0x3673, 0x5552, 0x3350,
- 0x3c3c, 0x332d, 0x3e71, 0x3051, 0x5256, 0x4a63, 0x5725, 0x4d36,
- 0x3636, 0x3f39, 0x555b, 0x3827, 0x4557, 0x5e52, 0x3f59, 0x4255,
- 0x4740, 0x3b24, 0x3128, 0x456a, 0x457b, 0x4c27, 0x3127, 0x3556,
- 0x4428, 0x5e53, 0x513a, 0x3369, 0x4372, 0x3777, 0x5674, 0x3523,
- 0x3270, 0x4434, 0x4469, 0x402d, 0x5e54, 0x3068, 0x4544, 0x4160,
- 0x3955, 0x3e5c, 0x4d58, 0x304e, 0x4d4f, 0x5e56, 0x3e50, 0x573e,
- 0x5e55, 0x5550, 0x305d, 0x4462, 0x4223, 0x3c70, 0x5335, 0x4039,
- 0x4521, 0x3226, 0x5471, 0x4028, 0x4a43, 0x5e57, 0x557c, 0x3930,
- 0x482d, 0x4b29, 0x5e59, 0x3f3d, 0x4634, 0x5727, 0x4a30, 0x4443,
- 0x3356, 0x3952, 0x5638, 0x6a7c, 0x3034, 0x3f66, 0x4c74, 0x4d5a,
- 0x563f, 0x424e, 0x4e4e, 0x4c22, 0x502e, 0x4453, 0x3532, 0x5e58,
- 0x5575, 0x3c37, 0x3b53, 0x3024, 0x4532, 0x346c, 0x5571, 0x6a7d,
- 0x5e5a, 0x4d26, 0x4d6c, 0x4e66, 0x5e5c, 0x4d31, 0x4026, 0x573d,
- 0x5e5b, 0x3046, 0x3a34, 0x4953, 0x4473, 0x3e68, 0x3236, 0x404c,
- 0x4b70, 0x3c71, 0x3b3b, 0x3537, 0x4575, 0x5e66, 0x5e63, 0x3e5d,
- 0x5e5f, 0x3437, 0x3d5d, 0x5e60, 0x446d, 0x4f46, 0x3560, 0x365e,
- 0x4a5a, 0x3574, 0x5e65, 0x5546, 0x5e61, 0x4c4d, 0x467e, 0x4545,
- 0x5234, 0x3e72, 0x4253, 0x4c3d, 0x3338, 0x3d53, 0x3f58, 0x4d46,
- 0x515a, 0x346b, 0x5e64, 0x5e5d, 0x5e67, 0x6a7e, 0x4230, 0x5e62,
- 0x5640, 0x3527, 0x3274, 0x5e68, 0x5e72, 0x5e6d, 0x5e71, 0x4860,
- 0x5761, 0x5e6f, 0x4368, 0x4c61, 0x3265, 0x523e, 0x5e6e, 0x5e6b,
- 0x4e55, 0x3427, 0x3f2b, 0x3e3e, 0x3d52, 0x5e69, 0x542e, 0x5e5e,
- 0x5e6a, 0x403f, 0x5e6c, 0x3273, 0x3869, 0x4227, 0x3d41, 0x5e75,
- 0x5e78, 0x322b, 0x3424, 0x346a, 0x4926, 0x5e76, 0x4b51, 0x3863,
- 0x5e77, 0x5e7a, 0x5e79, 0x4c42, 0x3061, 0x346e, 0x653a, 0x502f,
- 0x326b, 0x6b21, 0x5e74, 0x4963, 0x5e73, 0x305a, 0x5221, 0x3177,
- 0x4c2f, 0x5e70, 0x4b24, 0x552a, 0x5e7b, 0x345d, 0x4426, 0x5e7d,
- 0x437e, 0x4421, 0x5f21, 0x414c, 0x5e7c, 0x3e6f, 0x4632, 0x3345,
- 0x4876, 0x4b3a, 0x5e7e, 0x5f24, 0x5732, 0x3337, 0x4143, 0x474b,
- 0x3225, 0x3469, 0x572b, 0x446c, 0x5f22, 0x5f23, 0x5f25, 0x3a33,
- 0x5f26, 0x405e, 0x4943, 0x3259, 0x4766, 0x5f27, 0x475c, 0x5f28,
- 0x6b22, 0x4b53, 0x5f2a, 0x5f29, 0x3241, 0x454a, 0x5f2b, 0x545c,
- 0x4841, 0x5f2c, 0x3e70, 0x5f2d, 0x5627, 0x6a37, 0x6b36, 0x4a55,
- 0x587c, 0x3844, 0x3925, 0x3745, 0x557e, 0x394a, 0x5027, 0x744d,
- 0x3550, 0x4374, 0x3e48, 0x6b37, 0x303d, 0x3d4c, 0x4132, 0x3156,
- 0x3328, 0x3852, 0x4922, 0x3658, 0x6b38, 0x3e34, 0x4a7d, 0x4743,
- 0x557b, 0x3773, 0x4e44, 0x552b, 0x3173, 0x6c33, 0x305f, 0x6c35,
- 0x3637, 0x414f, 0x757a, 0x5031, 0x5565, 0x4e53, 0x3d6f, 0x3362,
- 0x382b, 0x5536, 0x6d3d, 0x364f, 0x4b39, 0x5042, 0x373d, 0x6c36,
- 0x4a29, 0x4554, 0x6c39, 0x6c38, 0x4243, 0x6c37, 0x507d, 0x6c3a,
- 0x6c3b, 0x5765, 0x6c3c, 0x6c3d, 0x466c, 0x4e5e, 0x3c48, 0x4855,
- 0x3529, 0x3e49, 0x563c, 0x5467, 0x512e, 0x5071, 0x6a38, 0x6a39,
- 0x6a3a, 0x3a35, 0x4a31, 0x3f75, 0x4d7a, 0x6a40, 0x303a, 0x6a3e,
- 0x4025, 0x6a3b, 0x327d, 0x4377, 0x3b68, 0x5257, 0x4e74, 0x6a3f,
- 0x6a3c, 0x6a43, 0x5047, 0x5333, 0x343a, 0x4341, 0x5772, 0x5551,
- 0x4a47, 0x6a45, 0x6a44, 0x6a47, 0x6a46, 0x5667, 0x4f54, 0x6a4b,
- 0x3b4e, 0x3d7a, 0x494e, 0x6a4c, 0x4939, 0x4f7e, 0x6a4a, 0x544e,
- 0x6a4d, 0x6a4f, 0x4d6d, 0x6a49, 0x6a4e, 0x4e6e, 0x3b5e, 0x333f,
- 0x4655, 0x3e30, 0x4e7a, 0x4767, 0x3e27, 0x6a50, 0x5647, 0x4140,
- 0x545d, 0x6a51, 0x4f3e, 0x6a52, 0x4a6e, 0x452f, 0x3035, 0x6a54,
- 0x6a53, 0x745f, 0x443a, 0x3129, 0x655f, 0x6a55, 0x4a6f, 0x6a56,
- 0x6a57, 0x4658, 0x6a58, 0x6a59, 0x543b, 0x477a, 0x5237, 0x387c,
- 0x6a42, 0x325c, 0x427c, 0x5478, 0x4c66, 0x576e, 0x5442, 0x5350,
- 0x6b43, 0x4573, 0x377e, 0x6b54, 0x4b37, 0x6b5e, 0x404a, 0x4d7b,
- 0x332f, 0x465a, 0x6b7c, 0x443e, 0x4e34, 0x4429, 0x313e, 0x547d,
- 0x4a75, 0x566c, 0x4653, 0x3664, 0x3b7a, 0x5060, 0x4931, 0x5453,
- 0x4828, 0x384b, 0x683e, 0x493c, 0x683b, 0x406e, 0x5053, 0x3244,
- 0x3465, 0x683c, 0x5548, 0x3645, 0x683d, 0x4a78, 0x385c, 0x4c75,
- 0x4034, 0x516e, 0x683f, 0x6842, 0x3a3c, 0x312d, 0x3d5c, 0x6a3d,
- 0x6843, 0x6846, 0x684b, 0x684c, 0x4b49, 0x3065, 0x3c2b, 0x3939,
- 0x6841, 0x4d77, 0x684a, 0x4e76, 0x556d, 0x4156, 0x6844, 0x4336,
- 0x397b, 0x5626, 0x6848, 0x4a60, 0x5466, 0x6840, 0x6845, 0x6847,
- 0x4739, 0x3763, 0x6849, 0x3f5d, 0x6852, 0x6857, 0x6855, 0x3c5c,
- 0x3c4f, 0x685b, 0x685e, 0x685a, 0x317a, 0x3058, 0x4433, 0x384c,
- 0x4662, 0x483e, 0x4861, 0x684f, 0x6854, 0x6856, 0x3971, 0x6858,
- 0x5775, 0x447b, 0x685c, 0x3269, 0x6851, 0x3c6d, 0x3f42, 0x684d,
- 0x5679, 0x4178, 0x3271, 0x685f, 0x4a41, 0x6859, 0x5524, 0x316a,
- 0x553b, 0x684e, 0x6850, 0x3630, 0x6853, 0x685d, 0x4038, 0x4a77,
- 0x4b28, 0x465c, 0x4075, 0x6869, 0x5023, 0x6872, 0x566a, 0x6860,
- 0x6861, 0x5179, 0x3a4b, 0x3879, 0x3871, 0x5454, 0x686f, 0x686e,
- 0x686c, 0x3970, 0x4c52, 0x6866, 0x4e26, 0x3f72, 0x3038, 0x6871,
- 0x6870, 0x5740, 0x6864, 0x4d29, 0x4923, 0x3b38, 0x3d5b, 0x686a,
- 0x6862, 0x6863, 0x6865, 0x3535, 0x6867, 0x4745, 0x686b, 0x686d,
- 0x3d30, 0x572e, 0x6878, 0x6875, 0x4d30, 0x6876, 0x413a, 0x6868,
- 0x4337, 0x3070, 0x6874, 0x6877, 0x3923, 0x4952, 0x434e, 0x4e60,
- 0x4066, 0x4b73, 0x4c5d, 0x5035, 0x4a61, 0x6873, 0x3c6c, 0x6879,
- 0x435e, 0x4665, 0x3977, 0x3074, 0x5758, 0x3c2c, 0x456f, 0x4c44,
- 0x6926, 0x492d, 0x6922, 0x4062, 0x3f43, 0x687e, 0x3957, 0x687b,
- 0x6924, 0x524e, 0x6923, 0x5632, 0x5735, 0x6927, 0x3d37, 0x687c,
- 0x687d, 0x6921, 0x4d56, 0x522c, 0x6932, 0x6929, 0x342a, 0x343b,
- 0x692b, 0x5028, 0x6925, 0x337e, 0x692c, 0x4063, 0x692a, 0x6939,
- 0x6938, 0x692e, 0x687a, 0x6928, 0x3f2c, 0x6931, 0x693a, 0x4225,
- 0x692f, 0x3845, 0x692d, 0x535c, 0x6934, 0x6935, 0x6937, 0x6947,
- 0x4046, 0x6945, 0x6930, 0x693b, 0x3071, 0x693c, 0x5525, 0x693e,
- 0x693f, 0x6941, 0x4171, 0x4836, 0x693d, 0x6942, 0x6943, 0x6933,
- 0x6936, 0x3b31, 0x6940, 0x3c77, 0x6944, 0x6946, 0x694a, 0x694e,
- 0x325b, 0x6948, 0x372e, 0x694b, 0x694c, 0x5541, 0x4423, 0x6958,
- 0x3a61, 0x6949, 0x5323, 0x6954, 0x6957, 0x6950, 0x694f, 0x4741,
- 0x6952, 0x6959, 0x3348, 0x6953, 0x4f70, 0x694d, 0x3377, 0x6956,
- 0x695a, 0x4c34, 0x4f2d, 0x6955, 0x695c, 0x695b, 0x695e, 0x6951,
- 0x695d, 0x695f, 0x434a, 0x4737, 0x344e, 0x3b36, 0x5040, 0x6c23,
- 0x4537, 0x537b, 0x6c24, 0x6c25, 0x465b, 0x3f6e, 0x6c26, 0x6c27,
- 0x502a, 0x4738, 0x3868, 0x6c28, 0x5639, 0x557d, 0x344b, 0x323d,
- 0x4e64, 0x4667, 0x4d61, 0x3475, 0x4b40, 0x3c5f, 0x6962, 0x6963,
- 0x516a, 0x6965, 0x3479, 0x6964, 0x5133, 0x4a62, 0x3250, 0x6968,
- 0x6966, 0x6967, 0x5633, 0x6969, 0x696a, 0x696b, 0x696c, 0x6c2f,
- 0x4539, 0x364e, 0x5273, 0x356e, 0x3b59, 0x6c31, 0x5263, 0x4e63,
- 0x4438, 0x433f, 0x363e, 0x5839, 0x3148, 0x314f, 0x3151, 0x457e,
- 0x3150, 0x432b, 0x5531, 0x6b24, 0x3a41, 0x4c3a, 0x6b25, 0x6b27,
- 0x6b28, 0x6b26, 0x6b29, 0x6b2b, 0x6b2a, 0x6b2c, 0x4a4f, 0x5835,
- 0x4371, 0x4325, 0x4678, 0x6b2d, 0x444a, 0x6b2e, 0x6b2f, 0x6b30,
- 0x3755, 0x377a, 0x6b31, 0x4762, 0x6b33, 0x3a24, 0x5175, 0x3031,
- 0x6b32, 0x6b34, 0x352a, 0x4248, 0x4768, 0x6b35, 0x4b2e, 0x635f,
- 0x5340, 0x595b, 0x4d21, 0x562d, 0x4773, 0x5960, 0x3b63, 0x3a3a,
- 0x6362, 0x4f2b, 0x6360, 0x4947, 0x3a39, 0x5134, 0x6361, 0x486a,
- 0x392f, 0x3d2d, 0x3358, 0x4e5b, 0x4c40, 0x6368, 0x6369, 0x4d74,
- 0x4c2d, 0x3c33, 0x636a, 0x636b, 0x505a, 0x467b, 0x375a, 0x475f,
- 0x524a, 0x4e56, 0x6364, 0x636c, 0x4972, 0x3341, 0x6367, 0x4663,
- 0x6365, 0x6d33, 0x6366, 0x4933, 0x4566, 0x3935, 0x433b, 0x6363,
- 0x453d, 0x4124, 0x4259, 0x3257, 0x636d, 0x3b26, 0x442d, 0x6370,
- 0x3e5a, 0x637b, 0x6375, 0x3a53, 0x3750, 0x534d, 0x564e, 0x5553,
- 0x3941, 0x5534, 0x5158, 0x5039, 0x4776, 0x482a, 0x3234, 0x435a,
- 0x636e, 0x637c, 0x636f, 0x3728, 0x6377, 0x6374, 0x373a, 0x4522,
- 0x6376, 0x455d, 0x3228, 0x467c, 0x4460, 0x5722, 0x4061, 0x6379,
- 0x637a, 0x637d, 0x4c29, 0x6373, 0x533e, 0x3143, 0x6d34, 0x6371,
- 0x6372, 0x6378, 0x503a, 0x4643, 0x5473, 0x637e, 0x3d60, 0x6427,
- 0x6426, 0x5173, 0x6423, 0x6429, 0x4877, 0x4f34, 0x6428, 0x642e,
- 0x4265, 0x3634, 0x3d72, 0x6422, 0x3a69, 0x642a, 0x642c, 0x367d,
- 0x565e, 0x6432, 0x642d, 0x6421, 0x3b6e, 0x4d5d, 0x4722, 0x4549,
- 0x4177, 0x6424, 0x4733, 0x3d2c, 0x3d3d, 0x6425, 0x5747, 0x3262,
- 0x642b, 0x3c43, 0x642f, 0x3b6b, 0x6430, 0x4528, 0x6431, 0x5563,
- 0x3f23, 0x643a, 0x6437, 0x643b, 0x643d, 0x4656, 0x3a46, 0x404b,
- 0x3821, 0x6434, 0x5421, 0x3a23, 0x3d7e, 0x643c, 0x4d3f, 0x4479,
- 0x4f7b, 0x4966, 0x533f, 0x4f51, 0x6433, 0x6438, 0x6439, 0x4c69,
- 0x4c4e, 0x4054, 0x6435, 0x4130, 0x6436, 0x4e50, 0x3b41, 0x3553,
- 0x4873, 0x3d27, 0x5547, 0x492c, 0x3822, 0x644a, 0x644c, 0x5144,
- 0x523a, 0x3a2d, 0x3a54, 0x6443, 0x356d, 0x574d, 0x6440, 0x4f7d,
- 0x643f, 0x415c, 0x4c4a, 0x4a67, 0x4457, 0x4c54, 0x6448, 0x6447,
- 0x6441, 0x6444, 0x352d, 0x5359, 0x6446, 0x5279, 0x3463, 0x3b34,
- 0x496e, 0x343e, 0x3b6c, 0x514d, 0x4c6d, 0x6d35, 0x4765, 0x5428,
- 0x644b, 0x5755, 0x6442, 0x3d25, 0x6445, 0x5366, 0x6449, 0x4978,
- 0x643e, 0x5365, 0x477e, 0x3649, 0x547c, 0x3233, 0x6457, 0x4e42,
- 0x644d, 0x4e3c, 0x385b, 0x6456, 0x3f4a, 0x534e, 0x436c, 0x4548,
- 0x6458, 0x4d44, 0x644f, 0x6454, 0x6455, 0x3a7e, 0x4f66, 0x553f,
- 0x6452, 0x6450, 0x644e, 0x4d65, 0x4a2a, 0x4023, 0x3d26, 0x6453,
- 0x3848, 0x6467, 0x5434, 0x645b, 0x416f, 0x6469, 0x5267, 0x645f,
- 0x6460, 0x4f2a, 0x4b5d, 0x645a, 0x6451, 0x6465, 0x485c, 0x6463,
- 0x4467, 0x6462, 0x6461, 0x337c, 0x6468, 0x3561, 0x574c, 0x6466,
- 0x3b2c, 0x5752, 0x4c4f, 0x6b78, 0x6464, 0x3976, 0x564d, 0x6459,
- 0x645c, 0x427a, 0x645e, 0x424b, 0x4044, 0x4250, 0x3175, 0x4c32,
- 0x354e, 0x646f, 0x462f, 0x4661, 0x6475, 0x4229, 0x406c, 0x515d,
- 0x646e, 0x442e, 0x646d, 0x6476, 0x6474, 0x427e, 0x645d, 0x6470,
- 0x4a7e, 0x5544, 0x6471, 0x517a, 0x646b, 0x646c, 0x6472, 0x4e2b,
- 0x454b, 0x4731, 0x423a, 0x646a, 0x414a, 0x4c36, 0x3331, 0x647b,
- 0x6473, 0x647a, 0x647d, 0x647c, 0x334e, 0x333a, 0x6477, 0x6479,
- 0x6478, 0x456c, 0x403d, 0x5468, 0x6522, 0x3044, 0x6524, 0x6523,
- 0x3c24, 0x6525, 0x6521, 0x647e, 0x3174, 0x6528, 0x6529, 0x6526,
- 0x6527, 0x652a, 0x4659, 0x652b, 0x652d, 0x652c, 0x652f, 0x652e,
- 0x3960, 0x6530, 0x6531, 0x3b70, 0x6c61, 0x4370, 0x3546, 0x3b52,
- 0x4169, 0x546e, 0x3e44, 0x5746, 0x5456, 0x3253, 0x6c3e, 0x6a41,
- 0x422f, 0x3436, 0x5157, 0x3334, 0x4832, 0x3f3b, 0x6c40, 0x564b,
- 0x6c3f, 0x6c41, 0x6c45, 0x3e66, 0x4c3f, 0x455a, 0x3e3c, 0x6c46,
- 0x317e, 0x6c44, 0x5528, 0x3563, 0x6c42, 0x4136, 0x3363, 0x6c43,
- 0x4b38, 0x4043, 0x4c7e, 0x4152, 0x6c48, 0x3a66, 0x4053, 0x5672,
- 0x514c, 0x3f3e, 0x3733, 0x4955, 0x6c47, 0x3b62, 0x4c4c, 0x3d7d,
- 0x4848, 0x4f29, 0x4d69, 0x456b, 0x3769, 0x5149, 0x3a38, 0x6c49,
- 0x6c4a, 0x3b40, 0x6c4b, 0x6c62, 0x313a, 0x3759, 0x3d39, 0x6c4c,
- 0x5166, 0x6c4d, 0x483b, 0x6c51, 0x6c53, 0x3b4d, 0x3c65, 0x6c4f,
- 0x4937, 0x433a, 0x6c63, 0x5555, 0x6c50, 0x5673, 0x6c52, 0x6c4e,
- 0x6c54, 0x6c55, 0x493f, 0x4f28, 0x505c, 0x512c, 0x485b, 0x6c56,
- 0x4e75, 0x4a6c, 0x6c5a, 0x6c59, 0x303e, 0x6c57, 0x6c58, 0x6c64,
- 0x483c, 0x4147, 0x6c5c, 0x5160, 0x6c5b, 0x546f, 0x6c5d, 0x5b46,
- 0x6c5e, 0x312c, 0x6c5f, 0x6c60, 0x5726, 0x4540, 0x6b3c, 0x302e,
- 0x3e74, 0x3838, 0x522f, 0x3056, 0x3579, 0x5833, 0x4b2c, 0x635d,
- 0x462c, 0x3066, 0x4546, 0x6b39, 0x6b3a, 0x6b3b, 0x5140, 0x4523,
- 0x6a72, 0x4432, 0x4435, 0x404e, 0x6a73, 0x4441, 0x4e6f, 0x6a70,
- 0x6a74, 0x497c, 0x4723, 0x4c58, 0x4e7e, 0x6a75, 0x6a76, 0x4f2c,
- 0x4067, 0x6a77, 0x363f, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, 0x6a71,
- 0x482e, 0x616b, 0x3738, 0x616c, 0x616d, 0x5734, 0x616e, 0x616f,
- 0x534c, 0x6171, 0x3f71, 0x6170, 0x3552, 0x3137, 0x6173, 0x6172,
- 0x3a7c, 0x6174, 0x3937, 0x3e51, 0x447c, 0x3a5d, 0x3d46, 0x6175,
- 0x6177, 0x3640, 0x4f41, 0x4a28, 0x6176, 0x5578, 0x537c, 0x6178,
- 0x617c, 0x6179, 0x617a, 0x406a, 0x617e, 0x6221, 0x4047, 0x617b,
- 0x617d, 0x6225, 0x4154, 0x6223, 0x6228, 0x327e, 0x6222, 0x434d,
- 0x3242, 0x6227, 0x6226, 0x6224, 0x6229, 0x622b, 0x5049, 0x566d,
- 0x4328, 0x622c, 0x4f57, 0x622e, 0x3a6f, 0x6960, 0x622d, 0x622a,
- 0x3b2b, 0x5433, 0x6230, 0x622f, 0x6961, 0x6231, 0x6232, 0x6233,
- 0x4c21, 0x6234, 0x6235, 0x507e, 0x424a, 0x5371, 0x4d75, 0x6760,
- 0x6761, 0x3e41, 0x426a, 0x6764, 0x6763, 0x4d66, 0x4335, 0x6762,
- 0x3b37, 0x4f56, 0x4161, 0x6769, 0x6768, 0x6774, 0x3223, 0x676a,
- 0x6766, 0x676c, 0x676b, 0x493a, 0x5564, 0x6765, 0x3729, 0x6767,
- 0x676e, 0x6773, 0x5669, 0x676d, 0x6772, 0x6771, 0x3060, 0x6775,
- 0x4772, 0x4045, 0x406d, 0x4170, 0x6770, 0x6776, 0x4b76, 0x6822,
- 0x6821, 0x5741, 0x677a, 0x6779, 0x677b, 0x6777, 0x677e, 0x677d,
- 0x677c, 0x4155, 0x4759, 0x457d, 0x4543, 0x476d, 0x6823, 0x6826,
- 0x6825, 0x6827, 0x3a77, 0x6778, 0x6824, 0x4870, 0x492a, 0x6829,
- 0x3965, 0x517e, 0x6828, 0x682a, 0x682d, 0x682e, 0x4127, 0x682f,
- 0x6830, 0x682c, 0x6834, 0x682b, 0x6831, 0x6835, 0x6832, 0x6833,
- 0x6837, 0x6836, 0x394f, 0x702c, 0x702d, 0x4630, 0x306a, 0x483f,
- 0x4d5f, 0x4e4d, 0x6a31, 0x6a32, 0x463f, 0x3449, 0x6a33, 0x5567,
- 0x5d79, 0x6a34, 0x6a35, 0x6a36, 0x384a, 0x5f30, 0x4975, 0x4c70,
- 0x497a, 0x497b, 0x5343, 0x4b26, 0x3826, 0x702e, 0x3142, 0x6538,
- 0x4c6f, 0x5349, 0x3c57, 0x496a, 0x3567, 0x4450, 0x3569, 0x6e2e,
- 0x3b2d, 0x675e, 0x6e2f, 0x3329, 0x6e32, 0x6e31, 0x3d67, 0x6e30,
- 0x4e37, 0x454f, 0x4174, 0x5b4e, 0x6e33, 0x5073, 0x4254, 0x4668,
- 0x372c, 0x6e34, 0x336b, 0x3b7b, 0x6e35, 0x675c, 0x6e36, 0x3d2e,
- 0x7162, 0x4a68, 0x5249, 0x705a, 0x705b, 0x705c, 0x4146, 0x386d,
- 0x3e4e, 0x705e, 0x4531, 0x705d, 0x5171, 0x7060, 0x304c, 0x3d6a,
- 0x525f, 0x705f, 0x342f, 0x3768, 0x7066, 0x7065, 0x4623, 0x7061,
- 0x7062, 0x3443, 0x7063, 0x556e, 0x4c5b, 0x3e52, 0x3c32, 0x7068,
- 0x7067, 0x7064, 0x3221, 0x5622, 0x5338, 0x3e37, 0x482c, 0x706a,
- 0x5177, 0x564c, 0x3a5b, 0x7069, 0x363b, 0x4d34, 0x4626, 0x4121,
- 0x706b, 0x706e, 0x706d, 0x7070, 0x706c, 0x3b3e, 0x706f, 0x4c35,
- 0x7072, 0x3355, 0x3154, 0x7073, 0x7074, 0x7076, 0x3461, 0x7071,
- 0x7077, 0x707a, 0x7078, 0x7075, 0x707d, 0x7079, 0x707c, 0x707e,
- 0x7121, 0x4e41, 0x7124, 0x7123, 0x4176, 0x707b, 0x4a5d, 0x3471,
- 0x3171, 0x4c31, 0x7126, 0x7127, 0x712c, 0x554e, 0x7129, 0x4833,
- 0x7122, 0x712b, 0x7128, 0x7125, 0x712a, 0x3029, 0x712d, 0x712f,
- 0x7131, 0x7130, 0x712e, 0x5122, 0x7132, 0x7133, 0x396f, 0x3547,
- 0x3057, 0x3059, 0x546d, 0x3544, 0x3d54, 0x3b4a, 0x7027, 0x385e,
- 0x7028, 0x3028, 0x7029, 0x4d6e, 0x702a, 0x702b, 0x4624, 0x5665,
- 0x7164, 0x7165, 0x4373, 0x535b, 0x5651, 0x4568, 0x532f, 0x5266,
- 0x6e41, 0x303b, 0x5535, 0x514e, 0x3c60, 0x3a50, 0x3f78, 0x3847,
- 0x3541, 0x454c, 0x4a22, 0x434b, 0x6e42, 0x443f, 0x3622, 0x6d6c,
- 0x4324, 0x5631, 0x4f60, 0x6d6f, 0x454e, 0x365c, 0x4a21, 0x6d6d,
- 0x6d70, 0x6d71, 0x433c, 0x3f34, 0x6d6e, 0x6d74, 0x6d72, 0x5566,
- 0x435f, 0x6d73, 0x6d76, 0x5523, 0x5123, 0x6d75, 0x4350, 0x6d77,
- 0x3f74, 0x3e6c, 0x6d78, 0x4c77, 0x515b, 0x5745, 0x5576, 0x6d7c,
- 0x6d7b, 0x6d79, 0x6d7a, 0x6d7d, 0x3e26, 0x4b2f, 0x6e21, 0x363d,
- 0x6e22, 0x4440, 0x6d7e, 0x3d5e, 0x3247, 0x3643, 0x6e25, 0x583a,
- 0x6e23, 0x6e26, 0x4369, 0x3372, 0x6e27, 0x6e24, 0x4f39, 0x6e28,
- 0x4277, 0x6e29, 0x6e2a, 0x5e2b, 0x4633, 0x4746, 0x5675, 0x3549,
- 0x4b32, 0x6e2b, 0x4d2b, 0x6e2c, 0x5530, 0x6e2d, 0x7644, 0x5b47,
- 0x3423, 0x432c, 0x7166, 0x4a38, 0x5253, 0x562a, 0x6f72, 0x3e58,
- 0x3d43, 0x6f73, 0x364c, 0x302b, 0x4a2f, 0x6d36, 0x6d37, 0x4e79,
- 0x372f, 0x3f73, 0x6d38, 0x426b, 0x4930, 0x6d39, 0x4676, 0x3f33,
- 0x6d3c, 0x4578, 0x5150, 0x5729, 0x6d3a, 0x6d3b, 0x5162, 0x6d3f,
- 0x6d40, 0x6d44, 0x6d48, 0x6d46, 0x6d4e, 0x5568, 0x6d49, 0x6d47,
- 0x6d3e, 0x4569, 0x4646, 0x4969, 0x5452, 0x6d41, 0x6d42, 0x6d43,
- 0x6d45, 0x4079, 0x3421, 0x3968, 0x6d50, 0x6d51, 0x6d4a, 0x6d4f,
- 0x4e78, 0x4b36, 0x6d4c, 0x6d4d, 0x4f75, 0x6d52, 0x4172, 0x5332,
- 0x6d4b, 0x4837, 0x3c6f, 0x4570, 0x6d56, 0x356f, 0x4235, 0x302d,
- 0x4b69, 0x312e, 0x6d54, 0x4d6b, 0x3562, 0x6d55, 0x6d53, 0x6d57,
- 0x357a, 0x6d58, 0x6d59, 0x6d5c, 0x314c, 0x4576, 0x3c6e, 0x6d5a,
- 0x4c3c, 0x326a, 0x6d5b, 0x446b, 0x3445, 0x3075, 0x6d5f, 0x405a,
- 0x3468, 0x454d, 0x6d5d, 0x3f44, 0x6d5e, 0x4425, 0x6d60, 0x6d61,
- 0x6d63, 0x4157, 0x3b47, 0x3d38, 0x6d62, 0x6d64, 0x6d66, 0x6d65,
- 0x6d67, 0x4a3e, 0x6c6a, 0x4071, 0x4967, 0x6c6b, 0x466e, 0x6c6c,
- 0x466d, 0x6c6d, 0x6c70, 0x5766, 0x6c73, 0x6c71, 0x6c6e, 0x6c6f,
- 0x5723, 0x4971, 0x4b6e, 0x6c74, 0x6c72, 0x4f69, 0x6c76, 0x4631,
- 0x3c40, 0x6c75, 0x353b, 0x3b76, 0x6c77, 0x5977, 0x3d7b, 0x423b,
- 0x6c78, 0x6c79, 0x3823, 0x6c7a, 0x6c7b, 0x6c7c, 0x536d, 0x582e,
- 0x406b, 0x475d, 0x3a4c, 0x5063, 0x4b3d, 0x4d3a, 0x3851, 0x317c,
- 0x476f, 0x5656, 0x3f46, 0x436b, 0x6f75, 0x4358, 0x5762, 0x6f77,
- 0x3353, 0x4758, 0x516d, 0x5648, 0x6f78, 0x6f76, 0x3b7d, 0x3346,
- 0x3d55, 0x5246, 0x3b60, 0x4f21, 0x6f7c, 0x6f7b, 0x6f79, 0x334c,
- 0x4954, 0x4b30, 0x6f7e, 0x305e, 0x5649, 0x6f7d, 0x336d, 0x7655,
- 0x4e48, 0x7022, 0x7021, 0x353e, 0x3c5a, 0x3b7c, 0x3865, 0x4442,
- 0x7023, 0x4b6b, 0x7026, 0x5128, 0x3e3f, 0x476e, 0x7136, 0x7137,
- 0x3f55, 0x3429, 0x7138, 0x4d3b, 0x4754, 0x552d, 0x7139, 0x713a,
- 0x474f, 0x5224, 0x564f, 0x713b, 0x3d51, 0x3430, 0x3e3d, 0x345c,
- 0x4e51, 0x3f5f, 0x713d, 0x3f7a, 0x713c, 0x713f, 0x713e, 0x7140,
- 0x7141, 0x417e, 0x4122, 0x4a7a, 0x553e, 0x3e3a, 0x3e39, 0x5542,
- 0x3f22, 0x4d2f, 0x7135, 0x3d5f, 0x364b, 0x5671, 0x7343, 0x7344,
- 0x384d, 0x7346, 0x7347, 0x304a, 0x7345, 0x7349, 0x4b71, 0x734b,
- 0x5026, 0x314a, 0x7348, 0x734f, 0x3551, 0x7357, 0x7352, 0x7354,
- 0x7353, 0x377b, 0x313f, 0x734e, 0x734a, 0x355a, 0x7350, 0x7351,
- 0x7355, 0x734d, 0x3c63, 0x417d, 0x7356, 0x735a, 0x734c, 0x3548,
- 0x3d6e, 0x735c, 0x3724, 0x3f70, 0x567e, 0x4d32, 0x3470, 0x325f,
- 0x7358, 0x7359, 0x4938, 0x735d, 0x735e, 0x7361, 0x735f, 0x7363,
- 0x7362, 0x735b, 0x3f6a, 0x336f, 0x7360, 0x4729, 0x3c72, 0x736b,
- 0x393f, 0x7364, 0x322d, 0x3b7e, 0x4b63, 0x736d, 0x7369, 0x395c,
- 0x736e, 0x7365, 0x7366, 0x736a, 0x4261, 0x736c, 0x736f, 0x7368,
- 0x3c7d, 0x4f64, 0x7370, 0x7367, 0x7372, 0x572d, 0x462a, 0x7373,
- 0x7371, 0x4228, 0x385d, 0x7375, 0x7374, 0x345b, 0x7376, 0x7377,
- 0x7378, 0x403a, 0x4069, 0x4571, 0x737b, 0x737a, 0x3458, 0x737e,
- 0x7379, 0x737c, 0x737d, 0x7421, 0x7423, 0x3b49, 0x7422, 0x7424,
- 0x323e, 0x7426, 0x7425, 0x3c2e, 0x4357, 0x5961, 0x4060, 0x744c,
- 0x5751, 0x375b, 0x744e, 0x4123, 0x4649, 0x3456, 0x5533, 0x7450,
- 0x744f, 0x7451, 0x4b5a, 0x7452, 0x5441, 0x5660, 0x3760, 0x4138,
- 0x413b, 0x7453, 0x3e2c, 0x3462, 0x7454, 0x7455, 0x3e2b, 0x7456,
- 0x745b, 0x7457, 0x745a, 0x3a7d, 0x7458, 0x7459, 0x3862, 0x4c47,
- 0x745c, 0x325a, 0x4353, 0x5463, 0x3f37, 0x745d, 0x4534, 0x7469,
- 0x4f35, 0x4e49, 0x4b58, 0x4b77, 0x3d74, 0x574f, 0x405b, 0x5075,
- 0x746a, 0x746b, 0x746c, 0x7763, 0x3731, 0x746d, 0x576b, 0x746e,
- 0x6679, 0x3e40, 0x667a, 0x3a6c, 0x667b, 0x4f4b, 0x667c, 0x543c,
- 0x3c36, 0x667d, 0x667e, 0x3c4d, 0x4852, 0x4e33, 0x6721, 0x343f,
- 0x6722, 0x4934, 0x3859, 0x4449, 0x575d, 0x425a, 0x3757, 0x563d,
- 0x4e46, 0x3744, 0x4526, 0x6723, 0x4f5f, 0x6724, 0x6725, 0x6726,
- 0x4137, 0x5769, 0x4970, 0x4f38, 0x562f, 0x5655, 0x6727, 0x306d,
- 0x6728, 0x6729, 0x495c, 0x526f, 0x3e2d, 0x672a, 0x3073, 0x485e,
- 0x3d61, 0x672b, 0x4846, 0x672c, 0x3b66, 0x3878, 0x5124, 0x672d,
- 0x4267, 0x3e78, 0x3d4a, 0x4d33, 0x672e, 0x672f, 0x3e6e, 0x5065,
- 0x4b67, 0x4c50, 0x3c4c, 0x6730, 0x3c28, 0x5077, 0x6731, 0x5078,
- 0x6732, 0x6733, 0x3442, 0x6734, 0x6735, 0x497e, 0x4e2c, 0x4360,
- 0x6737, 0x3141, 0x3371, 0x6738, 0x6739, 0x575b, 0x5540, 0x673a,
- 0x424c, 0x573a, 0x673b, 0x673c, 0x673d, 0x3c6a, 0x4365, 0x4042,
- 0x673e, 0x673f, 0x3c29, 0x6740, 0x6741, 0x6736, 0x3650, 0x6742,
- 0x6743, 0x6744, 0x3b3a, 0x355e, 0x4246, 0x3160, 0x6745, 0x5435,
- 0x6746, 0x383f, 0x6748, 0x6747, 0x376c, 0x6749, 0x3278, 0x674a,
- 0x674b, 0x674c, 0x674d, 0x674e, 0x674f, 0x6750, 0x5327, 0x4b75,
- 0x6751, 0x6752, 0x6753, 0x6754, 0x4949, 0x6755, 0x6756, 0x6757,
- 0x6758, 0x6759, 0x3d49, 0x675a, 0x733e, 0x3857, 0x4831, 0x733f,
- 0x7340, 0x7341, 0x395e, 0x4d78, 0x5868, 0x3a31, 0x425e, 0x6e37,
- 0x3723, 0x6e39, 0x6e38, 0x3055, 0x6e3b, 0x5556, 0x576f, 0x5643,
- 0x6e3d, 0x4a70, 0x6e3c, 0x6e3e, 0x6e40, 0x6e3f, 0x5172, 0x473c,
- 0x4340, 0x3861, 0x4167, 0x7446, 0x505f, 0x7447, 0x4f5b, 0x483a,
- 0x7448, 0x7449, 0x744a, 0x744b, 0x597a, 0x387e, 0x6571, 0x5370,
- 0x7460, 0x4e4c, 0x3361, 0x7134, 0x526e, 0x7461, 0x4f68, 0x7462,
- 0x474c, 0x3554, 0x3464, 0x7464, 0x7463, 0x7465, 0x7466, 0x7467,
- 0x3a32, 0x303f, 0x7468, 0x372d, 0x526d, 0x522b, 0x404f, 0x3f3c,
- 0x6b23, 0x555f, 0x6a48, 0x7173, 0x3678, 0x4b23, 0x444d, 0x7167,
- 0x7168, 0x387b, 0x7169, 0x3a44, 0x5445, 0x3052, 0x716a, 0x716b,
- 0x716c, 0x716d, 0x716e, 0x716f, 0x7171, 0x7170, 0x4555, 0x7172,
- 0x367a, 0x7174, 0x522e, 0x5e47, 0x4b4a, 0x335c, 0x3522, 0x3922,
- 0x4474, 0x7175, 0x7176, 0x4144, 0x417b, 0x5630, 0x7177, 0x7178,
- 0x412a, 0x4638, 0x3e5b, 0x7179, 0x344f, 0x717a, 0x6d32, 0x6d31,
- 0x4b60, 0x525e, 0x4b41, 0x5558, 0x4862, 0x405f, 0x3c21, 0x6b41,
- 0x5024, 0x5662, 0x3647, 0x3858, 0x6b40, 0x384e, 0x6b3f, 0x3326,
- 0x3949, 0x562b, 0x3774, 0x374a, 0x3c67, 0x373e, 0x6b46, 0x6b47,
- 0x3039, 0x3f4f, 0x6b45, 0x537d, 0x6b48, 0x6b49, 0x374e, 0x6b42,
- 0x6b44, 0x4976, 0x5657, 0x554d, 0x5032, 0x6b4f, 0x4e38, 0x6b50,
- 0x3528, 0x3133, 0x6b52, 0x4c25, 0x4556, 0x6b53, 0x6b51, 0x455f,
- 0x6b4e, 0x4a24, 0x6b55, 0x307b, 0x3a7a, 0x5837, 0x7163, 0x6b4a,
- 0x6b4b, 0x6b4c, 0x6b4d, 0x6b56, 0x6640, 0x6b59, 0x3f68, 0x5248,
- 0x6b57, 0x6b5c, 0x386c, 0x6b58, 0x3d3a, 0x5058, 0x3037, 0x6b5d,
- 0x445c, 0x562c, 0x3460, 0x4276, 0x3c39, 0x6b5a, 0x6b5b, 0x5460,
- 0x466a, 0x4454, 0x6b5f, 0x4527, 0x5975, 0x3231, 0x6b64, 0x3d45,
- 0x6b62, 0x6b63, 0x382c, 0x4d51, 0x6b65, 0x6b61, 0x4133, 0x4622,
- 0x4c73, 0x6b66, 0x4030, 0x5238, 0x6b67, 0x382f, 0x382d, 0x6b68,
- 0x473b, 0x4d73, 0x6b6a, 0x6b6b, 0x6b6d, 0x5048, 0x6b72, 0x6b6e,
- 0x6b71, 0x4879, 0x517c, 0x6b6c, 0x6b69, 0x3839, 0x4f59, 0x4465,
- 0x6b6f, 0x6b70, 0x4c5a, 0x4d48, 0x3072, 0x6b76, 0x6b75, 0x3232,
- 0x3860, 0x6b77, 0x316c, 0x4c45, 0x4424, 0x4f25, 0x6b79, 0x6c22,
- 0x4572, 0x6b7a, 0x4945, 0x625f, 0x6b7e, 0x4d4e, 0x6c21, 0x315b,
- 0x5337, 0x525c, 0x6b7d, 0x6b7b, 0x333c, 0x6a30, 0x5754, 0x742b,
- 0x3374, 0x5641, 0x5642, 0x5569, 0x3e4a, 0x7427, 0x5228, 0x7428,
- 0x7429, 0x742a, 0x3e4b, 0x535f, 0x4960, 0x4961, 0x7342, 0x4a66,
- 0x4c72, 0x6236, 0x4b34, 0x4e68, 0x565b, 0x742d, 0x742e, 0x742f,
- 0x7432, 0x3a3d, 0x7433, 0x3063, 0x7430, 0x7431, 0x3d22, 0x3255,
- 0x7436, 0x7437, 0x3666, 0x3230, 0x4f4f, 0x7434, 0x342c, 0x7435,
- 0x7438, 0x7439, 0x4d27, 0x743a, 0x743b, 0x743c, 0x4b52, 0x743d,
- 0x743e, 0x743f, 0x745e, 0x413c, 0x3c68, 0x492b, 0x515e, 0x6575,
- 0x5c33, 0x5255, 0x5c34, 0x302c, 0x5c35, 0x3d5a, 0x5c39, 0x5842,
- 0x5c37, 0x5373, 0x4956, 0x5c3a, 0x5c36, 0x5c3b, 0x4322, 0x5c3c,
- 0x5c45, 0x5c3d, 0x4e5f, 0x5625, 0x5c4f, 0x5c4d, 0x5c52, 0x3d66,
- 0x422b, 0x5c38, 0x5c4b, 0x5c4e, 0x5c3e, 0x3752, 0x3045, 0x5c47,
- 0x503e, 0x5c41, 0x3b28, 0x373c, 0x5c4c, 0x5c46, 0x5c3f, 0x475b,
- 0x513f, 0x5c40, 0x5c4a, 0x5c50, 0x4e2d, 0x5c42, 0x5c43, 0x5c48,
- 0x5c49, 0x3254, 0x5c51, 0x4b55, 0x5437, 0x5c5b, 0x5c5f, 0x4c26,
- 0x5c66, 0x4367, 0x5c5c, 0x3f41, 0x5c59, 0x307a, 0x3936, 0x5c65,
- 0x5c53, 0x5c44, 0x5c56, 0x4874, 0x3f60, 0x493b, 0x313d, 0x5322,
- 0x5c5a, 0x5c55, 0x463b, 0x5c5e, 0x5742, 0x432f, 0x3736, 0x4751,
- 0x4329, 0x5c62, 0x5c58, 0x5c6b, 0x5c54, 0x5c5d, 0x3e25, 0x5c57,
- 0x5c60, 0x5c63, 0x5c64, 0x5c78, 0x5c61, 0x5d22, 0x5c67, 0x3c6b,
- 0x3444, 0x4323, 0x3267, 0x5c7a, 0x5c72, 0x5c6f, 0x5c7c, 0x5c6e,
- 0x5270, 0x3268, 0x4857, 0x4863, 0x5c7b, 0x5c6d, 0x5c77, 0x5c75,
- 0x3e23, 0x5c74, 0x325d, 0x5c73, 0x3c76, 0x5c68, 0x3b44, 0x4073,
- 0x3c54, 0x5c69, 0x5c6a, 0x5c71, 0x5c76, 0x5c79, 0x3534, 0x4859,
- 0x3b67, 0x5c7e, 0x5c7d, 0x532b, 0x5d21, 0x5d23, 0x5d25, 0x5271,
- 0x5d24, 0x5d26, 0x5d27, 0x5229, 0x3a49, 0x5d29, 0x5d36, 0x5d31,
- 0x5d34, 0x5d30, 0x464e, 0x4072, 0x492f, 0x5c6c, 0x5d2e, 0x5d37,
- 0x5c70, 0x5d2f, 0x5d38, 0x5d2c, 0x5d39, 0x5d33, 0x5d2d, 0x442a,
- 0x5d28, 0x4033, 0x412b, 0x5d2a, 0x5d2b, 0x5d32, 0x3b71, 0x5d35,
- 0x5328, 0x5d3a, 0x5d3b, 0x4327, 0x5d52, 0x5d3c, 0x5d51, 0x393d,
- 0x3e55, 0x3e7a, 0x3a4a, 0x5d4a, 0x5d45, 0x5d3f, 0x324b, 0x5d43,
- 0x5d4b, 0x3224, 0x5d55, 0x5d3e, 0x4650, 0x5d50, 0x5d54, 0x4162,
- 0x3746, 0x5d4e, 0x5d4f, 0x5d44, 0x5d3d, 0x5d4d, 0x4c51, 0x5d49,
- 0x5d42, 0x4348, 0x463c, 0x4e2e, 0x5d4c, 0x5d48, 0x5d41, 0x5d46,
- 0x425c, 0x5329, 0x532a, 0x5d53, 0x4f74, 0x4878, 0x5d66, 0x5d47,
- 0x5d60, 0x4264, 0x5d61, 0x5d57, 0x5678, 0x5d59, 0x5d58, 0x3870,
- 0x5d56, 0x464f, 0x362d, 0x5d62, 0x3a79, 0x5461, 0x5d67, 0x3450,
- 0x5d5a, 0x3f7b, 0x5d63, 0x5d5f, 0x5d5d, 0x3559, 0x5d5b, 0x5d5c,
- 0x5d5e, 0x3d2f, 0x5d64, 0x5d65, 0x5d75, 0x4349, 0x4b62, 0x5d72,
- 0x5861, 0x4651, 0x5d74, 0x5574, 0x5d73, 0x5d70, 0x5d6c, 0x5d6f,
- 0x5d68, 0x506e, 0x4858, 0x5d6e, 0x5d69, 0x5d6a, 0x4b72, 0x5d6d,
- 0x314d, 0x4036, 0x3c3b, 0x5d71, 0x5d77, 0x5d76, 0x5d6b, 0x456e,
- 0x5d7b, 0x5e24, 0x5e23, 0x5d78, 0x436f, 0x427b, 0x5561, 0x4e35,
- 0x5d7d, 0x324c, 0x4468, 0x4a5f, 0x473e, 0x5d7a, 0x5d7c, 0x5d7e,
- 0x5e22, 0x302a, 0x314e, 0x5e2c, 0x5e26, 0x3d36, 0x486f, 0x5e21,
- 0x5e25, 0x5e29, 0x5e28, 0x5e27, 0x5e2d, 0x544c, 0x5e33, 0x5e2a,
- 0x5e2e, 0x4059, 0x3121, 0x5e36, 0x5e31, 0x5e32, 0x5126, 0x5e35,
- 0x5e2f, 0x5e30, 0x503d, 0x5e34, 0x4a6d, 0x5e39, 0x5e38, 0x5e37,
- 0x5e3b, 0x3d65, 0x3258, 0x436a, 0x5e3a, 0x453a, 0x5e3c, 0x4c59,
- 0x372a, 0x5465, 0x5e3d, 0x5e3f, 0x4422, 0x5e41, 0x5e3e, 0x5e40,
- 0x553a, 0x5e42, 0x722e, 0x3b22, 0x4232, 0x4530, 0x4247, 0x722f,
- 0x5069, 0x535d, 0x6b3d, 0x3366, 0x7230, 0x7231, 0x4a2d, 0x3a67,
- 0x7233, 0x7235, 0x7234, 0x4b64, 0x4f3a, 0x7232, 0x4a34, 0x524f,
- 0x426c, 0x4e43, 0x7238, 0x3076, 0x7237, 0x723e, 0x324f, 0x5141,
- 0x723a, 0x723c, 0x5469, 0x723b, 0x7236, 0x723f, 0x723d, 0x7239,
- 0x7247, 0x7244, 0x7246, 0x724a, 0x7242, 0x7240, 0x7245, 0x567b,
- 0x7241, 0x4779, 0x495f, 0x7248, 0x3946, 0x3530, 0x7243, 0x7249,
- 0x7250, 0x7256, 0x3b57, 0x7255, 0x4d5c, 0x566b, 0x7252, 0x7254,
- 0x3872, 0x724b, 0x724e, 0x4279, 0x555d, 0x724c, 0x724d, 0x724f,
- 0x7253, 0x7259, 0x533c, 0x366a, 0x4a71, 0x3764, 0x7257, 0x7258,
- 0x725a, 0x725d, 0x725b, 0x725c, 0x5151, 0x7251, 0x4d49, 0x4e4f,
- 0x5629, 0x7263, 0x435b, 0x7260, 0x402f, 0x726c, 0x725e, 0x7261,
- 0x7268, 0x7262, 0x7267, 0x7266, 0x7269, 0x725f, 0x7264, 0x726a,
- 0x532c, 0x7265, 0x3275, 0x7272, 0x502b, 0x7275, 0x3b48, 0x7279,
- 0x7270, 0x7276, 0x7278, 0x727a, 0x7273, 0x7271, 0x3a7b, 0x357b,
- 0x726f, 0x7277, 0x726d, 0x726e, 0x726b, 0x7326, 0x7323, 0x7322,
- 0x7274, 0x485a, 0x727b, 0x7325, 0x4378, 0x727d, 0x7327, 0x7329,
- 0x7324, 0x727c, 0x732b, 0x732a, 0x425d, 0x732e, 0x7330, 0x7321,
- 0x7331, 0x732c, 0x732f, 0x727e, 0x732d, 0x7332, 0x7334, 0x7328,
- 0x7333, 0x7335, 0x5037, 0x7338, 0x5979, 0x7339, 0x7337, 0x4864,
- 0x7336, 0x733a, 0x733b, 0x3440, 0x6e43, 0x733c, 0x733d, 0x512a,
- 0x742c, 0x5046, 0x5050, 0x515c, 0x4f4e, 0x3d56, 0x5143, 0x3a62,
- 0x6169, 0x5242, 0x7142, 0x3239, 0x316d, 0x7143, 0x4940, 0x3344,
- 0x5972, 0x4b25, 0x7144, 0x5654, 0x7145, 0x7440, 0x7146, 0x542c,
- 0x7147, 0x3040, 0x7441, 0x7442, 0x347c, 0x455b, 0x4c3b, 0x5064,
- 0x4d60, 0x7148, 0x5973, 0x313b, 0x4f2e, 0x3824, 0x714a, 0x714b,
- 0x3243, 0x4151, 0x5730, 0x7149, 0x714c, 0x714e, 0x5976, 0x5261,
- 0x5423, 0x7443, 0x4839, 0x7444, 0x714d, 0x714f, 0x3f63, 0x7150,
- 0x7154, 0x7156, 0x7151, 0x4951, 0x4561, 0x4263, 0x397c, 0x7153,
- 0x7155, 0x3953, 0x715b, 0x3a56, 0x307d, 0x7159, 0x7158, 0x7152,
- 0x715a, 0x7157, 0x486c, 0x4d4a, 0x715d, 0x653d, 0x715c, 0x715e,
- 0x715f, 0x4f65, 0x7445, 0x3d73, 0x7160, 0x7161, 0x4e77, 0x522a,
- 0x717b, 0x3832, 0x3c7b, 0x395b, 0x3966, 0x4359, 0x4a53, 0x6a68,
- 0x4040, 0x3e75, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e,
- 0x6a6f, 0x3d47, 0x757b, 0x757d, 0x757e, 0x757c, 0x3d62, 0x7621,
- 0x3425, 0x7622, 0x7623, 0x6c32, 0x5154, 0x596a, 0x7624, 0x6e3a,
- 0x5532, 0x537e, 0x4c5c, 0x4a44, 0x6540, 0x7625, 0x3e2f, 0x4629,
- 0x5a25, 0x3c46, 0x3629, 0x383c, 0x484f, 0x3c25, 0x5a26, 0x5a27,
- 0x4c56, 0x4843, 0x5a28, 0x467d, 0x5135, 0x5269, 0x5136, 0x3c47,
- 0x3d32, 0x3b64, 0x5a29, 0x5a2a, 0x5148, 0x5a2b, 0x506d, 0x366f,
- 0x425b, 0x4b4f, 0x376d, 0x4968, 0x3743, 0x3e77, 0x5624, 0x5a2c,
- 0x5a2d, 0x4640, 0x5767, 0x4a36, 0x5529, 0x4b5f, 0x556f, 0x5a2e,
- 0x565f, 0x344a, 0x5a30, 0x5a2f, 0x526b, 0x5a31, 0x5a32, 0x5a33,
- 0x4a54, 0x5a34, 0x4a2b, 0x5a35, 0x5a36, 0x334f, 0x566f, 0x5a37,
- 0x3b30, 0x352e, 0x5a38, 0x5a39, 0x396e, 0x512f, 0x5268, 0x5a3a,
- 0x3843, 0x4f6a, 0x326f, 0x5a3b, 0x5a3c, 0x3d6b, 0x4e5c, 0x536f,
- 0x5a3d, 0x4e73, 0x5a3e, 0x5355, 0x3b65, 0x5a3f, 0x4b35, 0x4b50,
- 0x5a40, 0x476b, 0x566e, 0x5a41, 0x4535, 0x3641, 0x5a42, 0x374c,
- 0x3f4e, 0x5a43, 0x5a44, 0x4b2d, 0x5a45, 0x3577, 0x5a46, 0x4142,
- 0x573b, 0x5a47, 0x4c38, 0x526a, 0x4431, 0x5a48, 0x357d, 0x3b51,
- 0x5a49, 0x5033, 0x5a4a, 0x5a4b, 0x4e3d, 0x5a4c, 0x5a4d, 0x5a4e,
- 0x3277, 0x5a51, 0x5a4f, 0x5168, 0x5a50, 0x4355, 0x5a52, 0x5a53,
- 0x5a54, 0x5a55, 0x503b, 0x5225, 0x3079, 0x5a56, 0x472b, 0x5a57,
- 0x3d77, 0x4321, 0x5a58, 0x5a59, 0x437d, 0x4c37, 0x5a5a, 0x5a5b,
- 0x403e, 0x4657, 0x5a5c, 0x5a5d, 0x4734, 0x5a5e, 0x5a5f, 0x3948,
- 0x3b6d, 0x3639, 0x7478, 0x7479, 0x4d63, 0x7539, 0x6b60, 0x4f73,
- 0x3b3f, 0x3a40, 0x5425, 0x6159, 0x7574, 0x312a, 0x3272, 0x7575,
- 0x7577, 0x3a51, 0x7576, 0x4332, 0x7579, 0x7578, 0x3134, 0x556a,
- 0x383a, 0x3931, 0x3246, 0x5470, 0x4f4d, 0x305c, 0x554b, 0x3b75,
- 0x564a, 0x3737, 0x4c30, 0x4636, 0x3161, 0x393a, 0x567c, 0x3961,
- 0x3721, 0x3c7a, 0x6a5a, 0x6a5b, 0x4c79, 0x3973, 0x6a5c, 0x347b,
- 0x4333, 0x3751, 0x3a58, 0x6a5d, 0x5474, 0x6a5e, 0x3c56, 0x3b5f,
- 0x6a5f, 0x415e, 0x4238, 0x545f, 0x574a, 0x6a60, 0x6a61, 0x6a64,
- 0x6a62, 0x6a63, 0x495e, 0x3833, 0x3644, 0x6a65, 0x4a6a, 0x494d,
- 0x344d, 0x6259, 0x4562, 0x6a66, 0x4035, 0x5738, 0x6a67, 0x572c,
- 0x487c, 0x5853, 0x584d, 0x545e, 0x5479, 0x4944, 0x532e, 0x3853,
- 0x3360, 0x4962, 0x7476, 0x3a55, 0x7477, 0x575f, 0x7471, 0x3830,
- 0x5554, 0x384f, 0x4670, 0x3343, 0x7472, 0x332c, 0x543d, 0x4777,
- 0x7474, 0x7473, 0x4c4b, 0x4824, 0x7475, 0x5763, 0x453f, 0x7540,
- 0x753b, 0x7543, 0x7542, 0x563a, 0x7541, 0x543e, 0x7544, 0x754c,
- 0x304f, 0x3578, 0x7549, 0x754a, 0x455c, 0x7545, 0x7546, 0x7547,
- 0x754b, 0x3e60, 0x7548, 0x387a, 0x7550, 0x7553, 0x3f67, 0x3972,
- 0x753c, 0x754d, 0x4237, 0x4c78, 0x3c79, 0x754e, 0x754f, 0x7551,
- 0x3665, 0x7552, 0x7555, 0x753d, 0x7554, 0x533b, 0x336c, 0x4c24,
- 0x7556, 0x7557, 0x3e61, 0x7558, 0x4c5f, 0x755b, 0x3248, 0x5759,
- 0x7559, 0x755a, 0x755c, 0x7562, 0x7560, 0x755f, 0x755d, 0x7561,
- 0x755e, 0x7564, 0x7565, 0x4c63, 0x653f, 0x3538, 0x7563, 0x7568,
- 0x4c23, 0x7566, 0x7567, 0x753e, 0x3144, 0x753f, 0x3545, 0x3264,
- 0x756c, 0x7569, 0x3657, 0x756d, 0x756a, 0x756b, 0x345a, 0x546a,
- 0x756e, 0x3379, 0x756f, 0x7571, 0x7570, 0x7572, 0x7573, 0x496d,
- 0x392a, 0x477b, 0x3663, 0x4c49, 0x6a26, 0x3335, 0x547e, 0x396c,
- 0x5079, 0x696d, 0x572a, 0x696e, 0x4256, 0x486d, 0x3a64, 0x696f,
- 0x6970, 0x6971, 0x5661, 0x6972, 0x6973, 0x6975, 0x6974, 0x6976,
- 0x6977, 0x4761, 0x6978, 0x5458, 0x6979, 0x3d4e, 0x697a, 0x697b,
- 0x3d4f, 0x697c, 0x3828, 0x413e, 0x697d, 0x3132, 0x3b54, 0x3975,
- 0x697e, 0x6a21, 0x6a22, 0x6a23, 0x3778, 0x3c2d, 0x4a64, 0x604e,
- 0x542f, 0x4f3d, 0x5537, 0x6a24, 0x555e, 0x6a25, 0x5041, 0x393c,
- 0x3447, 0x3159, 0x4031, 0x3166, 0x3167, 0x3168, 0x333d, 0x4868,
- 0x6541, 0x315f, 0x4149, 0x346f, 0x4728, 0x5358, 0x4679, 0x5138,
- 0x397d, 0x4275, 0x532d, 0x544b, 0x3d7c, 0x6542, 0x3735, 0x6543,
- 0x3b39, 0x5562, 0x3d78, 0x5436, 0x4e25, 0x412c, 0x3359, 0x4c76,
- 0x6546, 0x6544, 0x6548, 0x654a, 0x6547, 0x354f, 0x4648, 0x357c,
- 0x6545, 0x4a76, 0x6549, 0x4354, 0x3145, 0x3c23, 0x5737, 0x4d4b,
- 0x4b4d, 0x4a4a, 0x4c53, 0x654c, 0x654b, 0x4466, 0x5121, 0x5137,
- 0x654d, 0x6550, 0x4d38, 0x5670, 0x654f, 0x355d, 0x4d3e, 0x6551,
- 0x363a, 0x4d28, 0x3964, 0x4a45, 0x3351, 0x4b59, 0x546c, 0x6552,
- 0x376a, 0x654e, 0x6555, 0x347e, 0x6556, 0x6553, 0x6554, 0x525d,
- 0x425f, 0x3146, 0x5362, 0x365d, 0x4b6c, 0x6557, 0x5376, 0x3169,
- 0x3674, 0x655a, 0x6558, 0x6559, 0x3540, 0x5245, 0x655c, 0x655e,
- 0x655d, 0x4732, 0x5223, 0x655b, 0x5462, 0x555a, 0x6560, 0x5771,
- 0x6561, 0x315c, 0x517b, 0x6562, 0x6564, 0x6563, 0x6565, 0x5258,
- 0x354b, 0x675f, 0x5a75, 0x5a78, 0x5a76, 0x5a77, 0x5a7a, 0x504f,
- 0x4447, 0x306e, 0x5030, 0x5a79, 0x534a, 0x3a2a, 0x5b22, 0x4771,
- 0x5a7c, 0x5a7b, 0x495b, 0x5a7d, 0x5b21, 0x575e, 0x5a7e, 0x415a,
- 0x5b25, 0x5374, 0x5b27, 0x5b24, 0x5b28, 0x3d3c, 0x4049, 0x5b23,
- 0x5b26, 0x5623, 0x5b29, 0x5b2d, 0x5b2e, 0x5b2c, 0x3a42, 0x3f24,
- 0x5b2b, 0x5b2a, 0x5447, 0x323f, 0x5b2f, 0x3979, 0x5b30, 0x333b,
- 0x3526, 0x363c, 0x5b31, 0x3675, 0x5b32, 0x3149, 0x5b34, 0x5b33,
- 0x5b35, 0x5b37, 0x5b36, 0x5b38, 0x5b39, 0x5b3a, 0x534f, 0x747a,
- 0x4775, 0x5743, 0x4564, 0x747c, 0x747d, 0x747b, 0x3e46, 0x506f,
- 0x3753, 0x544d, 0x4c2a, 0x7522, 0x7521, 0x3a28, 0x747e, 0x4b56,
- 0x7524, 0x4052, 0x336a, 0x4d2a, 0x7525, 0x7523, 0x3d34, 0x7528,
- 0x7529, 0x3d4d, 0x4338, 0x3f61, 0x4b61, 0x752a, 0x7526, 0x7527,
- 0x4470, 0x752c, 0x343c, 0x576d, 0x3457, 0x752b, 0x752e, 0x752d,
- 0x752f, 0x5051, 0x4351, 0x4829, 0x7530, 0x7531, 0x7532, 0x7533,
- 0x7534, 0x7535, 0x7537, 0x7536, 0x7538, 0x3249, 0x5354, 0x4a4d,
- 0x406f, 0x5658, 0x5230, 0x413f, 0x3d70, 0x382a, 0x3c78, 0x7646,
- 0x7647, 0x7648, 0x7649, 0x764a, 0x764c, 0x764b, 0x7769, 0x764d,
- 0x764e, 0x6e44, 0x6e45, 0x6e46, 0x556b, 0x3624, 0x6e48, 0x6e47,
- 0x6e49, 0x6e4a, 0x4725, 0x6e4b, 0x6e4c, 0x3730, 0x3576, 0x6e4d,
- 0x6e4f, 0x6e4e, 0x3846, 0x6e50, 0x6e51, 0x6e52, 0x365b, 0x332e,
- 0x5653, 0x4446, 0x3135, 0x3856, 0x6e53, 0x6e54, 0x543f, 0x4755,
- 0x3e7b, 0x4e59, 0x3933, 0x6e56, 0x6e55, 0x6e58, 0x6e57, 0x4525,
- 0x6e59, 0x6e5a, 0x472e, 0x6e5b, 0x472f, 0x6e5c, 0x3227, 0x6e5d,
- 0x6e5e, 0x6e5f, 0x6e60, 0x6e61, 0x576a, 0x6e62, 0x6e63, 0x3c58,
- 0x6e64, 0x534b, 0x4c7a, 0x322c, 0x4165, 0x6e65, 0x4726, 0x432d,
- 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, 0x6e6b, 0x6e6c, 0x6e6d,
- 0x6e6e, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e74, 0x6e73, 0x6e75,
- 0x4d2d, 0x4241, 0x6e76, 0x6e77, 0x6e78, 0x5521, 0x6e79, 0x4f33,
- 0x6e7a, 0x6e7b, 0x6e7c, 0x6e7d, 0x6f21, 0x6e7e, 0x6f22, 0x3875,
- 0x437a, 0x6f23, 0x6f24, 0x3d42, 0x523f, 0x3279, 0x6f25, 0x6f26,
- 0x6f27, 0x5278, 0x6f28, 0x567d, 0x6f29, 0x464c, 0x6f2a, 0x6f2b,
- 0x4134, 0x6f2c, 0x4f7a, 0x4b78, 0x6f2e, 0x6f2d, 0x337a, 0x3978,
- 0x6f2f, 0x6f30, 0x5062, 0x6f31, 0x6f32, 0x3766, 0x503f, 0x6f33,
- 0x6f34, 0x6f35, 0x4871, 0x4c60, 0x6f36, 0x6f37, 0x6f38, 0x6f39,
- 0x6f3a, 0x5560, 0x6f3b, 0x346d, 0x432a, 0x6f3c, 0x6f3d, 0x6f3e,
- 0x6f3f, 0x4e7d, 0x6f40, 0x4260, 0x3438, 0x5736, 0x3d75, 0x4f47,
- 0x6f43, 0x6f41, 0x6f42, 0x6f44, 0x3627, 0x3c7c, 0x3e62, 0x434c,
- 0x6f45, 0x6f46, 0x6f47, 0x6f4f, 0x6f48, 0x6f49, 0x6f4a, 0x4742,
- 0x6f71, 0x364d, 0x6f4b, 0x6f4c, 0x6f4d, 0x3646, 0x433e, 0x6f4e,
- 0x6f50, 0x6f51, 0x6f52, 0x5572, 0x6f53, 0x4477, 0x6f54, 0x4478,
- 0x6f55, 0x6f56, 0x3864, 0x3077, 0x6f57, 0x6f58, 0x6f59, 0x6f5a,
- 0x6f5b, 0x6f5c, 0x6f5d, 0x6f5e, 0x3e35, 0x6f61, 0x6f5f, 0x6f60,
- 0x6f62, 0x6f63, 0x414d, 0x6f64, 0x6f65, 0x6f66, 0x6f67, 0x6f68,
- 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, 0x4058, 0x6f6d, 0x412d, 0x6f6e,
- 0x6f6f, 0x6f70, 0x4f62, 0x3324, 0x4345, 0x6345, 0x4941, 0x6346,
- 0x3155, 0x4e4a, 0x3433, 0x4872, 0x6347, 0x4f50, 0x6348, 0x3c64,
- 0x6349, 0x634a, 0x4346, 0x5522, 0x4456, 0x396b, 0x4e45, 0x634b,
- 0x4376, 0x634c, 0x3727, 0x3873, 0x3a52, 0x634d, 0x634e, 0x5444,
- 0x634f, 0x6350, 0x514b, 0x6351, 0x6352, 0x6353, 0x6354, 0x5156,
- 0x6355, 0x327b, 0x403b, 0x6356, 0x402b, 0x6357, 0x6358, 0x6359,
- 0x635a, 0x635b, 0x3837, 0x5a62, 0x3653, 0x5a64, 0x5a63, 0x5a66,
- 0x486e, 0x5a65, 0x3740, 0x5174, 0x5275, 0x5573, 0x3d57, 0x5768,
- 0x5a68, 0x5a67, 0x3022, 0x4d53, 0x5a69, 0x383d, 0x3c4a, 0x423d,
- 0x4224, 0x3342, 0x5a6a, 0x422a, 0x4430, 0x3d35, 0x4f5e, 0x5a6b,
- 0x4942, 0x315d, 0x5a6c, 0x3638, 0x543a, 0x337d, 0x5a6d, 0x5449,
- 0x4f55, 0x4563, 0x5a6e, 0x5a6f, 0x5a70, 0x416a, 0x4c55, 0x4f5d,
- 0x5367, 0x4221, 0x5a71, 0x4b65, 0x5a72, 0x4b66, 0x527e, 0x3874,
- 0x5a73, 0x302f, 0x4f36, 0x554f, 0x4b6d, 0x5a74, 0x6344, 0x4125,
- 0x763f, 0x7640, 0x7641, 0x4451, 0x4838, 0x5163, 0x505b, 0x5145,
- 0x3c2f, 0x394d, 0x6f74, 0x3446, 0x533a, 0x7642, 0x337b, 0x7643,
- 0x3571, 0x7645, 0x536a, 0x7627, 0x5129, 0x7629, 0x7628, 0x4163,
- 0x4057, 0x3122, 0x4e6d, 0x5068, 0x762b, 0x4f76, 0x762a, 0x5570,
- 0x762c, 0x4339, 0x3b74, 0x762e, 0x762d, 0x445e, 0x4158, 0x4b2a,
- 0x4f3c, 0x762f, 0x7630, 0x7631, 0x4236, 0x3054, 0x4579, 0x7632,
- 0x4760, 0x7626, 0x3e38, 0x3e32, 0x3565, 0x3747, 0x3f3f, 0x4352,
- 0x4366, 0x584c, 0x386f, 0x3d79, 0x5125, 0x3050, 0x7730, 0x7731,
- 0x502c, 0x3030, 0x7732, 0x7733, 0x7734, 0x474a, 0x3e4f, 0x7737,
- 0x7736, 0x315e, 0x7735, 0x7738, 0x7739, 0x4e24, 0x484d, 0x3a2b,
- 0x6838, 0x6839, 0x683a, 0x3e42, 0x5274, 0x544f, 0x4958, 0x5233,
- 0x3625, 0x476a, 0x717c, 0x4f6e, 0x4b33, 0x506b, 0x676f, 0x4d67,
- 0x394b, 0x3659, 0x717d, 0x3064, 0x4b4c, 0x717e, 0x5424, 0x422d,
- 0x416c, 0x4644, 0x3e31, 0x7221, 0x3c55, 0x7222, 0x7223, 0x7224,
- 0x5243, 0x4635, 0x4d47, 0x7225, 0x5331, 0x3f45, 0x4c62, 0x7226,
- 0x7227, 0x5155, 0x366e, 0x7228, 0x7229, 0x355f, 0x722a, 0x722b,
- 0x327c, 0x722c, 0x722d, 0x4827, 0x3767, 0x6c29, 0x6c2a, 0x6c2b,
- 0x6c2c, 0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x4a33, 0x6238, 0x774f,
- 0x7750, 0x324d, 0x7751, 0x7753, 0x7752, 0x623b, 0x3c22, 0x623c,
- 0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x3739, 0x527b, 0x3d24,
- 0x4a4e, 0x3125, 0x4b47, 0x6242, 0x367c, 0x4844, 0x6243, 0x3d48,
- 0x317d, 0x6244, 0x3676, 0x6245, 0x4459, 0x6246, 0x4f5a, 0x395d,
- 0x6247, 0x4021, 0x6248, 0x3276, 0x6249, 0x4173, 0x624a, 0x624b,
- 0x4278, 0x624c, 0x624d, 0x624e, 0x4a57, 0x5838, 0x5965, 0x4f63,
- 0x7025, 0x5c30, 0x426d, 0x5426, 0x4d54, 0x5131, 0x335b, 0x477d,
- 0x3235, 0x423f, 0x6660, 0x4a3b, 0x6661, 0x6662, 0x3e54, 0x6663,
- 0x5724, 0x4d55, 0x6665, 0x3c5d, 0x6664, 0x6666, 0x6667, 0x426e,
- 0x3d3e, 0x6668, 0x4266, 0x3a27, 0x6669, 0x666a, 0x3352, 0x5169,
- 0x3f25, 0x666b, 0x466f, 0x666c, 0x666d, 0x666e, 0x462d, 0x666f,
- 0x4927, 0x6670, 0x6671, 0x6672, 0x6539, 0x6673, 0x6674, 0x4262,
- 0x6675, 0x6676, 0x5668, 0x6677, 0x6678, 0x3947, 0x773b, 0x773a,
- 0x773e, 0x773c, 0x3a21, 0x773f, 0x7740, 0x7742, 0x7741, 0x7744,
- 0x7743, 0x7745, 0x7746, 0x7747, 0x4b68, 0x385f, 0x7754, 0x7755,
- 0x7756, 0x7758, 0x775a, 0x7757, 0x775b, 0x7759, 0x5757, 0x775c,
- 0x775d, 0x775e, 0x775f, 0x7760, 0x5b4b, 0x582a, 0x6577, 0x396d,
- 0x3f7d, 0x3b6a, 0x7749, 0x4647, 0x7748, 0x774a, 0x774c, 0x774b,
- 0x774d, 0x4e3a, 0x774e, 0x4427, 0x5363, 0x764f, 0x4233, 0x7650,
- 0x7651, 0x7652, 0x7653, 0x7654, 0x7656, 0x312b, 0x7657, 0x7658,
- 0x7659, 0x765a, 0x765b, 0x765c, 0x765d, 0x765e, 0x4f4a, 0x765f,
- 0x7660, 0x7661, 0x7662, 0x7663, 0x7664, 0x4070, 0x7665, 0x7666,
- 0x7667, 0x7668, 0x7669, 0x766a, 0x766b, 0x766c, 0x766d, 0x766e,
- 0x766f, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x3e28, 0x7675,
- 0x7676, 0x7677, 0x7678, 0x487a, 0x7679, 0x767a, 0x767b, 0x767c,
- 0x767d, 0x767e, 0x7721, 0x7722, 0x7723, 0x7724, 0x7725, 0x7726,
- 0x7727, 0x7728, 0x316e, 0x7729, 0x772a, 0x772b, 0x772c, 0x772d,
- 0x415b, 0x772e, 0x772f, 0x4471, 0x702f, 0x3c26, 0x7030, 0x4379,
- 0x4538, 0x513b, 0x7031, 0x7032, 0x7033, 0x7034, 0x7035, 0x513c,
- 0x516c, 0x7037, 0x7036, 0x5427, 0x4d52, 0x7038, 0x703a, 0x7039,
- 0x703b, 0x703c, 0x386b, 0x703d, 0x3a68, 0x703e, 0x703f, 0x3e69,
- 0x7040, 0x366c, 0x7041, 0x7042, 0x7043, 0x7044, 0x4835, 0x7045,
- 0x7046, 0x7047, 0x4574, 0x7048, 0x7049, 0x704a, 0x773d, 0x704b,
- 0x704c, 0x704d, 0x704e, 0x704f, 0x3a57, 0x7050, 0x7051, 0x7052,
- 0x7053, 0x7054, 0x7055, 0x7056, 0x7058, 0x5325, 0x7057, 0x7059,
- 0x753a, 0x4239, 0x7764, 0x7765, 0x7766, 0x7767, 0x7768, 0x4234,
- 0x776a, 0x776b, 0x4273, 0x7470, 0x746f, 0x4269, 0x7761, 0x7762,
- 0x3b46, 0x5964, 0x4a72, 0x4068, 0x7024, 0x3a5a, 0x472d, 0x442c,
- 0x776c, 0x776d, 0x776e, 0x7770, 0x776f, 0x7771, 0x7774, 0x7773,
- 0x7772, 0x7775, 0x7776, 0x6d69, 0x6d6a, 0x6d6b, 0x763c, 0x763d,
- 0x763e, 0x3626, 0x583e, 0x3944, 0x583b, 0x5c31, 0x4a73, 0x7777,
- 0x7778, 0x7779, 0x777b, 0x777a, 0x3147, 0x777c, 0x777d, 0x777e,
- 0x466b, 0x6c34, 0x335d, 0x7633, 0x7634, 0x4164, 0x7635, 0x7636,
- 0x7637, 0x7638, 0x7639, 0x763a, 0x4823, 0x763b, 0x417a, 0x3928,
- 0x6d68, 0x396a, 0x595f, 0x2321, 0x2322, 0x2323, 0x2167, 0x2325,
- 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x232c, 0x232d,
- 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335,
- 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d,
- 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345,
- 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d,
- 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355,
- 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d,
- 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365,
- 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d,
- 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375,
- 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d,
- 0x212b, 0x2169, 0x216a, 0x237e, 0x2324,
-};
-
-static const Summary16 gb2312_uni2indx_page00[70] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0190 }, { 3, 0x0003 },
- { 5, 0x0000 }, { 5, 0x0080 }, { 6, 0x3703 }, { 13, 0x168c },
- /* 0x0100 */
- { 19, 0x0002 }, { 20, 0x0808 }, { 22, 0x0800 }, { 23, 0x0000 },
- { 23, 0x2000 }, { 24, 0x0000 }, { 24, 0x0800 }, { 25, 0x0000 },
- { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 },
- { 25, 0x4000 }, { 26, 0x1555 }, { 33, 0x0000 }, { 33, 0x0000 },
- /* 0x0200 */
- { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
- { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
- { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
- { 33, 0x0280 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
- /* 0x0300 */
- { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
- { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
- { 35, 0x0000 }, { 35, 0xfffe }, { 50, 0x03fb }, { 59, 0xfffe },
- { 74, 0x03fb }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 },
- /* 0x0400 */
- { 83, 0x0002 }, { 84, 0xffff }, { 100, 0xffff }, { 116, 0xffff },
- { 132, 0xffff }, { 148, 0x0002 },
-};
-static const Summary16 gb2312_uni2indx_page20[101] = {
- /* 0x2000 */
- { 149, 0x0000 }, { 149, 0x3360 }, { 155, 0x0040 }, { 156, 0x080d },
- { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 },
- { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 },
- { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 },
- /* 0x2100 */
- { 160, 0x0008 }, { 161, 0x0040 }, { 162, 0x0000 }, { 162, 0x0000 },
- { 162, 0x0000 }, { 162, 0x0000 }, { 162, 0x0fff }, { 174, 0x0000 },
- { 174, 0x0000 }, { 174, 0x000f }, { 178, 0x0000 }, { 178, 0x0000 },
- { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 },
- /* 0x2200 */
- { 178, 0x8100 }, { 180, 0x6402 }, { 184, 0x4fa1 }, { 192, 0x20f0 },
- { 197, 0x1100 }, { 199, 0x0000 }, { 199, 0xc033 }, { 205, 0x0000 },
- { 205, 0x0000 }, { 205, 0x0200 }, { 206, 0x0020 }, { 207, 0x0000 },
- { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 },
- /* 0x2300 */
- { 207, 0x0000 }, { 207, 0x0004 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- /* 0x2400 */
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 },
- { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x03ff }, { 218, 0xfff0 },
- { 230, 0xffff }, { 246, 0x0fff }, { 258, 0x0000 }, { 258, 0x0000 },
- { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 },
- /* 0x2500 */
- { 258, 0xffff }, { 274, 0xffff }, { 290, 0xffff }, { 306, 0xffff },
- { 322, 0x0fff }, { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 },
- { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0003 }, { 336, 0x000c },
- { 338, 0xc8c0 }, { 343, 0x0000 }, { 343, 0x0000 }, { 343, 0x0000 },
- /* 0x2600 */
- { 343, 0x0060 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 },
- { 345, 0x0005 },
-};
-static const Summary16 gb2312_uni2indx_page30[35] = {
- /* 0x3000 */
- { 347, 0xff2f }, { 360, 0x00fb }, { 367, 0x0000 }, { 367, 0x0000 },
- { 367, 0xfffe }, { 382, 0xffff }, { 398, 0xffff }, { 414, 0xffff },
- { 430, 0xffff }, { 446, 0x000f }, { 450, 0xfffe }, { 465, 0xffff },
- { 481, 0xffff }, { 497, 0xffff }, { 513, 0xffff }, { 529, 0x087f },
- /* 0x3100 */
- { 537, 0xffe0 }, { 548, 0xffff }, { 564, 0x03ff }, { 574, 0x0000 },
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 },
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 },
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 },
- /* 0x3200 */
- { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x03ff },
-};
-static const Summary16 gb2312_uni2indx_page4e[1263] = {
- /* 0x4e00 */
- { 584, 0x7f8b }, { 595, 0x7f7b }, { 608, 0x3db4 }, { 617, 0xef55 },
- { 628, 0xfba8 }, { 638, 0xf35d }, { 649, 0x0243 }, { 653, 0x400b },
- { 657, 0xfb40 }, { 665, 0x8d3e }, { 674, 0x7bf7 }, { 687, 0x8c2c },
- { 693, 0x6eff }, { 706, 0xe3fa }, { 717, 0x1d3a }, { 725, 0xa8ed },
- /* 0x4f00 */
- { 734, 0xe602 }, { 740, 0xcf83 }, { 749, 0x8cf5 }, { 758, 0x3555 },
- { 766, 0xe048 }, { 771, 0xffab }, { 784, 0x92b9 }, { 792, 0xd859 },
- { 800, 0xab18 }, { 807, 0x2892 }, { 812, 0xd7e9 }, { 823, 0x8020 },
- { 825, 0xc438 }, { 831, 0xf583 }, { 840, 0xe74a }, { 849, 0x450a },
- /* 0x5000 */
- { 854, 0xb000 }, { 857, 0x9714 }, { 864, 0x7762 }, { 873, 0x5400 },
- { 876, 0xd188 }, { 882, 0x1420 }, { 885, 0x1020 }, { 887, 0xc8c0 },
- { 892, 0x2121 }, { 896, 0x0000 }, { 896, 0x13a8 }, { 902, 0x0c04 },
- { 905, 0x8000 }, { 906, 0x0440 }, { 908, 0x70c0 }, { 913, 0x0828 },
- /* 0x5100 */
- { 916, 0x08c0 }, { 919, 0x0004 }, { 920, 0x0002 }, { 921, 0x8000 },
- { 922, 0x2b7b }, { 932, 0x1472 }, { 938, 0x7924 }, { 945, 0x3bfb },
- { 957, 0x3327 }, { 965, 0x1ae4 }, { 972, 0x9835 }, { 979, 0x38ef },
- { 989, 0x9ad1 }, { 997, 0x2802 }, { 1000, 0xa813 }, { 1006, 0xbf69 },
- /* 0x5200 */
- { 1017, 0x65cf }, { 1027, 0x2fc6 }, { 1036, 0x6b11 }, { 1043, 0xafc9 },
- { 1053, 0x340f }, { 1060, 0x5053 }, { 1066, 0x86a2 }, { 1072, 0xa004 },
- { 1075, 0x0106 }, { 1078, 0xe809 }, { 1084, 0x3f0f }, { 1094, 0xc00e },
- { 1099, 0x0a88 }, { 1103, 0x8145 }, { 1108, 0x0010 }, { 1109, 0xc601 },
- /* 0x5300 */
- { 1114, 0xa161 }, { 1120, 0x26e1 }, { 1127, 0x444b }, { 1133, 0xce00 },
- { 1138, 0xc7aa }, { 1147, 0xd4ee }, { 1157, 0xcadf }, { 1168, 0x85bb },
- { 1177, 0x3a74 }, { 1185, 0xa520 }, { 1190, 0x436c }, { 1197, 0x8840 },
- { 1200, 0x3f06 }, { 1208, 0x8bd2 }, { 1216, 0xff79 }, { 1229, 0x3bef },
- /* 0x5400 */
- { 1241, 0xf75a }, { 1252, 0xe8ef }, { 1263, 0xfbcb }, { 1275, 0x5b36 },
- { 1284, 0x0d49 }, { 1290, 0x1bfd }, { 1301, 0x0154 }, { 1305, 0x39ee },
- { 1315, 0xd855 }, { 1323, 0x2e75 }, { 1332, 0xbfd8 }, { 1343, 0xa91a },
- { 1350, 0xf3d7 }, { 1362, 0xf6bf }, { 1375, 0x67e0 }, { 1383, 0xb40c },
- /* 0x5500 */
- { 1389, 0x82c2 }, { 1394, 0x0813 }, { 1398, 0xd49d }, { 1407, 0xd08b },
- { 1414, 0x065a }, { 1420, 0x1061 }, { 1424, 0x74f2 }, { 1433, 0x59e0 },
- { 1440, 0x8f9f }, { 1451, 0xb312 }, { 1458, 0x0080 }, { 1459, 0x6aaa },
- { 1467, 0x3230 }, { 1472, 0xb05e }, { 1480, 0x9d7a }, { 1490, 0x60ac },
- /* 0x5600 */
- { 1496, 0xd303 }, { 1503, 0xc900 }, { 1507, 0x3098 }, { 1512, 0x8a56 },
- { 1519, 0x7000 }, { 1522, 0x1390 }, { 1527, 0x1f14 }, { 1534, 0x1842 },
- { 1538, 0xc060 }, { 1542, 0x0008 }, { 1543, 0x8008 }, { 1545, 0x1080 },
- { 1547, 0x0400 }, { 1548, 0xec90 }, { 1555, 0x2817 }, { 1561, 0xe633 },
- /* 0x5700 */
- { 1570, 0x0758 }, { 1576, 0x9000 }, { 1578, 0xf708 }, { 1586, 0x4e09 },
- { 1592, 0xf485 }, { 1600, 0xfc83 }, { 1609, 0xaf53 }, { 1619, 0x18c8 },
- { 1624, 0x187c }, { 1631, 0x080c }, { 1634, 0x6adf }, { 1645, 0x0114 },
- { 1648, 0xc80c }, { 1653, 0xa734 }, { 1661, 0xa011 }, { 1665, 0x2710 },
- /* 0x5800 */
- { 1670, 0x28c5 }, { 1676, 0x4222 }, { 1680, 0x0413 }, { 1684, 0x0021 },
- { 1686, 0x3010 }, { 1689, 0x4112 }, { 1693, 0x1820 }, { 1696, 0x4000 },
- { 1697, 0x022b }, { 1702, 0xc60c }, { 1708, 0x0300 }, { 1710, 0x1000 },
- { 1711, 0x0022 }, { 1713, 0x0022 }, { 1715, 0x5810 }, { 1719, 0x0249 },
- /* 0x5900 */
- { 1723, 0xa094 }, { 1728, 0x9670 }, { 1735, 0xeeb0 }, { 1744, 0x1792 },
- { 1751, 0xcb96 }, { 1760, 0x05f2 }, { 1767, 0x0025 }, { 1770, 0x2358 },
- { 1776, 0x25de }, { 1785, 0x42cc }, { 1791, 0xcf38 }, { 1800, 0x4a04 },
- { 1804, 0x0c40 }, { 1807, 0x359f }, { 1817, 0x1128 }, { 1821, 0x8a00 },
- /* 0x5a00 */
- { 1824, 0x13fa }, { 1833, 0x910a }, { 1838, 0x0229 }, { 1842, 0x1056 },
- { 1847, 0x0641 }, { 1851, 0x0420 }, { 1853, 0x0484 }, { 1856, 0x84f0 },
- { 1862, 0x0000 }, { 1862, 0x0c04 }, { 1865, 0x0400 }, { 1866, 0x412c },
- { 1871, 0x1206 }, { 1875, 0x1154 }, { 1880, 0x0a4b }, { 1886, 0x0002 },
- /* 0x5b00 */
- { 1887, 0x0200 }, { 1888, 0x00c0 }, { 1890, 0x0000 }, { 1890, 0x0094 },
- { 1893, 0x0001 }, { 1894, 0xbfbb }, { 1907, 0x167c }, { 1915, 0x242b },
- { 1921, 0x9bbb }, { 1932, 0x7fa8 }, { 1942, 0x0c7f }, { 1951, 0xe379 },
- { 1961, 0x10f4 }, { 1967, 0xe00d }, { 1973, 0x4132 }, { 1978, 0x9f01 },
- /* 0x5c00 */
- { 1985, 0x8652 }, { 1991, 0x3572 }, { 1999, 0x10b4 }, { 2004, 0xff12 },
- { 2014, 0xcf27 }, { 2024, 0x4223 }, { 2029, 0xc06b }, { 2036, 0x8602 },
- { 2040, 0x3106 }, { 2045, 0x1fd3 }, { 2055, 0x3a0c }, { 2061, 0xa1aa },
- { 2068, 0x0812 }, { 2071, 0x0204 }, { 2073, 0x2572 }, { 2080, 0x0801 },
- /* 0x5d00 */
- { 2082, 0x40cc }, { 2087, 0x4850 }, { 2091, 0x62d0 }, { 2097, 0x6010 },
- { 2100, 0x1c80 }, { 2104, 0x2900 }, { 2107, 0x9a00 }, { 2111, 0x0010 },
- { 2112, 0x0004 }, { 2113, 0x2200 }, { 2115, 0x0000 }, { 2115, 0x0080 },
- { 2116, 0x2020 }, { 2118, 0x6800 }, { 2121, 0xcbe6 }, { 2131, 0x609e },
- /* 0x5e00 */
- { 2138, 0x916e }, { 2146, 0x3f73 }, { 2157, 0x60c0 }, { 2161, 0x3982 },
- { 2167, 0x1034 }, { 2171, 0x4830 }, { 2175, 0x0006 }, { 2177, 0xbd5c },
- { 2187, 0x8cd1 }, { 2194, 0xd6fb }, { 2206, 0x20e1 }, { 2211, 0x43e8 },
- { 2218, 0x0600 }, { 2220, 0x084e }, { 2225, 0x0500 }, { 2227, 0xc4d0 },
- /* 0x5f00 */
- { 2233, 0x8d1f }, { 2242, 0x89aa }, { 2249, 0xa6e1 }, { 2257, 0x1602 },
- { 2261, 0x0001 }, { 2262, 0x21ed }, { 2270, 0x3656 }, { 2278, 0x1a8b },
- { 2285, 0x1fb7 }, { 2296, 0x13a5 }, { 2303, 0x6502 }, { 2308, 0x30a0 },
- { 2312, 0xb278 }, { 2320, 0x23c7 }, { 2328, 0x6c93 }, { 2336, 0xe922 },
- /* 0x6000 */
- { 2343, 0xe47f }, { 2354, 0x3a74 }, { 2362, 0x8fe3 }, { 2372, 0x9820 },
- { 2376, 0x280e }, { 2381, 0x2625 }, { 2387, 0xbf9c }, { 2398, 0xbf49 },
- { 2408, 0x3218 }, { 2413, 0xac54 }, { 2420, 0xb949 }, { 2428, 0x1916 },
- { 2434, 0x0c60 }, { 2438, 0xb522 }, { 2445, 0xfbc1 }, { 2455, 0x0659 },
- /* 0x6100 */
- { 2461, 0xe343 }, { 2469, 0x8420 }, { 2472, 0x08d9 }, { 2478, 0x8000 },
- { 2479, 0x5500 }, { 2483, 0x2022 }, { 2486, 0x0184 }, { 2489, 0x00a1 },
- { 2492, 0x4800 }, { 2494, 0x2010 }, { 2496, 0x1380 }, { 2500, 0x4080 },
- { 2502, 0x0d04 }, { 2506, 0x0016 }, { 2509, 0x0040 }, { 2510, 0x8020 },
- /* 0x6200 */
- { 2512, 0xfd40 }, { 2520, 0x8de7 }, { 2530, 0x5436 }, { 2537, 0xe098 },
- { 2543, 0x7b8b }, { 2553, 0x091e }, { 2559, 0xfec8 }, { 2569, 0xd249 },
- { 2576, 0x0611 }, { 2580, 0x8dee }, { 2590, 0x1937 }, { 2598, 0xba22 },
- { 2605, 0x77f4 }, { 2616, 0x9fdd }, { 2628, 0xf3ec }, { 2639, 0xf0da },
- /* 0x6300 */
- { 2648, 0x4386 }, { 2654, 0xec42 }, { 2661, 0x8d3f }, { 2671, 0x2604 },
- { 2675, 0xfa6c }, { 2685, 0xc021 }, { 2689, 0x628e }, { 2696, 0x0cc2 },
- { 2701, 0xd785 }, { 2710, 0x0145 }, { 2714, 0x77ad }, { 2725, 0x5599 },
- { 2733, 0xe250 }, { 2739, 0x4045 }, { 2743, 0x260b }, { 2749, 0xa154 },
- /* 0x6400 */
- { 2755, 0x9827 }, { 2762, 0x5819 }, { 2768, 0x3443 }, { 2774, 0xa410 },
- { 2778, 0x05f2 }, { 2785, 0x4114 }, { 2789, 0x2280 }, { 2792, 0x0700 },
- { 2795, 0x00b4 }, { 2799, 0x4266 }, { 2805, 0x7210 }, { 2810, 0x15a1 },
- { 2816, 0x6025 }, { 2821, 0x4185 }, { 2826, 0x0054 }, { 2829, 0x0000 },
- /* 0x6500 */
- { 2829, 0x0201 }, { 2831, 0x0104 }, { 2833, 0xc820 }, { 2837, 0xcb70 },
- { 2845, 0x9320 }, { 2850, 0x6a62 }, { 2857, 0x184c }, { 2862, 0x0095 },
- { 2866, 0x1880 }, { 2869, 0x9a8b }, { 2877, 0xaab2 }, { 2885, 0x3201 },
- { 2889, 0xd87a }, { 2898, 0x00c4 }, { 2901, 0xf3e5 }, { 2912, 0x04c3 },
- /* 0x6600 */
- { 2917, 0xd44d }, { 2925, 0xa238 }, { 2931, 0xa1a1 }, { 2937, 0x5072 },
- { 2943, 0x980a }, { 2948, 0x84fc }, { 2956, 0xc152 }, { 2962, 0x44d1 },
- { 2968, 0x1094 }, { 2972, 0x20c2 }, { 2976, 0x4180 }, { 2979, 0x4210 },
- { 2982, 0x0000 }, { 2982, 0x3a00 }, { 2986, 0x0240 }, { 2988, 0xd29d },
- /* 0x6700 */
- { 2997, 0x2f01 }, { 3003, 0xa8b1 }, { 3010, 0xbd40 }, { 3017, 0x2432 },
- { 3022, 0xd34d }, { 3031, 0xd04b }, { 3038, 0xa723 }, { 3046, 0xd0ad },
- { 3054, 0x0a92 }, { 3059, 0x75a1 }, { 3067, 0xadac }, { 3076, 0x01e9 },
- { 3082, 0x801a }, { 3086, 0x771f }, { 3097, 0x9225 }, { 3103, 0xa01b },
- /* 0x6800 */
- { 3109, 0xdfa1 }, { 3119, 0x20ca }, { 3124, 0x0602 }, { 3127, 0x738c },
- { 3135, 0x577f }, { 3147, 0x003b }, { 3152, 0x0bff }, { 3163, 0x00d0 },
- { 3166, 0x806a }, { 3171, 0x0088 }, { 3173, 0xa1c4 }, { 3179, 0x0029 },
- { 3182, 0x2a05 }, { 3187, 0x0524 }, { 3191, 0x4009 }, { 3194, 0x1623 },
- /* 0x6900 */
- { 3200, 0x6822 }, { 3205, 0x8005 }, { 3208, 0x2011 }, { 3211, 0xa211 },
- { 3216, 0x0004 }, { 3217, 0x6490 }, { 3222, 0x4849 }, { 3227, 0x1382 },
- { 3232, 0x23d5 }, { 3240, 0x1930 }, { 3245, 0x2980 }, { 3249, 0x0892 },
- { 3253, 0x5402 }, { 3257, 0x8811 }, { 3261, 0x2001 }, { 3263, 0xa004 },
- /* 0x6a00 */
- { 3266, 0x0400 }, { 3267, 0x8180 }, { 3270, 0x8502 }, { 3274, 0x6022 },
- { 3278, 0x0090 }, { 3280, 0x0b01 }, { 3284, 0x0022 }, { 3286, 0x1202 },
- { 3289, 0x4011 }, { 3292, 0x0083 }, { 3295, 0x1a01 }, { 3299, 0x0000 },
- { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 },
- /* 0x6b00 */
- { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x009f }, { 3305, 0x4684 },
- { 3310, 0x12c8 }, { 3315, 0x0200 }, { 3316, 0x04fc }, { 3323, 0x1a00 },
- { 3326, 0x2ede }, { 3336, 0x0c4c }, { 3341, 0x0402 }, { 3343, 0x80b8 },
- { 3348, 0xa826 }, { 3354, 0x0afc }, { 3362, 0x8c02 }, { 3366, 0x2228 },
- /* 0x6c00 */
- { 3370, 0xa0e0 }, { 3375, 0x8f7b }, { 3386, 0xc7d6 }, { 3396, 0x2135 },
- { 3402, 0x06c7 }, { 3409, 0xf8b1 }, { 3418, 0x0713 }, { 3424, 0x6255 },
- { 3431, 0x936e }, { 3440, 0x8a19 }, { 3446, 0x6efa }, { 3457, 0xfb0e },
- { 3467, 0x1630 }, { 3472, 0x48f9 }, { 3480, 0xcd2f }, { 3490, 0x7deb },
- /* 0x6d00 */
- { 3502, 0x5892 }, { 3508, 0x4e84 }, { 3514, 0x4ca0 }, { 3519, 0x7a2e },
- { 3528, 0xedea }, { 3539, 0x561e }, { 3547, 0xc649 }, { 3554, 0x1190 },
- { 3558, 0x5324 }, { 3564, 0xe83a }, { 3572, 0xcfdb }, { 3584, 0x8124 },
- { 3588, 0x18f1 }, { 3595, 0x6342 }, { 3601, 0x5853 }, { 3608, 0x1a8a },
- /* 0x6e00 */
- { 3614, 0x7420 }, { 3619, 0x24d3 }, { 3626, 0xaa3b }, { 3635, 0x0514 },
- { 3639, 0x6018 }, { 3643, 0x8958 }, { 3649, 0x4800 }, { 3651, 0xc000 },
- { 3653, 0x8268 }, { 3658, 0x9101 }, { 3662, 0x84a4 }, { 3667, 0x2cd6 },
- { 3675, 0x8886 }, { 3680, 0xc4ba }, { 3688, 0x0377 }, { 3696, 0x0210 },
- /* 0x6f00 */
- { 3698, 0x8244 }, { 3702, 0x0038 }, { 3705, 0xae11 }, { 3712, 0x404a },
- { 3716, 0x28c0 }, { 3720, 0x5100 }, { 3723, 0x6044 }, { 3727, 0x1514 },
- { 3732, 0x7310 }, { 3738, 0x1000 }, { 3739, 0x0082 }, { 3741, 0x0248 },
- { 3744, 0x0205 }, { 3747, 0x4006 }, { 3750, 0xc003 }, { 3754, 0x0000 },
- /* 0x7000 */
- { 3754, 0x0000 }, { 3754, 0x0c02 }, { 3757, 0x0008 }, { 3758, 0x0220 },
- { 3760, 0x9000 }, { 3762, 0x4000 }, { 3763, 0xb800 }, { 3767, 0xd161 },
- { 3774, 0x4621 }, { 3779, 0x3274 }, { 3786, 0xf800 }, { 3791, 0x3b8a },
- { 3799, 0x050f }, { 3805, 0x8b00 }, { 3809, 0xbbd0 }, { 3818, 0x2280 },
- /* 0x7100 */
- { 3821, 0x0600 }, { 3823, 0x0769 }, { 3830, 0x8040 }, { 3832, 0x0043 },
- { 3835, 0x5420 }, { 3839, 0x5000 }, { 3841, 0x41d0 }, { 3846, 0x250c },
- { 3851, 0x8410 }, { 3854, 0x8310 }, { 3858, 0x1101 }, { 3861, 0x0228 },
- { 3864, 0x4008 }, { 3866, 0x0030 }, { 3868, 0x40a1 }, { 3872, 0x0200 },
- /* 0x7200 */
- { 3873, 0x0040 }, { 3874, 0x2000 }, { 3875, 0x1500 }, { 3878, 0xabe3 },
- { 3888, 0x3180 }, { 3892, 0xaa44 }, { 3898, 0xc2c6 }, { 3905, 0xc624 },
- { 3911, 0xac13 }, { 3918, 0x8004 }, { 3920, 0xb000 }, { 3923, 0x03d1 },
- { 3929, 0x611e }, { 3936, 0x4285 }, { 3941, 0xf303 }, { 3949, 0x1d9f },
- /* 0x7300 */
- { 3959, 0x440a }, { 3963, 0x78e8 }, { 3971, 0x5e26 }, { 3979, 0xc392 },
- { 3986, 0x2000 }, { 3987, 0x0085 }, { 3990, 0xb001 }, { 3994, 0x4000 },
- { 3995, 0x4a90 }, { 4000, 0x8842 }, { 4004, 0xca04 }, { 4009, 0x0c8d },
- { 4015, 0xa705 }, { 4022, 0x4203 }, { 4026, 0x22a1 }, { 4031, 0x0004 },
- /* 0x7400 */
- { 4032, 0x8668 }, { 4038, 0x0c01 }, { 4041, 0x5564 }, { 4048, 0x1079 },
- { 4054, 0x0002 }, { 4055, 0xdea0 }, { 4063, 0x2000 }, { 4064, 0x40c1 },
- { 4068, 0x488b }, { 4074, 0x5001 }, { 4077, 0x0380 }, { 4080, 0x0400 },
- { 4081, 0x0000 }, { 4081, 0x5004 }, { 4084, 0xc05d }, { 4091, 0x80d0 },
- /* 0x7500 */
- { 4095, 0xa010 }, { 4098, 0x970a }, { 4105, 0xbb20 }, { 4112, 0x4daf },
- { 4122, 0xd921 }, { 4129, 0x1e10 }, { 4134, 0x0460 }, { 4137, 0x8314 },
- { 4142, 0x8848 }, { 4146, 0xa6d6 }, { 4155, 0xd83b }, { 4164, 0x733f },
- { 4175, 0x27bc }, { 4184, 0x4974 }, { 4191, 0x0ddc }, { 4199, 0x9213 },
- /* 0x7600 */
- { 4205, 0x142b }, { 4211, 0x8ba1 }, { 4218, 0x2e75 }, { 4227, 0xd139 },
- { 4235, 0x3009 }, { 4239, 0x5050 }, { 4243, 0x8808 }, { 4246, 0x6900 },
- { 4250, 0x49d4 }, { 4257, 0x024a }, { 4261, 0x4010 }, { 4263, 0x8016 },
- { 4267, 0xe564 }, { 4275, 0x89d7 }, { 4284, 0xc020 }, { 4287, 0x5316 },
- /* 0x7700 */
- { 4294, 0x2b92 }, { 4301, 0x8600 }, { 4304, 0xa345 }, { 4311, 0x15e0 },
- { 4317, 0x008b }, { 4321, 0x0c03 }, { 4325, 0x196e }, { 4333, 0xe200 },
- { 4337, 0x7031 }, { 4343, 0x8006 }, { 4346, 0x16a5 }, { 4353, 0xa829 },
- { 4359, 0x2000 }, { 4360, 0x1880 }, { 4363, 0x7aac }, { 4372, 0xe148 },
- /* 0x7800 */
- { 4378, 0x3207 }, { 4384, 0xb5d6 }, { 4394, 0x32e8 }, { 4401, 0x5f91 },
- { 4410, 0x50a1 }, { 4415, 0x20e5 }, { 4421, 0x7c00 }, { 4426, 0x1080 },
- { 4428, 0x7280 }, { 4433, 0x9d8a }, { 4441, 0x00aa }, { 4445, 0x421f },
- { 4452, 0x0e22 }, { 4457, 0x0231 }, { 4461, 0x1100 }, { 4463, 0x0494 },
- /* 0x7900 */
- { 4467, 0x0022 }, { 4469, 0x4008 }, { 4471, 0x0010 }, { 4472, 0x5c10 },
- { 4477, 0x0343 }, { 4482, 0xfcc8 }, { 4491, 0xa1a5 }, { 4498, 0x0580 },
- { 4501, 0x8433 }, { 4507, 0x0400 }, { 4508, 0x0080 }, { 4509, 0x6e08 },
- { 4515, 0x2a4b }, { 4522, 0x8126 }, { 4527, 0xaad8 }, { 4535, 0x2901 },
- /* 0x7a00 */
- { 4539, 0x684d }, { 4546, 0x4490 }, { 4550, 0x0009 }, { 4552, 0xba88 },
- { 4559, 0x0040 }, { 4560, 0x0082 }, { 4562, 0x0000 }, { 4562, 0x87d1 },
- { 4570, 0x215b }, { 4577, 0xb1e6 }, { 4586, 0x3161 }, { 4592, 0x8008 },
- { 4594, 0x0800 }, { 4595, 0xc240 }, { 4599, 0xa069 }, { 4605, 0xa600 },
- /* 0x7b00 */
- { 4609, 0x8d58 }, { 4616, 0x4a32 }, { 4622, 0x5d71 }, { 4631, 0x550a },
- { 4637, 0x9aa0 }, { 4643, 0x2d57 }, { 4652, 0x4005 }, { 4655, 0x4aa6 },
- { 4662, 0x2021 }, { 4665, 0x30b1 }, { 4671, 0x3fc6 }, { 4681, 0x0112 },
- { 4684, 0x10c2 }, { 4688, 0x260a }, { 4693, 0x4462 }, { 4698, 0x5082 },
- /* 0x7c00 */
- { 4702, 0x9880 }, { 4706, 0x8040 }, { 4708, 0x04c0 }, { 4711, 0x8100 },
- { 4713, 0x2003 }, { 4716, 0x0000 }, { 4716, 0x0000 }, { 4716, 0x3818 },
- { 4721, 0x0200 }, { 4722, 0xf1a6 }, { 4731, 0x4434 }, { 4736, 0x720e },
- { 4743, 0x35a2 }, { 4750, 0x92e0 }, { 4756, 0x8101 }, { 4759, 0x0900 },
- /* 0x7d00 */
- { 4761, 0x0400 }, { 4762, 0x0000 }, { 4762, 0x8885 }, { 4767, 0x0000 },
- { 4767, 0x0000 }, { 4767, 0x0000 }, { 4767, 0x4000 }, { 4768, 0x0080 },
- { 4769, 0x0000 }, { 4769, 0x0000 }, { 4769, 0x4040 }, { 4771, 0x0000 },
- { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 },
- /* 0x7e00 */
- { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0800 },
- { 4772, 0x0082 }, { 4774, 0x0000 }, { 4774, 0x0000 }, { 4774, 0x0000 },
- { 4774, 0x0004 }, { 4775, 0x8800 }, { 4777, 0xbfff }, { 4792, 0xe7ef },
- { 4805, 0xffff }, { 4821, 0xffbf }, { 4836, 0xefef }, { 4850, 0xfdff },
- /* 0x7f00 */
- { 4865, 0xfbff }, { 4880, 0xbffe }, { 4894, 0xffff }, { 4910, 0x057f },
- { 4919, 0x0034 }, { 4922, 0x85b3 }, { 4930, 0x4706 }, { 4936, 0x4216 },
- { 4941, 0x5402 }, { 4945, 0xe410 }, { 4950, 0x8092 }, { 4954, 0xb305 },
- { 4961, 0x5422 }, { 4966, 0x8130 }, { 4970, 0x4263 }, { 4976, 0x180b },
- /* 0x8000 */
- { 4981, 0x387b }, { 4990, 0x13f5 }, { 4999, 0x07e5 }, { 5007, 0xa9ea },
- { 5016, 0x3c4c }, { 5023, 0x0514 }, { 5027, 0x0600 }, { 5029, 0x8002 },
- { 5031, 0x1ad9 }, { 5039, 0xbd48 }, { 5047, 0xee37 }, { 5058, 0xf496 },
- { 5067, 0x705f }, { 5076, 0x7ec0 }, { 5084, 0xbfb2 }, { 5095, 0x355f },
- /* 0x8100 */
- { 5105, 0xe644 }, { 5112, 0x455f }, { 5121, 0x9000 }, { 5123, 0x4146 },
- { 5128, 0x1d40 }, { 5133, 0x063b }, { 5140, 0x62a1 }, { 5146, 0xfe13 },
- { 5156, 0x8505 }, { 5161, 0x3902 }, { 5166, 0x0548 }, { 5170, 0x0c08 },
- { 5173, 0x144f }, { 5180, 0x0000 }, { 5180, 0x3488 }, { 5185, 0x5818 },
- /* 0x8200 */
- { 5190, 0x3077 }, { 5198, 0xd815 }, { 5205, 0xbd0e }, { 5214, 0x4bfb },
- { 5225, 0x8a90 }, { 5230, 0x8500 }, { 5233, 0xc100 }, { 5236, 0xe61d },
- { 5245, 0xed14 }, { 5253, 0xb386 }, { 5261, 0xff72 }, { 5273, 0x639b },
- { 5282, 0xfd92 }, { 5292, 0xd9be }, { 5303, 0x887b }, { 5311, 0x0a92 },
- /* 0x8300 */
- { 5316, 0xd3fe }, { 5328, 0x1cb2 }, { 5335, 0xb980 }, { 5341, 0x177a },
- { 5350, 0x82c9 }, { 5356, 0xdc17 }, { 5365, 0xfffb }, { 5380, 0x3980 },
- { 5385, 0x4260 }, { 5389, 0x590c }, { 5395, 0x0f01 }, { 5400, 0x37df },
- { 5412, 0x94a3 }, { 5419, 0xb150 }, { 5425, 0x0623 }, { 5430, 0x2307 },
- /* 0x8400 */
- { 5436, 0xf85a }, { 5445, 0x3102 }, { 5449, 0x01f0 }, { 5454, 0x3102 },
- { 5458, 0x0040 }, { 5459, 0x1e82 }, { 5465, 0x3a0a }, { 5471, 0x056a },
- { 5477, 0x5b84 }, { 5484, 0x1280 }, { 5487, 0x8002 }, { 5489, 0xa714 },
- { 5496, 0x2612 }, { 5501, 0xa04b }, { 5507, 0x1069 }, { 5512, 0x9001 },
- /* 0x8500 */
- { 5515, 0x1000 }, { 5516, 0x848a }, { 5521, 0x1802 }, { 5524, 0x3f80 },
- { 5531, 0x0708 }, { 5535, 0x4240 }, { 5538, 0x0110 }, { 5540, 0x4e14 },
- { 5546, 0x80b0 }, { 5550, 0x1800 }, { 5552, 0xc510 }, { 5557, 0x0281 },
- { 5560, 0x8202 }, { 5563, 0x1029 }, { 5567, 0x0210 }, { 5569, 0x8800 },
- /* 0x8600 */
- { 5571, 0x0020 }, { 5572, 0x0042 }, { 5574, 0x0280 }, { 5576, 0x1100 },
- { 5578, 0xe000 }, { 5581, 0x4413 }, { 5586, 0x5804 }, { 5590, 0xfe02 },
- { 5598, 0x3c07 }, { 5605, 0x3028 }, { 5609, 0x9798 }, { 5617, 0x0473 },
- { 5623, 0xced1 }, { 5632, 0xcb13 }, { 5640, 0x6210 }, { 5644, 0x431f },
- /* 0x8700 */
- { 5652, 0x278d }, { 5660, 0x55ac }, { 5668, 0x422e }, { 5674, 0xc892 },
- { 5680, 0x5380 }, { 5685, 0x0288 }, { 5688, 0x4039 }, { 5693, 0x7851 },
- { 5700, 0x292c }, { 5706, 0x8088 }, { 5709, 0xb900 }, { 5714, 0x2428 },
- { 5718, 0x0c41 }, { 5722, 0x080e }, { 5726, 0x4421 }, { 5730, 0x4200 },
- /* 0x8800 */
- { 5732, 0x0408 }, { 5734, 0x0868 }, { 5738, 0x0006 }, { 5740, 0x1204 },
- { 5743, 0x3031 }, { 5748, 0x0290 }, { 5751, 0x5b3e }, { 5761, 0xe085 },
- { 5767, 0x2936 }, { 5774, 0x1044 }, { 5777, 0x2814 }, { 5781, 0x1082 },
- { 5784, 0x4266 }, { 5790, 0x8334 }, { 5796, 0x013c }, { 5801, 0x531b },
- /* 0x8900 */
- { 5809, 0x0404 }, { 5811, 0x0e0d }, { 5817, 0x0c22 }, { 5821, 0x0051 },
- { 5824, 0x0012 }, { 5826, 0xc000 }, { 5828, 0x0040 }, { 5829, 0x8800 },
- { 5831, 0x004a }, { 5834, 0x0000 }, { 5834, 0x0000 }, { 5834, 0x0000 },
- { 5834, 0xdff6 }, { 5847, 0x5447 }, { 5854, 0x8868 }, { 5859, 0x0008 },
- /* 0x8a00 */
- { 5860, 0x0081 }, { 5862, 0x0000 }, { 5862, 0x0000 }, { 5862, 0x4000 },
- { 5863, 0x0100 }, { 5864, 0x0000 }, { 5864, 0x0000 }, { 5864, 0x0200 },
- { 5865, 0x0600 }, { 5867, 0x0008 }, { 5868, 0x0000 }, { 5868, 0x0000 },
- { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 },
- /* 0x8b00 */
- { 5868, 0x0080 }, { 5869, 0x0000 }, { 5869, 0x0040 }, { 5870, 0x0000 },
- { 5870, 0x0000 }, { 5870, 0x0000 }, { 5870, 0x1040 }, { 5872, 0x0000 },
- { 5872, 0x0000 }, { 5872, 0x0000 }, { 5872, 0xefff }, { 5887, 0xf7fd },
- { 5901, 0xff7f }, { 5916, 0xfffe }, { 5931, 0xfbff }, { 5946, 0xffff },
- /* 0x8c00 */
- { 5962, 0xfdff }, { 5977, 0xbfff }, { 5992, 0xffff }, { 6008, 0x00ff },
- { 6016, 0x12c2 }, { 6021, 0x0420 }, { 6023, 0x0c06 }, { 6027, 0x0708 },
- { 6031, 0x1624 }, { 6036, 0x0110 }, { 6038, 0x0000 }, { 6038, 0x0000 },
- { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 },
- /* 0x8d00 */
- { 6038, 0x0000 }, { 6038, 0xe000 }, { 6041, 0xfffe }, { 6056, 0xffff },
- { 6072, 0xffff }, { 6088, 0x7f79 }, { 6100, 0x28df }, { 6109, 0x00f9 },
- { 6115, 0x0c32 }, { 6120, 0x8012 }, { 6123, 0x0008 }, { 6124, 0xd53a },
- { 6133, 0xd858 }, { 6140, 0xecc2 }, { 6148, 0x9d18 }, { 6155, 0x2fa8 },
- /* 0x8e00 */
- { 6163, 0x9620 }, { 6168, 0xe010 }, { 6172, 0xd60c }, { 6179, 0x2622 },
- { 6184, 0x0f97 }, { 6193, 0x0206 }, { 6196, 0xb240 }, { 6201, 0x9055 },
- { 6207, 0x80a2 }, { 6211, 0x5011 }, { 6215, 0x9800 }, { 6218, 0x0404 },
- { 6220, 0x4000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 },
- /* 0x8f00 */
- { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 },
- { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0xfbc0 }, { 6230, 0xffff },
- { 6246, 0xeffe }, { 6260, 0xdffb }, { 6274, 0x0b08 }, { 6278, 0x6243 },
- { 6284, 0x41b6 }, { 6291, 0xfb3b }, { 6303, 0x6f74 }, { 6313, 0x2389 },
- /* 0x9000 */
- { 6319, 0xae7f }, { 6331, 0xecd7 }, { 6342, 0xe047 }, { 6349, 0x5960 },
- { 6355, 0xa096 }, { 6361, 0x098f }, { 6368, 0x612c }, { 6374, 0xa030 },
- { 6378, 0x090d }, { 6383, 0x2aaa }, { 6390, 0xd44e }, { 6398, 0x4f7b },
- { 6409, 0xc4b2 }, { 6416, 0x388b }, { 6423, 0xa9c6 }, { 6431, 0x6110 },
- /* 0x9100 */
- { 6435, 0x0014 }, { 6437, 0x4200 }, { 6439, 0x800c }, { 6442, 0x0202 },
- { 6444, 0xfe48 }, { 6453, 0x6485 }, { 6459, 0xd63e }, { 6469, 0xe3f7 },
- { 6481, 0x3aa0 }, { 6487, 0x0c07 }, { 6492, 0xe40c }, { 6498, 0x0430 },
- { 6501, 0xf680 }, { 6508, 0x1002 }, { 6510, 0x0000 }, { 6510, 0x0000 },
- /* 0x9200 */
- { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 },
- { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0010 },
- { 6511, 0x4000 }, { 6512, 0x0000 }, { 6512, 0x4000 }, { 6513, 0x0000 },
- { 6513, 0x0100 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 },
- /* 0x9300 */
- { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x4000 },
- { 6515, 0x0000 }, { 6515, 0x0000 }, { 6515, 0x0400 }, { 6516, 0x0000 },
- { 6516, 0x8000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, { 6517, 0x0000 },
- { 6517, 0x0400 }, { 6518, 0x0040 }, { 6519, 0x0000 }, { 6519, 0x0000 },
- /* 0x9400 */
- { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x4000 },
- { 6520, 0x0000 }, { 6520, 0x0000 }, { 6520, 0x0800 }, { 6521, 0x0000 },
- { 6521, 0xffe0 }, { 6532, 0xfebd }, { 6545, 0xffff }, { 6561, 0xffff },
- { 6577, 0x7f7f }, { 6591, 0xfbe7 }, { 6604, 0xffbf }, { 6619, 0xf7ff },
- /* 0x9500 */
- { 6634, 0xffff }, { 6650, 0xefff }, { 6665, 0xff7e }, { 6679, 0xdff7 },
- { 6693, 0xf6f7 }, { 6706, 0xfbdf }, { 6720, 0xbffe }, { 6734, 0x804f },
- { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 },
- { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0xef00 }, { 6747, 0x7fff },
- /* 0x9600 */
- { 6762, 0xff7f }, { 6777, 0xb6f7 }, { 6789, 0x4406 }, { 6793, 0xb87e },
- { 6803, 0x3bf5 }, { 6814, 0x8831 }, { 6819, 0x1796 }, { 6827, 0x00f4 },
- { 6832, 0xa960 }, { 6838, 0x1391 }, { 6844, 0x0080 }, { 6845, 0x7249 },
- { 6852, 0xf2f3 }, { 6863, 0x0024 }, { 6865, 0x8701 }, { 6870, 0x42c8 },
- /* 0x9700 */
- { 6875, 0xe3d3 }, { 6885, 0x5048 }, { 6889, 0x2400 }, { 6891, 0x4305 },
- { 6896, 0x0000 }, { 6896, 0x4a4c }, { 6902, 0x0227 }, { 6907, 0x1058 },
- { 6911, 0x2820 }, { 6914, 0x0116 }, { 6918, 0xa809 }, { 6923, 0x0014 },
- { 6925, 0x0000 }, { 6925, 0x0000 }, { 6925, 0x3ec0 }, { 6932, 0x0068 },
- /* 0x9800 */
- { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 },
- { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0xffe0 },
- { 6946, 0xb7ff }, { 6960, 0xfddb }, { 6973, 0x00f7 }, { 6980, 0x0000 },
- { 6980, 0x4000 }, { 6981, 0xc72e }, { 6990, 0x0180 }, { 6992, 0x0000 },
- /* 0x9900 */
- { 6992, 0x2000 }, { 6993, 0x0001 }, { 6994, 0x4000 }, { 6995, 0x0000 },
- { 6995, 0x0000 }, { 6995, 0x0030 }, { 6997, 0xffa8 }, { 7008, 0xb4f7 },
- { 7019, 0xadf3 }, { 7030, 0x03ff }, { 7040, 0x0120 }, { 7042, 0x0000 },
- { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 },
- /* 0x9a00 */
- { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 },
- { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0xf000 }, { 7046, 0xfffb },
- { 7061, 0x9df7 }, { 7073, 0xfdcf }, { 7086, 0x01bf }, { 7094, 0x15c3 },
- { 7101, 0x1827 }, { 7107, 0x810a }, { 7111, 0xa842 }, { 7116, 0x0a00 },
- /* 0x9b00 */
- { 7118, 0x8108 }, { 7121, 0x8008 }, { 7123, 0x8008 }, { 7125, 0x1804 },
- { 7128, 0xa3be }, { 7138, 0x0012 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- /* 0x9c00 */
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 },
- { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x9000 },
- { 7142, 0x69e6 }, { 7151, 0xdc37 }, { 7161, 0x6bff }, { 7174, 0x3dff },
- { 7187, 0xfcf8 }, { 7198, 0xf3f9 }, { 7210, 0x0004 },
-};
-static const Summary16 gb2312_uni2indx_page9e[27] = {
- /* 0x9e00 */
- { 7211, 0x0000 }, { 7211, 0x8000 }, { 7212, 0xbf6f }, { 7225, 0xe7ee },
- { 7237, 0xdffe }, { 7251, 0x5da2 }, { 7259, 0x3fd8 }, { 7269, 0xc00b },
- { 7274, 0x0984 }, { 7278, 0xa00c }, { 7282, 0x0040 }, { 7283, 0x6910 },
- { 7288, 0xe210 }, { 7293, 0xb912 }, { 7300, 0x86a5 }, { 7307, 0x5a00 },
- /* 0x9f00 */
- { 7311, 0x6800 }, { 7314, 0x0289 }, { 7318, 0x9005 }, { 7322, 0x6a80 },
- { 7327, 0x0010 }, { 7328, 0x0003 }, { 7330, 0x0000 }, { 7330, 0x8000 },
- { 7331, 0x1ff9 }, { 7342, 0x8e00 }, { 7346, 0x0001 },
-};
-static const Summary16 gb2312_uni2indx_pageff[15] = {
- /* 0xff00 */
- { 7347, 0xfffe }, { 7362, 0xffff }, { 7378, 0xffff }, { 7394, 0xffff },
- { 7410, 0xffff }, { 7426, 0x7fff }, { 7441, 0x0000 }, { 7441, 0x0000 },
- { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 },
- { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b },
-};
-
-static int
-gb2312_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- const Summary16 *summary = NULL;
- if (wc < 0x0460)
- summary = &gb2312_uni2indx_page00[(wc>>4)];
- else if (wc >= 0x2000 && wc < 0x2650)
- summary = &gb2312_uni2indx_page20[(wc>>4)-0x200];
- else if (wc >= 0x3000 && wc < 0x3230)
- summary = &gb2312_uni2indx_page30[(wc>>4)-0x300];
- else if (wc >= 0x4e00 && wc < 0x9cf0)
- summary = &gb2312_uni2indx_page4e[(wc>>4)-0x4e0];
- else if (wc >= 0x9e00 && wc < 0x9fb0)
- summary = &gb2312_uni2indx_page9e[(wc>>4)-0x9e0];
- else if (wc >= 0xff00 && wc < 0xfff0)
- summary = &gb2312_uni2indx_pageff[(wc>>4)-0xff0];
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- unsigned short c;
- /* Keep in `used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add `summary->indx' and the number of bits set in `used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- c = gb2312_2charset[summary->indx + used];
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/gbk.h b/nx-X11/lib/X11/lcUniConv/gbk.h
deleted file mode 100644
index 09c2e63ee..000000000
--- a/nx-X11/lib/X11/lcUniConv/gbk.h
+++ /dev/null
@@ -1,6200 +0,0 @@
-
-/*
- * GBK-0
- */
-
-static const unsigned short gbk_2uni_page81[23766] = {
- /* 0x81 */
- 0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f,
- 0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31,
- 0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44,
- 0x4e46, 0x4e4a, 0x4e51, 0x4e55, 0x4e57, 0x4e5a, 0x4e5b, 0x4e62,
- 0x4e63, 0x4e64, 0x4e65, 0x4e67, 0x4e68, 0x4e6a, 0x4e6b, 0x4e6c,
- 0x4e6d, 0x4e6e, 0x4e6f, 0x4e72, 0x4e74, 0x4e75, 0x4e76, 0x4e77,
- 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7f, 0x4e80,
- 0x4e81, 0x4e82, 0x4e83, 0x4e84, 0x4e85, 0x4e87, 0x4e8a, 0x4e90,
- 0x4e96, 0x4e97, 0x4e99, 0x4e9c, 0x4e9d, 0x4e9e, 0x4ea3, 0x4eaa,
- 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb4, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9,
- 0x4ebc, 0x4ebd, 0x4ebe, 0x4ec8, 0x4ecc, 0x4ecf, 0x4ed0, 0x4ed2,
- 0x4eda, 0x4edb, 0x4edc, 0x4ee0, 0x4ee2, 0x4ee6, 0x4ee7, 0x4ee9,
- 0x4eed, 0x4eee, 0x4eef, 0x4ef1, 0x4ef4, 0x4ef8, 0x4ef9, 0x4efa,
- 0x4efc, 0x4efe, 0x4f00, 0x4f02, 0x4f03, 0x4f04, 0x4f05, 0x4f06,
- 0x4f07, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, 0x4f13, 0x4f14, 0x4f15,
- 0x4f16, 0x4f1c, 0x4f1d, 0x4f21, 0x4f23, 0x4f28, 0x4f29, 0x4f2c,
- 0x4f2d, 0x4f2e, 0x4f31, 0x4f33, 0x4f35, 0x4f37, 0x4f39, 0x4f3b,
- 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f44, 0x4f45, 0x4f47,
- 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56,
- 0x4f61, 0x4f62, 0x4f66, 0x4f68, 0x4f6a, 0x4f6b, 0x4f6d, 0x4f6e,
- 0x4f71, 0x4f72, 0x4f75, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7d,
- 0x4f80, 0x4f81, 0x4f82, 0x4f85, 0x4f86, 0x4f87, 0x4f8a, 0x4f8c,
- 0x4f8e, 0x4f90, 0x4f92, 0x4f93, 0x4f95, 0x4f96, 0x4f98, 0x4f99,
- 0x4f9a, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa1, 0x4fa2,
- /* 0x82 */
- 0x4fa4, 0x4fab, 0x4fad, 0x4fb0, 0x4fb1, 0x4fb2, 0x4fb3, 0x4fb4,
- 0x4fb6, 0x4fb7, 0x4fb8, 0x4fb9, 0x4fba, 0x4fbb, 0x4fbc, 0x4fbd,
- 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fc8, 0x4fc9,
- 0x4fcb, 0x4fcc, 0x4fcd, 0x4fd2, 0x4fd3, 0x4fd4, 0x4fd5, 0x4fd6,
- 0x4fd9, 0x4fdb, 0x4fe0, 0x4fe2, 0x4fe4, 0x4fe5, 0x4fe7, 0x4feb,
- 0x4fec, 0x4ff0, 0x4ff2, 0x4ff4, 0x4ff5, 0x4ff6, 0x4ff7, 0x4ff9,
- 0x4ffb, 0x4ffc, 0x4ffd, 0x4fff, 0x5000, 0x5001, 0x5002, 0x5003,
- 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500a, 0x500b,
- 0x500e, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, 0x501b,
- 0x501d, 0x501e, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, 0x502b,
- 0x502f, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, 0x5036,
- 0x5037, 0x5038, 0x5039, 0x503b, 0x503d, 0x503f, 0x5040, 0x5041,
- 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504a, 0x504b, 0x504d,
- 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, 0x5058,
- 0x5059, 0x505b, 0x505d, 0x505e, 0x505f, 0x5060, 0x5061, 0x5062,
- 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506a, 0x506b,
- 0x506d, 0x506e, 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074,
- 0x5075, 0x5078, 0x5079, 0x507a, 0x507c, 0x507d, 0x5081, 0x5082,
- 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508a, 0x508b, 0x508c,
- 0x508e, 0x508f, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, 0x5095,
- 0x5096, 0x5097, 0x5098, 0x5099, 0x509a, 0x509b, 0x509c, 0x509d,
- 0x509e, 0x509f, 0x50a0, 0x50a1, 0x50a2, 0x50a4, 0x50a6, 0x50aa,
- 0x50ab, 0x50ad, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 0x50b4,
- 0x50b5, 0x50b6, 0x50b7, 0x50b8, 0x50b9, 0x50bc,
- /* 0x83 */
- 0x50bd, 0x50be, 0x50bf, 0x50c0, 0x50c1, 0x50c2, 0x50c3, 0x50c4,
- 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50ca, 0x50cb, 0x50cc,
- 0x50cd, 0x50ce, 0x50d0, 0x50d1, 0x50d2, 0x50d3, 0x50d4, 0x50d5,
- 0x50d7, 0x50d8, 0x50d9, 0x50db, 0x50dc, 0x50dd, 0x50de, 0x50df,
- 0x50e0, 0x50e1, 0x50e2, 0x50e3, 0x50e4, 0x50e5, 0x50e8, 0x50e9,
- 0x50ea, 0x50eb, 0x50ef, 0x50f0, 0x50f1, 0x50f2, 0x50f4, 0x50f6,
- 0x50f7, 0x50f8, 0x50f9, 0x50fa, 0x50fc, 0x50fd, 0x50fe, 0x50ff,
- 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x5109,
- 0x510a, 0x510c, 0x510d, 0x510e, 0x510f, 0x5110, 0x5111, 0x5113,
- 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511a, 0x511b,
- 0x511c, 0x511d, 0x511e, 0x511f, 0x5120, 0x5122, 0x5123, 0x5124,
- 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512a, 0x512b, 0x512c,
- 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, 0x5132, 0x5133, 0x5134,
- 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513a, 0x513b, 0x513c,
- 0x513d, 0x513e, 0x5142, 0x5147, 0x514a, 0x514c, 0x514e, 0x514f,
- 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515b, 0x515d,
- 0x515e, 0x515f, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, 0x5167,
- 0x5169, 0x516a, 0x516f, 0x5172, 0x517a, 0x517e, 0x517f, 0x5183,
- 0x5184, 0x5186, 0x5187, 0x518a, 0x518b, 0x518e, 0x518f, 0x5190,
- 0x5191, 0x5193, 0x5194, 0x5198, 0x519a, 0x519d, 0x519e, 0x519f,
- 0x51a1, 0x51a3, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 0x51aa, 0x51ad,
- 0x51ae, 0x51b4, 0x51b8, 0x51b9, 0x51ba, 0x51be, 0x51bf, 0x51c1,
- 0x51c2, 0x51c3, 0x51c5, 0x51c8, 0x51ca, 0x51cd, 0x51ce, 0x51d0,
- 0x51d2, 0x51d3, 0x51d4, 0x51d5, 0x51d6, 0x51d7,
- /* 0x84 */
- 0x51d8, 0x51d9, 0x51da, 0x51dc, 0x51de, 0x51df, 0x51e2, 0x51e3,
- 0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 0x51ea, 0x51ec, 0x51ee,
- 0x51f1, 0x51f2, 0x51f4, 0x51f7, 0x51fe, 0x5204, 0x5205, 0x5209,
- 0x520b, 0x520c, 0x520f, 0x5210, 0x5213, 0x5214, 0x5215, 0x521c,
- 0x521e, 0x521f, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227,
- 0x522a, 0x522c, 0x522f, 0x5231, 0x5232, 0x5234, 0x5235, 0x523c,
- 0x523e, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524b,
- 0x524e, 0x524f, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x5259,
- 0x525a, 0x525b, 0x525d, 0x525f, 0x5260, 0x5262, 0x5263, 0x5264,
- 0x5266, 0x5268, 0x526b, 0x526c, 0x526d, 0x526e, 0x5270, 0x5271,
- 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, 0x527a,
- 0x527b, 0x527c, 0x527e, 0x5280, 0x5283, 0x5284, 0x5285, 0x5286,
- 0x5287, 0x5289, 0x528a, 0x528b, 0x528c, 0x528d, 0x528e, 0x528f,
- 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, 0x5299,
- 0x529a, 0x529c, 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52ae, 0x52af,
- 0x52b0, 0x52b4, 0x52b5, 0x52b6, 0x52b7, 0x52b8, 0x52b9, 0x52ba,
- 0x52bb, 0x52bc, 0x52bd, 0x52c0, 0x52c1, 0x52c2, 0x52c4, 0x52c5,
- 0x52c6, 0x52c8, 0x52ca, 0x52cc, 0x52cd, 0x52ce, 0x52cf, 0x52d1,
- 0x52d3, 0x52d4, 0x52d5, 0x52d7, 0x52d9, 0x52da, 0x52db, 0x52dc,
- 0x52dd, 0x52de, 0x52e0, 0x52e1, 0x52e2, 0x52e3, 0x52e5, 0x52e6,
- 0x52e7, 0x52e8, 0x52e9, 0x52ea, 0x52eb, 0x52ec, 0x52ed, 0x52ee,
- 0x52ef, 0x52f1, 0x52f2, 0x52f3, 0x52f4, 0x52f5, 0x52f6, 0x52f7,
- 0x52f8, 0x52fb, 0x52fc, 0x52fd, 0x5301, 0x5302, 0x5303, 0x5304,
- 0x5307, 0x5309, 0x530a, 0x530b, 0x530c, 0x530e,
- /* 0x85 */
- 0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531b, 0x531c, 0x531e,
- 0x531f, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532b,
- 0x532c, 0x532d, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334,
- 0x5335, 0x5336, 0x5337, 0x5338, 0x533c, 0x533d, 0x5340, 0x5342,
- 0x5344, 0x5346, 0x534b, 0x534c, 0x534d, 0x5350, 0x5354, 0x5358,
- 0x5359, 0x535b, 0x535d, 0x5365, 0x5368, 0x536a, 0x536c, 0x536d,
- 0x5372, 0x5376, 0x5379, 0x537b, 0x537c, 0x537d, 0x537e, 0x5380,
- 0x5381, 0x5383, 0x5387, 0x5388, 0x538a, 0x538e, 0x538f, 0x5390,
- 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, 0x539b,
- 0x539c, 0x539e, 0x53a0, 0x53a1, 0x53a4, 0x53a7, 0x53aa, 0x53ab,
- 0x53ac, 0x53ad, 0x53af, 0x53b0, 0x53b1, 0x53b2, 0x53b3, 0x53b4,
- 0x53b5, 0x53b7, 0x53b8, 0x53b9, 0x53ba, 0x53bc, 0x53bd, 0x53be,
- 0x53c0, 0x53c3, 0x53c4, 0x53c5, 0x53c6, 0x53c7, 0x53ce, 0x53cf,
- 0x53d0, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dc, 0x53dd, 0x53de,
- 0x53e1, 0x53e2, 0x53e7, 0x53f4, 0x53fa, 0x53fe, 0x53ff, 0x5400,
- 0x5402, 0x5405, 0x5407, 0x540b, 0x5414, 0x5418, 0x5419, 0x541a,
- 0x541c, 0x5422, 0x5424, 0x5425, 0x542a, 0x5430, 0x5433, 0x5436,
- 0x5437, 0x543a, 0x543d, 0x543f, 0x5441, 0x5442, 0x5444, 0x5445,
- 0x5447, 0x5449, 0x544c, 0x544d, 0x544e, 0x544f, 0x5451, 0x545a,
- 0x545d, 0x545e, 0x545f, 0x5460, 0x5461, 0x5463, 0x5465, 0x5467,
- 0x5469, 0x546a, 0x546b, 0x546c, 0x546d, 0x546e, 0x546f, 0x5470,
- 0x5474, 0x5479, 0x547a, 0x547e, 0x547f, 0x5481, 0x5483, 0x5485,
- 0x5487, 0x5488, 0x5489, 0x548a, 0x548d, 0x5491, 0x5493, 0x5497,
- 0x5498, 0x549c, 0x549e, 0x549f, 0x54a0, 0x54a1,
- /* 0x86 */
- 0x54a2, 0x54a5, 0x54ae, 0x54b0, 0x54b2, 0x54b5, 0x54b6, 0x54b7,
- 0x54b9, 0x54ba, 0x54bc, 0x54be, 0x54c3, 0x54c5, 0x54ca, 0x54cb,
- 0x54d6, 0x54d8, 0x54db, 0x54e0, 0x54e1, 0x54e2, 0x54e3, 0x54e4,
- 0x54eb, 0x54ec, 0x54ef, 0x54f0, 0x54f1, 0x54f4, 0x54f5, 0x54f6,
- 0x54f7, 0x54f8, 0x54f9, 0x54fb, 0x54fe, 0x5500, 0x5502, 0x5503,
- 0x5504, 0x5505, 0x5508, 0x550a, 0x550b, 0x550c, 0x550d, 0x550e,
- 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551a,
- 0x551c, 0x551d, 0x551e, 0x551f, 0x5521, 0x5525, 0x5526, 0x5528,
- 0x5529, 0x552b, 0x552d, 0x5532, 0x5534, 0x5535, 0x5536, 0x5538,
- 0x5539, 0x553a, 0x553b, 0x553d, 0x5540, 0x5542, 0x5545, 0x5547,
- 0x5548, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5551, 0x5552,
- 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555a, 0x555b, 0x555d,
- 0x555e, 0x555f, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, 0x556b,
- 0x556f, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, 0x557a,
- 0x557d, 0x557f, 0x5585, 0x5586, 0x558c, 0x558d, 0x558e, 0x5590,
- 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559a, 0x559b, 0x559e,
- 0x55a0, 0x55a1, 0x55a2, 0x55a3, 0x55a4, 0x55a5, 0x55a6, 0x55a8,
- 0x55a9, 0x55aa, 0x55ab, 0x55ac, 0x55ad, 0x55ae, 0x55af, 0x55b0,
- 0x55b2, 0x55b4, 0x55b6, 0x55b8, 0x55ba, 0x55bc, 0x55bf, 0x55c0,
- 0x55c1, 0x55c2, 0x55c3, 0x55c6, 0x55c7, 0x55c8, 0x55ca, 0x55cb,
- 0x55ce, 0x55cf, 0x55d0, 0x55d5, 0x55d7, 0x55d8, 0x55d9, 0x55da,
- 0x55db, 0x55de, 0x55e0, 0x55e2, 0x55e7, 0x55e9, 0x55ed, 0x55ee,
- 0x55f0, 0x55f1, 0x55f4, 0x55f6, 0x55f8, 0x55f9, 0x55fa, 0x55fb,
- 0x55fc, 0x55ff, 0x5602, 0x5603, 0x5604, 0x5605,
- /* 0x87 */
- 0x5606, 0x5607, 0x560a, 0x560b, 0x560d, 0x5610, 0x5611, 0x5612,
- 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561a, 0x561c,
- 0x561d, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629,
- 0x562a, 0x562b, 0x562e, 0x562f, 0x5630, 0x5633, 0x5635, 0x5637,
- 0x5638, 0x563a, 0x563c, 0x563d, 0x563e, 0x5640, 0x5641, 0x5642,
- 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564a,
- 0x564b, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656,
- 0x565a, 0x565b, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5663,
- 0x5665, 0x5666, 0x5667, 0x566d, 0x566e, 0x566f, 0x5670, 0x5672,
- 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567a, 0x567d,
- 0x567e, 0x567f, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, 0x5687,
- 0x5688, 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x5690, 0x5691,
- 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, 0x569a,
- 0x569b, 0x569c, 0x569d, 0x569e, 0x569f, 0x56a0, 0x56a1, 0x56a2,
- 0x56a4, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 0x56aa, 0x56ab,
- 0x56ac, 0x56ad, 0x56ae, 0x56b0, 0x56b1, 0x56b2, 0x56b3, 0x56b4,
- 0x56b5, 0x56b6, 0x56b8, 0x56b9, 0x56ba, 0x56bb, 0x56bd, 0x56be,
- 0x56bf, 0x56c0, 0x56c1, 0x56c2, 0x56c3, 0x56c4, 0x56c5, 0x56c6,
- 0x56c7, 0x56c8, 0x56c9, 0x56cb, 0x56cc, 0x56cd, 0x56ce, 0x56cf,
- 0x56d0, 0x56d1, 0x56d2, 0x56d3, 0x56d5, 0x56d6, 0x56d8, 0x56d9,
- 0x56dc, 0x56e3, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, 0x56ea,
- 0x56ec, 0x56ee, 0x56ef, 0x56f2, 0x56f3, 0x56f6, 0x56f7, 0x56f8,
- 0x56fb, 0x56fc, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, 0x570b,
- 0x570c, 0x570d, 0x570e, 0x570f, 0x5710, 0x5711,
- /* 0x88 */
- 0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719,
- 0x571a, 0x571b, 0x571d, 0x571e, 0x5720, 0x5721, 0x5722, 0x5724,
- 0x5725, 0x5726, 0x5727, 0x572b, 0x5731, 0x5732, 0x5734, 0x5735,
- 0x5736, 0x5737, 0x5738, 0x573c, 0x573d, 0x573f, 0x5741, 0x5743,
- 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574b, 0x5752, 0x5753,
- 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765,
- 0x5767, 0x576c, 0x576e, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775,
- 0x5778, 0x5779, 0x577a, 0x577d, 0x577e, 0x577f, 0x5780, 0x5781,
- 0x5787, 0x5788, 0x5789, 0x578a, 0x578d, 0x578e, 0x578f, 0x5790,
- 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, 0x579a,
- 0x579c, 0x579d, 0x579e, 0x579f, 0x57a5, 0x57a8, 0x57aa, 0x57ac,
- 0x57af, 0x57b0, 0x57b1, 0x57b3, 0x57b5, 0x57b6, 0x57b7, 0x57b9,
- 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x57be, 0x57bf, 0x57c0, 0x57c1,
- 0x57c4, 0x57c5, 0x57c6, 0x57c7, 0x57c8, 0x57c9, 0x57ca, 0x57cc,
- 0x57cd, 0x57d0, 0x57d1, 0x57d3, 0x57d6, 0x57d7, 0x57db, 0x57dc,
- 0x57de, 0x57e1, 0x57e2, 0x57e3, 0x57e5, 0x57e6, 0x57e7, 0x57e8,
- 0x57e9, 0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57f0, 0x57f1, 0x57f2,
- 0x57f3, 0x57f5, 0x57f6, 0x57f7, 0x57fb, 0x57fc, 0x57fe, 0x57ff,
- 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580a, 0x580c,
- 0x580e, 0x580f, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, 0x5817,
- 0x5818, 0x581a, 0x581b, 0x581c, 0x581d, 0x581f, 0x5822, 0x5823,
- 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582b, 0x582c, 0x582d,
- 0x582e, 0x582f, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, 0x5837,
- 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d,
- /* 0x89 */
- 0x583e, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846,
- 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584e, 0x584f, 0x5850,
- 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585a, 0x585b,
- 0x585c, 0x585d, 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864,
- 0x5866, 0x5867, 0x5868, 0x5869, 0x586a, 0x586d, 0x586e, 0x586f,
- 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877,
- 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587f, 0x5882,
- 0x5884, 0x5886, 0x5887, 0x5888, 0x588a, 0x588b, 0x588c, 0x588d,
- 0x588e, 0x588f, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, 0x5897,
- 0x5898, 0x589b, 0x589c, 0x589d, 0x58a0, 0x58a1, 0x58a2, 0x58a3,
- 0x58a4, 0x58a5, 0x58a6, 0x58a7, 0x58aa, 0x58ab, 0x58ac, 0x58ad,
- 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b2, 0x58b3, 0x58b4, 0x58b5,
- 0x58b6, 0x58b7, 0x58b8, 0x58b9, 0x58ba, 0x58bb, 0x58bd, 0x58be,
- 0x58bf, 0x58c0, 0x58c2, 0x58c3, 0x58c4, 0x58c6, 0x58c7, 0x58c8,
- 0x58c9, 0x58ca, 0x58cb, 0x58cc, 0x58cd, 0x58ce, 0x58cf, 0x58d0,
- 0x58d2, 0x58d3, 0x58d4, 0x58d6, 0x58d7, 0x58d8, 0x58d9, 0x58da,
- 0x58db, 0x58dc, 0x58dd, 0x58de, 0x58df, 0x58e0, 0x58e1, 0x58e2,
- 0x58e3, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 0x58ea, 0x58ed,
- 0x58ef, 0x58f1, 0x58f2, 0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa,
- 0x58fb, 0x58fc, 0x58fd, 0x58fe, 0x58ff, 0x5900, 0x5901, 0x5903,
- 0x5905, 0x5906, 0x5908, 0x5909, 0x590a, 0x590b, 0x590c, 0x590e,
- 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591b, 0x591d,
- 0x591e, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, 0x592c,
- 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593b,
- /* 0x8a */
- 0x593d, 0x593e, 0x593f, 0x5940, 0x5943, 0x5945, 0x5946, 0x594a,
- 0x594c, 0x594d, 0x5950, 0x5952, 0x5953, 0x5959, 0x595b, 0x595c,
- 0x595d, 0x595e, 0x595f, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967,
- 0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f,
- 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597a, 0x597b, 0x597c,
- 0x597e, 0x597f, 0x5980, 0x5985, 0x5989, 0x598b, 0x598c, 0x598e,
- 0x598f, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599a, 0x599b,
- 0x599c, 0x599d, 0x599f, 0x59a0, 0x59a1, 0x59a2, 0x59a6, 0x59a7,
- 0x59ac, 0x59ad, 0x59b0, 0x59b1, 0x59b3, 0x59b4, 0x59b5, 0x59b6,
- 0x59b7, 0x59b8, 0x59ba, 0x59bc, 0x59bd, 0x59bf, 0x59c0, 0x59c1,
- 0x59c2, 0x59c3, 0x59c4, 0x59c5, 0x59c7, 0x59c8, 0x59c9, 0x59cc,
- 0x59cd, 0x59ce, 0x59cf, 0x59d5, 0x59d6, 0x59d9, 0x59db, 0x59de,
- 0x59df, 0x59e0, 0x59e1, 0x59e2, 0x59e4, 0x59e6, 0x59e7, 0x59e9,
- 0x59ea, 0x59eb, 0x59ed, 0x59ee, 0x59ef, 0x59f0, 0x59f1, 0x59f2,
- 0x59f3, 0x59f4, 0x59f5, 0x59f6, 0x59f7, 0x59f8, 0x59fa, 0x59fc,
- 0x59fd, 0x59fe, 0x5a00, 0x5a02, 0x5a0a, 0x5a0b, 0x5a0d, 0x5a0e,
- 0x5a0f, 0x5a10, 0x5a12, 0x5a14, 0x5a15, 0x5a16, 0x5a17, 0x5a19,
- 0x5a1a, 0x5a1b, 0x5a1d, 0x5a1e, 0x5a21, 0x5a22, 0x5a24, 0x5a26,
- 0x5a27, 0x5a28, 0x5a2a, 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f,
- 0x5a30, 0x5a33, 0x5a35, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, 0x5a3b,
- 0x5a3d, 0x5a3e, 0x5a3f, 0x5a41, 0x5a42, 0x5a43, 0x5a44, 0x5a45,
- 0x5a47, 0x5a48, 0x5a4b, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50,
- 0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a56, 0x5a57, 0x5a58, 0x5a59,
- 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60,
- /* 0x8b */
- 0x5a61, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a68, 0x5a69, 0x5a6b,
- 0x5a6c, 0x5a6d, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, 0x5a73,
- 0x5a78, 0x5a79, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5a80, 0x5a81,
- 0x5a82, 0x5a83, 0x5a84, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89,
- 0x5a8a, 0x5a8b, 0x5a8c, 0x5a8d, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91,
- 0x5a93, 0x5a94, 0x5a95, 0x5a96, 0x5a97, 0x5a98, 0x5a99, 0x5a9c,
- 0x5a9d, 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa1, 0x5aa2, 0x5aa3, 0x5aa4,
- 0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 0x5aab, 0x5aac, 0x5aad,
- 0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab4, 0x5ab6, 0x5ab7, 0x5ab9,
- 0x5aba, 0x5abb, 0x5abc, 0x5abd, 0x5abf, 0x5ac0, 0x5ac3, 0x5ac4,
- 0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5aca, 0x5acb, 0x5acd, 0x5ace,
- 0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 0x5ad5, 0x5ad7, 0x5ad9, 0x5ada,
- 0x5adb, 0x5add, 0x5ade, 0x5adf, 0x5ae2, 0x5ae4, 0x5ae5, 0x5ae7,
- 0x5ae8, 0x5aea, 0x5aec, 0x5aed, 0x5aee, 0x5aef, 0x5af0, 0x5af2,
- 0x5af3, 0x5af4, 0x5af5, 0x5af6, 0x5af7, 0x5af8, 0x5af9, 0x5afa,
- 0x5afb, 0x5afc, 0x5afd, 0x5afe, 0x5aff, 0x5b00, 0x5b01, 0x5b02,
- 0x5b03, 0x5b04, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b0a, 0x5b0b,
- 0x5b0c, 0x5b0d, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b12, 0x5b13,
- 0x5b14, 0x5b15, 0x5b18, 0x5b19, 0x5b1a, 0x5b1b, 0x5b1c, 0x5b1d,
- 0x5b1e, 0x5b1f, 0x5b20, 0x5b21, 0x5b22, 0x5b23, 0x5b24, 0x5b25,
- 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, 0x5b2d,
- 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 0x5b35, 0x5b36, 0x5b38,
- 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b41,
- 0x5b42, 0x5b43, 0x5b44, 0x5b45, 0x5b46, 0x5b47,
- /* 0x8c */
- 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f,
- 0x5b52, 0x5b56, 0x5b5e, 0x5b60, 0x5b61, 0x5b67, 0x5b68, 0x5b6b,
- 0x5b6d, 0x5b6e, 0x5b6f, 0x5b72, 0x5b74, 0x5b76, 0x5b77, 0x5b78,
- 0x5b79, 0x5b7b, 0x5b7c, 0x5b7e, 0x5b7f, 0x5b82, 0x5b86, 0x5b8a,
- 0x5b8d, 0x5b8e, 0x5b90, 0x5b91, 0x5b92, 0x5b94, 0x5b96, 0x5b9f,
- 0x5ba7, 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5bae, 0x5baf, 0x5bb1,
- 0x5bb2, 0x5bb7, 0x5bba, 0x5bbb, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bc3,
- 0x5bc8, 0x5bc9, 0x5bca, 0x5bcb, 0x5bcd, 0x5bce, 0x5bcf, 0x5bd1,
- 0x5bd4, 0x5bd5, 0x5bd6, 0x5bd7, 0x5bd8, 0x5bd9, 0x5bda, 0x5bdb,
- 0x5bdc, 0x5be0, 0x5be2, 0x5be3, 0x5be6, 0x5be7, 0x5be9, 0x5bea,
- 0x5beb, 0x5bec, 0x5bed, 0x5bef, 0x5bf1, 0x5bf2, 0x5bf3, 0x5bf4,
- 0x5bf5, 0x5bf6, 0x5bf7, 0x5bfd, 0x5bfe, 0x5c00, 0x5c02, 0x5c03,
- 0x5c05, 0x5c07, 0x5c08, 0x5c0b, 0x5c0c, 0x5c0d, 0x5c0e, 0x5c10,
- 0x5c12, 0x5c13, 0x5c17, 0x5c19, 0x5c1b, 0x5c1e, 0x5c1f, 0x5c20,
- 0x5c21, 0x5c23, 0x5c26, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2d,
- 0x5c2e, 0x5c2f, 0x5c30, 0x5c32, 0x5c33, 0x5c35, 0x5c36, 0x5c37,
- 0x5c43, 0x5c44, 0x5c46, 0x5c47, 0x5c4c, 0x5c4d, 0x5c52, 0x5c53,
- 0x5c54, 0x5c56, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d,
- 0x5c5f, 0x5c62, 0x5c64, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b,
- 0x5c6c, 0x5c6d, 0x5c70, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76,
- 0x5c77, 0x5c78, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, 0x5c80, 0x5c83,
- 0x5c84, 0x5c85, 0x5c86, 0x5c87, 0x5c89, 0x5c8a, 0x5c8b, 0x5c8e,
- 0x5c8f, 0x5c92, 0x5c93, 0x5c95, 0x5c9d, 0x5c9e, 0x5c9f, 0x5ca0,
- 0x5ca1, 0x5ca4, 0x5ca5, 0x5ca6, 0x5ca7, 0x5ca8,
- /* 0x8d */
- 0x5caa, 0x5cae, 0x5caf, 0x5cb0, 0x5cb2, 0x5cb4, 0x5cb6, 0x5cb9,
- 0x5cba, 0x5cbb, 0x5cbc, 0x5cbe, 0x5cc0, 0x5cc2, 0x5cc3, 0x5cc5,
- 0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 0x5cca, 0x5ccc, 0x5ccd, 0x5cce,
- 0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 0x5cd4, 0x5cd5, 0x5cd6, 0x5cd7,
- 0x5cd8, 0x5cda, 0x5cdb, 0x5cdc, 0x5cdd, 0x5cde, 0x5cdf, 0x5ce0,
- 0x5ce2, 0x5ce3, 0x5ce7, 0x5ce9, 0x5ceb, 0x5cec, 0x5cee, 0x5cef,
- 0x5cf1, 0x5cf2, 0x5cf3, 0x5cf4, 0x5cf5, 0x5cf6, 0x5cf7, 0x5cf8,
- 0x5cf9, 0x5cfa, 0x5cfc, 0x5cfd, 0x5cfe, 0x5cff, 0x5d00, 0x5d01,
- 0x5d04, 0x5d05, 0x5d08, 0x5d09, 0x5d0a, 0x5d0b, 0x5d0c, 0x5d0d,
- 0x5d0f, 0x5d10, 0x5d11, 0x5d12, 0x5d13, 0x5d15, 0x5d17, 0x5d18,
- 0x5d19, 0x5d1a, 0x5d1c, 0x5d1d, 0x5d1f, 0x5d20, 0x5d21, 0x5d22,
- 0x5d23, 0x5d25, 0x5d28, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2f, 0x5d30,
- 0x5d31, 0x5d32, 0x5d33, 0x5d35, 0x5d36, 0x5d37, 0x5d38, 0x5d39,
- 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3f, 0x5d40, 0x5d41, 0x5d42, 0x5d43,
- 0x5d44, 0x5d45, 0x5d46, 0x5d48, 0x5d49, 0x5d4d, 0x5d4e, 0x5d4f,
- 0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57,
- 0x5d59, 0x5d5a, 0x5d5c, 0x5d5e, 0x5d5f, 0x5d60, 0x5d61, 0x5d62,
- 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d6a, 0x5d6d,
- 0x5d6e, 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d75, 0x5d76, 0x5d77,
- 0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5d7f,
- 0x5d80, 0x5d81, 0x5d83, 0x5d84, 0x5d85, 0x5d86, 0x5d87, 0x5d88,
- 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, 0x5d8d, 0x5d8e, 0x5d8f, 0x5d90,
- 0x5d91, 0x5d92, 0x5d93, 0x5d94, 0x5d95, 0x5d96, 0x5d97, 0x5d98,
- 0x5d9a, 0x5d9b, 0x5d9c, 0x5d9e, 0x5d9f, 0x5da0,
- /* 0x8e */
- 0x5da1, 0x5da2, 0x5da3, 0x5da4, 0x5da5, 0x5da6, 0x5da7, 0x5da8,
- 0x5da9, 0x5daa, 0x5dab, 0x5dac, 0x5dad, 0x5dae, 0x5daf, 0x5db0,
- 0x5db1, 0x5db2, 0x5db3, 0x5db4, 0x5db5, 0x5db6, 0x5db8, 0x5db9,
- 0x5dba, 0x5dbb, 0x5dbc, 0x5dbd, 0x5dbe, 0x5dbf, 0x5dc0, 0x5dc1,
- 0x5dc2, 0x5dc3, 0x5dc4, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 0x5dca,
- 0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd2, 0x5dd3,
- 0x5dd4, 0x5dd5, 0x5dd6, 0x5dd7, 0x5dd8, 0x5dd9, 0x5dda, 0x5ddc,
- 0x5ddf, 0x5de0, 0x5de3, 0x5de4, 0x5dea, 0x5dec, 0x5ded, 0x5df0,
- 0x5df5, 0x5df6, 0x5df8, 0x5df9, 0x5dfa, 0x5dfb, 0x5dfc, 0x5dff,
- 0x5e00, 0x5e04, 0x5e07, 0x5e09, 0x5e0a, 0x5e0b, 0x5e0d, 0x5e0e,
- 0x5e12, 0x5e13, 0x5e17, 0x5e1e, 0x5e1f, 0x5e20, 0x5e21, 0x5e22,
- 0x5e23, 0x5e24, 0x5e25, 0x5e28, 0x5e29, 0x5e2a, 0x5e2b, 0x5e2c,
- 0x5e2f, 0x5e30, 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e39,
- 0x5e3a, 0x5e3e, 0x5e3f, 0x5e40, 0x5e41, 0x5e43, 0x5e46, 0x5e47,
- 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50,
- 0x5e51, 0x5e52, 0x5e53, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a,
- 0x5e5c, 0x5e5d, 0x5e5f, 0x5e60, 0x5e63, 0x5e64, 0x5e65, 0x5e66,
- 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e,
- 0x5e6f, 0x5e70, 0x5e71, 0x5e75, 0x5e77, 0x5e79, 0x5e7e, 0x5e81,
- 0x5e82, 0x5e83, 0x5e85, 0x5e88, 0x5e89, 0x5e8c, 0x5e8d, 0x5e8e,
- 0x5e92, 0x5e98, 0x5e9b, 0x5e9d, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
- 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, 0x5eb0,
- 0x5eb1, 0x5eb2, 0x5eb4, 0x5eba, 0x5ebb, 0x5ebc, 0x5ebd, 0x5ebf,
- 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, 0x5ec5,
- /* 0x8f */
- 0x5ec6, 0x5ec7, 0x5ec8, 0x5ecb, 0x5ecc, 0x5ecd, 0x5ece, 0x5ecf,
- 0x5ed0, 0x5ed4, 0x5ed5, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edc,
- 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
- 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee9, 0x5eeb, 0x5eec, 0x5eed, 0x5eee,
- 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef5, 0x5ef8, 0x5ef9,
- 0x5efb, 0x5efc, 0x5efd, 0x5f05, 0x5f06, 0x5f07, 0x5f09, 0x5f0c,
- 0x5f0d, 0x5f0e, 0x5f10, 0x5f12, 0x5f14, 0x5f16, 0x5f19, 0x5f1a,
- 0x5f1c, 0x5f1d, 0x5f1e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28,
- 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f32, 0x5f33, 0x5f34, 0x5f35,
- 0x5f36, 0x5f37, 0x5f38, 0x5f3b, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f41,
- 0x5f42, 0x5f43, 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49,
- 0x5f4a, 0x5f4b, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f51, 0x5f54,
- 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, 0x5f5e, 0x5f5f, 0x5f60, 0x5f63,
- 0x5f65, 0x5f67, 0x5f68, 0x5f6b, 0x5f6e, 0x5f6f, 0x5f72, 0x5f74,
- 0x5f75, 0x5f76, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, 0x5f7f, 0x5f83,
- 0x5f86, 0x5f8d, 0x5f8e, 0x5f8f, 0x5f91, 0x5f93, 0x5f94, 0x5f96,
- 0x5f9a, 0x5f9b, 0x5f9d, 0x5f9e, 0x5f9f, 0x5fa0, 0x5fa2, 0x5fa3,
- 0x5fa4, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa9, 0x5fab, 0x5fac, 0x5faf,
- 0x5fb0, 0x5fb1, 0x5fb2, 0x5fb3, 0x5fb4, 0x5fb6, 0x5fb8, 0x5fb9,
- 0x5fba, 0x5fbb, 0x5fbe, 0x5fbf, 0x5fc0, 0x5fc1, 0x5fc2, 0x5fc7,
- 0x5fc8, 0x5fca, 0x5fcb, 0x5fce, 0x5fd3, 0x5fd4, 0x5fd5, 0x5fda,
- 0x5fdb, 0x5fdc, 0x5fde, 0x5fdf, 0x5fe2, 0x5fe3, 0x5fe5, 0x5fe6,
- 0x5fe8, 0x5fe9, 0x5fec, 0x5fef, 0x5ff0, 0x5ff2, 0x5ff3, 0x5ff4,
- 0x5ff6, 0x5ff7, 0x5ff9, 0x5ffa, 0x5ffc, 0x6007,
- /* 0x90 */
- 0x6008, 0x6009, 0x600b, 0x600c, 0x6010, 0x6011, 0x6013, 0x6017,
- 0x6018, 0x601a, 0x601e, 0x601f, 0x6022, 0x6023, 0x6024, 0x602c,
- 0x602d, 0x602e, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036,
- 0x6037, 0x6038, 0x6039, 0x603a, 0x603d, 0x603e, 0x6040, 0x6044,
- 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604c, 0x604e,
- 0x604f, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605b,
- 0x605c, 0x605e, 0x605f, 0x6060, 0x6061, 0x6065, 0x6066, 0x606e,
- 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607e, 0x6080, 0x6081,
- 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608a, 0x608b, 0x608e,
- 0x608f, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, 0x6099,
- 0x609c, 0x609e, 0x60a1, 0x60a2, 0x60a4, 0x60a5, 0x60a7, 0x60a9,
- 0x60aa, 0x60ae, 0x60b0, 0x60b3, 0x60b5, 0x60b6, 0x60b7, 0x60b9,
- 0x60ba, 0x60bd, 0x60be, 0x60bf, 0x60c0, 0x60c1, 0x60c2, 0x60c3,
- 0x60c4, 0x60c7, 0x60c8, 0x60c9, 0x60cc, 0x60cd, 0x60ce, 0x60cf,
- 0x60d0, 0x60d2, 0x60d3, 0x60d4, 0x60d6, 0x60d7, 0x60d9, 0x60db,
- 0x60de, 0x60e1, 0x60e2, 0x60e3, 0x60e4, 0x60e5, 0x60ea, 0x60f1,
- 0x60f2, 0x60f5, 0x60f7, 0x60f8, 0x60fb, 0x60fc, 0x60fd, 0x60fe,
- 0x60ff, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610a, 0x610b,
- 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, 0x6117,
- 0x6118, 0x6119, 0x611b, 0x611c, 0x611d, 0x611e, 0x6121, 0x6122,
- 0x6125, 0x6128, 0x6129, 0x612a, 0x612c, 0x612d, 0x612e, 0x612f,
- 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137,
- 0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x6140,
- 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146,
- /* 0x91 */
- 0x6147, 0x6149, 0x614b, 0x614d, 0x614f, 0x6150, 0x6152, 0x6153,
- 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615a, 0x615b, 0x615c,
- 0x615e, 0x615f, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166,
- 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6171,
- 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617a, 0x617b,
- 0x617c, 0x617d, 0x617e, 0x617f, 0x6180, 0x6181, 0x6182, 0x6183,
- 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618c,
- 0x618d, 0x618f, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x6196,
- 0x6197, 0x6198, 0x6199, 0x619a, 0x619b, 0x619c, 0x619e, 0x619f,
- 0x61a0, 0x61a1, 0x61a2, 0x61a3, 0x61a4, 0x61a5, 0x61a6, 0x61aa,
- 0x61ab, 0x61ad, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b2, 0x61b3,
- 0x61b4, 0x61b5, 0x61b6, 0x61b8, 0x61b9, 0x61ba, 0x61bb, 0x61bc,
- 0x61bd, 0x61bf, 0x61c0, 0x61c1, 0x61c3, 0x61c4, 0x61c5, 0x61c6,
- 0x61c7, 0x61c9, 0x61cc, 0x61cd, 0x61ce, 0x61cf, 0x61d0, 0x61d3,
- 0x61d5, 0x61d6, 0x61d7, 0x61d8, 0x61d9, 0x61da, 0x61db, 0x61dc,
- 0x61dd, 0x61de, 0x61df, 0x61e0, 0x61e1, 0x61e2, 0x61e3, 0x61e4,
- 0x61e5, 0x61e7, 0x61e8, 0x61e9, 0x61ea, 0x61eb, 0x61ec, 0x61ed,
- 0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f2, 0x61f3, 0x61f4, 0x61f6,
- 0x61f7, 0x61f8, 0x61f9, 0x61fa, 0x61fb, 0x61fc, 0x61fd, 0x61fe,
- 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, 0x6209,
- 0x6213, 0x6214, 0x6219, 0x621c, 0x621d, 0x621e, 0x6220, 0x6223,
- 0x6226, 0x6227, 0x6228, 0x6229, 0x622b, 0x622d, 0x622f, 0x6230,
- 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623a, 0x623b,
- 0x623c, 0x6242, 0x6244, 0x6245, 0x6246, 0x624a,
- /* 0x92 */
- 0x624f, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625a, 0x625c,
- 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265,
- 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627a,
- 0x627b, 0x627d, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287,
- 0x6288, 0x628b, 0x628c, 0x628d, 0x628e, 0x628f, 0x6290, 0x6294,
- 0x6299, 0x629c, 0x629d, 0x629e, 0x62a3, 0x62a6, 0x62a7, 0x62a9,
- 0x62aa, 0x62ad, 0x62ae, 0x62af, 0x62b0, 0x62b2, 0x62b3, 0x62b4,
- 0x62b6, 0x62b7, 0x62b8, 0x62ba, 0x62be, 0x62c0, 0x62c1, 0x62c3,
- 0x62cb, 0x62cf, 0x62d1, 0x62d5, 0x62dd, 0x62de, 0x62e0, 0x62e1,
- 0x62e4, 0x62ea, 0x62eb, 0x62f0, 0x62f2, 0x62f5, 0x62f8, 0x62f9,
- 0x62fa, 0x62fb, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, 0x630a,
- 0x630b, 0x630c, 0x630d, 0x630f, 0x6310, 0x6312, 0x6313, 0x6314,
- 0x6315, 0x6317, 0x6318, 0x6319, 0x631c, 0x6326, 0x6327, 0x6329,
- 0x632c, 0x632d, 0x632e, 0x6330, 0x6331, 0x6333, 0x6334, 0x6335,
- 0x6336, 0x6337, 0x6338, 0x633b, 0x633c, 0x633e, 0x633f, 0x6340,
- 0x6341, 0x6344, 0x6347, 0x6348, 0x634a, 0x6351, 0x6352, 0x6353,
- 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c,
- 0x635d, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636a, 0x636b,
- 0x636c, 0x636f, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, 0x6378,
- 0x6379, 0x637c, 0x637d, 0x637e, 0x637f, 0x6381, 0x6383, 0x6384,
- 0x6385, 0x6386, 0x638b, 0x638d, 0x6391, 0x6393, 0x6394, 0x6395,
- 0x6397, 0x6399, 0x639a, 0x639b, 0x639c, 0x639d, 0x639e, 0x639f,
- 0x63a1, 0x63a4, 0x63a6, 0x63ab, 0x63af, 0x63b1, 0x63b2, 0x63b5,
- 0x63b6, 0x63b9, 0x63bb, 0x63bd, 0x63bf, 0x63c0,
- /* 0x93 */
- 0x63c1, 0x63c2, 0x63c3, 0x63c5, 0x63c7, 0x63c8, 0x63ca, 0x63cb,
- 0x63cc, 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63d9,
- 0x63da, 0x63db, 0x63dc, 0x63dd, 0x63df, 0x63e2, 0x63e4, 0x63e5,
- 0x63e6, 0x63e7, 0x63e8, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0,
- 0x63f1, 0x63f3, 0x63f5, 0x63f7, 0x63f9, 0x63fa, 0x63fb, 0x63fc,
- 0x63fe, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640a,
- 0x640d, 0x640e, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418,
- 0x6419, 0x641a, 0x641d, 0x641f, 0x6422, 0x6423, 0x6424, 0x6425,
- 0x6427, 0x6428, 0x6429, 0x642b, 0x642e, 0x642f, 0x6430, 0x6431,
- 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, 0x643b,
- 0x643c, 0x643e, 0x6440, 0x6442, 0x6443, 0x6449, 0x644b, 0x644c,
- 0x644d, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 0x6455, 0x6456,
- 0x6457, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645f, 0x6460,
- 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, 0x646a,
- 0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473,
- 0x6474, 0x6475, 0x6476, 0x6477, 0x647b, 0x647c, 0x647d, 0x647e,
- 0x647f, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, 0x648a,
- 0x648b, 0x648c, 0x648d, 0x648e, 0x648f, 0x6490, 0x6493, 0x6494,
- 0x6497, 0x6498, 0x649a, 0x649b, 0x649c, 0x649d, 0x649f, 0x64a0,
- 0x64a1, 0x64a2, 0x64a3, 0x64a5, 0x64a6, 0x64a7, 0x64a8, 0x64aa,
- 0x64ab, 0x64af, 0x64b1, 0x64b2, 0x64b3, 0x64b4, 0x64b6, 0x64b9,
- 0x64bb, 0x64bd, 0x64be, 0x64bf, 0x64c1, 0x64c3, 0x64c4, 0x64c6,
- 0x64c7, 0x64c8, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64cf, 0x64d1,
- 0x64d3, 0x64d4, 0x64d5, 0x64d6, 0x64d9, 0x64da,
- /* 0x94 */
- 0x64db, 0x64dc, 0x64dd, 0x64df, 0x64e0, 0x64e1, 0x64e3, 0x64e5,
- 0x64e7, 0x64e8, 0x64e9, 0x64ea, 0x64eb, 0x64ec, 0x64ed, 0x64ee,
- 0x64ef, 0x64f0, 0x64f1, 0x64f2, 0x64f3, 0x64f4, 0x64f5, 0x64f6,
- 0x64f7, 0x64f8, 0x64f9, 0x64fa, 0x64fb, 0x64fc, 0x64fd, 0x64fe,
- 0x64ff, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507,
- 0x6508, 0x650a, 0x650b, 0x650c, 0x650d, 0x650e, 0x650f, 0x6510,
- 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651a,
- 0x651b, 0x651c, 0x651d, 0x651e, 0x651f, 0x6520, 0x6521, 0x6522,
- 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652a, 0x652c,
- 0x652d, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653a, 0x653c,
- 0x653d, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, 0x6547,
- 0x654a, 0x654b, 0x654d, 0x654e, 0x6550, 0x6552, 0x6553, 0x6554,
- 0x6557, 0x6558, 0x655a, 0x655c, 0x655f, 0x6560, 0x6561, 0x6564,
- 0x6565, 0x6567, 0x6568, 0x6569, 0x656a, 0x656d, 0x656e, 0x656f,
- 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657a, 0x657b,
- 0x657c, 0x657d, 0x657e, 0x657f, 0x6580, 0x6581, 0x6582, 0x6583,
- 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658a, 0x658d, 0x658e,
- 0x658f, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659a, 0x659d,
- 0x659e, 0x65a0, 0x65a2, 0x65a3, 0x65a6, 0x65a8, 0x65aa, 0x65ac,
- 0x65ae, 0x65b1, 0x65b2, 0x65b3, 0x65b4, 0x65b5, 0x65b6, 0x65b7,
- 0x65b8, 0x65ba, 0x65bb, 0x65be, 0x65bf, 0x65c0, 0x65c2, 0x65c7,
- 0x65c8, 0x65c9, 0x65ca, 0x65cd, 0x65d0, 0x65d1, 0x65d3, 0x65d4,
- 0x65d5, 0x65d8, 0x65d9, 0x65da, 0x65db, 0x65dc, 0x65dd, 0x65de,
- 0x65df, 0x65e1, 0x65e3, 0x65e4, 0x65ea, 0x65eb,
- /* 0x95 */
- 0x65f2, 0x65f3, 0x65f4, 0x65f5, 0x65f8, 0x65f9, 0x65fb, 0x65fc,
- 0x65fd, 0x65fe, 0x65ff, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608,
- 0x6609, 0x660b, 0x660d, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617,
- 0x6618, 0x661a, 0x661b, 0x661c, 0x661e, 0x6621, 0x6622, 0x6623,
- 0x6624, 0x6626, 0x6629, 0x662a, 0x662b, 0x662c, 0x662e, 0x6630,
- 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663a, 0x663b, 0x663d,
- 0x663f, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648,
- 0x6649, 0x664a, 0x664d, 0x664e, 0x6650, 0x6651, 0x6658, 0x6659,
- 0x665b, 0x665c, 0x665d, 0x665e, 0x6660, 0x6662, 0x6663, 0x6665,
- 0x6667, 0x6669, 0x666a, 0x666b, 0x666c, 0x666d, 0x6671, 0x6672,
- 0x6673, 0x6675, 0x6678, 0x6679, 0x667b, 0x667c, 0x667d, 0x667f,
- 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, 0x668a,
- 0x668b, 0x668d, 0x668e, 0x668f, 0x6690, 0x6692, 0x6693, 0x6694,
- 0x6695, 0x6698, 0x6699, 0x669a, 0x669b, 0x669c, 0x669e, 0x669f,
- 0x66a0, 0x66a1, 0x66a2, 0x66a3, 0x66a4, 0x66a5, 0x66a6, 0x66a9,
- 0x66aa, 0x66ab, 0x66ac, 0x66ad, 0x66af, 0x66b0, 0x66b1, 0x66b2,
- 0x66b3, 0x66b5, 0x66b6, 0x66b7, 0x66b8, 0x66ba, 0x66bb, 0x66bc,
- 0x66bd, 0x66bf, 0x66c0, 0x66c1, 0x66c2, 0x66c3, 0x66c4, 0x66c5,
- 0x66c6, 0x66c7, 0x66c8, 0x66c9, 0x66ca, 0x66cb, 0x66cc, 0x66cd,
- 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, 0x66d3, 0x66d4, 0x66d5,
- 0x66d6, 0x66d7, 0x66d8, 0x66da, 0x66de, 0x66df, 0x66e0, 0x66e1,
- 0x66e2, 0x66e3, 0x66e4, 0x66e5, 0x66e7, 0x66e8, 0x66ea, 0x66eb,
- 0x66ec, 0x66ed, 0x66ee, 0x66ef, 0x66f1, 0x66f5, 0x66f6, 0x66f8,
- 0x66fa, 0x66fb, 0x66fd, 0x6701, 0x6702, 0x6703,
- /* 0x96 */
- 0x6704, 0x6705, 0x6706, 0x6707, 0x670c, 0x670e, 0x670f, 0x6711,
- 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671a, 0x671c, 0x671e,
- 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729,
- 0x672e, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739,
- 0x673b, 0x673c, 0x673e, 0x673f, 0x6741, 0x6744, 0x6745, 0x6747,
- 0x674a, 0x674b, 0x674d, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758,
- 0x6759, 0x675a, 0x675b, 0x675d, 0x6762, 0x6763, 0x6764, 0x6766,
- 0x6767, 0x676b, 0x676c, 0x676e, 0x6771, 0x6774, 0x6776, 0x6778,
- 0x6779, 0x677a, 0x677b, 0x677d, 0x6780, 0x6782, 0x6783, 0x6785,
- 0x6786, 0x6788, 0x678a, 0x678c, 0x678d, 0x678e, 0x678f, 0x6791,
- 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679b, 0x679f, 0x67a0,
- 0x67a1, 0x67a4, 0x67a6, 0x67a9, 0x67ac, 0x67ae, 0x67b1, 0x67b2,
- 0x67b4, 0x67b9, 0x67ba, 0x67bb, 0x67bc, 0x67bd, 0x67be, 0x67bf,
- 0x67c0, 0x67c2, 0x67c5, 0x67c6, 0x67c7, 0x67c8, 0x67c9, 0x67ca,
- 0x67cb, 0x67cc, 0x67cd, 0x67ce, 0x67d5, 0x67d6, 0x67d7, 0x67db,
- 0x67df, 0x67e1, 0x67e3, 0x67e4, 0x67e6, 0x67e7, 0x67e8, 0x67ea,
- 0x67eb, 0x67ed, 0x67ee, 0x67f2, 0x67f5, 0x67f6, 0x67f7, 0x67f8,
- 0x67f9, 0x67fa, 0x67fb, 0x67fc, 0x67fe, 0x6801, 0x6802, 0x6803,
- 0x6804, 0x6806, 0x680d, 0x6810, 0x6812, 0x6814, 0x6815, 0x6818,
- 0x6819, 0x681a, 0x681b, 0x681c, 0x681e, 0x681f, 0x6820, 0x6822,
- 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682b, 0x682c,
- 0x682d, 0x682e, 0x682f, 0x6830, 0x6831, 0x6834, 0x6835, 0x6836,
- 0x683a, 0x683b, 0x683f, 0x6847, 0x684b, 0x684d, 0x684f, 0x6852,
- 0x6856, 0x6857, 0x6858, 0x6859, 0x685a, 0x685b,
- /* 0x97 */
- 0x685c, 0x685d, 0x685e, 0x685f, 0x686a, 0x686c, 0x686d, 0x686e,
- 0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879,
- 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x687f, 0x6880, 0x6882,
- 0x6884, 0x6887, 0x6888, 0x6889, 0x688a, 0x688b, 0x688c, 0x688d,
- 0x688e, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898,
- 0x6899, 0x689a, 0x689b, 0x689c, 0x689d, 0x689e, 0x689f, 0x68a0,
- 0x68a1, 0x68a3, 0x68a4, 0x68a5, 0x68a9, 0x68aa, 0x68ab, 0x68ac,
- 0x68ae, 0x68b1, 0x68b2, 0x68b4, 0x68b6, 0x68b7, 0x68b8, 0x68b9,
- 0x68ba, 0x68bb, 0x68bc, 0x68bd, 0x68be, 0x68bf, 0x68c1, 0x68c3,
- 0x68c4, 0x68c5, 0x68c6, 0x68c7, 0x68c8, 0x68ca, 0x68cc, 0x68ce,
- 0x68cf, 0x68d0, 0x68d1, 0x68d3, 0x68d4, 0x68d6, 0x68d7, 0x68d9,
- 0x68db, 0x68dc, 0x68dd, 0x68de, 0x68df, 0x68e1, 0x68e2, 0x68e4,
- 0x68e5, 0x68e6, 0x68e7, 0x68e8, 0x68e9, 0x68ea, 0x68eb, 0x68ec,
- 0x68ed, 0x68ef, 0x68f2, 0x68f3, 0x68f4, 0x68f6, 0x68f7, 0x68f8,
- 0x68fb, 0x68fd, 0x68fe, 0x68ff, 0x6900, 0x6902, 0x6903, 0x6904,
- 0x6906, 0x6907, 0x6908, 0x6909, 0x690a, 0x690c, 0x690f, 0x6911,
- 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, 0x691a,
- 0x691b, 0x691c, 0x691d, 0x691e, 0x6921, 0x6922, 0x6923, 0x6925,
- 0x6926, 0x6927, 0x6928, 0x6929, 0x692a, 0x692b, 0x692c, 0x692e,
- 0x692f, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, 0x6938,
- 0x693a, 0x693b, 0x693c, 0x693e, 0x6940, 0x6941, 0x6943, 0x6944,
- 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694a, 0x694b, 0x694c,
- 0x694d, 0x694e, 0x694f, 0x6950, 0x6951, 0x6952, 0x6953, 0x6955,
- 0x6956, 0x6958, 0x6959, 0x695b, 0x695c, 0x695f,
- /* 0x98 */
- 0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696a,
- 0x696c, 0x696d, 0x696f, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975,
- 0x6976, 0x697a, 0x697b, 0x697d, 0x697e, 0x697f, 0x6981, 0x6983,
- 0x6985, 0x698a, 0x698b, 0x698c, 0x698e, 0x698f, 0x6990, 0x6991,
- 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699a, 0x699d, 0x699e,
- 0x699f, 0x69a0, 0x69a1, 0x69a2, 0x69a3, 0x69a4, 0x69a5, 0x69a6,
- 0x69a9, 0x69aa, 0x69ac, 0x69ae, 0x69af, 0x69b0, 0x69b2, 0x69b3,
- 0x69b5, 0x69b6, 0x69b8, 0x69b9, 0x69ba, 0x69bc, 0x69bd, 0x69be,
- 0x69bf, 0x69c0, 0x69c2, 0x69c3, 0x69c4, 0x69c5, 0x69c6, 0x69c7,
- 0x69c8, 0x69c9, 0x69cb, 0x69cd, 0x69cf, 0x69d1, 0x69d2, 0x69d3,
- 0x69d5, 0x69d6, 0x69d7, 0x69d8, 0x69d9, 0x69da, 0x69dc, 0x69dd,
- 0x69de, 0x69e1, 0x69e2, 0x69e3, 0x69e4, 0x69e5, 0x69e6, 0x69e7,
- 0x69e8, 0x69e9, 0x69ea, 0x69eb, 0x69ec, 0x69ee, 0x69ef, 0x69f0,
- 0x69f1, 0x69f3, 0x69f4, 0x69f5, 0x69f6, 0x69f7, 0x69f8, 0x69f9,
- 0x69fa, 0x69fb, 0x69fc, 0x69fe, 0x6a00, 0x6a01, 0x6a02, 0x6a03,
- 0x6a04, 0x6a05, 0x6a06, 0x6a07, 0x6a08, 0x6a09, 0x6a0b, 0x6a0c,
- 0x6a0d, 0x6a0e, 0x6a0f, 0x6a10, 0x6a11, 0x6a12, 0x6a13, 0x6a14,
- 0x6a15, 0x6a16, 0x6a19, 0x6a1a, 0x6a1b, 0x6a1c, 0x6a1d, 0x6a1e,
- 0x6a20, 0x6a22, 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a29,
- 0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a30, 0x6a32, 0x6a33, 0x6a34,
- 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, 0x6a3c, 0x6a3f,
- 0x6a40, 0x6a41, 0x6a42, 0x6a43, 0x6a45, 0x6a46, 0x6a48, 0x6a49,
- 0x6a4a, 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a51, 0x6a52,
- 0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a5a,
- /* 0x99 */
- 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a62, 0x6a63, 0x6a64,
- 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d,
- 0x6a6e, 0x6a6f, 0x6a70, 0x6a72, 0x6a73, 0x6a74, 0x6a75, 0x6a76,
- 0x6a77, 0x6a78, 0x6a7a, 0x6a7b, 0x6a7d, 0x6a7e, 0x6a7f, 0x6a81,
- 0x6a82, 0x6a83, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, 0x6a8a,
- 0x6a8b, 0x6a8c, 0x6a8d, 0x6a8f, 0x6a92, 0x6a93, 0x6a94, 0x6a95,
- 0x6a96, 0x6a98, 0x6a99, 0x6a9a, 0x6a9b, 0x6a9c, 0x6a9d, 0x6a9e,
- 0x6a9f, 0x6aa1, 0x6aa2, 0x6aa3, 0x6aa4, 0x6aa5, 0x6aa6, 0x6aa7,
- 0x6aa8, 0x6aaa, 0x6aad, 0x6aae, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab2,
- 0x6ab3, 0x6ab4, 0x6ab5, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba,
- 0x6abb, 0x6abc, 0x6abd, 0x6abe, 0x6abf, 0x6ac0, 0x6ac1, 0x6ac2,
- 0x6ac3, 0x6ac4, 0x6ac5, 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca,
- 0x6acb, 0x6acc, 0x6acd, 0x6ace, 0x6acf, 0x6ad0, 0x6ad1, 0x6ad2,
- 0x6ad3, 0x6ad4, 0x6ad5, 0x6ad6, 0x6ad7, 0x6ad8, 0x6ad9, 0x6ada,
- 0x6adb, 0x6adc, 0x6add, 0x6ade, 0x6adf, 0x6ae0, 0x6ae1, 0x6ae2,
- 0x6ae3, 0x6ae4, 0x6ae5, 0x6ae6, 0x6ae7, 0x6ae8, 0x6ae9, 0x6aea,
- 0x6aeb, 0x6aec, 0x6aed, 0x6aee, 0x6aef, 0x6af0, 0x6af1, 0x6af2,
- 0x6af3, 0x6af4, 0x6af5, 0x6af6, 0x6af7, 0x6af8, 0x6af9, 0x6afa,
- 0x6afb, 0x6afc, 0x6afd, 0x6afe, 0x6aff, 0x6b00, 0x6b01, 0x6b02,
- 0x6b03, 0x6b04, 0x6b05, 0x6b06, 0x6b07, 0x6b08, 0x6b09, 0x6b0a,
- 0x6b0b, 0x6b0c, 0x6b0d, 0x6b0e, 0x6b0f, 0x6b10, 0x6b11, 0x6b12,
- 0x6b13, 0x6b14, 0x6b15, 0x6b16, 0x6b17, 0x6b18, 0x6b19, 0x6b1a,
- 0x6b1b, 0x6b1c, 0x6b1d, 0x6b1e, 0x6b1f, 0x6b25, 0x6b26, 0x6b28,
- 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, 0x6b2e,
- /* 0x9a */
- 0x6b2f, 0x6b30, 0x6b31, 0x6b33, 0x6b34, 0x6b35, 0x6b36, 0x6b38,
- 0x6b3b, 0x6b3c, 0x6b3d, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b44,
- 0x6b45, 0x6b48, 0x6b4a, 0x6b4b, 0x6b4d, 0x6b4e, 0x6b4f, 0x6b50,
- 0x6b51, 0x6b52, 0x6b53, 0x6b54, 0x6b55, 0x6b56, 0x6b57, 0x6b58,
- 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5d, 0x6b5e, 0x6b5f, 0x6b60, 0x6b61,
- 0x6b68, 0x6b69, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, 0x6b6f, 0x6b70,
- 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b75, 0x6b76, 0x6b77, 0x6b78,
- 0x6b7a, 0x6b7d, 0x6b7e, 0x6b7f, 0x6b80, 0x6b85, 0x6b88, 0x6b8c,
- 0x6b8e, 0x6b8f, 0x6b90, 0x6b91, 0x6b94, 0x6b95, 0x6b97, 0x6b98,
- 0x6b99, 0x6b9c, 0x6b9d, 0x6b9e, 0x6b9f, 0x6ba0, 0x6ba2, 0x6ba3,
- 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, 0x6ba8, 0x6ba9, 0x6bab, 0x6bac,
- 0x6bad, 0x6bae, 0x6baf, 0x6bb0, 0x6bb1, 0x6bb2, 0x6bb6, 0x6bb8,
- 0x6bb9, 0x6bba, 0x6bbb, 0x6bbc, 0x6bbd, 0x6bbe, 0x6bc0, 0x6bc3,
- 0x6bc4, 0x6bc6, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bca, 0x6bcc, 0x6bce,
- 0x6bd0, 0x6bd1, 0x6bd8, 0x6bda, 0x6bdc, 0x6bdd, 0x6bde, 0x6bdf,
- 0x6be0, 0x6be2, 0x6be3, 0x6be4, 0x6be5, 0x6be6, 0x6be7, 0x6be8,
- 0x6be9, 0x6bec, 0x6bed, 0x6bee, 0x6bf0, 0x6bf1, 0x6bf2, 0x6bf4,
- 0x6bf6, 0x6bf7, 0x6bf8, 0x6bfa, 0x6bfb, 0x6bfc, 0x6bfe, 0x6bff,
- 0x6c00, 0x6c01, 0x6c02, 0x6c03, 0x6c04, 0x6c08, 0x6c09, 0x6c0a,
- 0x6c0b, 0x6c0c, 0x6c0e, 0x6c12, 0x6c17, 0x6c1c, 0x6c1d, 0x6c1e,
- 0x6c20, 0x6c23, 0x6c25, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c31, 0x6c33,
- 0x6c36, 0x6c37, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3e, 0x6c3f,
- 0x6c43, 0x6c44, 0x6c45, 0x6c48, 0x6c4b, 0x6c4c, 0x6c4d, 0x6c4e,
- 0x6c4f, 0x6c51, 0x6c52, 0x6c53, 0x6c56, 0x6c58,
- /* 0x9b */
- 0x6c59, 0x6c5a, 0x6c62, 0x6c63, 0x6c65, 0x6c66, 0x6c67, 0x6c6b,
- 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, 0x6c71, 0x6c73, 0x6c75, 0x6c77,
- 0x6c78, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7f, 0x6c80, 0x6c84, 0x6c87,
- 0x6c8a, 0x6c8b, 0x6c8d, 0x6c8e, 0x6c91, 0x6c92, 0x6c95, 0x6c96,
- 0x6c97, 0x6c98, 0x6c9a, 0x6c9c, 0x6c9d, 0x6c9e, 0x6ca0, 0x6ca2,
- 0x6ca8, 0x6cac, 0x6caf, 0x6cb0, 0x6cb4, 0x6cb5, 0x6cb6, 0x6cb7,
- 0x6cba, 0x6cc0, 0x6cc1, 0x6cc2, 0x6cc3, 0x6cc6, 0x6cc7, 0x6cc8,
- 0x6ccb, 0x6ccd, 0x6cce, 0x6ccf, 0x6cd1, 0x6cd2, 0x6cd8, 0x6cd9,
- 0x6cda, 0x6cdc, 0x6cdd, 0x6cdf, 0x6ce4, 0x6ce6, 0x6ce7, 0x6ce9,
- 0x6cec, 0x6ced, 0x6cf2, 0x6cf4, 0x6cf9, 0x6cff, 0x6d00, 0x6d02,
- 0x6d03, 0x6d05, 0x6d06, 0x6d08, 0x6d09, 0x6d0a, 0x6d0d, 0x6d0f,
- 0x6d10, 0x6d11, 0x6d13, 0x6d14, 0x6d15, 0x6d16, 0x6d18, 0x6d1c,
- 0x6d1d, 0x6d1f, 0x6d20, 0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d26,
- 0x6d28, 0x6d29, 0x6d2c, 0x6d2d, 0x6d2f, 0x6d30, 0x6d34, 0x6d36,
- 0x6d37, 0x6d38, 0x6d3a, 0x6d3f, 0x6d40, 0x6d42, 0x6d44, 0x6d49,
- 0x6d4c, 0x6d50, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d5b, 0x6d5d,
- 0x6d5f, 0x6d61, 0x6d62, 0x6d64, 0x6d65, 0x6d67, 0x6d68, 0x6d6b,
- 0x6d6c, 0x6d6d, 0x6d70, 0x6d71, 0x6d72, 0x6d73, 0x6d75, 0x6d76,
- 0x6d79, 0x6d7a, 0x6d7b, 0x6d7d, 0x6d7e, 0x6d7f, 0x6d80, 0x6d81,
- 0x6d83, 0x6d84, 0x6d86, 0x6d87, 0x6d8a, 0x6d8b, 0x6d8d, 0x6d8f,
- 0x6d90, 0x6d92, 0x6d96, 0x6d97, 0x6d98, 0x6d99, 0x6d9a, 0x6d9c,
- 0x6da2, 0x6da5, 0x6dac, 0x6dad, 0x6db0, 0x6db1, 0x6db3, 0x6db4,
- 0x6db6, 0x6db7, 0x6db9, 0x6dba, 0x6dbb, 0x6dbc, 0x6dbd, 0x6dbe,
- 0x6dc1, 0x6dc2, 0x6dc3, 0x6dc8, 0x6dc9, 0x6dca,
- /* 0x9c */
- 0x6dcd, 0x6dce, 0x6dcf, 0x6dd0, 0x6dd2, 0x6dd3, 0x6dd4, 0x6dd5,
- 0x6dd7, 0x6dda, 0x6ddb, 0x6ddc, 0x6ddf, 0x6de2, 0x6de3, 0x6de5,
- 0x6de7, 0x6de8, 0x6de9, 0x6dea, 0x6ded, 0x6def, 0x6df0, 0x6df2,
- 0x6df4, 0x6df5, 0x6df6, 0x6df8, 0x6dfa, 0x6dfd, 0x6dfe, 0x6dff,
- 0x6e00, 0x6e01, 0x6e02, 0x6e03, 0x6e04, 0x6e06, 0x6e07, 0x6e08,
- 0x6e09, 0x6e0b, 0x6e0f, 0x6e12, 0x6e13, 0x6e15, 0x6e18, 0x6e19,
- 0x6e1b, 0x6e1c, 0x6e1e, 0x6e1f, 0x6e22, 0x6e26, 0x6e27, 0x6e28,
- 0x6e2a, 0x6e2c, 0x6e2e, 0x6e30, 0x6e31, 0x6e33, 0x6e35, 0x6e36,
- 0x6e37, 0x6e39, 0x6e3b, 0x6e3c, 0x6e3d, 0x6e3e, 0x6e3f, 0x6e40,
- 0x6e41, 0x6e42, 0x6e45, 0x6e46, 0x6e47, 0x6e48, 0x6e49, 0x6e4a,
- 0x6e4b, 0x6e4c, 0x6e4f, 0x6e50, 0x6e51, 0x6e52, 0x6e55, 0x6e57,
- 0x6e59, 0x6e5a, 0x6e5c, 0x6e5d, 0x6e5e, 0x6e60, 0x6e61, 0x6e62,
- 0x6e63, 0x6e64, 0x6e65, 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a,
- 0x6e6c, 0x6e6d, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e73, 0x6e74,
- 0x6e75, 0x6e76, 0x6e77, 0x6e78, 0x6e79, 0x6e7a, 0x6e7b, 0x6e7c,
- 0x6e7d, 0x6e80, 0x6e81, 0x6e82, 0x6e84, 0x6e87, 0x6e88, 0x6e8a,
- 0x6e8b, 0x6e8c, 0x6e8d, 0x6e8e, 0x6e91, 0x6e92, 0x6e93, 0x6e94,
- 0x6e95, 0x6e96, 0x6e97, 0x6e99, 0x6e9a, 0x6e9b, 0x6e9d, 0x6e9e,
- 0x6ea0, 0x6ea1, 0x6ea3, 0x6ea4, 0x6ea6, 0x6ea8, 0x6ea9, 0x6eab,
- 0x6eac, 0x6ead, 0x6eae, 0x6eb0, 0x6eb3, 0x6eb5, 0x6eb8, 0x6eb9,
- 0x6ebc, 0x6ebe, 0x6ebf, 0x6ec0, 0x6ec3, 0x6ec4, 0x6ec5, 0x6ec6,
- 0x6ec8, 0x6ec9, 0x6eca, 0x6ecc, 0x6ecd, 0x6ece, 0x6ed0, 0x6ed2,
- 0x6ed6, 0x6ed8, 0x6ed9, 0x6edb, 0x6edc, 0x6edd, 0x6ee3, 0x6ee7,
- 0x6eea, 0x6eeb, 0x6eec, 0x6eed, 0x6eee, 0x6eef,
- /* 0x9d */
- 0x6ef0, 0x6ef1, 0x6ef2, 0x6ef3, 0x6ef5, 0x6ef6, 0x6ef7, 0x6ef8,
- 0x6efa, 0x6efb, 0x6efc, 0x6efd, 0x6efe, 0x6eff, 0x6f00, 0x6f01,
- 0x6f03, 0x6f04, 0x6f05, 0x6f07, 0x6f08, 0x6f0a, 0x6f0b, 0x6f0c,
- 0x6f0d, 0x6f0e, 0x6f10, 0x6f11, 0x6f12, 0x6f16, 0x6f17, 0x6f18,
- 0x6f19, 0x6f1a, 0x6f1b, 0x6f1c, 0x6f1d, 0x6f1e, 0x6f1f, 0x6f21,
- 0x6f22, 0x6f23, 0x6f25, 0x6f26, 0x6f27, 0x6f28, 0x6f2c, 0x6f2e,
- 0x6f30, 0x6f32, 0x6f34, 0x6f35, 0x6f37, 0x6f38, 0x6f39, 0x6f3a,
- 0x6f3b, 0x6f3c, 0x6f3d, 0x6f3f, 0x6f40, 0x6f41, 0x6f42, 0x6f43,
- 0x6f44, 0x6f45, 0x6f48, 0x6f49, 0x6f4a, 0x6f4c, 0x6f4e, 0x6f4f,
- 0x6f50, 0x6f51, 0x6f52, 0x6f53, 0x6f54, 0x6f55, 0x6f56, 0x6f57,
- 0x6f59, 0x6f5a, 0x6f5b, 0x6f5d, 0x6f5f, 0x6f60, 0x6f61, 0x6f63,
- 0x6f64, 0x6f65, 0x6f67, 0x6f68, 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c,
- 0x6f6f, 0x6f70, 0x6f71, 0x6f73, 0x6f75, 0x6f76, 0x6f77, 0x6f79,
- 0x6f7b, 0x6f7d, 0x6f7e, 0x6f7f, 0x6f80, 0x6f81, 0x6f82, 0x6f83,
- 0x6f85, 0x6f86, 0x6f87, 0x6f8a, 0x6f8b, 0x6f8f, 0x6f90, 0x6f91,
- 0x6f92, 0x6f93, 0x6f94, 0x6f95, 0x6f96, 0x6f97, 0x6f98, 0x6f99,
- 0x6f9a, 0x6f9b, 0x6f9d, 0x6f9e, 0x6f9f, 0x6fa0, 0x6fa2, 0x6fa3,
- 0x6fa4, 0x6fa5, 0x6fa6, 0x6fa8, 0x6fa9, 0x6faa, 0x6fab, 0x6fac,
- 0x6fad, 0x6fae, 0x6faf, 0x6fb0, 0x6fb1, 0x6fb2, 0x6fb4, 0x6fb5,
- 0x6fb7, 0x6fb8, 0x6fba, 0x6fbb, 0x6fbc, 0x6fbd, 0x6fbe, 0x6fbf,
- 0x6fc1, 0x6fc3, 0x6fc4, 0x6fc5, 0x6fc6, 0x6fc7, 0x6fc8, 0x6fca,
- 0x6fcb, 0x6fcc, 0x6fcd, 0x6fce, 0x6fcf, 0x6fd0, 0x6fd3, 0x6fd4,
- 0x6fd5, 0x6fd6, 0x6fd7, 0x6fd8, 0x6fd9, 0x6fda, 0x6fdb, 0x6fdc,
- 0x6fdd, 0x6fdf, 0x6fe2, 0x6fe3, 0x6fe4, 0x6fe5,
- /* 0x9e */
- 0x6fe6, 0x6fe7, 0x6fe8, 0x6fe9, 0x6fea, 0x6feb, 0x6fec, 0x6fed,
- 0x6ff0, 0x6ff1, 0x6ff2, 0x6ff3, 0x6ff4, 0x6ff5, 0x6ff6, 0x6ff7,
- 0x6ff8, 0x6ff9, 0x6ffa, 0x6ffb, 0x6ffc, 0x6ffd, 0x6ffe, 0x6fff,
- 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007,
- 0x7008, 0x7009, 0x700a, 0x700b, 0x700c, 0x700d, 0x700e, 0x700f,
- 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018,
- 0x7019, 0x701c, 0x701d, 0x701e, 0x701f, 0x7020, 0x7021, 0x7022,
- 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702a, 0x702b,
- 0x702c, 0x702d, 0x702e, 0x702f, 0x7030, 0x7031, 0x7032, 0x7033,
- 0x7034, 0x7036, 0x7037, 0x7038, 0x703a, 0x703b, 0x703c, 0x703d,
- 0x703e, 0x703f, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, 0x7045,
- 0x7046, 0x7047, 0x7048, 0x7049, 0x704a, 0x704b, 0x704d, 0x704e,
- 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, 0x7057,
- 0x7058, 0x7059, 0x705a, 0x705b, 0x705c, 0x705d, 0x705f, 0x7060,
- 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, 0x7068,
- 0x7069, 0x706a, 0x706e, 0x7071, 0x7072, 0x7073, 0x7074, 0x7077,
- 0x7079, 0x707a, 0x707b, 0x707d, 0x7081, 0x7082, 0x7083, 0x7084,
- 0x7086, 0x7087, 0x7088, 0x708b, 0x708c, 0x708d, 0x708f, 0x7090,
- 0x7091, 0x7093, 0x7097, 0x7098, 0x709a, 0x709b, 0x709e, 0x709f,
- 0x70a0, 0x70a1, 0x70a2, 0x70a3, 0x70a4, 0x70a5, 0x70a6, 0x70a7,
- 0x70a8, 0x70a9, 0x70aa, 0x70b0, 0x70b2, 0x70b4, 0x70b5, 0x70b6,
- 0x70ba, 0x70be, 0x70bf, 0x70c4, 0x70c5, 0x70c6, 0x70c7, 0x70c9,
- 0x70cb, 0x70cc, 0x70cd, 0x70ce, 0x70cf, 0x70d0, 0x70d1, 0x70d2,
- 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d7, 0x70da,
- /* 0x9f */
- 0x70dc, 0x70dd, 0x70de, 0x70e0, 0x70e1, 0x70e2, 0x70e3, 0x70e5,
- 0x70ea, 0x70ee, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5,
- 0x70f6, 0x70f8, 0x70fa, 0x70fb, 0x70fc, 0x70fe, 0x70ff, 0x7100,
- 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108,
- 0x710b, 0x710c, 0x710d, 0x710e, 0x710f, 0x7111, 0x7112, 0x7114,
- 0x7117, 0x711b, 0x711c, 0x711d, 0x711e, 0x711f, 0x7120, 0x7121,
- 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712a,
- 0x712b, 0x712c, 0x712d, 0x712e, 0x7132, 0x7133, 0x7134, 0x7135,
- 0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713c, 0x713d, 0x713e,
- 0x713f, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, 0x7147,
- 0x7148, 0x7149, 0x714b, 0x714d, 0x714f, 0x7150, 0x7151, 0x7152,
- 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, 0x715a,
- 0x715b, 0x715d, 0x715f, 0x7160, 0x7161, 0x7162, 0x7163, 0x7165,
- 0x7169, 0x716a, 0x716b, 0x716c, 0x716d, 0x716f, 0x7170, 0x7171,
- 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717b, 0x717c, 0x717e,
- 0x717f, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, 0x7187,
- 0x7188, 0x7189, 0x718b, 0x718c, 0x718d, 0x718e, 0x7190, 0x7191,
- 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719a, 0x719b, 0x719c,
- 0x719d, 0x719e, 0x71a1, 0x71a2, 0x71a3, 0x71a4, 0x71a5, 0x71a6,
- 0x71a7, 0x71a9, 0x71aa, 0x71ab, 0x71ad, 0x71ae, 0x71af, 0x71b0,
- 0x71b1, 0x71b2, 0x71b4, 0x71b6, 0x71b7, 0x71b8, 0x71ba, 0x71bb,
- 0x71bc, 0x71bd, 0x71be, 0x71bf, 0x71c0, 0x71c1, 0x71c2, 0x71c4,
- 0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 0x71ca, 0x71cb, 0x71cc,
- 0x71cd, 0x71cf, 0x71d0, 0x71d1, 0x71d2, 0x71d3,
- /* 0xa0 */
- 0x71d6, 0x71d7, 0x71d8, 0x71d9, 0x71da, 0x71db, 0x71dc, 0x71dd,
- 0x71de, 0x71df, 0x71e1, 0x71e2, 0x71e3, 0x71e4, 0x71e6, 0x71e8,
- 0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ed, 0x71ef, 0x71f0, 0x71f1,
- 0x71f2, 0x71f3, 0x71f4, 0x71f5, 0x71f6, 0x71f7, 0x71f8, 0x71fa,
- 0x71fb, 0x71fc, 0x71fd, 0x71fe, 0x71ff, 0x7200, 0x7201, 0x7202,
- 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720a, 0x720b,
- 0x720c, 0x720d, 0x720e, 0x720f, 0x7210, 0x7211, 0x7212, 0x7213,
- 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721a, 0x721b,
- 0x721c, 0x721e, 0x721f, 0x7220, 0x7221, 0x7222, 0x7223, 0x7224,
- 0x7225, 0x7226, 0x7227, 0x7229, 0x722b, 0x722d, 0x722e, 0x722f,
- 0x7232, 0x7233, 0x7234, 0x723a, 0x723c, 0x723e, 0x7240, 0x7241,
- 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724a, 0x724b,
- 0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, 0x7257,
- 0x7258, 0x725a, 0x725c, 0x725e, 0x7260, 0x7263, 0x7264, 0x7265,
- 0x7268, 0x726a, 0x726b, 0x726c, 0x726d, 0x7270, 0x7271, 0x7273,
- 0x7274, 0x7276, 0x7277, 0x7278, 0x727b, 0x727c, 0x727d, 0x7282,
- 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728c, 0x728e,
- 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, 0x7298,
- 0x7299, 0x729a, 0x729b, 0x729c, 0x729d, 0x729e, 0x72a0, 0x72a1,
- 0x72a2, 0x72a3, 0x72a4, 0x72a5, 0x72a6, 0x72a7, 0x72a8, 0x72a9,
- 0x72aa, 0x72ab, 0x72ae, 0x72b1, 0x72b2, 0x72b3, 0x72b5, 0x72ba,
- 0x72bb, 0x72bc, 0x72bd, 0x72be, 0x72bf, 0x72c0, 0x72c5, 0x72c6,
- 0x72c7, 0x72c9, 0x72ca, 0x72cb, 0x72cc, 0x72cf, 0x72d1, 0x72d3,
- 0x72d4, 0x72d5, 0x72d6, 0x72d8, 0x72da, 0x72db,
- /* 0xa1 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x3000, 0x3001, 0x3002, 0x00b7, 0x02c9, 0x02c7, 0x00a8, 0x3003,
- 0x3005, 0x2014, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c,
- 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
- 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1,
- 0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a,
- 0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312,
- 0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d,
- 0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234,
- 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4,
- 0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb,
- 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2,
- 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013,
- /* 0xa2 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
- 0x2178, 0x2179, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f,
- 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497,
- 0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477,
- 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f,
- 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487,
- 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467,
- 0x2468, 0x2469, 0xfffd, 0xfffd, 0x3220, 0x3221, 0x3222, 0x3223,
- 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xfffd, 0xfffd,
- 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
- 0x2168, 0x2169, 0x216a, 0x216b, 0xfffd, 0xfffd,
- /* 0xa3 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08,
- 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
- 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
- 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
- 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
- 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
- 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
- 0xff39, 0xff3a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40,
- 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
- 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
- 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
- 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
- /* 0xa4 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
- 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
- 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
- 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
- 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
- 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
- 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
- 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
- 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
- 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
- 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa5 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
- 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
- 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
- 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
- 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
- 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
- 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
- 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
- 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
- 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
- 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa6 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
- 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
- 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
- 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
- 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfe35,
- 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41,
- 0xfe42, 0xfe43, 0xfe44, 0xfffd, 0xfffd, 0xfe3b, 0xfe3c, 0xfe37,
- 0xfe38, 0xfe31, 0xfffd, 0xfe33, 0xfe34, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa7 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
- 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
- 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
- 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
- 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
- 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
- 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa8 */
- 0x02ca, 0x02cb, 0x02d9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105,
- 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221f, 0x2223,
- 0x2252, 0x2266, 0x2267, 0x22bf, 0x2550, 0x2551, 0x2552, 0x2553,
- 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b,
- 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563,
- 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b,
- 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573,
- 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x2588,
- 0x2589, 0x258a, 0x258b, 0x258c, 0x258d, 0x258e, 0x258f, 0x2593,
- 0x2594, 0x2595, 0x25bc, 0x25bd, 0x25e2, 0x25e3, 0x25e4, 0x25e5,
- 0x2609, 0x2295, 0x3012, 0x301d, 0x301e, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8,
- 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2,
- 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc,
- 0x00fc, 0x00ea, 0x0251, 0xfffd, 0x0144, 0x0148, 0xfffd, 0x0261,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3105, 0x3106, 0x3107, 0x3108,
- 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110,
- 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118,
- 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120,
- 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
- 0x3129, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xa9 */
- 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028,
- 0x3029, 0x32a3, 0x338e, 0x338f, 0x339c, 0x339d, 0x339e, 0x33a1,
- 0x33c4, 0x33ce, 0x33d1, 0x33d2, 0x33d5, 0xfe30, 0xffe2, 0xffe4,
- 0xfffd, 0x2121, 0x3231, 0xfffd, 0x2010, 0xfffd, 0xfffd, 0xfffd,
- 0x30fc, 0x309b, 0x309c, 0x30fd, 0x30fe, 0x3006, 0x309d, 0x309e,
- 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50,
- 0xfe51, 0xfe52, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe59, 0xfe5a,
- 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0xfe62,
- 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3007, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504,
- 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c,
- 0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514,
- 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c,
- 0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524,
- 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c,
- 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534,
- 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c,
- 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544,
- 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xaa */
- 0x72dc, 0x72dd, 0x72df, 0x72e2, 0x72e3, 0x72e4, 0x72e5, 0x72e6,
- 0x72e7, 0x72ea, 0x72eb, 0x72f5, 0x72f6, 0x72f9, 0x72fd, 0x72fe,
- 0x72ff, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308,
- 0x7309, 0x730b, 0x730c, 0x730d, 0x730f, 0x7310, 0x7311, 0x7312,
- 0x7314, 0x7318, 0x7319, 0x731a, 0x731f, 0x7320, 0x7323, 0x7324,
- 0x7326, 0x7327, 0x7328, 0x732d, 0x732f, 0x7330, 0x7332, 0x7333,
- 0x7335, 0x7336, 0x733a, 0x733b, 0x733c, 0x733d, 0x7340, 0x7341,
- 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x7349,
- 0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7351, 0x7353, 0x7354,
- 0x7355, 0x7356, 0x7358, 0x7359, 0x735a, 0x735b, 0x735c, 0x735d,
- 0x735e, 0x735f, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366,
- 0x7367, 0x7368, 0x7369, 0x736a, 0x736b, 0x736e, 0x7370, 0x7371,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xab */
- 0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379,
- 0x737a, 0x737b, 0x737c, 0x737d, 0x737f, 0x7380, 0x7381, 0x7382,
- 0x7383, 0x7385, 0x7386, 0x7388, 0x738a, 0x738c, 0x738d, 0x738f,
- 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399,
- 0x739a, 0x739c, 0x739d, 0x739e, 0x73a0, 0x73a1, 0x73a3, 0x73a4,
- 0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73aa, 0x73ac, 0x73ad, 0x73b1,
- 0x73b4, 0x73b5, 0x73b6, 0x73b8, 0x73b9, 0x73bc, 0x73bd, 0x73be,
- 0x73bf, 0x73c1, 0x73c3, 0x73c4, 0x73c5, 0x73c6, 0x73c7, 0x73cb,
- 0x73cc, 0x73ce, 0x73d2, 0x73d3, 0x73d4, 0x73d5, 0x73d6, 0x73d7,
- 0x73d8, 0x73da, 0x73db, 0x73dc, 0x73dd, 0x73df, 0x73e1, 0x73e2,
- 0x73e3, 0x73e4, 0x73e6, 0x73e8, 0x73ea, 0x73eb, 0x73ec, 0x73ee,
- 0x73ef, 0x73f0, 0x73f1, 0x73f3, 0x73f4, 0x73f5, 0x73f6, 0x73f7,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xac */
- 0x73f8, 0x73f9, 0x73fa, 0x73fb, 0x73fc, 0x73fd, 0x73fe, 0x73ff,
- 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740b, 0x740c,
- 0x740d, 0x740e, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416,
- 0x7417, 0x7418, 0x7419, 0x741c, 0x741d, 0x741e, 0x741f, 0x7420,
- 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742b, 0x742d, 0x742f,
- 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743a, 0x743b, 0x743d,
- 0x743e, 0x743f, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446,
- 0x7447, 0x7448, 0x7449, 0x744a, 0x744b, 0x744c, 0x744d, 0x744e,
- 0x744f, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, 0x7458,
- 0x745d, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, 0x7466,
- 0x7467, 0x7468, 0x7469, 0x746a, 0x746b, 0x746c, 0x746e, 0x746f,
- 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, 0x747a,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xad */
- 0x747b, 0x747c, 0x747d, 0x747f, 0x7482, 0x7484, 0x7485, 0x7486,
- 0x7488, 0x7489, 0x748a, 0x748c, 0x748d, 0x748f, 0x7491, 0x7492,
- 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749a,
- 0x749b, 0x749d, 0x749f, 0x74a0, 0x74a1, 0x74a2, 0x74a3, 0x74a4,
- 0x74a5, 0x74a6, 0x74aa, 0x74ab, 0x74ac, 0x74ad, 0x74ae, 0x74af,
- 0x74b0, 0x74b1, 0x74b2, 0x74b3, 0x74b4, 0x74b5, 0x74b6, 0x74b7,
- 0x74b8, 0x74b9, 0x74bb, 0x74bc, 0x74bd, 0x74be, 0x74bf, 0x74c0,
- 0x74c1, 0x74c2, 0x74c3, 0x74c4, 0x74c5, 0x74c6, 0x74c7, 0x74c8,
- 0x74c9, 0x74ca, 0x74cb, 0x74cc, 0x74cd, 0x74ce, 0x74cf, 0x74d0,
- 0x74d1, 0x74d3, 0x74d4, 0x74d5, 0x74d6, 0x74d7, 0x74d8, 0x74d9,
- 0x74da, 0x74db, 0x74dd, 0x74df, 0x74e1, 0x74e5, 0x74e7, 0x74e8,
- 0x74e9, 0x74ea, 0x74eb, 0x74ec, 0x74ed, 0x74f0, 0x74f1, 0x74f2,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xae */
- 0x74f3, 0x74f5, 0x74f8, 0x74f9, 0x74fa, 0x74fb, 0x74fc, 0x74fd,
- 0x74fe, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507,
- 0x7508, 0x7509, 0x750a, 0x750b, 0x750c, 0x750e, 0x7510, 0x7512,
- 0x7514, 0x7515, 0x7516, 0x7517, 0x751b, 0x751d, 0x751e, 0x7520,
- 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752a, 0x752e,
- 0x7534, 0x7536, 0x7539, 0x753c, 0x753d, 0x753f, 0x7541, 0x7542,
- 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754a, 0x754d, 0x7550,
- 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x755d,
- 0x755e, 0x755f, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, 0x7567,
- 0x7568, 0x7569, 0x756b, 0x756c, 0x756d, 0x756e, 0x756f, 0x7570,
- 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757a, 0x757b, 0x757c,
- 0x757d, 0x757e, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, 0x7587,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xaf */
- 0x7588, 0x7589, 0x758a, 0x758c, 0x758d, 0x758e, 0x7590, 0x7593,
- 0x7595, 0x7598, 0x759b, 0x759c, 0x759e, 0x75a2, 0x75a6, 0x75a7,
- 0x75a8, 0x75a9, 0x75aa, 0x75ad, 0x75b6, 0x75b7, 0x75ba, 0x75bb,
- 0x75bf, 0x75c0, 0x75c1, 0x75c6, 0x75cb, 0x75cc, 0x75ce, 0x75cf,
- 0x75d0, 0x75d1, 0x75d3, 0x75d7, 0x75d9, 0x75da, 0x75dc, 0x75dd,
- 0x75df, 0x75e0, 0x75e1, 0x75e5, 0x75e9, 0x75ec, 0x75ed, 0x75ee,
- 0x75ef, 0x75f2, 0x75f3, 0x75f5, 0x75f6, 0x75f7, 0x75f8, 0x75fa,
- 0x75fb, 0x75fd, 0x75fe, 0x7602, 0x7604, 0x7606, 0x7607, 0x7608,
- 0x7609, 0x760b, 0x760d, 0x760e, 0x760f, 0x7611, 0x7612, 0x7613,
- 0x7614, 0x7616, 0x761a, 0x761c, 0x761d, 0x761e, 0x7621, 0x7623,
- 0x7627, 0x7628, 0x762c, 0x762e, 0x762f, 0x7631, 0x7632, 0x7636,
- 0x7637, 0x7639, 0x763a, 0x763b, 0x763d, 0x7641, 0x7642, 0x7644,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xb0 */
- 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764a, 0x764b, 0x764e,
- 0x764f, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658,
- 0x7659, 0x765a, 0x765b, 0x765d, 0x765f, 0x7660, 0x7661, 0x7662,
- 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766a, 0x766c,
- 0x766d, 0x766e, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675,
- 0x7676, 0x7677, 0x7679, 0x767a, 0x767c, 0x767f, 0x7680, 0x7681,
- 0x7683, 0x7685, 0x7689, 0x768a, 0x768c, 0x768d, 0x768f, 0x7690,
- 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x769c,
- 0x769d, 0x769e, 0x769f, 0x76a0, 0x76a1, 0x76a2, 0x76a3, 0x76a5,
- 0x76a6, 0x76a7, 0x76a8, 0x76a9, 0x76aa, 0x76ab, 0x76ac, 0x76ad,
- 0x76af, 0x76b0, 0x76b3, 0x76b5, 0x76b6, 0x76b7, 0x76b8, 0x76b9,
- 0x76ba, 0x76bb, 0x76bc, 0x76bd, 0x76be, 0x76c0, 0x76c1, 0x76c3,
- 0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691,
- 0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d,
- 0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848,
- 0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884,
- 0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed,
- 0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776,
- 0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf,
- 0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed,
- 0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc,
- 0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886,
- 0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d,
- 0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265,
- /* 0xb1 */
- 0x76c4, 0x76c7, 0x76c9, 0x76cb, 0x76cc, 0x76d3, 0x76d5, 0x76d9,
- 0x76da, 0x76dc, 0x76dd, 0x76de, 0x76e0, 0x76e1, 0x76e2, 0x76e3,
- 0x76e4, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 0x76ea, 0x76eb, 0x76ec,
- 0x76ed, 0x76f0, 0x76f3, 0x76f5, 0x76f6, 0x76f7, 0x76fa, 0x76fb,
- 0x76fd, 0x76ff, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770a,
- 0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714,
- 0x7715, 0x7716, 0x7717, 0x7718, 0x771b, 0x771c, 0x771d, 0x771e,
- 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772a, 0x772b, 0x772c,
- 0x772e, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, 0x773b,
- 0x773d, 0x773e, 0x773f, 0x7742, 0x7744, 0x7745, 0x7746, 0x7748,
- 0x7749, 0x774a, 0x774b, 0x774c, 0x774d, 0x774e, 0x774f, 0x7752,
- 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775c,
- 0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5,
- 0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351,
- 0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907,
- 0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29,
- 0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4,
- 0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9,
- 0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5,
- 0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16,
- 0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab,
- 0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b,
- 0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175,
- 0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3,
- /* 0xb2 */
- 0x775d, 0x775e, 0x775f, 0x7760, 0x7764, 0x7767, 0x7769, 0x776a,
- 0x776d, 0x776e, 0x776f, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774,
- 0x7775, 0x7776, 0x7777, 0x7778, 0x777a, 0x777b, 0x777c, 0x7781,
- 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778a, 0x778b,
- 0x778f, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798,
- 0x7799, 0x779a, 0x779b, 0x779c, 0x779d, 0x779e, 0x77a1, 0x77a3,
- 0x77a4, 0x77a6, 0x77a8, 0x77ab, 0x77ad, 0x77ae, 0x77af, 0x77b1,
- 0x77b2, 0x77b4, 0x77b6, 0x77b7, 0x77b8, 0x77b9, 0x77ba, 0x77bc,
- 0x77be, 0x77c0, 0x77c1, 0x77c2, 0x77c3, 0x77c4, 0x77c5, 0x77c6,
- 0x77c7, 0x77c8, 0x77c9, 0x77ca, 0x77cb, 0x77cc, 0x77ce, 0x77cf,
- 0x77d0, 0x77d1, 0x77d2, 0x77d3, 0x77d4, 0x77d5, 0x77d6, 0x77d8,
- 0x77d9, 0x77da, 0x77dd, 0x77de, 0x77df, 0x77e0, 0x77e1, 0x77e4,
- 0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2,
- 0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236,
- 0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa,
- 0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016,
- 0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29,
- 0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b,
- 0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf,
- 0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7,
- 0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336,
- 0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6,
- 0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20,
- 0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316,
- /* 0xb3 */
- 0x77e6, 0x77e8, 0x77ea, 0x77ef, 0x77f0, 0x77f1, 0x77f2, 0x77f4,
- 0x77f5, 0x77f7, 0x77f9, 0x77fa, 0x77fb, 0x77fc, 0x7803, 0x7804,
- 0x7805, 0x7806, 0x7807, 0x7808, 0x780a, 0x780b, 0x780e, 0x780f,
- 0x7810, 0x7813, 0x7815, 0x7819, 0x781b, 0x781e, 0x7820, 0x7821,
- 0x7822, 0x7824, 0x7828, 0x782a, 0x782b, 0x782e, 0x782f, 0x7831,
- 0x7832, 0x7833, 0x7835, 0x7836, 0x783d, 0x783f, 0x7841, 0x7842,
- 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784a, 0x784b, 0x784d,
- 0x784f, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785a, 0x785b,
- 0x785c, 0x785e, 0x785f, 0x7860, 0x7861, 0x7862, 0x7863, 0x7864,
- 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786f, 0x7870, 0x7871,
- 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, 0x787a,
- 0x787b, 0x787d, 0x787e, 0x787f, 0x7880, 0x7881, 0x7882, 0x7883,
- 0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e,
- 0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632,
- 0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3,
- 0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1,
- 0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59,
- 0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f,
- 0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60,
- 0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64,
- 0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0,
- 0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7,
- 0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8,
- 0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a,
- /* 0xb4 */
- 0x7884, 0x7885, 0x7886, 0x7888, 0x788a, 0x788b, 0x788f, 0x7890,
- 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789d, 0x789e, 0x78a0,
- 0x78a2, 0x78a4, 0x78a6, 0x78a8, 0x78a9, 0x78aa, 0x78ab, 0x78ac,
- 0x78ad, 0x78ae, 0x78af, 0x78b5, 0x78b6, 0x78b7, 0x78b8, 0x78ba,
- 0x78bb, 0x78bc, 0x78bd, 0x78bf, 0x78c0, 0x78c2, 0x78c3, 0x78c4,
- 0x78c6, 0x78c7, 0x78c8, 0x78cc, 0x78cd, 0x78ce, 0x78cf, 0x78d1,
- 0x78d2, 0x78d3, 0x78d6, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dc,
- 0x78dd, 0x78de, 0x78df, 0x78e0, 0x78e1, 0x78e2, 0x78e3, 0x78e4,
- 0x78e5, 0x78e6, 0x78e7, 0x78e9, 0x78ea, 0x78eb, 0x78ed, 0x78ee,
- 0x78ef, 0x78f0, 0x78f1, 0x78f3, 0x78f5, 0x78f6, 0x78f8, 0x78f9,
- 0x78fb, 0x78fc, 0x78fd, 0x78fe, 0x78ff, 0x7900, 0x7902, 0x7903,
- 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790a, 0x790b, 0x790c,
- 0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd,
- 0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97,
- 0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524,
- 0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822,
- 0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148,
- 0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471,
- 0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07,
- 0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106,
- 0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb,
- 0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54,
- 0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26,
- 0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e,
- /* 0xb5 */
- 0x790d, 0x790e, 0x790f, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915,
- 0x7916, 0x7917, 0x7918, 0x7919, 0x791a, 0x791b, 0x791c, 0x791d,
- 0x791f, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927,
- 0x7928, 0x7929, 0x792a, 0x792b, 0x792c, 0x792d, 0x792e, 0x792f,
- 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938,
- 0x7939, 0x793d, 0x793f, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947,
- 0x794a, 0x794b, 0x794c, 0x794d, 0x794e, 0x794f, 0x7950, 0x7951,
- 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x7964,
- 0x7966, 0x7969, 0x796a, 0x796b, 0x796c, 0x796e, 0x7970, 0x7971,
- 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797b, 0x797c,
- 0x797d, 0x797e, 0x797f, 0x7982, 0x7983, 0x7986, 0x7987, 0x7988,
- 0x7989, 0x798b, 0x798c, 0x798d, 0x798e, 0x7990, 0x7991, 0x7992,
- 0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6,
- 0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb,
- 0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48,
- 0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053,
- 0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49,
- 0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c,
- 0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730,
- 0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382,
- 0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43,
- 0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc,
- 0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc,
- 0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0,
- /* 0xb6 */
- 0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799b,
- 0x799c, 0x799d, 0x799e, 0x799f, 0x79a0, 0x79a1, 0x79a2, 0x79a3,
- 0x79a4, 0x79a5, 0x79a6, 0x79a8, 0x79a9, 0x79aa, 0x79ab, 0x79ac,
- 0x79ad, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b2, 0x79b4, 0x79b5,
- 0x79b6, 0x79b7, 0x79b8, 0x79bc, 0x79bf, 0x79c2, 0x79c4, 0x79c5,
- 0x79c7, 0x79c8, 0x79ca, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d3,
- 0x79d4, 0x79d6, 0x79d7, 0x79d9, 0x79da, 0x79db, 0x79dc, 0x79dd,
- 0x79de, 0x79e0, 0x79e1, 0x79e2, 0x79e5, 0x79e8, 0x79ea, 0x79ec,
- 0x79ee, 0x79f1, 0x79f2, 0x79f3, 0x79f4, 0x79f5, 0x79f6, 0x79f7,
- 0x79f9, 0x79fa, 0x79fc, 0x79fe, 0x79ff, 0x7a01, 0x7a04, 0x7a05,
- 0x7a07, 0x7a08, 0x7a09, 0x7a0a, 0x7a0c, 0x7a0f, 0x7a10, 0x7a11,
- 0x7a12, 0x7a13, 0x7a15, 0x7a16, 0x7a18, 0x7a19, 0x7a1b, 0x7a1c,
- 0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a,
- 0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b,
- 0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661,
- 0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec,
- 0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6,
- 0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e,
- 0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566,
- 0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a,
- 0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0,
- 0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25,
- 0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c,
- 0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c,
- /* 0xb7 */
- 0x7a1d, 0x7a1f, 0x7a21, 0x7a22, 0x7a24, 0x7a25, 0x7a26, 0x7a27,
- 0x7a28, 0x7a29, 0x7a2a, 0x7a2b, 0x7a2c, 0x7a2d, 0x7a2e, 0x7a2f,
- 0x7a30, 0x7a31, 0x7a32, 0x7a34, 0x7a35, 0x7a36, 0x7a38, 0x7a3a,
- 0x7a3e, 0x7a40, 0x7a41, 0x7a42, 0x7a43, 0x7a44, 0x7a45, 0x7a47,
- 0x7a48, 0x7a49, 0x7a4a, 0x7a4b, 0x7a4c, 0x7a4d, 0x7a4e, 0x7a4f,
- 0x7a50, 0x7a52, 0x7a53, 0x7a54, 0x7a55, 0x7a56, 0x7a58, 0x7a59,
- 0x7a5a, 0x7a5b, 0x7a5c, 0x7a5d, 0x7a5e, 0x7a5f, 0x7a60, 0x7a61,
- 0x7a62, 0x7a63, 0x7a64, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x7a69,
- 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x7a6e, 0x7a6f, 0x7a71, 0x7a72,
- 0x7a73, 0x7a75, 0x7a7b, 0x7a7c, 0x7a7d, 0x7a7e, 0x7a82, 0x7a85,
- 0x7a87, 0x7a89, 0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, 0x7a90,
- 0x7a93, 0x7a94, 0x7a99, 0x7a9a, 0x7a9b, 0x7a9e, 0x7aa1, 0x7aa2,
- 0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5,
- 0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492,
- 0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af,
- 0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632,
- 0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561,
- 0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8,
- 0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f,
- 0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa,
- 0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af,
- 0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b,
- 0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90,
- 0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d,
- /* 0xb8 */
- 0x7aa3, 0x7aa4, 0x7aa7, 0x7aa9, 0x7aaa, 0x7aab, 0x7aae, 0x7aaf,
- 0x7ab0, 0x7ab1, 0x7ab2, 0x7ab4, 0x7ab5, 0x7ab6, 0x7ab7, 0x7ab8,
- 0x7ab9, 0x7aba, 0x7abb, 0x7abc, 0x7abd, 0x7abe, 0x7ac0, 0x7ac1,
- 0x7ac2, 0x7ac3, 0x7ac4, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9,
- 0x7aca, 0x7acc, 0x7acd, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad2,
- 0x7ad3, 0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7adc,
- 0x7add, 0x7ae1, 0x7ae2, 0x7ae4, 0x7ae7, 0x7ae8, 0x7ae9, 0x7aea,
- 0x7aeb, 0x7aec, 0x7aee, 0x7af0, 0x7af1, 0x7af2, 0x7af3, 0x7af4,
- 0x7af5, 0x7af6, 0x7af7, 0x7af8, 0x7afb, 0x7afc, 0x7afe, 0x7b00,
- 0x7b01, 0x7b02, 0x7b05, 0x7b07, 0x7b09, 0x7b0c, 0x7b0d, 0x7b0e,
- 0x7b10, 0x7b12, 0x7b13, 0x7b16, 0x7b17, 0x7b18, 0x7b1a, 0x7b1c,
- 0x7b1d, 0x7b1f, 0x7b21, 0x7b22, 0x7b23, 0x7b27, 0x7b29, 0x7b2d,
- 0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85,
- 0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74,
- 0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236,
- 0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490,
- 0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89,
- 0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f,
- 0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b,
- 0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f,
- 0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c,
- 0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b,
- 0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9,
- 0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9,
- /* 0xb9 */
- 0x7b2f, 0x7b30, 0x7b32, 0x7b34, 0x7b35, 0x7b36, 0x7b37, 0x7b39,
- 0x7b3b, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44,
- 0x7b46, 0x7b48, 0x7b4a, 0x7b4d, 0x7b4e, 0x7b53, 0x7b55, 0x7b57,
- 0x7b59, 0x7b5c, 0x7b5e, 0x7b5f, 0x7b61, 0x7b63, 0x7b64, 0x7b65,
- 0x7b66, 0x7b67, 0x7b68, 0x7b69, 0x7b6a, 0x7b6b, 0x7b6c, 0x7b6d,
- 0x7b6f, 0x7b70, 0x7b73, 0x7b74, 0x7b76, 0x7b78, 0x7b7a, 0x7b7c,
- 0x7b7d, 0x7b7f, 0x7b81, 0x7b82, 0x7b83, 0x7b84, 0x7b86, 0x7b87,
- 0x7b88, 0x7b89, 0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x7b91,
- 0x7b92, 0x7b93, 0x7b96, 0x7b98, 0x7b99, 0x7b9a, 0x7b9b, 0x7b9e,
- 0x7b9f, 0x7ba0, 0x7ba3, 0x7ba4, 0x7ba5, 0x7bae, 0x7baf, 0x7bb0,
- 0x7bb2, 0x7bb3, 0x7bb5, 0x7bb6, 0x7bb7, 0x7bb9, 0x7bba, 0x7bbb,
- 0x7bbc, 0x7bbd, 0x7bbe, 0x7bbf, 0x7bc0, 0x7bc2, 0x7bc3, 0x7bc4,
- 0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a,
- 0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1,
- 0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2,
- 0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30,
- 0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37,
- 0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250,
- 0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173,
- 0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c,
- 0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845,
- 0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842,
- 0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505,
- 0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8,
- /* 0xba */
- 0x7bc5, 0x7bc8, 0x7bc9, 0x7bca, 0x7bcb, 0x7bcd, 0x7bce, 0x7bcf,
- 0x7bd0, 0x7bd2, 0x7bd4, 0x7bd5, 0x7bd6, 0x7bd7, 0x7bd8, 0x7bdb,
- 0x7bdc, 0x7bde, 0x7bdf, 0x7be0, 0x7be2, 0x7be3, 0x7be4, 0x7be7,
- 0x7be8, 0x7be9, 0x7beb, 0x7bec, 0x7bed, 0x7bef, 0x7bf0, 0x7bf2,
- 0x7bf3, 0x7bf4, 0x7bf5, 0x7bf6, 0x7bf8, 0x7bf9, 0x7bfa, 0x7bfb,
- 0x7bfd, 0x7bff, 0x7c00, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c05,
- 0x7c06, 0x7c08, 0x7c09, 0x7c0a, 0x7c0d, 0x7c0e, 0x7c10, 0x7c11,
- 0x7c12, 0x7c13, 0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c19, 0x7c1a,
- 0x7c1b, 0x7c1c, 0x7c1d, 0x7c1e, 0x7c20, 0x7c21, 0x7c22, 0x7c23,
- 0x7c24, 0x7c25, 0x7c28, 0x7c29, 0x7c2b, 0x7c2c, 0x7c2d, 0x7c2e,
- 0x7c2f, 0x7c30, 0x7c31, 0x7c32, 0x7c33, 0x7c34, 0x7c35, 0x7c36,
- 0x7c37, 0x7c39, 0x7c3a, 0x7c3b, 0x7c3c, 0x7c3d, 0x7c3e, 0x7c42,
- 0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163,
- 0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a,
- 0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a,
- 0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a,
- 0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d,
- 0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2,
- 0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a,
- 0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8,
- 0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f,
- 0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c,
- 0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6,
- 0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56,
- /* 0xbb */
- 0x7c43, 0x7c44, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 0x7c4a,
- 0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c52, 0x7c53,
- 0x7c54, 0x7c55, 0x7c56, 0x7c57, 0x7c58, 0x7c59, 0x7c5a, 0x7c5b,
- 0x7c5c, 0x7c5d, 0x7c5e, 0x7c5f, 0x7c60, 0x7c61, 0x7c62, 0x7c63,
- 0x7c64, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 0x7c6a, 0x7c6b,
- 0x7c6c, 0x7c6d, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c72, 0x7c75,
- 0x7c76, 0x7c77, 0x7c78, 0x7c79, 0x7c7a, 0x7c7e, 0x7c7f, 0x7c80,
- 0x7c81, 0x7c82, 0x7c83, 0x7c84, 0x7c85, 0x7c86, 0x7c87, 0x7c88,
- 0x7c8a, 0x7c8b, 0x7c8c, 0x7c8d, 0x7c8e, 0x7c8f, 0x7c90, 0x7c93,
- 0x7c94, 0x7c96, 0x7c99, 0x7c9a, 0x7c9b, 0x7ca0, 0x7ca1, 0x7ca3,
- 0x7ca6, 0x7ca7, 0x7ca8, 0x7ca9, 0x7cab, 0x7cac, 0x7cad, 0x7caf,
- 0x7cb0, 0x7cb4, 0x7cb5, 0x7cb6, 0x7cb7, 0x7cb8, 0x7cba, 0x7cbb,
- 0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1,
- 0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd,
- 0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853,
- 0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115,
- 0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757,
- 0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d,
- 0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de,
- 0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd,
- 0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f,
- 0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b,
- 0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e,
- 0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95,
- /* 0xbc */
- 0x7cbf, 0x7cc0, 0x7cc2, 0x7cc3, 0x7cc4, 0x7cc6, 0x7cc9, 0x7ccb,
- 0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd2, 0x7cd3, 0x7cd4, 0x7cd8,
- 0x7cda, 0x7cdb, 0x7cdd, 0x7cde, 0x7ce1, 0x7ce2, 0x7ce3, 0x7ce4,
- 0x7ce5, 0x7ce6, 0x7ce7, 0x7ce9, 0x7cea, 0x7ceb, 0x7cec, 0x7ced,
- 0x7cee, 0x7cf0, 0x7cf1, 0x7cf2, 0x7cf3, 0x7cf4, 0x7cf5, 0x7cf6,
- 0x7cf7, 0x7cf9, 0x7cfa, 0x7cfc, 0x7cfd, 0x7cfe, 0x7cff, 0x7d00,
- 0x7d01, 0x7d02, 0x7d03, 0x7d04, 0x7d05, 0x7d06, 0x7d07, 0x7d08,
- 0x7d09, 0x7d0b, 0x7d0c, 0x7d0d, 0x7d0e, 0x7d0f, 0x7d10, 0x7d11,
- 0x7d12, 0x7d13, 0x7d14, 0x7d15, 0x7d16, 0x7d17, 0x7d18, 0x7d19,
- 0x7d1a, 0x7d1b, 0x7d1c, 0x7d1d, 0x7d1e, 0x7d1f, 0x7d21, 0x7d23,
- 0x7d24, 0x7d25, 0x7d26, 0x7d28, 0x7d29, 0x7d2a, 0x7d2c, 0x7d2d,
- 0x7d2e, 0x7d30, 0x7d31, 0x7d32, 0x7d33, 0x7d34, 0x7d35, 0x7d36,
- 0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9,
- 0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca,
- 0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0,
- 0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d,
- 0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2,
- 0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939,
- 0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be,
- 0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1,
- 0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270,
- 0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3,
- 0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274,
- 0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6,
- /* 0xbd */
- 0x7d37, 0x7d38, 0x7d39, 0x7d3a, 0x7d3b, 0x7d3c, 0x7d3d, 0x7d3e,
- 0x7d3f, 0x7d40, 0x7d41, 0x7d42, 0x7d43, 0x7d44, 0x7d45, 0x7d46,
- 0x7d47, 0x7d48, 0x7d49, 0x7d4a, 0x7d4b, 0x7d4c, 0x7d4d, 0x7d4e,
- 0x7d4f, 0x7d50, 0x7d51, 0x7d52, 0x7d53, 0x7d54, 0x7d55, 0x7d56,
- 0x7d57, 0x7d58, 0x7d59, 0x7d5a, 0x7d5b, 0x7d5c, 0x7d5d, 0x7d5e,
- 0x7d5f, 0x7d60, 0x7d61, 0x7d62, 0x7d63, 0x7d64, 0x7d65, 0x7d66,
- 0x7d67, 0x7d68, 0x7d69, 0x7d6a, 0x7d6b, 0x7d6c, 0x7d6d, 0x7d6f,
- 0x7d70, 0x7d71, 0x7d72, 0x7d73, 0x7d74, 0x7d75, 0x7d76, 0x7d78,
- 0x7d79, 0x7d7a, 0x7d7b, 0x7d7c, 0x7d7d, 0x7d7e, 0x7d7f, 0x7d80,
- 0x7d81, 0x7d82, 0x7d83, 0x7d84, 0x7d85, 0x7d86, 0x7d87, 0x7d88,
- 0x7d89, 0x7d8a, 0x7d8b, 0x7d8c, 0x7d8d, 0x7d8e, 0x7d8f, 0x7d90,
- 0x7d91, 0x7d92, 0x7d93, 0x7d94, 0x7d95, 0x7d96, 0x7d97, 0x7d98,
- 0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa,
- 0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868,
- 0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901,
- 0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc,
- 0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a,
- 0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb,
- 0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a,
- 0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01,
- 0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f,
- 0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1,
- 0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb,
- 0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78,
- /* 0xbe */
- 0x7d99, 0x7d9a, 0x7d9b, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0,
- 0x7da1, 0x7da2, 0x7da3, 0x7da4, 0x7da5, 0x7da7, 0x7da8, 0x7da9,
- 0x7daa, 0x7dab, 0x7dac, 0x7dad, 0x7daf, 0x7db0, 0x7db1, 0x7db2,
- 0x7db3, 0x7db4, 0x7db5, 0x7db6, 0x7db7, 0x7db8, 0x7db9, 0x7dba,
- 0x7dbb, 0x7dbc, 0x7dbd, 0x7dbe, 0x7dbf, 0x7dc0, 0x7dc1, 0x7dc2,
- 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 0x7dca,
- 0x7dcb, 0x7dcc, 0x7dcd, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd2,
- 0x7dd3, 0x7dd4, 0x7dd5, 0x7dd6, 0x7dd7, 0x7dd8, 0x7dd9, 0x7dda,
- 0x7ddb, 0x7ddc, 0x7ddd, 0x7dde, 0x7ddf, 0x7de0, 0x7de1, 0x7de2,
- 0x7de3, 0x7de4, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, 0x7dea,
- 0x7deb, 0x7dec, 0x7ded, 0x7dee, 0x7def, 0x7df0, 0x7df1, 0x7df2,
- 0x7df3, 0x7df4, 0x7df5, 0x7df6, 0x7df7, 0x7df8, 0x7df9, 0x7dfa,
- 0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8,
- 0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f,
- 0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756,
- 0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0,
- 0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551,
- 0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8,
- 0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9,
- 0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd,
- 0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350,
- 0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b,
- 0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd,
- 0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb,
- /* 0xbf */
- 0x7dfb, 0x7dfc, 0x7dfd, 0x7dfe, 0x7dff, 0x7e00, 0x7e01, 0x7e02,
- 0x7e03, 0x7e04, 0x7e05, 0x7e06, 0x7e07, 0x7e08, 0x7e09, 0x7e0a,
- 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, 0x7e10, 0x7e11, 0x7e12,
- 0x7e13, 0x7e14, 0x7e15, 0x7e16, 0x7e17, 0x7e18, 0x7e19, 0x7e1a,
- 0x7e1b, 0x7e1c, 0x7e1d, 0x7e1e, 0x7e1f, 0x7e20, 0x7e21, 0x7e22,
- 0x7e23, 0x7e24, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 0x7e2a,
- 0x7e2b, 0x7e2c, 0x7e2d, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e32,
- 0x7e33, 0x7e34, 0x7e35, 0x7e36, 0x7e37, 0x7e38, 0x7e39, 0x7e3a,
- 0x7e3c, 0x7e3d, 0x7e3e, 0x7e3f, 0x7e40, 0x7e42, 0x7e43, 0x7e44,
- 0x7e45, 0x7e46, 0x7e48, 0x7e49, 0x7e4a, 0x7e4b, 0x7e4c, 0x7e4d,
- 0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e52, 0x7e53, 0x7e54, 0x7e55,
- 0x7e56, 0x7e57, 0x7e58, 0x7e59, 0x7e5a, 0x7e5b, 0x7e5c, 0x7e5d,
- 0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361,
- 0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a,
- 0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b,
- 0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777,
- 0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3,
- 0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543,
- 0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7,
- 0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6,
- 0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef,
- 0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50,
- 0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4,
- 0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080,
- /* 0xc0 */
- 0x7e5e, 0x7e5f, 0x7e60, 0x7e61, 0x7e62, 0x7e63, 0x7e64, 0x7e65,
- 0x7e66, 0x7e67, 0x7e68, 0x7e69, 0x7e6a, 0x7e6b, 0x7e6c, 0x7e6d,
- 0x7e6e, 0x7e6f, 0x7e70, 0x7e71, 0x7e72, 0x7e73, 0x7e74, 0x7e75,
- 0x7e76, 0x7e77, 0x7e78, 0x7e79, 0x7e7a, 0x7e7b, 0x7e7c, 0x7e7d,
- 0x7e7e, 0x7e7f, 0x7e80, 0x7e81, 0x7e83, 0x7e84, 0x7e85, 0x7e86,
- 0x7e87, 0x7e88, 0x7e89, 0x7e8a, 0x7e8b, 0x7e8c, 0x7e8d, 0x7e8e,
- 0x7e8f, 0x7e90, 0x7e91, 0x7e92, 0x7e93, 0x7e94, 0x7e95, 0x7e96,
- 0x7e97, 0x7e98, 0x7e99, 0x7e9a, 0x7e9c, 0x7e9d, 0x7e9e, 0x7eae,
- 0x7eb4, 0x7ebb, 0x7ebc, 0x7ed6, 0x7ee4, 0x7eec, 0x7ef9, 0x7f0a,
- 0x7f10, 0x7f1e, 0x7f37, 0x7f39, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e,
- 0x7f3f, 0x7f40, 0x7f41, 0x7f43, 0x7f46, 0x7f47, 0x7f48, 0x7f49,
- 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f, 0x7f52, 0x7f53,
- 0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec,
- 0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a,
- 0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f,
- 0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8,
- 0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca,
- 0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c,
- 0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d,
- 0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b,
- 0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece,
- 0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4,
- 0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1,
- 0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0,
- /* 0xc1 */
- 0x7f56, 0x7f59, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f60, 0x7f63,
- 0x7f64, 0x7f65, 0x7f66, 0x7f67, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6f,
- 0x7f70, 0x7f73, 0x7f75, 0x7f76, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b,
- 0x7f7c, 0x7f7d, 0x7f7f, 0x7f80, 0x7f82, 0x7f83, 0x7f84, 0x7f85,
- 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0x7f8b, 0x7f8d, 0x7f8f, 0x7f90,
- 0x7f91, 0x7f92, 0x7f93, 0x7f95, 0x7f96, 0x7f97, 0x7f98, 0x7f99,
- 0x7f9b, 0x7f9c, 0x7fa0, 0x7fa2, 0x7fa3, 0x7fa5, 0x7fa6, 0x7fa8,
- 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7fb1, 0x7fb3,
- 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7, 0x7fba, 0x7fbb, 0x7fbe, 0x7fc0,
- 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc6, 0x7fc7, 0x7fc8, 0x7fc9, 0x7fcb,
- 0x7fcd, 0x7fcf, 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd6, 0x7fd7,
- 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fe2, 0x7fe3,
- 0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9,
- 0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f,
- 0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae,
- 0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e,
- 0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5,
- 0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217,
- 0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716,
- 0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce,
- 0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc,
- 0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409,
- 0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3,
- 0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf,
- /* 0xc2 */
- 0x7fe4, 0x7fe7, 0x7fe8, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fef,
- 0x7ff2, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffa,
- 0x7ffd, 0x7ffe, 0x7fff, 0x8002, 0x8007, 0x8008, 0x8009, 0x800a,
- 0x800e, 0x800f, 0x8011, 0x8013, 0x801a, 0x801b, 0x801d, 0x801e,
- 0x801f, 0x8021, 0x8023, 0x8024, 0x802b, 0x802c, 0x802d, 0x802e,
- 0x802f, 0x8030, 0x8032, 0x8034, 0x8039, 0x803a, 0x803c, 0x803e,
- 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804e,
- 0x804f, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x8059,
- 0x805b, 0x805c, 0x805d, 0x805e, 0x805f, 0x8060, 0x8061, 0x8062,
- 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806b, 0x806c,
- 0x806d, 0x806e, 0x806f, 0x8070, 0x8072, 0x8073, 0x8074, 0x8075,
- 0x8076, 0x8077, 0x8078, 0x8079, 0x807a, 0x807b, 0x807c, 0x807d,
- 0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3,
- 0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3,
- 0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42,
- 0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415,
- 0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f,
- 0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6,
- 0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1,
- 0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523,
- 0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988,
- 0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417,
- 0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992,
- 0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b,
- /* 0xc3 */
- 0x807e, 0x8081, 0x8082, 0x8085, 0x8088, 0x808a, 0x808d, 0x808e,
- 0x808f, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099,
- 0x809e, 0x80a3, 0x80a6, 0x80a7, 0x80a8, 0x80ac, 0x80b0, 0x80b3,
- 0x80b5, 0x80b6, 0x80b8, 0x80b9, 0x80bb, 0x80c5, 0x80c7, 0x80c8,
- 0x80c9, 0x80ca, 0x80cb, 0x80cf, 0x80d0, 0x80d1, 0x80d2, 0x80d3,
- 0x80d4, 0x80d5, 0x80d8, 0x80df, 0x80e0, 0x80e2, 0x80e3, 0x80e6,
- 0x80ee, 0x80f5, 0x80f7, 0x80f9, 0x80fb, 0x80fe, 0x80ff, 0x8100,
- 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810b, 0x810c,
- 0x8115, 0x8117, 0x8119, 0x811b, 0x811c, 0x811d, 0x811f, 0x8120,
- 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, 0x8128,
- 0x8129, 0x812a, 0x812b, 0x812d, 0x812e, 0x8130, 0x8133, 0x8134,
- 0x8135, 0x8137, 0x8139, 0x813a, 0x813b, 0x813c, 0x813d, 0x813f,
- 0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b,
- 0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192,
- 0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176,
- 0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e,
- 0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c,
- 0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f,
- 0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8,
- 0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5,
- 0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf,
- 0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d,
- 0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f,
- 0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478,
- /* 0xc4 */
- 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149,
- 0x814d, 0x814e, 0x814f, 0x8152, 0x8156, 0x8157, 0x8158, 0x815b,
- 0x815c, 0x815d, 0x815e, 0x815f, 0x8161, 0x8162, 0x8163, 0x8164,
- 0x8166, 0x8168, 0x816a, 0x816b, 0x816c, 0x816f, 0x8172, 0x8173,
- 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185,
- 0x8186, 0x8187, 0x8189, 0x818b, 0x818c, 0x818d, 0x818e, 0x8190,
- 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819a,
- 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0x81a4, 0x81a5, 0x81a7,
- 0x81a9, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1,
- 0x81b2, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81bc,
- 0x81bd, 0x81be, 0x81bf, 0x81c4, 0x81c5, 0x81c7, 0x81c8, 0x81c9,
- 0x81cb, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, 0x81d3,
- 0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9,
- 0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c,
- 0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd,
- 0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766,
- 0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c,
- 0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537,
- 0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462,
- 0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5,
- 0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b,
- 0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f,
- 0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d,
- 0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81,
- /* 0xc5 */
- 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db,
- 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e4,
- 0x81e5, 0x81e6, 0x81e8, 0x81e9, 0x81eb, 0x81ee, 0x81ef, 0x81f0,
- 0x81f1, 0x81f2, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa,
- 0x81fd, 0x81ff, 0x8203, 0x8207, 0x8208, 0x8209, 0x820a, 0x820b,
- 0x820e, 0x820f, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218,
- 0x8219, 0x821a, 0x821d, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227,
- 0x8229, 0x822e, 0x8232, 0x823a, 0x823c, 0x823d, 0x823f, 0x8240,
- 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824a, 0x824c,
- 0x824d, 0x824e, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255,
- 0x8256, 0x8257, 0x8259, 0x825b, 0x825c, 0x825d, 0x825e, 0x8260,
- 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8269,
- 0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53,
- 0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650,
- 0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25,
- 0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c,
- 0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43,
- 0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224,
- 0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486,
- 0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9,
- 0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6,
- 0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c,
- 0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812,
- 0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7,
- /* 0xc6 */
- 0x826a, 0x826b, 0x826c, 0x826d, 0x8271, 0x8275, 0x8276, 0x8277,
- 0x8278, 0x827b, 0x827c, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286,
- 0x8287, 0x8289, 0x828c, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296,
- 0x829a, 0x829b, 0x829e, 0x82a0, 0x82a2, 0x82a3, 0x82a7, 0x82b2,
- 0x82b5, 0x82b6, 0x82ba, 0x82bb, 0x82bc, 0x82bf, 0x82c0, 0x82c2,
- 0x82c3, 0x82c5, 0x82c6, 0x82c9, 0x82d0, 0x82d6, 0x82d9, 0x82da,
- 0x82dd, 0x82e2, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82ec, 0x82ed,
- 0x82ee, 0x82f0, 0x82f2, 0x82f3, 0x82f5, 0x82f6, 0x82f8, 0x82fa,
- 0x82fc, 0x82fd, 0x82fe, 0x82ff, 0x8300, 0x830a, 0x830b, 0x830d,
- 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831d, 0x831e,
- 0x831f, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326,
- 0x8329, 0x832a, 0x832e, 0x8330, 0x8332, 0x8337, 0x833b, 0x833d,
- 0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41,
- 0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2,
- 0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058,
- 0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4,
- 0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb,
- 0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9,
- 0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd,
- 0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4,
- 0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566,
- 0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77,
- 0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14,
- 0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390,
- /* 0xc7 */
- 0x833e, 0x833f, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834a,
- 0x834b, 0x834c, 0x834d, 0x834e, 0x8353, 0x8355, 0x8356, 0x8357,
- 0x8358, 0x8359, 0x835d, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373,
- 0x8374, 0x8375, 0x8376, 0x8379, 0x837a, 0x837e, 0x837f, 0x8380,
- 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838a, 0x838b,
- 0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396,
- 0x8397, 0x8399, 0x839a, 0x839d, 0x839f, 0x83a1, 0x83a2, 0x83a3,
- 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83ac, 0x83ad, 0x83ae, 0x83af,
- 0x83b5, 0x83bb, 0x83be, 0x83bf, 0x83c2, 0x83c3, 0x83c4, 0x83c6,
- 0x83c8, 0x83c9, 0x83cb, 0x83cd, 0x83ce, 0x83d0, 0x83d1, 0x83d2,
- 0x83d3, 0x83d5, 0x83d7, 0x83d9, 0x83da, 0x83db, 0x83de, 0x83e2,
- 0x83e3, 0x83e4, 0x83e6, 0x83e7, 0x83e8, 0x83eb, 0x83ec, 0x83ed,
- 0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1,
- 0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d,
- 0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49,
- 0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2,
- 0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8,
- 0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207,
- 0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6,
- 0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752,
- 0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30,
- 0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18,
- 0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a,
- 0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20,
- /* 0xc8 */
- 0x83ee, 0x83ef, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83fa,
- 0x83fb, 0x83fc, 0x83fe, 0x83ff, 0x8400, 0x8402, 0x8405, 0x8407,
- 0x8408, 0x8409, 0x840a, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415,
- 0x8416, 0x8417, 0x8419, 0x841a, 0x841b, 0x841e, 0x841f, 0x8420,
- 0x8421, 0x8422, 0x8423, 0x8429, 0x842a, 0x842b, 0x842c, 0x842d,
- 0x842e, 0x842f, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436,
- 0x8437, 0x8439, 0x843a, 0x843b, 0x843e, 0x843f, 0x8440, 0x8441,
- 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a,
- 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8452, 0x8453,
- 0x8454, 0x8455, 0x8456, 0x8458, 0x845d, 0x845e, 0x845f, 0x8460,
- 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846a, 0x846e,
- 0x846f, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847b, 0x847c,
- 0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743,
- 0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d,
- 0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0,
- 0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4,
- 0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed,
- 0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203,
- 0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9,
- 0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9,
- 0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1,
- 0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e,
- 0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428,
- 0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1,
- /* 0xc9 */
- 0x847d, 0x847e, 0x847f, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485,
- 0x8486, 0x848a, 0x848d, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493,
- 0x8494, 0x8495, 0x8496, 0x8498, 0x849a, 0x849b, 0x849d, 0x849e,
- 0x849f, 0x84a0, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7,
- 0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84b0,
- 0x84b1, 0x84b3, 0x84b5, 0x84b6, 0x84b7, 0x84bb, 0x84bc, 0x84be,
- 0x84c0, 0x84c2, 0x84c3, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84cb,
- 0x84cc, 0x84ce, 0x84cf, 0x84d2, 0x84d4, 0x84d5, 0x84d7, 0x84d8,
- 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84de, 0x84e1, 0x84e2, 0x84e4,
- 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ed, 0x84ee, 0x84ef,
- 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8,
- 0x84f9, 0x84fa, 0x84fb, 0x84fd, 0x84fe, 0x8500, 0x8501, 0x8502,
- 0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b,
- 0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802,
- 0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b,
- 0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b,
- 0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247,
- 0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a,
- 0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6,
- 0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c,
- 0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe,
- 0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5,
- 0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17,
- 0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3,
- /* 0xca */
- 0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850a,
- 0x850b, 0x850d, 0x850e, 0x850f, 0x8510, 0x8512, 0x8514, 0x8515,
- 0x8516, 0x8518, 0x8519, 0x851b, 0x851c, 0x851d, 0x851e, 0x8520,
- 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529,
- 0x852a, 0x852d, 0x852e, 0x852f, 0x8530, 0x8531, 0x8532, 0x8533,
- 0x8534, 0x8535, 0x8536, 0x853e, 0x853f, 0x8540, 0x8541, 0x8542,
- 0x8544, 0x8545, 0x8546, 0x8547, 0x854b, 0x854c, 0x854d, 0x854e,
- 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x8557,
- 0x8558, 0x855a, 0x855b, 0x855c, 0x855d, 0x855f, 0x8560, 0x8561,
- 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856a, 0x856b,
- 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, 0x8575,
- 0x8576, 0x8577, 0x8578, 0x857c, 0x857d, 0x857f, 0x8580, 0x8581,
- 0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee,
- 0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe,
- 0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2,
- 0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16,
- 0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc,
- 0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02,
- 0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88,
- 0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2,
- 0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f,
- 0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72,
- 0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f,
- 0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31,
- /* 0xcb */
- 0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858a, 0x858b, 0x858c,
- 0x858d, 0x858e, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595,
- 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859d, 0x859e, 0x859f,
- 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a5, 0x85a6, 0x85a7, 0x85a9,
- 0x85ab, 0x85ac, 0x85ad, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5,
- 0x85b6, 0x85b8, 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf,
- 0x85c0, 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8,
- 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85d1, 0x85d2, 0x85d4,
- 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dd, 0x85de,
- 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e5, 0x85e6, 0x85e7,
- 0x85e8, 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0,
- 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8,
- 0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813,
- 0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e,
- 0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1,
- 0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b,
- 0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3,
- 0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5,
- 0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20,
- 0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083,
- 0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3,
- 0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f,
- 0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501,
- 0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854,
- /* 0xcc */
- 0x85f9, 0x85fa, 0x85fc, 0x85fd, 0x85fe, 0x8600, 0x8601, 0x8602,
- 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860a, 0x860b,
- 0x860c, 0x860d, 0x860e, 0x860f, 0x8610, 0x8612, 0x8613, 0x8614,
- 0x8615, 0x8617, 0x8618, 0x8619, 0x861a, 0x861b, 0x861c, 0x861d,
- 0x861e, 0x861f, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625,
- 0x8626, 0x8628, 0x862a, 0x862b, 0x862c, 0x862d, 0x862e, 0x862f,
- 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637,
- 0x8639, 0x863a, 0x863b, 0x863d, 0x863e, 0x863f, 0x8640, 0x8641,
- 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649,
- 0x864a, 0x864b, 0x864c, 0x8652, 0x8653, 0x8655, 0x8656, 0x8657,
- 0x8658, 0x8659, 0x865b, 0x865c, 0x865d, 0x865f, 0x8660, 0x8661,
- 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a,
- 0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0,
- 0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a,
- 0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08,
- 0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64,
- 0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018,
- 0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6,
- 0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279,
- 0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511,
- 0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5,
- 0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c,
- 0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3,
- 0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3,
- /* 0xcd */
- 0x866d, 0x866f, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676,
- 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688,
- 0x8689, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696,
- 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869e, 0x869f, 0x86a0,
- 0x86a1, 0x86a2, 0x86a5, 0x86a6, 0x86ab, 0x86ad, 0x86ae, 0x86b2,
- 0x86b3, 0x86b7, 0x86b8, 0x86b9, 0x86bb, 0x86bc, 0x86bd, 0x86be,
- 0x86bf, 0x86c1, 0x86c2, 0x86c3, 0x86c5, 0x86c8, 0x86cc, 0x86cd,
- 0x86d2, 0x86d3, 0x86d5, 0x86d6, 0x86d7, 0x86da, 0x86dc, 0x86dd,
- 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e5, 0x86e6, 0x86e7, 0x86e8,
- 0x86ea, 0x86eb, 0x86ec, 0x86ef, 0x86f5, 0x86f6, 0x86f7, 0x86fa,
- 0x86fb, 0x86fc, 0x86fd, 0x86ff, 0x8701, 0x8704, 0x8705, 0x8706,
- 0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8714, 0x8716,
- 0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a,
- 0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876,
- 0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f,
- 0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60,
- 0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f,
- 0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258,
- 0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3,
- 0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c,
- 0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38,
- 0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b,
- 0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51,
- 0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01,
- /* 0xce */
- 0x8719, 0x871b, 0x871d, 0x871f, 0x8720, 0x8724, 0x8726, 0x8727,
- 0x8728, 0x872a, 0x872b, 0x872c, 0x872d, 0x872f, 0x8730, 0x8732,
- 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873a, 0x873c, 0x873d,
- 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874a,
- 0x874b, 0x874d, 0x874f, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755,
- 0x8756, 0x8758, 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f,
- 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b,
- 0x876c, 0x876d, 0x876f, 0x8771, 0x8772, 0x8773, 0x8775, 0x8777,
- 0x8778, 0x8779, 0x877a, 0x877f, 0x8780, 0x8781, 0x8784, 0x8786,
- 0x8787, 0x8789, 0x878a, 0x878c, 0x878e, 0x878f, 0x8790, 0x8791,
- 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879a, 0x879b,
- 0x879c, 0x879d, 0x879e, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4,
- 0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f,
- 0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f,
- 0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3,
- 0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b,
- 0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33,
- 0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1,
- 0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c,
- 0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7,
- 0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e,
- 0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff,
- 0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852,
- 0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a,
- /* 0xcf */
- 0x87a5, 0x87a6, 0x87a7, 0x87a9, 0x87aa, 0x87ae, 0x87b0, 0x87b1,
- 0x87b2, 0x87b4, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87bb, 0x87bc,
- 0x87be, 0x87bf, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c7,
- 0x87c8, 0x87c9, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d4,
- 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87dc, 0x87dd,
- 0x87de, 0x87df, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e6, 0x87e7,
- 0x87e8, 0x87e9, 0x87eb, 0x87ec, 0x87ed, 0x87ef, 0x87f0, 0x87f1,
- 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87fa,
- 0x87fb, 0x87fc, 0x87fd, 0x87ff, 0x8800, 0x8801, 0x8802, 0x8804,
- 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880b, 0x880c, 0x880d,
- 0x880e, 0x880f, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, 0x8818,
- 0x8819, 0x881a, 0x881c, 0x881d, 0x881e, 0x881f, 0x8820, 0x8823,
- 0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184,
- 0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60,
- 0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6,
- 0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0,
- 0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148,
- 0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2,
- 0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf,
- 0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8,
- 0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4,
- 0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61,
- 0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee,
- 0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653,
- /* 0xd0 */
- 0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882a, 0x882b,
- 0x882c, 0x882d, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 0x8834,
- 0x8835, 0x8836, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883e,
- 0x883f, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849,
- 0x884a, 0x884b, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853,
- 0x8855, 0x8856, 0x8858, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e,
- 0x885f, 0x8860, 0x8866, 0x8867, 0x886a, 0x886d, 0x886f, 0x8871,
- 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887a, 0x887b,
- 0x887c, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888a, 0x888c,
- 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, 0x8897,
- 0x8898, 0x8899, 0x889a, 0x889b, 0x889d, 0x889e, 0x889f, 0x88a0,
- 0x88a1, 0x88a3, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 0x88aa,
- 0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954,
- 0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa,
- 0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8,
- 0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23,
- 0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165,
- 0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c,
- 0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8,
- 0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d,
- 0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700,
- 0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9,
- 0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed,
- 0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384,
- /* 0xd1 */
- 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b2, 0x88b3, 0x88b4, 0x88b5,
- 0x88b6, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bd, 0x88be, 0x88bf,
- 0x88c0, 0x88c3, 0x88c4, 0x88c7, 0x88c8, 0x88ca, 0x88cb, 0x88cc,
- 0x88cd, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d6, 0x88d7, 0x88da,
- 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88e0, 0x88e1, 0x88e6, 0x88e7,
- 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f2,
- 0x88f5, 0x88f6, 0x88f7, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 0x8900,
- 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x8909,
- 0x890b, 0x890c, 0x890d, 0x890e, 0x890f, 0x8911, 0x8914, 0x8915,
- 0x8916, 0x8917, 0x8918, 0x891c, 0x891d, 0x891e, 0x891f, 0x8920,
- 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, 0x892c,
- 0x892d, 0x892e, 0x892f, 0x8931, 0x8932, 0x8933, 0x8935, 0x8937,
- 0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74,
- 0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb,
- 0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5,
- 0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259,
- 0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6,
- 0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814,
- 0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf,
- 0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5,
- 0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a,
- 0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f,
- 0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b,
- 0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476,
- /* 0xd2 */
- 0x8938, 0x8939, 0x893a, 0x893b, 0x893c, 0x893d, 0x893e, 0x893f,
- 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949,
- 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951,
- 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959,
- 0x895a, 0x895b, 0x895c, 0x895d, 0x8960, 0x8961, 0x8962, 0x8963,
- 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c,
- 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974,
- 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897c, 0x897d,
- 0x897e, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, 0x8989,
- 0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991,
- 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999,
- 0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1,
- 0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200,
- 0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce,
- 0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b,
- 0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d,
- 0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0,
- 0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a,
- 0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091,
- 0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6,
- 0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3,
- 0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335,
- 0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6,
- 0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690,
- /* 0xd3 */
- 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9,
- 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1,
- 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9,
- 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c3,
- 0x89cd, 0x89d3, 0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89d9, 0x89db,
- 0x89dd, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e4, 0x89e7, 0x89e8,
- 0x89e9, 0x89ea, 0x89ec, 0x89ed, 0x89ee, 0x89f0, 0x89f1, 0x89f2,
- 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x89fb,
- 0x89fc, 0x89fd, 0x89fe, 0x89ff, 0x8a01, 0x8a02, 0x8a03, 0x8a04,
- 0x8a05, 0x8a06, 0x8a08, 0x8a09, 0x8a0a, 0x8a0b, 0x8a0c, 0x8a0d,
- 0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15,
- 0x8a16, 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a1b, 0x8a1c, 0x8a1d,
- 0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9,
- 0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71,
- 0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8,
- 0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38,
- 0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24,
- 0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709,
- 0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2,
- 0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59,
- 0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88,
- 0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd,
- 0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea,
- 0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89,
- /* 0xd4 */
- 0x8a1e, 0x8a1f, 0x8a20, 0x8a21, 0x8a22, 0x8a23, 0x8a24, 0x8a25,
- 0x8a26, 0x8a27, 0x8a28, 0x8a29, 0x8a2a, 0x8a2b, 0x8a2c, 0x8a2d,
- 0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a32, 0x8a33, 0x8a34, 0x8a35,
- 0x8a36, 0x8a37, 0x8a38, 0x8a39, 0x8a3a, 0x8a3b, 0x8a3c, 0x8a3d,
- 0x8a3f, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46,
- 0x8a47, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f,
- 0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57,
- 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f,
- 0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67,
- 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f,
- 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77,
- 0x8a78, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8a7f, 0x8a80,
- 0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a,
- 0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed,
- 0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f,
- 0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3,
- 0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300,
- 0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55,
- 0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d,
- 0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f,
- 0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1,
- 0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23,
- 0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe,
- 0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67,
- /* 0xd5 */
- 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0x8a86, 0x8a87, 0x8a88,
- 0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92,
- 0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b,
- 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3,
- 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab,
- 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3,
- 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb,
- 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3,
- 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb,
- 0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3,
- 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb,
- 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3,
- 0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8,
- 0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb,
- 0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d,
- 0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd,
- 0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756,
- 0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db,
- 0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087,
- 0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517,
- 0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827,
- 0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707,
- 0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0,
- 0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f,
- /* 0xd6 */
- 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb,
- 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3,
- 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb,
- 0x8afc, 0x8afd, 0x8afe, 0x8aff, 0x8b00, 0x8b01, 0x8b02, 0x8b03,
- 0x8b04, 0x8b05, 0x8b06, 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b0c,
- 0x8b0d, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14,
- 0x8b15, 0x8b16, 0x8b17, 0x8b18, 0x8b19, 0x8b1a, 0x8b1b, 0x8b1c,
- 0x8b1d, 0x8b1e, 0x8b1f, 0x8b20, 0x8b21, 0x8b22, 0x8b23, 0x8b24,
- 0x8b25, 0x8b27, 0x8b28, 0x8b29, 0x8b2a, 0x8b2b, 0x8b2c, 0x8b2d,
- 0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b32, 0x8b33, 0x8b34, 0x8b35,
- 0x8b36, 0x8b37, 0x8b38, 0x8b39, 0x8b3a, 0x8b3b, 0x8b3c, 0x8b3d,
- 0x8b3e, 0x8b3f, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45,
- 0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431,
- 0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c,
- 0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307,
- 0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7,
- 0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9,
- 0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d,
- 0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd,
- 0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5,
- 0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4,
- 0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010,
- 0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457,
- 0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51,
- /* 0xd7 */
- 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d,
- 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55,
- 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d,
- 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65,
- 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6d, 0x8b6e, 0x8b6f,
- 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77,
- 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8b7f,
- 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x8b87,
- 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, 0x8b8f,
- 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, 0x8b97,
- 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, 0x8b9f,
- 0x8bac, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bd0, 0x8bea, 0x8c09, 0x8c1e,
- 0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13,
- 0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5,
- 0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58,
- 0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c,
- 0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179,
- 0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4,
- 0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5,
- 0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f,
- 0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b,
- 0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a,
- 0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750,
- 0x5ea7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xd8 */
- 0x8c38, 0x8c39, 0x8c3a, 0x8c3b, 0x8c3c, 0x8c3d, 0x8c3e, 0x8c3f,
- 0x8c40, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c48, 0x8c4a, 0x8c4b,
- 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54,
- 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e,
- 0x8c5f, 0x8c60, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68,
- 0x8c69, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72,
- 0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e,
- 0x8c7f, 0x8c80, 0x8c81, 0x8c83, 0x8c84, 0x8c86, 0x8c87, 0x8c88,
- 0x8c8b, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93,
- 0x8c95, 0x8c96, 0x8c97, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d,
- 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5,
- 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad,
- 0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98,
- 0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315,
- 0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997,
- 0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69,
- 0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d,
- 0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326,
- 0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e,
- 0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c,
- 0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54,
- 0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede,
- 0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09,
- 0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d,
- /* 0xd9 */
- 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5,
- 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd,
- 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5,
- 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd,
- 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5,
- 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd,
- 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5,
- 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced,
- 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5,
- 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd,
- 0x8cfe, 0x8cff, 0x8d00, 0x8d01, 0x8d02, 0x8d03, 0x8d04, 0x8d05,
- 0x8d06, 0x8d07, 0x8d08, 0x8d09, 0x8d0a, 0x8d0b, 0x8d0c, 0x8d0d,
- 0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89,
- 0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94,
- 0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1,
- 0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e,
- 0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043,
- 0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9,
- 0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107,
- 0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46,
- 0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9,
- 0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156,
- 0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34,
- 0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc,
- /* 0xda */
- 0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15,
- 0x8d16, 0x8d17, 0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d20,
- 0x8d51, 0x8d52, 0x8d57, 0x8d5f, 0x8d65, 0x8d68, 0x8d69, 0x8d6a,
- 0x8d6c, 0x8d6e, 0x8d6f, 0x8d71, 0x8d72, 0x8d78, 0x8d79, 0x8d7a,
- 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d7f, 0x8d80, 0x8d82, 0x8d83,
- 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f,
- 0x8d90, 0x8d92, 0x8d93, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99,
- 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8da0, 0x8da1, 0x8da2,
- 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab,
- 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db2, 0x8db6, 0x8db7,
- 0x8db9, 0x8dbb, 0x8dbd, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc5, 0x8dc7,
- 0x8dc8, 0x8dc9, 0x8dca, 0x8dcd, 0x8dd0, 0x8dd2, 0x8dd3, 0x8dd4,
- 0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa,
- 0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce,
- 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf,
- 0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6,
- 0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c,
- 0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b,
- 0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a,
- 0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369,
- 0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c,
- 0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674,
- 0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099,
- 0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba,
- /* 0xdb */
- 0x8dd5, 0x8dd8, 0x8dd9, 0x8ddc, 0x8de0, 0x8de1, 0x8de2, 0x8de5,
- 0x8de6, 0x8de7, 0x8de9, 0x8ded, 0x8dee, 0x8df0, 0x8df1, 0x8df2,
- 0x8df4, 0x8df6, 0x8dfc, 0x8dfe, 0x8dff, 0x8e00, 0x8e01, 0x8e02,
- 0x8e03, 0x8e04, 0x8e06, 0x8e07, 0x8e08, 0x8e0b, 0x8e0d, 0x8e0e,
- 0x8e10, 0x8e11, 0x8e12, 0x8e13, 0x8e15, 0x8e16, 0x8e17, 0x8e18,
- 0x8e19, 0x8e1a, 0x8e1b, 0x8e1c, 0x8e20, 0x8e21, 0x8e24, 0x8e25,
- 0x8e26, 0x8e27, 0x8e28, 0x8e2b, 0x8e2d, 0x8e30, 0x8e32, 0x8e33,
- 0x8e34, 0x8e36, 0x8e37, 0x8e38, 0x8e3b, 0x8e3c, 0x8e3e, 0x8e3f,
- 0x8e43, 0x8e45, 0x8e46, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50,
- 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e5a, 0x8e5b,
- 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63,
- 0x8e64, 0x8e65, 0x8e67, 0x8e68, 0x8e6a, 0x8e6b, 0x8e6e, 0x8e71,
- 0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7,
- 0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef,
- 0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139,
- 0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be,
- 0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4,
- 0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c,
- 0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c,
- 0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742,
- 0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d,
- 0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7,
- 0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2,
- 0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd,
- /* 0xdc */
- 0x8e73, 0x8e75, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7d,
- 0x8e7e, 0x8e80, 0x8e82, 0x8e83, 0x8e84, 0x8e86, 0x8e88, 0x8e89,
- 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e91, 0x8e92, 0x8e93,
- 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9d,
- 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6,
- 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8ead, 0x8eae, 0x8eb0, 0x8eb1,
- 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8ebb,
- 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3,
- 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb,
- 0x8ecc, 0x8ecd, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4,
- 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc,
- 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4,
- 0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844,
- 0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8,
- 0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8,
- 0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be,
- 0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb,
- 0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4,
- 0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307,
- 0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311,
- 0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351,
- 0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b,
- 0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317,
- 0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365,
- /* 0xdd */
- 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec,
- 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4,
- 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc,
- 0x8efd, 0x8efe, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x8f03, 0x8f04,
- 0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 0x8f0a, 0x8f0b, 0x8f0c,
- 0x8f0d, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f12, 0x8f13, 0x8f14,
- 0x8f15, 0x8f16, 0x8f17, 0x8f18, 0x8f19, 0x8f1a, 0x8f1b, 0x8f1c,
- 0x8f1d, 0x8f1e, 0x8f1f, 0x8f20, 0x8f21, 0x8f22, 0x8f23, 0x8f24,
- 0x8f25, 0x8f26, 0x8f27, 0x8f28, 0x8f29, 0x8f2a, 0x8f2b, 0x8f2c,
- 0x8f2d, 0x8f2e, 0x8f2f, 0x8f30, 0x8f31, 0x8f32, 0x8f33, 0x8f34,
- 0x8f35, 0x8f36, 0x8f37, 0x8f38, 0x8f39, 0x8f3a, 0x8f3b, 0x8f3c,
- 0x8f3d, 0x8f3e, 0x8f3f, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44,
- 0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0,
- 0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385,
- 0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e,
- 0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807,
- 0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411,
- 0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea,
- 0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a,
- 0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c,
- 0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1,
- 0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba,
- 0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c,
- 0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a,
- /* 0xde */
- 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c,
- 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54,
- 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c,
- 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64,
- 0x8f65, 0x8f6a, 0x8f80, 0x8f8c, 0x8f92, 0x8f9d, 0x8fa0, 0x8fa1,
- 0x8fa2, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8faa, 0x8fac, 0x8fad,
- 0x8fae, 0x8faf, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8,
- 0x8fba, 0x8fbb, 0x8fbc, 0x8fbf, 0x8fc0, 0x8fc3, 0x8fc6, 0x8fc9,
- 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fcf, 0x8fd2, 0x8fd6, 0x8fd7,
- 0x8fda, 0x8fe0, 0x8fe1, 0x8fe3, 0x8fe7, 0x8fec, 0x8fef, 0x8ff1,
- 0x8ff2, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffe,
- 0x8fff, 0x9007, 0x9008, 0x900c, 0x900e, 0x9013, 0x9015, 0x9018,
- 0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564,
- 0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8,
- 0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7,
- 0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629,
- 0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955,
- 0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c,
- 0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322,
- 0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a,
- 0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc,
- 0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452,
- 0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c,
- 0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496,
- /* 0xdf */
- 0x9019, 0x901c, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029,
- 0x902a, 0x902b, 0x902c, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034,
- 0x9037, 0x9039, 0x903a, 0x903d, 0x903f, 0x9040, 0x9043, 0x9045,
- 0x9046, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904e, 0x9054,
- 0x9055, 0x9056, 0x9059, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f,
- 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906a, 0x906b,
- 0x906c, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077,
- 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907e, 0x9081, 0x9084,
- 0x9085, 0x9086, 0x9087, 0x9089, 0x908a, 0x908c, 0x908d, 0x908e,
- 0x908f, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909a, 0x909c,
- 0x909e, 0x909f, 0x90a0, 0x90a4, 0x90a5, 0x90a7, 0x90a8, 0x90a9,
- 0x90ab, 0x90ad, 0x90b2, 0x90b7, 0x90bc, 0x90bd, 0x90bf, 0x90c0,
- 0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7,
- 0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519,
- 0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412,
- 0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443,
- 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477,
- 0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d,
- 0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3,
- 0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9,
- 0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de,
- 0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523,
- 0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549,
- 0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c,
- /* 0xe0 */
- 0x90c2, 0x90c3, 0x90c6, 0x90c8, 0x90c9, 0x90cb, 0x90cc, 0x90cd,
- 0x90d2, 0x90d4, 0x90d5, 0x90d6, 0x90d8, 0x90d9, 0x90da, 0x90de,
- 0x90df, 0x90e0, 0x90e3, 0x90e4, 0x90e5, 0x90e9, 0x90ea, 0x90ec,
- 0x90ee, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f5, 0x90f6, 0x90f7,
- 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90ff, 0x9100, 0x9101, 0x9103,
- 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910a, 0x910b, 0x910c,
- 0x910d, 0x910e, 0x910f, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114,
- 0x9115, 0x9116, 0x9117, 0x9118, 0x911a, 0x911b, 0x911c, 0x911d,
- 0x911f, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, 0x9128,
- 0x9129, 0x912a, 0x912b, 0x912c, 0x912d, 0x912e, 0x9130, 0x9132,
- 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913a, 0x913b,
- 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x9141, 0x9142, 0x9144,
- 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c,
- 0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f,
- 0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594,
- 0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec,
- 0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3,
- 0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608,
- 0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d,
- 0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c,
- 0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c,
- 0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5,
- 0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f,
- 0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c,
- /* 0xe1 */
- 0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156,
- 0x9158, 0x9159, 0x915b, 0x915c, 0x915f, 0x9160, 0x9166, 0x9167,
- 0x9168, 0x916b, 0x916d, 0x9173, 0x917a, 0x917b, 0x917c, 0x9180,
- 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918a, 0x918e,
- 0x918f, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199,
- 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a4, 0x91a5,
- 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91ab, 0x91ac, 0x91b0, 0x91b1,
- 0x91b2, 0x91b3, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91bb, 0x91bc,
- 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4,
- 0x91c5, 0x91c6, 0x91c8, 0x91cb, 0x91d0, 0x91d2, 0x91d3, 0x91d4,
- 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dd,
- 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5,
- 0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a,
- 0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a,
- 0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3,
- 0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02,
- 0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b,
- 0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d,
- 0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d,
- 0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89,
- 0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc,
- 0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3,
- 0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2,
- 0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa,
- /* 0xe2 */
- 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed,
- 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5,
- 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd,
- 0x91fe, 0x91ff, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205,
- 0x9206, 0x9207, 0x9208, 0x9209, 0x920a, 0x920b, 0x920c, 0x920d,
- 0x920e, 0x920f, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215,
- 0x9216, 0x9217, 0x9218, 0x9219, 0x921a, 0x921b, 0x921c, 0x921d,
- 0x921e, 0x921f, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x9225,
- 0x9226, 0x9227, 0x9228, 0x9229, 0x922a, 0x922b, 0x922c, 0x922d,
- 0x922e, 0x922f, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, 0x9235,
- 0x9236, 0x9237, 0x9238, 0x9239, 0x923a, 0x923b, 0x923c, 0x923d,
- 0x923e, 0x923f, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, 0x9245,
- 0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315,
- 0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d,
- 0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7,
- 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b,
- 0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a,
- 0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91,
- 0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3,
- 0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4,
- 0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4,
- 0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035,
- 0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f,
- 0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042,
- /* 0xe3 */
- 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d,
- 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255,
- 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d,
- 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265,
- 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d,
- 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276,
- 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e,
- 0x927f, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286,
- 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928f,
- 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0x9297,
- 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f,
- 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7,
- 0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092,
- 0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6,
- 0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100,
- 0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7,
- 0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3,
- 0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608,
- 0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616,
- 0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54,
- 0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68,
- 0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad,
- 0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa,
- 0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe,
- /* 0xe4 */
- 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92af, 0x92b0,
- 0x92b1, 0x92b2, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8,
- 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0,
- 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c9,
- 0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1,
- 0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9,
- 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1,
- 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9,
- 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1,
- 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9,
- 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0x9300, 0x9301,
- 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, 0x9309,
- 0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19,
- 0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52,
- 0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93,
- 0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5,
- 0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9,
- 0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b,
- 0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44,
- 0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7,
- 0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2,
- 0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f,
- 0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d,
- 0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1,
- /* 0xe5 */
- 0x930a, 0x930b, 0x930c, 0x930d, 0x930e, 0x930f, 0x9310, 0x9311,
- 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319,
- 0x931a, 0x931b, 0x931c, 0x931d, 0x931e, 0x931f, 0x9320, 0x9321,
- 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329,
- 0x932a, 0x932b, 0x932c, 0x932d, 0x932e, 0x932f, 0x9330, 0x9331,
- 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339,
- 0x933a, 0x933b, 0x933c, 0x933d, 0x933f, 0x9340, 0x9341, 0x9342,
- 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934a,
- 0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9352,
- 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, 0x935a,
- 0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361, 0x9362,
- 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0x936b,
- 0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde,
- 0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f,
- 0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f,
- 0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07,
- 0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6,
- 0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d,
- 0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051,
- 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074,
- 0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56,
- 0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66,
- 0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e,
- 0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3,
- /* 0xe6 */
- 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373,
- 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b,
- 0x937c, 0x937d, 0x937e, 0x937f, 0x9380, 0x9381, 0x9382, 0x9383,
- 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b,
- 0x938c, 0x938d, 0x938e, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394,
- 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c,
- 0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4,
- 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac,
- 0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4,
- 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc,
- 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4,
- 0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93cb, 0x93cc, 0x93cd,
- 0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af,
- 0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8,
- 0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13,
- 0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec,
- 0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2,
- 0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8,
- 0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15,
- 0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75,
- 0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85,
- 0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b,
- 0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7,
- 0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9,
- /* 0xe7 */
- 0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5,
- 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de,
- 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6,
- 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee,
- 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6,
- 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe,
- 0x93ff, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406,
- 0x9407, 0x9408, 0x9409, 0x940a, 0x940b, 0x940c, 0x940d, 0x940e,
- 0x940f, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, 0x9416,
- 0x9417, 0x9418, 0x9419, 0x941a, 0x941b, 0x941c, 0x941d, 0x941e,
- 0x941f, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, 0x9426,
- 0x9427, 0x9428, 0x9429, 0x942a, 0x942b, 0x942c, 0x942d, 0x942e,
- 0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb,
- 0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8,
- 0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa,
- 0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b,
- 0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b,
- 0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
- 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32,
- 0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e,
- 0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7,
- 0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a,
- 0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b,
- 0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c,
- /* 0xe8 */
- 0x942f, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436,
- 0x9437, 0x9438, 0x9439, 0x943a, 0x943b, 0x943c, 0x943d, 0x943f,
- 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447,
- 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f,
- 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457,
- 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f,
- 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467,
- 0x9468, 0x9469, 0x946a, 0x946c, 0x946d, 0x946e, 0x946f, 0x9470,
- 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478,
- 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x947f, 0x9480,
- 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, 0x94c7,
- 0x94cf, 0x94d3, 0x94d4, 0x94da, 0x94e6, 0x94fb, 0x951c, 0x9520,
- 0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477,
- 0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b,
- 0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea,
- 0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5,
- 0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e,
- 0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a,
- 0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd,
- 0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832,
- 0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883,
- 0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a,
- 0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b,
- 0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9,
- /* 0xe9 */
- 0x9527, 0x9533, 0x953d, 0x9543, 0x9548, 0x954b, 0x9555, 0x955a,
- 0x9560, 0x956e, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957a,
- 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, 0x9583,
- 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b,
- 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593,
- 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b,
- 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3,
- 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab,
- 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3,
- 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb,
- 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, 0x95c3,
- 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, 0x95cb,
- 0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971,
- 0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998,
- 0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966,
- 0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4,
- 0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff,
- 0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e,
- 0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28,
- 0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337,
- 0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d,
- 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72,
- 0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c,
- 0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b,
- /* 0xea */
- 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3,
- 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db,
- 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3,
- 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95ec, 0x95ff, 0x9607, 0x9613,
- 0x9618, 0x961b, 0x961e, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626,
- 0x9627, 0x9628, 0x9629, 0x962b, 0x962c, 0x962d, 0x962f, 0x9630,
- 0x9637, 0x9638, 0x9639, 0x963a, 0x963e, 0x9641, 0x9643, 0x964a,
- 0x964e, 0x964f, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x9658,
- 0x9659, 0x965a, 0x965c, 0x965d, 0x965e, 0x9660, 0x9663, 0x9665,
- 0x9666, 0x966b, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673,
- 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, 0x967f,
- 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, 0x968a,
- 0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217,
- 0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7,
- 0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee,
- 0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600,
- 0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006,
- 0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677,
- 0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6,
- 0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45,
- 0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7,
- 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e,
- 0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b,
- 0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0,
- /* 0xeb */
- 0x968c, 0x968e, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969a,
- 0x969b, 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3,
- 0x96a4, 0x96a5, 0x96a6, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac,
- 0x96ad, 0x96ae, 0x96af, 0x96b1, 0x96b2, 0x96b4, 0x96b5, 0x96b7,
- 0x96b8, 0x96ba, 0x96bb, 0x96bf, 0x96c2, 0x96c3, 0x96c8, 0x96ca,
- 0x96cb, 0x96d0, 0x96d1, 0x96d3, 0x96d4, 0x96d6, 0x96d7, 0x96d8,
- 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e1,
- 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96eb, 0x96ec,
- 0x96ed, 0x96ee, 0x96f0, 0x96f1, 0x96f2, 0x96f4, 0x96f5, 0x96f8,
- 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96ff, 0x9702, 0x9703, 0x9705,
- 0x970a, 0x970b, 0x970c, 0x9710, 0x9711, 0x9712, 0x9714, 0x9715,
- 0x9717, 0x9718, 0x9719, 0x971a, 0x971b, 0x971d, 0x971f, 0x9720,
- 0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9,
- 0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a,
- 0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b,
- 0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c,
- 0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4,
- 0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4,
- 0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4,
- 0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a,
- 0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153,
- 0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d,
- 0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5,
- 0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb,
- /* 0xec */
- 0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728,
- 0x9729, 0x972b, 0x972c, 0x972e, 0x972f, 0x9731, 0x9733, 0x9734,
- 0x9735, 0x9736, 0x9737, 0x973a, 0x973b, 0x973c, 0x973d, 0x973f,
- 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747,
- 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f,
- 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975a, 0x975c,
- 0x975d, 0x975f, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976a,
- 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9772,
- 0x9775, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977d, 0x977e,
- 0x977f, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, 0x9787,
- 0x9788, 0x9789, 0x978a, 0x978c, 0x978e, 0x978f, 0x9790, 0x9793,
- 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d,
- 0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59,
- 0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40,
- 0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4,
- 0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096,
- 0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca,
- 0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168,
- 0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5,
- 0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228,
- 0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248,
- 0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953,
- 0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985,
- 0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0,
- /* 0xed */
- 0x979e, 0x979f, 0x97a1, 0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a7,
- 0x97a8, 0x97a9, 0x97aa, 0x97ac, 0x97ae, 0x97b0, 0x97b1, 0x97b3,
- 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc,
- 0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4,
- 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc,
- 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4,
- 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc,
- 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4,
- 0x97e5, 0x97e8, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f4,
- 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe,
- 0x97ff, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, 0x9806,
- 0x9807, 0x9808, 0x9809, 0x980a, 0x980b, 0x980c, 0x980d, 0x980e,
- 0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab,
- 0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206,
- 0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800,
- 0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d,
- 0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823,
- 0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847,
- 0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1,
- 0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec,
- 0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b,
- 0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707,
- 0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738,
- 0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768,
- /* 0xee */
- 0x980f, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816,
- 0x9817, 0x9818, 0x9819, 0x981a, 0x981b, 0x981c, 0x981d, 0x981e,
- 0x981f, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826,
- 0x9827, 0x9828, 0x9829, 0x982a, 0x982b, 0x982c, 0x982d, 0x982e,
- 0x982f, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836,
- 0x9837, 0x9838, 0x9839, 0x983a, 0x983b, 0x983c, 0x983d, 0x983e,
- 0x983f, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846,
- 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e,
- 0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856,
- 0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e,
- 0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866,
- 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e,
- 0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791,
- 0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e,
- 0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61,
- 0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e,
- 0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a,
- 0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a,
- 0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac,
- 0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9,
- 0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca,
- 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5,
- 0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0,
- 0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea,
- /* 0xef */
- 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988b, 0x988e,
- 0x9892, 0x9895, 0x9899, 0x98a3, 0x98a8, 0x98a9, 0x98aa, 0x98ab,
- 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3,
- 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb,
- 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3,
- 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb,
- 0x98cc, 0x98cd, 0x98cf, 0x98d0, 0x98d4, 0x98d6, 0x98d7, 0x98db,
- 0x98dc, 0x98dd, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5,
- 0x98e6, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef,
- 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7,
- 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x98ff,
- 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, 0x9907,
- 0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7,
- 0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507,
- 0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514,
- 0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522,
- 0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536,
- 0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544,
- 0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553,
- 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f,
- 0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568,
- 0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573,
- 0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb,
- 0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14,
- /* 0xf0 */
- 0x9908, 0x9909, 0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9911,
- 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919,
- 0x991a, 0x991b, 0x991c, 0x991d, 0x991e, 0x991f, 0x9920, 0x9921,
- 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929,
- 0x992a, 0x992b, 0x992c, 0x992d, 0x992f, 0x9930, 0x9931, 0x9932,
- 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993a,
- 0x993b, 0x993c, 0x993d, 0x993e, 0x993f, 0x9940, 0x9941, 0x9942,
- 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a,
- 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952,
- 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c,
- 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9964, 0x9966,
- 0x9973, 0x9978, 0x9979, 0x997b, 0x997e, 0x9982, 0x9983, 0x9989,
- 0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e,
- 0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22,
- 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36,
- 0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44,
- 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51,
- 0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66,
- 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d,
- 0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3,
- 0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2,
- 0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7,
- 0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c,
- 0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619,
- /* 0xf1 */
- 0x998c, 0x998e, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f,
- 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a6, 0x99a7, 0x99a9,
- 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1,
- 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9,
- 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1,
- 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9,
- 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1,
- 0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9,
- 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1,
- 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9,
- 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1,
- 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9,
- 0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f,
- 0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c,
- 0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80,
- 0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad,
- 0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2,
- 0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5,
- 0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919,
- 0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966,
- 0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014,
- 0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029,
- 0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052,
- 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883,
- /* 0xf2 */
- 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x99ff, 0x9a00, 0x9a01,
- 0x9a02, 0x9a03, 0x9a04, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09,
- 0x9a0a, 0x9a0b, 0x9a0c, 0x9a0d, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11,
- 0x9a12, 0x9a13, 0x9a14, 0x9a15, 0x9a16, 0x9a17, 0x9a18, 0x9a19,
- 0x9a1a, 0x9a1b, 0x9a1c, 0x9a1d, 0x9a1e, 0x9a1f, 0x9a20, 0x9a21,
- 0x9a22, 0x9a23, 0x9a24, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29,
- 0x9a2a, 0x9a2b, 0x9a2c, 0x9a2d, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31,
- 0x9a32, 0x9a33, 0x9a34, 0x9a35, 0x9a36, 0x9a37, 0x9a38, 0x9a39,
- 0x9a3a, 0x9a3b, 0x9a3c, 0x9a3d, 0x9a3e, 0x9a3f, 0x9a40, 0x9a41,
- 0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49,
- 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51,
- 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59,
- 0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e,
- 0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c,
- 0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b,
- 0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6,
- 0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9,
- 0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0,
- 0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707,
- 0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e,
- 0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729,
- 0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760,
- 0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764,
- 0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2,
- /* 0xf3 */
- 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61,
- 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69,
- 0x9a6a, 0x9a6b, 0x9a72, 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a94,
- 0x9a95, 0x9a99, 0x9aa6, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad,
- 0x9aae, 0x9aaf, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab9, 0x9abb,
- 0x9abd, 0x9abe, 0x9abf, 0x9ac3, 0x9ac4, 0x9ac6, 0x9ac7, 0x9ac8,
- 0x9ac9, 0x9aca, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad2, 0x9ad4,
- 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add,
- 0x9ade, 0x9ae0, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae7, 0x9ae8,
- 0x9ae9, 0x9aea, 0x9aec, 0x9aee, 0x9af0, 0x9af1, 0x9af2, 0x9af3,
- 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9afa, 0x9afc, 0x9afd,
- 0x9afe, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b04, 0x9b05, 0x9b06,
- 0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5,
- 0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0,
- 0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe,
- 0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44,
- 0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15,
- 0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e,
- 0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58,
- 0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b,
- 0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac,
- 0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4,
- 0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea,
- 0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b,
- /* 0xf4 */
- 0x9b07, 0x9b09, 0x9b0a, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, 0x9b10,
- 0x9b11, 0x9b12, 0x9b14, 0x9b15, 0x9b16, 0x9b17, 0x9b18, 0x9b19,
- 0x9b1a, 0x9b1b, 0x9b1c, 0x9b1d, 0x9b1e, 0x9b20, 0x9b21, 0x9b22,
- 0x9b24, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2b,
- 0x9b2c, 0x9b2d, 0x9b2e, 0x9b30, 0x9b31, 0x9b33, 0x9b34, 0x9b35,
- 0x9b36, 0x9b37, 0x9b38, 0x9b39, 0x9b3a, 0x9b3d, 0x9b3e, 0x9b3f,
- 0x9b40, 0x9b46, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b50, 0x9b52,
- 0x9b53, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b,
- 0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63,
- 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b,
- 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73,
- 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b,
- 0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201,
- 0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d,
- 0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e,
- 0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e,
- 0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7,
- 0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c,
- 0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc,
- 0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf,
- 0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3,
- 0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4,
- 0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47,
- 0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164,
- /* 0xf5 */
- 0x9b7c, 0x9b7d, 0x9b7e, 0x9b7f, 0x9b80, 0x9b81, 0x9b82, 0x9b83,
- 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b,
- 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93,
- 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b,
- 0x9b9c, 0x9b9d, 0x9b9e, 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3,
- 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab,
- 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3,
- 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb,
- 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3,
- 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb,
- 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3,
- 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb,
- 0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172,
- 0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2,
- 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba,
- 0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5,
- 0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde,
- 0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3,
- 0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f,
- 0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35,
- 0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a,
- 0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94,
- 0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98,
- 0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc,
- /* 0xf6 */
- 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3,
- 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb,
- 0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3,
- 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb,
- 0x9bfc, 0x9bfd, 0x9bfe, 0x9bff, 0x9c00, 0x9c01, 0x9c02, 0x9c03,
- 0x9c04, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 0x9c0a, 0x9c0b,
- 0x9c0c, 0x9c0d, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c12, 0x9c13,
- 0x9c14, 0x9c15, 0x9c16, 0x9c17, 0x9c18, 0x9c19, 0x9c1a, 0x9c1b,
- 0x9c1c, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, 0x9c23,
- 0x9c24, 0x9c25, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c2b,
- 0x9c2c, 0x9c2d, 0x9c2e, 0x9c2f, 0x9c30, 0x9c31, 0x9c32, 0x9c33,
- 0x9c34, 0x9c35, 0x9c36, 0x9c37, 0x9c38, 0x9c39, 0x9c3a, 0x9c3b,
- 0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3,
- 0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d,
- 0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88,
- 0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc,
- 0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8,
- 0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82,
- 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90,
- 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f,
- 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8,
- 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3,
- 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd,
- 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb,
- /* 0xf7 */
- 0x9c3c, 0x9c3d, 0x9c3e, 0x9c3f, 0x9c40, 0x9c41, 0x9c42, 0x9c43,
- 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b,
- 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0x9c53,
- 0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b,
- 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c62, 0x9c63,
- 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b,
- 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73,
- 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b,
- 0x9c7d, 0x9c7e, 0x9c80, 0x9c83, 0x9c84, 0x9c89, 0x9c8a, 0x9c8c,
- 0x9c8f, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9c9d, 0x9caa,
- 0x9cac, 0x9caf, 0x9cb9, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2,
- 0x9cc8, 0x9cc9, 0x9cd1, 0x9cd2, 0x9cda, 0x9cdb, 0x9ce0, 0x9ce1,
- 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5,
- 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c,
- 0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2,
- 0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc,
- 0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45,
- 0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d,
- 0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb,
- 0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23,
- 0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92,
- 0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf,
- 0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c,
- 0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44,
- /* 0xf8 */
- 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea,
- 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2,
- 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa,
- 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x9d00, 0x9d01, 0x9d02,
- 0x9d03, 0x9d04, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 0x9d0a,
- 0x9d0b, 0x9d0c, 0x9d0d, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d12,
- 0x9d13, 0x9d14, 0x9d15, 0x9d16, 0x9d17, 0x9d18, 0x9d19, 0x9d1a,
- 0x9d1b, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d1f, 0x9d20, 0x9d21, 0x9d22,
- 0x9d23, 0x9d24, 0x9d25, 0x9d26, 0x9d27, 0x9d28, 0x9d29, 0x9d2a,
- 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d31, 0x9d32,
- 0x9d33, 0x9d34, 0x9d35, 0x9d36, 0x9d37, 0x9d38, 0x9d39, 0x9d3a,
- 0x9d3b, 0x9d3c, 0x9d3d, 0x9d3e, 0x9d3f, 0x9d40, 0x9d41, 0x9d42,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xf9 */
- 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a,
- 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52,
- 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a,
- 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62,
- 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a,
- 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72,
- 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a,
- 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x9d82,
- 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a,
- 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92,
- 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a,
- 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xfa */
- 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa,
- 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2,
- 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba,
- 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2,
- 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca,
- 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2,
- 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda,
- 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2,
- 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea,
- 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2,
- 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa,
- 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9dff, 0x9e00, 0x9e01, 0x9e02,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xfb */
- 0x9e03, 0x9e04, 0x9e05, 0x9e06, 0x9e07, 0x9e08, 0x9e09, 0x9e0a,
- 0x9e0b, 0x9e0c, 0x9e0d, 0x9e0e, 0x9e0f, 0x9e10, 0x9e11, 0x9e12,
- 0x9e13, 0x9e14, 0x9e15, 0x9e16, 0x9e17, 0x9e18, 0x9e19, 0x9e1a,
- 0x9e1b, 0x9e1c, 0x9e1d, 0x9e1e, 0x9e24, 0x9e27, 0x9e2e, 0x9e30,
- 0x9e34, 0x9e3b, 0x9e3c, 0x9e40, 0x9e4d, 0x9e50, 0x9e52, 0x9e53,
- 0x9e54, 0x9e56, 0x9e59, 0x9e5d, 0x9e5f, 0x9e60, 0x9e61, 0x9e62,
- 0x9e65, 0x9e6e, 0x9e6f, 0x9e72, 0x9e74, 0x9e75, 0x9e76, 0x9e77,
- 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e80, 0x9e81,
- 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e89, 0x9e8a, 0x9e8c, 0x9e8d,
- 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e94, 0x9e95, 0x9e96, 0x9e97,
- 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9e, 0x9ea0, 0x9ea1,
- 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xfc */
- 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2,
- 0x9eb3, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb9, 0x9eba, 0x9ebc, 0x9ebf,
- 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8,
- 0x9eca, 0x9ecb, 0x9ecc, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed5, 0x9ed6,
- 0x9ed7, 0x9ed9, 0x9eda, 0x9ede, 0x9ee1, 0x9ee3, 0x9ee4, 0x9ee6,
- 0x9ee8, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2,
- 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9efa, 0x9efd,
- 0x9eff, 0x9f00, 0x9f01, 0x9f02, 0x9f03, 0x9f04, 0x9f05, 0x9f06,
- 0x9f07, 0x9f08, 0x9f09, 0x9f0a, 0x9f0c, 0x9f0f, 0x9f11, 0x9f12,
- 0x9f14, 0x9f15, 0x9f16, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1c, 0x9f1d,
- 0x9f1e, 0x9f1f, 0x9f21, 0x9f23, 0x9f24, 0x9f25, 0x9f26, 0x9f27,
- 0x9f28, 0x9f29, 0x9f2a, 0x9f2b, 0x9f2d, 0x9f2e, 0x9f30, 0x9f31,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xfd */
- 0x9f32, 0x9f33, 0x9f34, 0x9f35, 0x9f36, 0x9f38, 0x9f3a, 0x9f3c,
- 0x9f3f, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f45, 0x9f46, 0x9f47,
- 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f,
- 0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59,
- 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61,
- 0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69,
- 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71,
- 0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79,
- 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f81, 0x9f82, 0x9f8d,
- 0x9f8e, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95,
- 0x9f96, 0x9f97, 0x9f98, 0x9f9c, 0x9f9d, 0x9f9e, 0x9fa1, 0x9fa2,
- 0x9fa3, 0x9fa4, 0x9fa5, 0xf92c, 0xf979, 0xf995, 0xf9e7, 0xf9f1,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xfe */
- 0xfa0c, 0xfa0d, 0xfa0e, 0xfa0f, 0xfa11, 0xfa13, 0xfa14, 0xfa18,
- 0xfa1f, 0xfa20, 0xfa21, 0xfa23, 0xfa24, 0xfa27, 0xfa28, 0xfa29,
-};
-
-static int
-gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = s[0];
- if ((c1 >= 0x81 && c1 <= 0xfe)) {
- if (n >= 2) {
- unsigned char c2 = s[1];
- if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) {
- unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40));
- unsigned short wc = 0xfffd;
- {
- if (i < 23766)
- wc = gbk_2uni_page81[i];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short gbk_page00[208] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa1e8, 0x0000, 0x0000, 0xa1ec, /*0xa0-0xa7*/
- 0xa1a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0xa1e3, 0xa1c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1a4, /*0xb0-0xb7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1c1, /*0xd0-0xd7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd8-0xdf*/
- 0xa8a4, 0xa8a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xe0-0xe7*/
- 0xa8a8, 0xa8a6, 0xa8ba, 0x0000, 0xa8ac, 0xa8aa, 0x0000, 0x0000, /*0xe8-0xef*/
- 0x0000, 0x0000, 0xa8b0, 0xa8ae, 0x0000, 0x0000, 0x0000, 0xa1c2, /*0xf0-0xf7*/
- 0x0000, 0xa8b4, 0xa8b2, 0x0000, 0xa8b9, 0x0000, 0x0000, 0x0000, /*0xf8-0xff*/
- /* 0x0100 */
- 0x0000, 0xa8a1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x00-0x07*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x08-0x0f*/
- 0x0000, 0x0000, 0x0000, 0xa8a5, 0x0000, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/
- 0x0000, 0x0000, 0x0000, 0xa8a7, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/
- 0x0000, 0x0000, 0x0000, 0xa8a9, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x30-0x37*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x38-0x3f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa8bd, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
- 0xa8be, 0x0000, 0x0000, 0x0000, 0x0000, 0xa8ad, 0x0000, 0x0000, /*0x48-0x4f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
- 0x0000, 0x0000, 0x0000, 0xa8b1, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
-};
-static const unsigned short gbk_page01[24] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa8a3, 0x0000, /*0xc8-0xcf*/
- 0xa8ab, 0x0000, 0xa8af, 0x0000, 0xa8b3, 0x0000, 0xa8b5, 0x0000, /*0xd0-0xd7*/
- 0xa8b6, 0x0000, 0xa8b7, 0x0000, 0xa8b8, 0x0000, 0x0000, 0x0000, /*0xd8-0xdf*/
-};
-static const unsigned short gbk_page02a[24] = {
- 0x0000, 0xa8bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0x0000, 0xa8c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
-};
-static const unsigned short gbk_page02b[32] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1a6, /*0xc0-0xc7*/
- 0x0000, 0xa1a5, 0xa840, 0xa841, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/
- 0x0000, 0xa842, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd8-0xdf*/
-};
-static const unsigned short gbk_page03[64] = {
- 0x0000, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5, 0xa6a6, 0xa6a7, /*0x90-0x97*/
- 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad, 0xa6ae, 0xa6af, /*0x98-0x9f*/
- 0xa6b0, 0xa6b1, 0x0000, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5, 0xa6b6, /*0xa0-0xa7*/
- 0xa6b7, 0xa6b8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, /*0xb0-0xb7*/
- 0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, /*0xb8-0xbf*/
- 0xa6d0, 0xa6d1, 0x0000, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, /*0xc0-0xc7*/
- 0xa6d7, 0xa6d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
-};
-static const unsigned short gbk_page04[88] = {
- 0x0000, 0xa7a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x00-0x07*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x08-0x0f*/
- 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, 0xa7a5, 0xa7a6, 0xa7a8, 0xa7a9, /*0x10-0x17*/
- 0xa7aa, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, /*0x18-0x1f*/
- 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b5, 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, /*0x20-0x27*/
- 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, 0xa7be, 0xa7bf, 0xa7c0, 0xa7c1, /*0x28-0x2f*/
- 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d8, 0xa7d9, /*0x30-0x37*/
- 0xa7da, 0xa7db, 0xa7dc, 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, /*0x38-0x3f*/
- 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, /*0x40-0x47*/
- 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed, 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, /*0x48-0x4f*/
- 0x0000, 0xa7d7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
-};
-static const unsigned short gbk_page20[48] = {
- 0xa95c, 0x0000, 0x0000, 0xa843, 0xa1aa, 0xa844, 0xa1ac, 0x0000, /*0x10-0x17*/
- 0xa1ae, 0xa1af, 0x0000, 0x0000, 0xa1b0, 0xa1b1, 0x0000, 0x0000, /*0x18-0x1f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa845, 0xa1ad, 0x0000, /*0x20-0x27*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
- 0xa1eb, 0x0000, 0xa1e4, 0xa1e5, 0x0000, 0xa846, 0x0000, 0x0000, /*0x30-0x37*/
- 0x0000, 0x0000, 0x0000, 0xa1f9, 0x0000, 0x0000, 0x0000, 0x0000, /*0x38-0x3f*/
-};
-static const unsigned short gbk_page21[160] = {
- 0x0000, 0x0000, 0x0000, 0xa1e6, 0x0000, 0xa847, 0x0000, 0x0000, /*0x00-0x07*/
- 0x0000, 0xa848, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x08-0x0f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1ed, 0x0000, /*0x10-0x17*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
- 0x0000, 0xa959, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x30-0x37*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x38-0x3f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, /*0x60-0x67*/
- 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
- 0xa2a1, 0xa2a2, 0xa2a3, 0xa2a4, 0xa2a5, 0xa2a6, 0xa2a7, 0xa2a8, /*0x70-0x77*/
- 0xa2a9, 0xa2aa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
- 0xa1fb, 0xa1fc, 0xa1fa, 0xa1fd, 0x0000, 0x0000, 0xa849, 0xa84a, /*0x90-0x97*/
- 0xa84b, 0xa84c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/
-};
-static const unsigned short gbk_page22[184] = {
- 0xa1ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1c7, /*0x08-0x0f*/
- 0x0000, 0xa1c6, 0x0000, 0x0000, 0x0000, 0xa84d, 0x0000, 0x0000, /*0x10-0x17*/
- 0x0000, 0x0000, 0xa1cc, 0x0000, 0x0000, 0xa1d8, 0xa1de, 0xa84e, /*0x18-0x1f*/
- 0xa1cf, 0x0000, 0x0000, 0xa84f, 0x0000, 0xa1ce, 0x0000, 0xa1c4, /*0x20-0x27*/
- 0xa1c5, 0xa1c9, 0xa1c8, 0xa1d2, 0x0000, 0x0000, 0xa1d3, 0x0000, /*0x28-0x2f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa1e0, 0xa1df, 0xa1c3, 0xa1cb, /*0x30-0x37*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1d7, 0x0000, 0x0000, /*0x38-0x3f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
- 0xa1d6, 0x0000, 0x0000, 0x0000, 0xa1d5, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
- 0x0000, 0x0000, 0xa850, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
- 0xa1d9, 0xa1d4, 0x0000, 0x0000, 0xa1dc, 0xa1dd, 0xa851, 0xa852, /*0x60-0x67*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1da, 0xa1db, /*0x68-0x6f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa892, 0x0000, 0x0000, /*0x90-0x97*/
- 0x0000, 0xa1d1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1cd, 0x0000, 0x0000, /*0xa0-0xa7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa853, /*0xb8-0xbf*/
-};
-static const unsigned short gbk_page24[64] = {
- 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, /*0x60-0x67*/
- 0xa2e1, 0xa2e2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, /*0x70-0x77*/
- 0xa2c9, 0xa2ca, 0xa2cb, 0xa2cc, 0xa2cd, 0xa2ce, 0xa2cf, 0xa2d0, /*0x78-0x7f*/
- 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, /*0x80-0x87*/
- 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, /*0x88-0x8f*/
- 0xa2b9, 0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, /*0x90-0x97*/
- 0xa2c1, 0xa2c2, 0xa2c3, 0xa2c4, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/
-};
-static const unsigned short gbk_page25[232] = {
- 0xa9a4, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, 0xa9a9, 0xa9aa, 0xa9ab, /*0x00-0x07*/
- 0xa9ac, 0xa9ad, 0xa9ae, 0xa9af, 0xa9b0, 0xa9b1, 0xa9b2, 0xa9b3, /*0x08-0x0f*/
- 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9, 0xa9ba, 0xa9bb, /*0x10-0x17*/
- 0xa9bc, 0xa9bd, 0xa9be, 0xa9bf, 0xa9c0, 0xa9c1, 0xa9c2, 0xa9c3, /*0x18-0x1f*/
- 0xa9c4, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 0xa9ca, 0xa9cb, /*0x20-0x27*/
- 0xa9cc, 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d2, 0xa9d3, /*0x28-0x2f*/
- 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9da, 0xa9db, /*0x30-0x37*/
- 0xa9dc, 0xa9dd, 0xa9de, 0xa9df, 0xa9e0, 0xa9e1, 0xa9e2, 0xa9e3, /*0x38-0x3f*/
- 0xa9e4, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, 0xa9e9, 0xa9ea, 0xa9eb, /*0x40-0x47*/
- 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
- 0xa854, 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, /*0x50-0x57*/
- 0xa85c, 0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, /*0x58-0x5f*/
- 0xa864, 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, /*0x60-0x67*/
- 0xa86c, 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, /*0x68-0x6f*/
- 0xa874, 0xa875, 0xa876, 0xa877, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c, 0xa87d, 0xa87e, /*0x80-0x87*/
- 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885, 0xa886, 0xa887, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0xa888, 0xa889, 0xa88a, 0x0000, 0x0000, /*0x90-0x97*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/
- 0xa1f6, 0xa1f5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0x0000, 0xa1f8, 0xa1f7, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa88b, 0xa88c, 0x0000, 0x0000, /*0xb8-0xbf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1f4, 0xa1f3, /*0xc0-0xc7*/
- 0x0000, 0x0000, 0x0000, 0xa1f0, 0x0000, 0x0000, 0xa1f2, 0xa1f1, /*0xc8-0xcf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd8-0xdf*/
- 0x0000, 0x0000, 0xa88d, 0xa88e, 0xa88f, 0xa890, 0x0000, 0x0000, /*0xe0-0xe7*/
-};
-static const unsigned short gbk_page26[72] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa1ef, 0xa1ee, 0x0000, /*0x00-0x07*/
- 0x0000, 0xa891, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x08-0x0f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x30-0x37*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x38-0x3f*/
- 0xa1e2, 0x0000, 0xa1e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
-};
-static const unsigned short gbk_page30[304] = {
- 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a8, 0x0000, 0xa1a9, 0xa965, 0xa996, /*0x00-0x07*/
- 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, 0xa1ba, 0xa1bb, /*0x08-0x0f*/
- 0xa1be, 0xa1bf, 0xa893, 0xa1fe, 0xa1b2, 0xa1b3, 0xa1bc, 0xa1bd, /*0x10-0x17*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa894, 0xa895, 0x0000, /*0x18-0x1f*/
- 0x0000, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946, /*0x20-0x27*/
- 0xa947, 0xa948, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x30-0x37*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x38-0x3f*/
- 0x0000, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, /*0x40-0x47*/
- 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, /*0x48-0x4f*/
- 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, /*0x50-0x57*/
- 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, /*0x58-0x5f*/
- 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, /*0x60-0x67*/
- 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, /*0x68-0x6f*/
- 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, /*0x70-0x77*/
- 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, /*0x78-0x7f*/
- 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, /*0x80-0x87*/
- 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, /*0x88-0x8f*/
- 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
- 0x0000, 0x0000, 0x0000, 0xa961, 0xa962, 0xa966, 0xa967, 0x0000, /*0x98-0x9f*/
- 0x0000, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, /*0xa0-0xa7*/
- 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, 0xa5ad, 0xa5ae, 0xa5af, /*0xa8-0xaf*/
- 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, /*0xb0-0xb7*/
- 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, 0xa5be, 0xa5bf, /*0xb8-0xbf*/
- 0xa5c0, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, /*0xc0-0xc7*/
- 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, /*0xc8-0xcf*/
- 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, /*0xd0-0xd7*/
- 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5de, 0xa5df, /*0xd8-0xdf*/
- 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, /*0xe0-0xe7*/
- 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, /*0xe8-0xef*/
- 0xa5f0, 0xa5f1, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, 0x0000, /*0xf0-0xf7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa960, 0xa963, 0xa964, 0x0000, /*0xf8-0xff*/
- /* 0x3100 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa8c5, 0xa8c6, 0xa8c7, /*0x00-0x07*/
- 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, 0xa8cd, 0xa8ce, 0xa8cf, /*0x08-0x0f*/
- 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, 0xa8d5, 0xa8d6, 0xa8d7, /*0x10-0x17*/
- 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, 0xa8de, 0xa8df, /*0x18-0x1f*/
- 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, 0xa8e7, /*0x20-0x27*/
- 0xa8e8, 0xa8e9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
-};
-static const unsigned short gbk_page32[24] = {
- 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, /*0x20-0x27*/
- 0xa2ed, 0xa2ee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
- 0x0000, 0xa95a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x30-0x37*/
-};
-static const unsigned short gbk_page33[80] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa94a, 0xa94b, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa94c, 0xa94d, 0xa94e, 0x0000, /*0x98-0x9f*/
- 0x0000, 0xa94f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0xa950, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa951, 0x0000, /*0xc8-0xcf*/
- 0x0000, 0xa952, 0xa953, 0x0000, 0x0000, 0xa954, 0x0000, 0x0000, /*0xd0-0xd7*/
-};
-static const unsigned short gbk_page4e[20904] = {
- 0xd2bb, 0xb6a1, 0x8140, 0xc6df, 0x8141, 0x8142, 0x8143, 0xcdf2, /*0x00-0x07*/
- 0xd5c9, 0xc8fd, 0xc9cf, 0xcfc2, 0xd8a2, 0xb2bb, 0xd3eb, 0x8144, /*0x08-0x0f*/
- 0xd8a4, 0xb3f3, 0x8145, 0xd7a8, 0xc7d2, 0xd8a7, 0xcac0, 0x8146, /*0x10-0x17*/
- 0xc7f0, 0xb1fb, 0xd2b5, 0xb4d4, 0xb6ab, 0xcbbf, 0xd8a9, 0x8147, /*0x18-0x1f*/
- 0x8148, 0x8149, 0xb6aa, 0x814a, 0xc1bd, 0xd1cf, 0x814b, 0xc9a5, /*0x20-0x27*/
- 0xd8ad, 0x814c, 0xb8f6, 0xd1be, 0xe3dc, 0xd6d0, 0x814d, 0x814e, /*0x28-0x2f*/
- 0xb7e1, 0x814f, 0xb4ae, 0x8150, 0xc1d9, 0x8151, 0xd8bc, 0x8152, /*0x30-0x37*/
- 0xcde8, 0xb5a4, 0xceaa, 0xd6f7, 0x8153, 0xc0f6, 0xbed9, 0xd8af, /*0x38-0x3f*/
- 0x8154, 0x8155, 0x8156, 0xc4cb, 0x8157, 0xbec3, 0x8158, 0xd8b1, /*0x40-0x47*/
- 0xc3b4, 0xd2e5, 0x8159, 0xd6ae, 0xceda, 0xd5a7, 0xbaf5, 0xb7a6, /*0x48-0x4f*/
- 0xc0d6, 0x815a, 0xc6b9, 0xc5d2, 0xc7c7, 0x815b, 0xb9d4, 0x815c, /*0x50-0x57*/
- 0xb3cb, 0xd2d2, 0x815d, 0x815e, 0xd8bf, 0xbec5, 0xc6f2, 0xd2b2, /*0x58-0x5f*/
- 0xcfb0, 0xcfe7, 0x815f, 0x8160, 0x8161, 0x8162, 0xcae9, 0x8163, /*0x60-0x67*/
- 0x8164, 0xd8c0, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 0x816a, /*0x68-0x6f*/
- 0xc2f2, 0xc2d2, 0x816b, 0xc8e9, 0x816c, 0x816d, 0x816e, 0x816f, /*0x70-0x77*/
- 0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0xc7ac, 0x8176, /*0x78-0x7f*/
- 0x8177, 0x8178, 0x8179, 0x817a, 0x817b, 0x817c, 0xc1cb, 0x817d, /*0x80-0x87*/
- 0xd3e8, 0xd5f9, 0x817e, 0xcac2, 0xb6fe, 0xd8a1, 0xd3da, 0xbff7, /*0x88-0x8f*/
- 0x8180, 0xd4c6, 0xbba5, 0xd8c1, 0xcee5, 0xbeae, 0x8181, 0x8182, /*0x90-0x97*/
- 0xd8a8, 0x8183, 0xd1c7, 0xd0a9, 0x8184, 0x8185, 0x8186, 0xd8bd, /*0x98-0x9f*/
- 0xd9ef, 0xcdf6, 0xbfba, 0x8187, 0xbdbb, 0xbaa5, 0xd2e0, 0xb2fa, /*0xa0-0xa7*/
- 0xbae0, 0xc4b6, 0x8188, 0xcfed, 0xbea9, 0xcda4, 0xc1c1, 0x8189, /*0xa8-0xaf*/
- 0x818a, 0x818b, 0xc7d7, 0xd9f1, 0x818c, 0xd9f4, 0x818d, 0x818e, /*0xb0-0xb7*/
- 0x818f, 0x8190, 0xc8cb, 0xd8e9, 0x8191, 0x8192, 0x8193, 0xd2da, /*0xb8-0xbf*/
- 0xcab2, 0xc8ca, 0xd8ec, 0xd8ea, 0xd8c6, 0xbdf6, 0xc6cd, 0xb3f0, /*0xc0-0xc7*/
- 0x8194, 0xd8eb, 0xbdf1, 0xbde9, 0x8195, 0xc8d4, 0xb4d3, 0x8196, /*0xc8-0xcf*/
- 0x8197, 0xc2d8, 0x8198, 0xb2d6, 0xd7d0, 0xcacb, 0xcbfb, 0xd5cc, /*0xd0-0xd7*/
- 0xb8b6, 0xcfc9, 0x8199, 0x819a, 0x819b, 0xd9da, 0xd8f0, 0xc7aa, /*0xd8-0xdf*/
- 0x819c, 0xd8ee, 0x819d, 0xb4fa, 0xc1ee, 0xd2d4, 0x819e, 0x819f, /*0xe0-0xe7*/
- 0xd8ed, 0x81a0, 0xd2c7, 0xd8ef, 0xc3c7, 0x81a1, 0x81a2, 0x81a3, /*0xe8-0xef*/
- 0xd1f6, 0x81a4, 0xd6d9, 0xd8f2, 0x81a5, 0xd8f5, 0xbcfe, 0xbcdb, /*0xf0-0xf7*/
- 0x81a6, 0x81a7, 0x81a8, 0xc8ce, 0x81a9, 0xb7dd, 0x81aa, 0xb7c2, /*0xf8-0xff*/
- /* 0x4f00 */
- 0x81ab, 0xc6f3, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, /*0x00-0x07*/
- 0x81b2, 0xd8f8, 0xd2c1, 0x81b3, 0x81b4, 0xcee9, 0xbcbf, 0xb7fc, /*0x08-0x0f*/
- 0xb7a5, 0xd0dd, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0xd6da, /*0x10-0x17*/
- 0xd3c5, 0xbbef, 0xbbe1, 0xd8f1, 0x81ba, 0x81bb, 0xc9a1, 0xceb0, /*0x18-0x1f*/
- 0xb4ab, 0x81bc, 0xd8f3, 0x81bd, 0xc9cb, 0xd8f6, 0xc2d7, 0xd8f7, /*0x20-0x27*/
- 0x81be, 0x81bf, 0xceb1, 0xd8f9, 0x81c0, 0x81c1, 0x81c2, 0xb2ae, /*0x28-0x2f*/
- 0xb9c0, 0x81c3, 0xd9a3, 0x81c4, 0xb0e9, 0x81c5, 0xc1e6, 0x81c6, /*0x30-0x37*/
- 0xc9ec, 0x81c7, 0xcbc5, 0x81c8, 0xcbc6, 0xd9a4, 0x81c9, 0x81ca, /*0x38-0x3f*/
- 0x81cb, 0x81cc, 0x81cd, 0xb5e8, 0x81ce, 0x81cf, 0xb5ab, 0x81d0, /*0x40-0x47*/
- 0x81d1, 0x81d2, 0x81d3, 0x81d4, 0x81d5, 0xcebb, 0xb5cd, 0xd7a1, /*0x48-0x4f*/
- 0xd7f4, 0xd3d3, 0x81d6, 0xcce5, 0x81d7, 0xbace, 0x81d8, 0xd9a2, /*0x50-0x57*/
- 0xd9dc, 0xd3e0, 0xd8fd, 0xb7f0, 0xd7f7, 0xd8fe, 0xd8fa, 0xd9a1, /*0x58-0x5f*/
- 0xc4e3, 0x81d9, 0x81da, 0xd3b6, 0xd8f4, 0xd9dd, 0x81db, 0xd8fb, /*0x60-0x67*/
- 0x81dc, 0xc5e5, 0x81dd, 0x81de, 0xc0d0, 0x81df, 0x81e0, 0xd1f0, /*0x68-0x6f*/
- 0xb0db, 0x81e1, 0x81e2, 0xbcd1, 0xd9a6, 0x81e3, 0xd9a5, 0x81e4, /*0x70-0x77*/
- 0x81e5, 0x81e6, 0x81e7, 0xd9ac, 0xd9ae, 0x81e8, 0xd9ab, 0xcab9, /*0x78-0x7f*/
- 0x81e9, 0x81ea, 0x81eb, 0xd9a9, 0xd6b6, 0x81ec, 0x81ed, 0x81ee, /*0x80-0x87*/
- 0xb3de, 0xd9a8, 0x81ef, 0xc0fd, 0x81f0, 0xcacc, 0x81f1, 0xd9aa, /*0x88-0x8f*/
- 0x81f2, 0xd9a7, 0x81f3, 0x81f4, 0xd9b0, 0x81f5, 0x81f6, 0xb6b1, /*0x90-0x97*/
- 0x81f7, 0x81f8, 0x81f9, 0xb9a9, 0x81fa, 0xd2c0, 0x81fb, 0x81fc, /*0x98-0x9f*/
- 0xcfc0, 0x81fd, 0x81fe, 0xc2c2, 0x8240, 0xbdc4, 0xd5ec, 0xb2e0, /*0xa0-0xa7*/
- 0xc7c8, 0xbfeb, 0xd9ad, 0x8241, 0xd9af, 0x8242, 0xceea, 0xbaee, /*0xa8-0xaf*/
- 0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0xc7d6, 0x8248, 0x8249, /*0xb0-0xb7*/
- 0x824a, 0x824b, 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0xb1e3, /*0xb8-0xbf*/
- 0x8251, 0x8252, 0x8253, 0xb4d9, 0xb6ed, 0xd9b4, 0x8254, 0x8255, /*0xc0-0xc7*/
- 0x8256, 0x8257, 0xbfa1, 0x8258, 0x8259, 0x825a, 0xd9de, 0xc7ce, /*0xc8-0xcf*/
- 0xc0fe, 0xd9b8, 0x825b, 0x825c, 0x825d, 0x825e, 0x825f, 0xcbd7, /*0xd0-0xd7*/
- 0xb7fd, 0x8260, 0xd9b5, 0x8261, 0xd9b7, 0xb1a3, 0xd3e1, 0xd9b9, /*0xd8-0xdf*/
- 0x8262, 0xd0c5, 0x8263, 0xd9b6, 0x8264, 0x8265, 0xd9b1, 0x8266, /*0xe0-0xe7*/
- 0xd9b2, 0xc1a9, 0xd9b3, 0x8267, 0x8268, 0xbcf3, 0xd0de, 0xb8a9, /*0xe8-0xef*/
- 0x8269, 0xbee3, 0x826a, 0xd9bd, 0x826b, 0x826c, 0x826d, 0x826e, /*0xf0-0xf7*/
- 0xd9ba, 0x826f, 0xb0b3, 0x8270, 0x8271, 0x8272, 0xd9c2, 0x8273, /*0xf8-0xff*/
- /* 0x5000 */
- 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b, /*0x00-0x07*/
- 0x827c, 0x827d, 0x827e, 0x8280, 0xd9c4, 0xb1b6, 0x8281, 0xd9bf, /*0x08-0x0f*/
- 0x8282, 0x8283, 0xb5b9, 0x8284, 0xbef3, 0x8285, 0x8286, 0x8287, /*0x10-0x17*/
- 0xccc8, 0xbaf2, 0xd2d0, 0x8288, 0xd9c3, 0x8289, 0x828a, 0xbde8, /*0x18-0x1f*/
- 0x828b, 0xb3ab, 0x828c, 0x828d, 0x828e, 0xd9c5, 0xbeeb, 0x828f, /*0x20-0x27*/
- 0xd9c6, 0xd9bb, 0xc4df, 0x8290, 0xd9be, 0xd9c1, 0xd9c0, 0x8291, /*0x28-0x2f*/
- 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, /*0x30-0x37*/
- 0x829a, 0x829b, 0xd5ae, 0x829c, 0xd6b5, 0x829d, 0xc7e3, 0x829e, /*0x38-0x3f*/
- 0x829f, 0x82a0, 0x82a1, 0xd9c8, 0x82a2, 0x82a3, 0x82a4, 0xbcd9, /*0x40-0x47*/
- 0xd9ca, 0x82a5, 0x82a6, 0x82a7, 0xd9bc, 0x82a8, 0xd9cb, 0xc6ab, /*0x48-0x4f*/
- 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0xd9c9, 0x82ae, 0x82af, /*0x50-0x57*/
- 0x82b0, 0x82b1, 0xd7f6, 0x82b2, 0xcda3, 0x82b3, 0x82b4, 0x82b5, /*0x58-0x5f*/
- 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0xbda1, 0x82bb, 0x82bc, /*0x60-0x67*/
- 0x82bd, 0x82be, 0x82bf, 0x82c0, 0xd9cc, 0x82c1, 0x82c2, 0x82c3, /*0x68-0x6f*/
- 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0xc5bc, 0xcdb5, /*0x70-0x77*/
- 0x82ca, 0x82cb, 0x82cc, 0xd9cd, 0x82cd, 0x82ce, 0xd9c7, 0xb3a5, /*0x78-0x7f*/
- 0xbffe, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0xb8b5, 0x82d3, 0x82d4, /*0x80-0x87*/
- 0xc0fc, 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0xb0f8, 0x82d9, 0x82da, /*0x88-0x8f*/
- 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, /*0x90-0x97*/
- 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, /*0x98-0x9f*/
- 0x82eb, 0x82ec, 0x82ed, 0xb4f6, 0x82ee, 0xd9ce, 0x82ef, 0xd9cf, /*0xa0-0xa7*/
- 0xb4a2, 0xd9d0, 0x82f0, 0x82f1, 0xb4df, 0x82f2, 0x82f3, 0x82f4, /*0xa8-0xaf*/
- 0x82f5, 0x82f6, 0xb0c1, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, /*0xb0-0xb7*/
- 0x82fc, 0x82fd, 0xd9d1, 0xc9b5, 0x82fe, 0x8340, 0x8341, 0x8342, /*0xb8-0xbf*/
- 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, /*0xc0-0xc7*/
- 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0xcff1, /*0xc8-0xcf*/
- 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0xd9d2, 0x8358, /*0xd0-0xd7*/
- 0x8359, 0x835a, 0xc1c5, 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, /*0xd8-0xdf*/
- 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0xd9d6, 0xc9ae, /*0xe0-0xe7*/
- 0x8366, 0x8367, 0x8368, 0x8369, 0xd9d5, 0xd9d4, 0xd9d7, 0x836a, /*0xe8-0xef*/
- 0x836b, 0x836c, 0x836d, 0xcbdb, 0x836e, 0xbda9, 0x836f, 0x8370, /*0xf0-0xf7*/
- 0x8371, 0x8372, 0x8373, 0xc6a7, 0x8374, 0x8375, 0x8376, 0x8377, /*0xf8-0xff*/
- /* 0x5100 */
- 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0xd9d3, 0xd9d8, /*0x00-0x07*/
- 0x837e, 0x8380, 0x8381, 0xd9d9, 0x8382, 0x8383, 0x8384, 0x8385, /*0x08-0x0f*/
- 0x8386, 0x8387, 0xc8e5, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, /*0x10-0x17*/
- 0x838d, 0x838e, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, /*0x18-0x1f*/
- 0x8395, 0xc0dc, 0x8396, 0x8397, 0x8398, 0x8399, 0x839a, 0x839b, /*0x20-0x27*/
- 0x839c, 0x839d, 0x839e, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, /*0x28-0x2f*/
- 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, /*0x30-0x37*/
- 0x83ac, 0x83ad, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b2, 0xb6f9, /*0x38-0x3f*/
- 0xd8a3, 0xd4ca, 0x83b3, 0xd4aa, 0xd0d6, 0xb3e4, 0xd5d7, 0x83b4, /*0x40-0x47*/
- 0xcfc8, 0xb9e2, 0x83b5, 0xbfcb, 0x83b6, 0xc3e2, 0x83b7, 0x83b8, /*0x48-0x4f*/
- 0x83b9, 0xb6d2, 0x83ba, 0x83bb, 0xcdc3, 0xd9ee, 0xd9f0, 0x83bc, /*0x50-0x57*/
- 0x83bd, 0x83be, 0xb5b3, 0x83bf, 0xb6b5, 0x83c0, 0x83c1, 0x83c2, /*0x58-0x5f*/
- 0x83c3, 0x83c4, 0xbea4, 0x83c5, 0x83c6, 0xc8eb, 0x83c7, 0x83c8, /*0x60-0x67*/
- 0xc8ab, 0x83c9, 0x83ca, 0xb0cb, 0xb9ab, 0xc1f9, 0xd9e2, 0x83cb, /*0x68-0x6f*/
- 0xc0bc, 0xb9b2, 0x83cc, 0xb9d8, 0xd0cb, 0xb1f8, 0xc6e4, 0xbedf, /*0x70-0x77*/
- 0xb5e4, 0xd7c8, 0x83cd, 0xd1f8, 0xbce6, 0xcade, 0x83ce, 0x83cf, /*0x78-0x7f*/
- 0xbcbd, 0xd9e6, 0xd8e7, 0x83d0, 0x83d1, 0xc4da, 0x83d2, 0x83d3, /*0x80-0x87*/
- 0xb8d4, 0xc8bd, 0x83d4, 0x83d5, 0xb2e1, 0xd4d9, 0x83d6, 0x83d7, /*0x88-0x8f*/
- 0x83d8, 0x83d9, 0xc3b0, 0x83da, 0x83db, 0xc3e1, 0xdaa2, 0xc8df, /*0x90-0x97*/
- 0x83dc, 0xd0b4, 0x83dd, 0xbefc, 0xc5a9, 0x83de, 0x83df, 0x83e0, /*0x98-0x9f*/
- 0xb9da, 0x83e1, 0xdaa3, 0x83e2, 0xd4a9, 0xdaa4, 0x83e3, 0x83e4, /*0xa0-0xa7*/
- 0x83e5, 0x83e6, 0x83e7, 0xd9fb, 0xb6ac, 0x83e8, 0x83e9, 0xb7eb, /*0xa8-0xaf*/
- 0xb1f9, 0xd9fc, 0xb3e5, 0xbef6, 0x83ea, 0xbff6, 0xd2b1, 0xc0e4, /*0xb0-0xb7*/
- 0x83eb, 0x83ec, 0x83ed, 0xb6b3, 0xd9fe, 0xd9fd, 0x83ee, 0x83ef, /*0xb8-0xbf*/
- 0xbebb, 0x83f0, 0x83f1, 0x83f2, 0xc6e0, 0x83f3, 0xd7bc, 0xdaa1, /*0xc0-0xc7*/
- 0x83f4, 0xc1b9, 0x83f5, 0xb5f2, 0xc1e8, 0x83f6, 0x83f7, 0xbcf5, /*0xc8-0xcf*/
- 0x83f8, 0xb4d5, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, /*0xd0-0xd7*/
- 0x8440, 0x8441, 0x8442, 0xc1dd, 0x8443, 0xc4fd, 0x8444, 0x8445, /*0xd8-0xdf*/
- 0xbcb8, 0xb7b2, 0x8446, 0x8447, 0xb7ef, 0x8448, 0x8449, 0x844a, /*0xe0-0xe7*/
- 0x844b, 0x844c, 0x844d, 0xd9ec, 0x844e, 0xc6be, 0x844f, 0xbfad, /*0xe8-0xef*/
- 0xbbcb, 0x8450, 0x8451, 0xb5ca, 0x8452, 0xdbc9, 0xd0d7, 0x8453, /*0xf0-0xf7*/
- 0xcdb9, 0xb0bc, 0xb3f6, 0xbbf7, 0xdbca, 0xbaaf, 0x8454, 0xd4e4, /*0xf8-0xff*/
- /* 0x5200 */
- 0xb5b6, 0xb5f3, 0xd8d6, 0xc8d0, 0x8455, 0x8456, 0xb7d6, 0xc7d0, /*0x00-0x07*/
- 0xd8d7, 0x8457, 0xbfaf, 0x8458, 0x8459, 0xdbbb, 0xd8d8, 0x845a, /*0x08-0x0f*/
- 0x845b, 0xd0cc, 0xbbae, 0x845c, 0x845d, 0x845e, 0xebbe, 0xc1d0, /*0x10-0x17*/
- 0xc1f5, 0xd4f2, 0xb8d5, 0xb4b4, 0x845f, 0xb3f5, 0x8460, 0x8461, /*0x18-0x1f*/
- 0xc9be, 0x8462, 0x8463, 0x8464, 0xc5d0, 0x8465, 0x8466, 0x8467, /*0x20-0x27*/
- 0xc5d9, 0xc0fb, 0x8468, 0xb1f0, 0x8469, 0xd8d9, 0xb9ce, 0x846a, /*0x28-0x2f*/
- 0xb5bd, 0x846b, 0x846c, 0xd8da, 0x846d, 0x846e, 0xd6c6, 0xcba2, /*0x30-0x37*/
- 0xc8af, 0xc9b2, 0xb4cc, 0xbfcc, 0x846f, 0xb9f4, 0x8470, 0xd8db, /*0x38-0x3f*/
- 0xd8dc, 0xb6e7, 0xbcc1, 0xccea, 0x8471, 0x8472, 0x8473, 0x8474, /*0x40-0x47*/
- 0x8475, 0x8476, 0xcff7, 0x8477, 0xd8dd, 0xc7b0, 0x8478, 0x8479, /*0x48-0x4f*/
- 0xb9d0, 0xbda3, 0x847a, 0x847b, 0xccde, 0x847c, 0xc6ca, 0x847d, /*0x50-0x57*/
- 0x847e, 0x8480, 0x8481, 0x8482, 0xd8e0, 0x8483, 0xd8de, 0x8484, /*0x58-0x5f*/
- 0x8485, 0xd8df, 0x8486, 0x8487, 0x8488, 0xb0fe, 0x8489, 0xbee7, /*0x60-0x67*/
- 0x848a, 0xcaa3, 0xbcf4, 0x848b, 0x848c, 0x848d, 0x848e, 0xb8b1, /*0x68-0x6f*/
- 0x848f, 0x8490, 0xb8ee, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, /*0x70-0x77*/
- 0x8496, 0x8497, 0x8498, 0x8499, 0x849a, 0xd8e2, 0x849b, 0xbdcb, /*0x78-0x7f*/
- 0x849c, 0xd8e4, 0xd8e3, 0x849d, 0x849e, 0x849f, 0x84a0, 0x84a1, /*0x80-0x87*/
- 0xc5fc, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, /*0x88-0x8f*/
- 0xd8e5, 0x84a9, 0x84aa, 0xd8e6, 0x84ab, 0x84ac, 0x84ad, 0x84ae, /*0x90-0x97*/
- 0x84af, 0x84b0, 0x84b1, 0xc1a6, 0x84b2, 0xc8b0, 0xb0ec, 0xb9a6, /*0x98-0x9f*/
- 0xbcd3, 0xcef1, 0xdbbd, 0xc1d3, 0x84b3, 0x84b4, 0x84b5, 0x84b6, /*0xa0-0xa7*/
- 0xb6af, 0xd6fa, 0xc5ac, 0xbdd9, 0xdbbe, 0xdbbf, 0x84b7, 0x84b8, /*0xa8-0xaf*/
- 0x84b9, 0xc0f8, 0xbea2, 0xc0cd, 0x84ba, 0x84bb, 0x84bc, 0x84bd, /*0xb0-0xb7*/
- 0x84be, 0x84bf, 0x84c0, 0x84c1, 0x84c2, 0x84c3, 0xdbc0, 0xcac6, /*0xb8-0xbf*/
- 0x84c4, 0x84c5, 0x84c6, 0xb2aa, 0x84c7, 0x84c8, 0x84c9, 0xd3c2, /*0xc0-0xc7*/
- 0x84ca, 0xc3e3, 0x84cb, 0xd1ab, 0x84cc, 0x84cd, 0x84ce, 0x84cf, /*0xc8-0xcf*/
- 0xdbc2, 0x84d0, 0xc0d5, 0x84d1, 0x84d2, 0x84d3, 0xdbc3, 0x84d4, /*0xd0-0xd7*/
- 0xbfb1, 0x84d5, 0x84d6, 0x84d7, 0x84d8, 0x84d9, 0x84da, 0xc4bc, /*0xd8-0xdf*/
- 0x84db, 0x84dc, 0x84dd, 0x84de, 0xc7da, 0x84df, 0x84e0, 0x84e1, /*0xe0-0xe7*/
- 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, /*0xe8-0xef*/
- 0xdbc4, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, /*0xf0-0xf7*/
- 0x84f1, 0xd9e8, 0xc9d7, 0x84f2, 0x84f3, 0x84f4, 0xb9b4, 0xcef0, /*0xf8-0xff*/
- /* 0x5300 */
- 0xd4c8, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0xb0fc, 0xb4d2, 0x84f9, /*0x00-0x07*/
- 0xd0d9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0xd9e9, 0x84fe, 0xdecb, /*0x08-0x0f*/
- 0xd9eb, 0x8540, 0x8541, 0x8542, 0x8543, 0xd8b0, 0xbbaf, 0xb1b1, /*0x10-0x17*/
- 0x8544, 0xb3d7, 0xd8ce, 0x8545, 0x8546, 0xd4d1, 0x8547, 0x8548, /*0x18-0x1f*/
- 0xbdb3, 0xbfef, 0x8549, 0xcfbb, 0x854a, 0x854b, 0xd8d0, 0x854c, /*0x20-0x27*/
- 0x854d, 0x854e, 0xb7cb, 0x854f, 0x8550, 0x8551, 0xd8d1, 0x8552, /*0x28-0x2f*/
- 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, 0x855a, /*0x30-0x37*/
- 0x855b, 0xc6a5, 0xc7f8, 0xd2bd, 0x855c, 0x855d, 0xd8d2, 0xc4e4, /*0x38-0x3f*/
- 0x855e, 0xcaae, 0x855f, 0xc7a7, 0x8560, 0xd8a6, 0x8561, 0xc9fd, /*0x40-0x47*/
- 0xcee7, 0xbbdc, 0xb0eb, 0x8562, 0x8563, 0x8564, 0xbbaa, 0xd0ad, /*0x48-0x4f*/
- 0x8565, 0xb1b0, 0xd7e4, 0xd7bf, 0x8566, 0xb5a5, 0xc2f4, 0xc4cf, /*0x50-0x57*/
- 0x8567, 0x8568, 0xb2a9, 0x8569, 0xb2b7, 0x856a, 0xb1e5, 0xdfb2, /*0x58-0x5f*/
- 0xd5bc, 0xbfa8, 0xc2ac, 0xd8d5, 0xc2b1, 0x856b, 0xd8d4, 0xced4, /*0x60-0x67*/
- 0x856c, 0xdae0, 0x856d, 0xcec0, 0x856e, 0x856f, 0xd8b4, 0xc3ae, /*0x68-0x6f*/
- 0xd3a1, 0xcea3, 0x8570, 0xbcb4, 0xc8b4, 0xc2d1, 0x8571, 0xbeed, /*0x70-0x77*/
- 0xd0b6, 0x8572, 0xdae1, 0x8573, 0x8574, 0x8575, 0x8576, 0xc7e4, /*0x78-0x7f*/
- 0x8577, 0x8578, 0xb3a7, 0x8579, 0xb6f2, 0xccfc, 0xc0fa, 0x857a, /*0x80-0x87*/
- 0x857b, 0xc0f7, 0x857c, 0xd1b9, 0xd1e1, 0xd8c7, 0x857d, 0x857e, /*0x88-0x8f*/
- 0x8580, 0x8581, 0x8582, 0x8583, 0x8584, 0xb2de, 0x8585, 0x8586, /*0x90-0x97*/
- 0xc0e5, 0x8587, 0xbaf1, 0x8588, 0x8589, 0xd8c8, 0x858a, 0xd4ad, /*0x98-0x9f*/
- 0x858b, 0x858c, 0xcfe1, 0xd8c9, 0x858d, 0xd8ca, 0xcfc3, 0x858e, /*0xa0-0xa7*/
- 0xb3f8, 0xbec7, 0x858f, 0x8590, 0x8591, 0x8592, 0xd8cb, 0x8593, /*0xa8-0xaf*/
- 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0xdbcc, 0x859a, /*0xb0-0xb7*/
- 0x859b, 0x859c, 0x859d, 0xc8a5, 0x859e, 0x859f, 0x85a0, 0xcfd8, /*0xb8-0xbf*/
- 0x85a1, 0xc8fe, 0xb2ce, 0x85a2, 0x85a3, 0x85a4, 0x85a5, 0x85a6, /*0xc0-0xc7*/
- 0xd3d6, 0xb2e6, 0xbcb0, 0xd3d1, 0xcbab, 0xb7b4, 0x85a7, 0x85a8, /*0xc8-0xcf*/
- 0x85a9, 0xb7a2, 0x85aa, 0x85ab, 0xcae5, 0x85ac, 0xc8a1, 0xcadc, /*0xd0-0xd7*/
- 0xb1e4, 0xd0f0, 0x85ad, 0xc5d1, 0x85ae, 0x85af, 0x85b0, 0xdbc5, /*0xd8-0xdf*/
- 0xb5fe, 0x85b1, 0x85b2, 0xbfda, 0xb9c5, 0xbee4, 0xc1ed, 0x85b3, /*0xe0-0xe7*/
- 0xdfb6, 0xdfb5, 0xd6bb, 0xbdd0, 0xd5d9, 0xb0c8, 0xb6a3, 0xbfc9, /*0xe8-0xef*/
- 0xcca8, 0xdfb3, 0xcab7, 0xd3d2, 0x85b4, 0xd8cf, 0xd2b6, 0xbac5, /*0xf0-0xf7*/
- 0xcbbe, 0xccbe, 0x85b5, 0xdfb7, 0xb5f0, 0xdfb4, 0x85b6, 0x85b7, /*0xf8-0xff*/
- /* 0x5400 */
- 0x85b8, 0xd3f5, 0x85b9, 0xb3d4, 0xb8f7, 0x85ba, 0xdfba, 0x85bb, /*0x00-0x07*/
- 0xbacf, 0xbcaa, 0xb5f5, 0x85bc, 0xcdac, 0xc3fb, 0xbaf3, 0xc0f4, /*0x08-0x0f*/
- 0xcdc2, 0xcff2, 0xdfb8, 0xcfc5, 0x85bd, 0xc2c0, 0xdfb9, 0xc2f0, /*0x10-0x17*/
- 0x85be, 0x85bf, 0x85c0, 0xbefd, 0x85c1, 0xc1df, 0xcdcc, 0xd2f7, /*0x18-0x1f*/
- 0xb7cd, 0xdfc1, 0x85c2, 0xdfc4, 0x85c3, 0x85c4, 0xb7f1, 0xb0c9, /*0x20-0x27*/
- 0xb6d6, 0xb7d4, 0x85c5, 0xbaac, 0xccfd, 0xbfd4, 0xcbb1, 0xc6f4, /*0x28-0x2f*/
- 0x85c6, 0xd6a8, 0xdfc5, 0x85c7, 0xcee2, 0xb3b3, 0x85c8, 0x85c9, /*0x30-0x37*/
- 0xcefc, 0xb4b5, 0x85ca, 0xcec7, 0xbaf0, 0x85cb, 0xcee1, 0x85cc, /*0x38-0x3f*/
- 0xd1bd, 0x85cd, 0x85ce, 0xdfc0, 0x85cf, 0x85d0, 0xb4f4, 0x85d1, /*0x40-0x47*/
- 0xb3ca, 0x85d2, 0xb8e6, 0xdfbb, 0x85d3, 0x85d4, 0x85d5, 0x85d6, /*0x48-0x4f*/
- 0xc4c5, 0x85d7, 0xdfbc, 0xdfbd, 0xdfbe, 0xc5bb, 0xdfbf, 0xdfc2, /*0x50-0x57*/
- 0xd4b1, 0xdfc3, 0x85d8, 0xc7ba, 0xced8, 0x85d9, 0x85da, 0x85db, /*0x58-0x5f*/
- 0x85dc, 0x85dd, 0xc4d8, 0x85de, 0xdfca, 0x85df, 0xdfcf, 0x85e0, /*0x60-0x67*/
- 0xd6dc, 0x85e1, 0x85e2, 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, /*0x68-0x6f*/
- 0x85e8, 0xdfc9, 0xdfda, 0xceb6, 0x85e9, 0xbac7, 0xdfce, 0xdfc8, /*0x70-0x77*/
- 0xc5de, 0x85ea, 0x85eb, 0xc9eb, 0xbaf4, 0xc3fc, 0x85ec, 0x85ed, /*0x78-0x7f*/
- 0xbed7, 0x85ee, 0xdfc6, 0x85ef, 0xdfcd, 0x85f0, 0xc5d8, 0x85f1, /*0x80-0x87*/
- 0x85f2, 0x85f3, 0x85f4, 0xd5a6, 0xbacd, 0x85f5, 0xbecc, 0xd3bd, /*0x88-0x8f*/
- 0xb8c0, 0x85f6, 0xd6e4, 0x85f7, 0xdfc7, 0xb9be, 0xbfa7, 0x85f8, /*0x90-0x97*/
- 0x85f9, 0xc1fc, 0xdfcb, 0xdfcc, 0x85fa, 0xdfd0, 0x85fb, 0x85fc, /*0x98-0x9f*/
- 0x85fd, 0x85fe, 0x8640, 0xdfdb, 0xdfe5, 0x8641, 0xdfd7, 0xdfd6, /*0xa0-0xa7*/
- 0xd7c9, 0xdfe3, 0xdfe4, 0xe5eb, 0xd2a7, 0xdfd2, 0x8642, 0xbfa9, /*0xa8-0xaf*/
- 0x8643, 0xd4db, 0x8644, 0xbfc8, 0xdfd4, 0x8645, 0x8646, 0x8647, /*0xb0-0xb7*/
- 0xcfcc, 0x8648, 0x8649, 0xdfdd, 0x864a, 0xd1ca, 0x864b, 0xdfde, /*0xb8-0xbf*/
- 0xb0a7, 0xc6b7, 0xdfd3, 0x864c, 0xbae5, 0x864d, 0xb6df, 0xcddb, /*0xc0-0xc7*/
- 0xb9fe, 0xd4d5, 0x864e, 0x864f, 0xdfdf, 0xcfec, 0xb0a5, 0xdfe7, /*0xc8-0xcf*/
- 0xdfd1, 0xd1c6, 0xdfd5, 0xdfd8, 0xdfd9, 0xdfdc, 0x8650, 0xbba9, /*0xd0-0xd7*/
- 0x8651, 0xdfe0, 0xdfe1, 0x8652, 0xdfe2, 0xdfe6, 0xdfe8, 0xd3b4, /*0xd8-0xdf*/
- 0x8653, 0x8654, 0x8655, 0x8656, 0x8657, 0xb8e7, 0xc5b6, 0xdfea, /*0xe0-0xe7*/
- 0xc9da, 0xc1a8, 0xc4c4, 0x8658, 0x8659, 0xbfde, 0xcff8, 0x865a, /*0xe8-0xef*/
- 0x865b, 0x865c, 0xd5dc, 0xdfee, 0x865d, 0x865e, 0x865f, 0x8660, /*0xf0-0xf7*/
- 0x8661, 0x8662, 0xb2b8, 0x8663, 0xbadf, 0xdfec, 0x8664, 0xdbc1, /*0xf8-0xff*/
- /* 0x5500 */
- 0x8665, 0xd1e4, 0x8666, 0x8667, 0x8668, 0x8669, 0xcbf4, 0xb4bd, /*0x00-0x07*/
- 0x866a, 0xb0a6, 0x866b, 0x866c, 0x866d, 0x866e, 0x866f, 0xdff1, /*0x08-0x0f*/
- 0xccc6, 0xdff2, 0x8670, 0x8671, 0xdfed, 0x8672, 0x8673, 0x8674, /*0x10-0x17*/
- 0x8675, 0x8676, 0x8677, 0xdfe9, 0x8678, 0x8679, 0x867a, 0x867b, /*0x18-0x1f*/
- 0xdfeb, 0x867c, 0xdfef, 0xdff0, 0xbbbd, 0x867d, 0x867e, 0xdff3, /*0x20-0x27*/
- 0x8680, 0x8681, 0xdff4, 0x8682, 0xbba3, 0x8683, 0xcadb, 0xcea8, /*0x28-0x2f*/
- 0xe0a7, 0xb3aa, 0x8684, 0xe0a6, 0x8685, 0x8686, 0x8687, 0xe0a1, /*0x30-0x37*/
- 0x8688, 0x8689, 0x868a, 0x868b, 0xdffe, 0x868c, 0xcdd9, 0xdffc, /*0x38-0x3f*/
- 0x868d, 0xdffa, 0x868e, 0xbfd0, 0xd7c4, 0x868f, 0xc9cc, 0x8690, /*0x40-0x47*/
- 0x8691, 0xdff8, 0xb0a1, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, /*0x48-0x4f*/
- 0xdffd, 0x8697, 0x8698, 0x8699, 0x869a, 0xdffb, 0xe0a2, 0x869b, /*0x50-0x57*/
- 0x869c, 0x869d, 0x869e, 0x869f, 0xe0a8, 0x86a0, 0x86a1, 0x86a2, /*0x58-0x5f*/
- 0x86a3, 0xb7c8, 0x86a4, 0x86a5, 0xc6a1, 0xc9b6, 0xc0b2, 0xdff5, /*0x60-0x67*/
- 0x86a6, 0x86a7, 0xc5be, 0x86a8, 0xd8c4, 0xdff9, 0xc4f6, 0x86a9, /*0x68-0x6f*/
- 0x86aa, 0x86ab, 0x86ac, 0x86ad, 0x86ae, 0xe0a3, 0xe0a4, 0xe0a5, /*0x70-0x77*/
- 0xd0a5, 0x86af, 0x86b0, 0xe0b4, 0xcce4, 0x86b1, 0xe0b1, 0x86b2, /*0x78-0x7f*/
- 0xbfa6, 0xe0af, 0xceb9, 0xe0ab, 0xc9c6, 0x86b3, 0x86b4, 0xc0ae, /*0x80-0x87*/
- 0xe0ae, 0xbaed, 0xbab0, 0xe0a9, 0x86b5, 0x86b6, 0x86b7, 0xdff6, /*0x88-0x8f*/
- 0x86b8, 0xe0b3, 0x86b9, 0x86ba, 0xe0b8, 0x86bb, 0x86bc, 0x86bd, /*0x90-0x97*/
- 0xb4ad, 0xe0b9, 0x86be, 0x86bf, 0xcfb2, 0xbac8, 0x86c0, 0xe0b0, /*0x98-0x9f*/
- 0x86c1, 0x86c2, 0x86c3, 0x86c4, 0x86c5, 0x86c6, 0x86c7, 0xd0fa, /*0xa0-0xa7*/
- 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc, 0x86cd, 0x86ce, 0x86cf, /*0xa8-0xaf*/
- 0x86d0, 0xe0ac, 0x86d1, 0xd4fb, 0x86d2, 0xdff7, 0x86d3, 0xc5e7, /*0xb0-0xb7*/
- 0x86d4, 0xe0ad, 0x86d5, 0xd3f7, 0x86d6, 0xe0b6, 0xe0b7, 0x86d7, /*0xb8-0xbf*/
- 0x86d8, 0x86d9, 0x86da, 0x86db, 0xe0c4, 0xd0e1, 0x86dc, 0x86dd, /*0xc0-0xc7*/
- 0x86de, 0xe0bc, 0x86df, 0x86e0, 0xe0c9, 0xe0ca, 0x86e1, 0x86e2, /*0xc8-0xcf*/
- 0x86e3, 0xe0be, 0xe0aa, 0xc9a4, 0xe0c1, 0x86e4, 0xe0b2, 0x86e5, /*0xd0-0xd7*/
- 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0xcac8, 0xe0c3, 0x86ea, 0xe0b5, /*0xd8-0xdf*/
- 0x86eb, 0xcecb, 0x86ec, 0xcbc3, 0xe0cd, 0xe0c6, 0xe0c2, 0x86ed, /*0xe0-0xe7*/
- 0xe0cb, 0x86ee, 0xe0ba, 0xe0bf, 0xe0c0, 0x86ef, 0x86f0, 0xe0c5, /*0xe8-0xef*/
- 0x86f1, 0x86f2, 0xe0c7, 0xe0c8, 0x86f3, 0xe0cc, 0x86f4, 0xe0bb, /*0xf0-0xf7*/
- 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0xcbd4, 0xe0d5, 0x86fa, /*0xf8-0xff*/
- /* 0x5600 */
- 0xe0d6, 0xe0d2, 0x86fb, 0x86fc, 0x86fd, 0x86fe, 0x8740, 0x8741, /*0x00-0x07*/
- 0xe0d0, 0xbcce, 0x8742, 0x8743, 0xe0d1, 0x8744, 0xb8c2, 0xd8c5, /*0x08-0x0f*/
- 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, /*0x10-0x17*/
- 0xd0ea, 0x874d, 0x874e, 0xc2ef, 0x874f, 0x8750, 0xe0cf, 0xe0bd, /*0x18-0x1f*/
- 0x8751, 0x8752, 0x8753, 0xe0d4, 0xe0d3, 0x8754, 0x8755, 0xe0d7, /*0x20-0x27*/
- 0x8756, 0x8757, 0x8758, 0x8759, 0xe0dc, 0xe0d8, 0x875a, 0x875b, /*0x28-0x2f*/
- 0x875c, 0xd6f6, 0xb3b0, 0x875d, 0xd7ec, 0x875e, 0xcbbb, 0x875f, /*0x30-0x37*/
- 0x8760, 0xe0da, 0x8761, 0xcefb, 0x8762, 0x8763, 0x8764, 0xbad9, /*0x38-0x3f*/
- 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, /*0x40-0x47*/
- 0x876d, 0x876e, 0x876f, 0x8770, 0xe0e1, 0xe0dd, 0xd2ad, 0x8771, /*0x48-0x4f*/
- 0x8772, 0x8773, 0x8774, 0x8775, 0xe0e2, 0x8776, 0x8777, 0xe0db, /*0x50-0x57*/
- 0xe0d9, 0xe0df, 0x8778, 0x8779, 0xe0e0, 0x877a, 0x877b, 0x877c, /*0x58-0x5f*/
- 0x877d, 0x877e, 0xe0de, 0x8780, 0xe0e4, 0x8781, 0x8782, 0x8783, /*0x60-0x67*/
- 0xc6f7, 0xd8ac, 0xd4eb, 0xe0e6, 0xcac9, 0x8784, 0x8785, 0x8786, /*0x68-0x6f*/
- 0x8787, 0xe0e5, 0x8788, 0x8789, 0x878a, 0x878b, 0xb8c1, 0x878c, /*0x70-0x77*/
- 0x878d, 0x878e, 0x878f, 0xe0e7, 0xe0e8, 0x8790, 0x8791, 0x8792, /*0x78-0x7f*/
- 0x8793, 0x8794, 0x8795, 0x8796, 0x8797, 0xe0e9, 0xe0e3, 0x8798, /*0x80-0x87*/
- 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e, 0xbabf, 0xcce7, /*0x88-0x8f*/
- 0x879f, 0x87a0, 0x87a1, 0xe0ea, 0x87a2, 0x87a3, 0x87a4, 0x87a5, /*0x90-0x97*/
- 0x87a6, 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, /*0x98-0x9f*/
- 0x87ae, 0x87af, 0x87b0, 0xcff9, 0x87b1, 0x87b2, 0x87b3, 0x87b4, /*0xa0-0xa7*/
- 0x87b5, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0xe0eb, /*0xa8-0xaf*/
- 0x87bc, 0x87bd, 0x87be, 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0xc8c2, /*0xb0-0xb7*/
- 0x87c3, 0x87c4, 0x87c5, 0x87c6, 0xbdc0, 0x87c7, 0x87c8, 0x87c9, /*0xb8-0xbf*/
- 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d1, /*0xc0-0xc7*/
- 0x87d2, 0x87d3, 0xc4d2, 0x87d4, 0x87d5, 0x87d6, 0x87d7, 0x87d8, /*0xc8-0xcf*/
- 0x87d9, 0x87da, 0x87db, 0x87dc, 0xe0ec, 0x87dd, 0x87de, 0xe0ed, /*0xd0-0xd7*/
- 0x87df, 0x87e0, 0xc7f4, 0xcbc4, 0x87e1, 0xe0ee, 0xbbd8, 0xd8b6, /*0xd8-0xdf*/
- 0xd2f2, 0xe0ef, 0xcdc5, 0x87e2, 0xb6da, 0x87e3, 0x87e4, 0x87e5, /*0xe0-0xe7*/
- 0x87e6, 0x87e7, 0x87e8, 0xe0f1, 0x87e9, 0xd4b0, 0x87ea, 0x87eb, /*0xe8-0xef*/
- 0xc0a7, 0xb4d1, 0x87ec, 0x87ed, 0xcea7, 0xe0f0, 0x87ee, 0x87ef, /*0xf0-0xf7*/
- 0x87f0, 0xe0f2, 0xb9cc, 0x87f1, 0x87f2, 0xb9fa, 0xcdbc, 0xe0f3, /*0xf8-0xff*/
- /* 0x5700 */
- 0x87f3, 0x87f4, 0x87f5, 0xc6d4, 0xe0f4, 0x87f6, 0xd4b2, 0x87f7, /*0x00-0x07*/
- 0xc8a6, 0xe0f6, 0xe0f5, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, /*0x08-0x0f*/
- 0x87fd, 0x87fe, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, /*0x10-0x17*/
- 0x8846, 0x8847, 0x8848, 0x8849, 0xe0f7, 0x884a, 0x884b, 0xcdc1, /*0x18-0x1f*/
- 0x884c, 0x884d, 0x884e, 0xcaa5, 0x884f, 0x8850, 0x8851, 0x8852, /*0x20-0x27*/
- 0xd4da, 0xdbd7, 0xdbd9, 0x8853, 0xdbd8, 0xb9e7, 0xdbdc, 0xdbdd, /*0x28-0x2f*/
- 0xb5d8, 0x8854, 0x8855, 0xdbda, 0x8856, 0x8857, 0x8858, 0x8859, /*0x30-0x37*/
- 0x885a, 0xdbdb, 0xb3a1, 0xdbdf, 0x885b, 0x885c, 0xbbf8, 0x885d, /*0x38-0x3f*/
- 0xd6b7, 0x885e, 0xdbe0, 0x885f, 0x8860, 0x8861, 0x8862, 0xbef9, /*0x40-0x47*/
- 0x8863, 0x8864, 0xb7bb, 0x8865, 0xdbd0, 0xccae, 0xbfb2, 0xbbb5, /*0x48-0x4f*/
- 0xd7f8, 0xbfd3, 0x8866, 0x8867, 0x8868, 0x8869, 0x886a, 0xbfe9, /*0x50-0x57*/
- 0x886b, 0x886c, 0xbce1, 0xccb3, 0xdbde, 0xb0d3, 0xceeb, 0xb7d8, /*0x58-0x5f*/
- 0xd7b9, 0xc6c2, 0x886d, 0x886e, 0xc0a4, 0x886f, 0xccb9, 0x8870, /*0x60-0x67*/
- 0xdbe7, 0xdbe1, 0xc6ba, 0xdbe3, 0x8871, 0xdbe8, 0x8872, 0xc5f7, /*0x68-0x6f*/
- 0x8873, 0x8874, 0x8875, 0xdbea, 0x8876, 0x8877, 0xdbe9, 0xbfc0, /*0x70-0x77*/
- 0x8878, 0x8879, 0x887a, 0xdbe6, 0xdbe5, 0x887b, 0x887c, 0x887d, /*0x78-0x7f*/
- 0x887e, 0x8880, 0xb4b9, 0xc0ac, 0xc2a2, 0xdbe2, 0xdbe4, 0x8881, /*0x80-0x87*/
- 0x8882, 0x8883, 0x8884, 0xd0cd, 0xdbed, 0x8885, 0x8886, 0x8887, /*0x88-0x8f*/
- 0x8888, 0x8889, 0xc0dd, 0xdbf2, 0x888a, 0x888b, 0x888c, 0x888d, /*0x90-0x97*/
- 0x888e, 0x888f, 0x8890, 0xb6e2, 0x8891, 0x8892, 0x8893, 0x8894, /*0x98-0x9f*/
- 0xdbf3, 0xdbd2, 0xb9b8, 0xd4ab, 0xdbec, 0x8895, 0xbfd1, 0xdbf0, /*0xa0-0xa7*/
- 0x8896, 0xdbd1, 0x8897, 0xb5e6, 0x8898, 0xdbeb, 0xbfe5, 0x8899, /*0xa8-0xaf*/
- 0x889a, 0x889b, 0xdbee, 0x889c, 0xdbf1, 0x889d, 0x889e, 0x889f, /*0xb0-0xb7*/
- 0xdbf9, 0x88a0, 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, /*0xb8-0xbf*/
- 0x88a7, 0x88a8, 0xb9a1, 0xb0a3, 0x88a9, 0x88aa, 0x88ab, 0x88ac, /*0xc0-0xc7*/
- 0x88ad, 0x88ae, 0x88af, 0xc2f1, 0x88b0, 0x88b1, 0xb3c7, 0xdbef, /*0xc8-0xcf*/
- 0x88b2, 0x88b3, 0xdbf8, 0x88b4, 0xc6d2, 0xdbf4, 0x88b5, 0x88b6, /*0xd0-0xd7*/
- 0xdbf5, 0xdbf7, 0xdbf6, 0x88b7, 0x88b8, 0xdbfe, 0x88b9, 0xd3f2, /*0xd8-0xdf*/
- 0xb2ba, 0x88ba, 0x88bb, 0x88bc, 0xdbfd, 0x88bd, 0x88be, 0x88bf, /*0xe0-0xe7*/
- 0x88c0, 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0xdca4, 0x88c5, 0xdbfb, /*0xe8-0xef*/
- 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0xdbfa, 0x88ca, 0x88cb, 0x88cc, /*0xf0-0xf7*/
- 0xdbfc, 0xc5e0, 0xbbf9, 0x88cd, 0x88ce, 0xdca3, 0x88cf, 0x88d0, /*0xf8-0xff*/
- /* 0x5800 */
- 0xdca5, 0x88d1, 0xccc3, 0x88d2, 0x88d3, 0x88d4, 0xb6d1, 0xddc0, /*0x00-0x07*/
- 0x88d5, 0x88d6, 0x88d7, 0xdca1, 0x88d8, 0xdca2, 0x88d9, 0x88da, /*0x08-0x0f*/
- 0x88db, 0xc7b5, 0x88dc, 0x88dd, 0x88de, 0xb6e9, 0x88df, 0x88e0, /*0x10-0x17*/
- 0x88e1, 0xdca7, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0xdca6, 0x88e6, /*0x18-0x1f*/
- 0xdca9, 0xb1a4, 0x88e7, 0x88e8, 0xb5cc, 0x88e9, 0x88ea, 0x88eb, /*0x20-0x27*/
- 0x88ec, 0x88ed, 0xbfb0, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f2, /*0x28-0x2f*/
- 0xd1df, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0xb6c2, 0x88f7, 0x88f8, /*0x30-0x37*/
- 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941, /*0x38-0x3f*/
- 0x8942, 0x8943, 0x8944, 0x8945, 0xdca8, 0x8946, 0x8947, 0x8948, /*0x40-0x47*/
- 0x8949, 0x894a, 0x894b, 0x894c, 0xcbfa, 0xebf3, 0x894d, 0x894e, /*0x48-0x4f*/
- 0x894f, 0xcbdc, 0x8950, 0x8951, 0xcbfe, 0x8952, 0x8953, 0x8954, /*0x50-0x57*/
- 0xccc1, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0xc8fb, 0x895a, /*0x58-0x5f*/
- 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0xdcaa, 0x8960, 0x8961, /*0x60-0x67*/
- 0x8962, 0x8963, 0x8964, 0xccee, 0xdcab, 0x8965, 0x8966, 0x8967, /*0x68-0x6f*/
- 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, /*0x70-0x77*/
- 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0xdbd3, 0x8976, /*0x78-0x7f*/
- 0xdcaf, 0xdcac, 0x8977, 0xbeb3, 0x8978, 0xcafb, 0x8979, 0x897a, /*0x80-0x87*/
- 0x897b, 0xdcad, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982, /*0x88-0x8f*/
- 0x8983, 0x8984, 0xc9ca, 0xc4b9, 0x8985, 0x8986, 0x8987, 0x8988, /*0x90-0x97*/
- 0x8989, 0xc7bd, 0xdcae, 0x898a, 0x898b, 0x898c, 0xd4f6, 0xd0e6, /*0x98-0x9f*/
- 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, /*0xa0-0xa7*/
- 0xc4ab, 0xb6d5, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, /*0xa8-0xaf*/
- 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2, /*0xb0-0xb7*/
- 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0xdbd4, 0x89a7, 0x89a8, 0x89a9, /*0xb8-0xbf*/
- 0x89aa, 0xb1da, 0x89ab, 0x89ac, 0x89ad, 0xdbd5, 0x89ae, 0x89af, /*0xc0-0xc7*/
- 0x89b0, 0x89b1, 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, /*0xc8-0xcf*/
- 0x89b8, 0xdbd6, 0x89b9, 0x89ba, 0x89bb, 0xbabe, 0x89bc, 0x89bd, /*0xd0-0xd7*/
- 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2, 0x89c3, 0x89c4, 0x89c5, /*0xd8-0xdf*/
- 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0xc8c0, 0x89ca, 0x89cb, 0x89cc, /*0xe0-0xe7*/
- 0x89cd, 0x89ce, 0x89cf, 0xcabf, 0xc8c9, 0x89d0, 0xd7b3, 0x89d1, /*0xe8-0xef*/
- 0xc9f9, 0x89d2, 0x89d3, 0xbfc7, 0x89d4, 0x89d5, 0xbaf8, 0x89d6, /*0xf0-0xf7*/
- 0x89d7, 0xd2bc, 0x89d8, 0x89d9, 0x89da, 0x89db, 0x89dc, 0x89dd, /*0xf8-0xff*/
- /* 0x5900 */
- 0x89de, 0x89df, 0xe2ba, 0x89e0, 0xb4a6, 0x89e1, 0x89e2, 0xb1b8, /*0x00-0x07*/
- 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0xb8b4, 0x89e8, 0xcfc4, /*0x08-0x0f*/
- 0x89e9, 0x89ea, 0x89eb, 0x89ec, 0xd9e7, 0xcfa6, 0xcde2, 0x89ed, /*0x10-0x17*/
- 0x89ee, 0xd9ed, 0xb6e0, 0x89ef, 0xd2b9, 0x89f0, 0x89f1, 0xb9bb, /*0x18-0x1f*/
- 0x89f2, 0x89f3, 0x89f4, 0x89f5, 0xe2b9, 0xe2b7, 0x89f6, 0xb4f3, /*0x20-0x27*/
- 0x89f7, 0xccec, 0xccab, 0xb7f2, 0x89f8, 0xd8b2, 0xd1eb, 0xbabb, /*0x28-0x2f*/
- 0x89f9, 0xcaa7, 0x89fa, 0x89fb, 0xcdb7, 0x89fc, 0x89fd, 0xd2c4, /*0x30-0x37*/
- 0xbfe4, 0xbcd0, 0xb6e1, 0x89fe, 0xdec5, 0x8a40, 0x8a41, 0x8a42, /*0x38-0x3f*/
- 0x8a43, 0xdec6, 0xdbbc, 0x8a44, 0xd1d9, 0x8a45, 0x8a46, 0xc6e6, /*0x40-0x47*/
- 0xc4ce, 0xb7ee, 0x8a47, 0xb7dc, 0x8a48, 0x8a49, 0xbffc, 0xd7e0, /*0x48-0x4f*/
- 0x8a4a, 0xc6f5, 0x8a4b, 0x8a4c, 0xb1bc, 0xdec8, 0xbdb1, 0xccd7, /*0x50-0x57*/
- 0xdeca, 0x8a4d, 0xdec9, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, /*0x58-0x5f*/
- 0xb5ec, 0x8a53, 0xc9dd, 0x8a54, 0x8a55, 0xb0c2, 0x8a56, 0x8a57, /*0x60-0x67*/
- 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, /*0x68-0x6f*/
- 0x8a60, 0x8a61, 0x8a62, 0xc5ae, 0xc5ab, 0x8a63, 0xc4cc, 0x8a64, /*0x70-0x77*/
- 0xbce9, 0xcbfd, 0x8a65, 0x8a66, 0x8a67, 0xbac3, 0x8a68, 0x8a69, /*0x78-0x7f*/
- 0x8a6a, 0xe5f9, 0xc8e7, 0xe5fa, 0xcdfd, 0x8a6b, 0xd7b1, 0xb8be, /*0x80-0x87*/
- 0xc2e8, 0x8a6c, 0xc8d1, 0x8a6d, 0x8a6e, 0xe5fb, 0x8a6f, 0x8a70, /*0x88-0x8f*/
- 0x8a71, 0x8a72, 0xb6ca, 0xbccb, 0x8a73, 0x8a74, 0xd1fd, 0xe6a1, /*0x90-0x97*/
- 0x8a75, 0xc3ee, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0xe6a4, 0x8a7a, /*0x98-0x9f*/
- 0x8a7b, 0x8a7c, 0x8a7d, 0xe5fe, 0xe6a5, 0xcdd7, 0x8a7e, 0x8a80, /*0xa0-0xa7*/
- 0xb7c1, 0xe5fc, 0xe5fd, 0xe6a3, 0x8a81, 0x8a82, 0xc4dd, 0xe6a8, /*0xa8-0xaf*/
- 0x8a83, 0x8a84, 0xe6a7, 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, /*0xb0-0xb7*/
- 0x8a8a, 0xc3c3, 0x8a8b, 0xc6de, 0x8a8c, 0x8a8d, 0xe6aa, 0x8a8e, /*0xb8-0xbf*/
- 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, 0xc4b7, 0x8a95, /*0xc0-0xc7*/
- 0x8a96, 0x8a97, 0xe6a2, 0xcabc, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, /*0xc8-0xcf*/
- 0xbde3, 0xb9c3, 0xe6a6, 0xd0d5, 0xceaf, 0x8a9c, 0x8a9d, 0xe6a9, /*0xd0-0xd7*/
- 0xe6b0, 0x8a9e, 0xd2a6, 0x8a9f, 0xbdaa, 0xe6ad, 0x8aa0, 0x8aa1, /*0xd8-0xdf*/
- 0x8aa2, 0x8aa3, 0x8aa4, 0xe6af, 0x8aa5, 0xc0d1, 0x8aa6, 0x8aa7, /*0xe0-0xe7*/
- 0xd2cc, 0x8aa8, 0x8aa9, 0x8aaa, 0xbca7, 0x8aab, 0x8aac, 0x8aad, /*0xe8-0xef*/
- 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, /*0xf0-0xf7*/
- 0x8ab6, 0xe6b1, 0x8ab7, 0xd2f6, 0x8ab8, 0x8ab9, 0x8aba, 0xd7cb, /*0xf8-0xff*/
- /* 0x5a00 */
- 0x8abb, 0xcdfe, 0x8abc, 0xcdde, 0xc2a6, 0xe6ab, 0xe6ac, 0xbdbf, /*0x00-0x07*/
- 0xe6ae, 0xe6b3, 0x8abd, 0x8abe, 0xe6b2, 0x8abf, 0x8ac0, 0x8ac1, /*0x08-0x0f*/
- 0x8ac2, 0xe6b6, 0x8ac3, 0xe6b8, 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, /*0x10-0x17*/
- 0xc4ef, 0x8ac8, 0x8ac9, 0x8aca, 0xc4c8, 0x8acb, 0x8acc, 0xbeea, /*0x18-0x1f*/
- 0xc9ef, 0x8acd, 0x8ace, 0xe6b7, 0x8acf, 0xb6f0, 0x8ad0, 0x8ad1, /*0x20-0x27*/
- 0x8ad2, 0xc3e4, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, /*0x28-0x2f*/
- 0x8ad9, 0xd3e9, 0xe6b4, 0x8ada, 0xe6b5, 0x8adb, 0xc8a2, 0x8adc, /*0x30-0x37*/
- 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0xe6bd, 0x8ae1, 0x8ae2, 0x8ae3, /*0x38-0x3f*/
- 0xe6b9, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0xc6c5, 0x8ae9, /*0x40-0x47*/
- 0x8aea, 0xcdf1, 0xe6bb, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, /*0x48-0x4f*/
- 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0xe6bc, 0x8af5, 0x8af6, /*0x50-0x57*/
- 0x8af7, 0x8af8, 0xbbe9, 0x8af9, 0x8afa, 0x8afb, 0x8afc, 0x8afd, /*0x58-0x5f*/
- 0x8afe, 0x8b40, 0xe6be, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0xe6ba, /*0x60-0x67*/
- 0x8b45, 0x8b46, 0xc0b7, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, /*0x68-0x6f*/
- 0x8b4c, 0x8b4d, 0x8b4e, 0x8b4f, 0xd3a4, 0xe6bf, 0xc9f4, 0xe6c3, /*0x70-0x77*/
- 0x8b50, 0x8b51, 0xe6c4, 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0xd0f6, /*0x78-0x7f*/
- 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, /*0x80-0x87*/
- 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, /*0x88-0x8f*/
- 0x8b66, 0x8b67, 0xc3bd, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, /*0x90-0x97*/
- 0x8b6d, 0x8b6e, 0xc3c4, 0xe6c2, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, /*0x98-0x9f*/
- 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, /*0xa0-0xa7*/
- 0x8b7b, 0x8b7c, 0xe6c1, 0x8b7d, 0x8b7e, 0x8b80, 0x8b81, 0x8b82, /*0xa8-0xaf*/
- 0x8b83, 0x8b84, 0xe6c7, 0xcfb1, 0x8b85, 0xebf4, 0x8b86, 0x8b87, /*0xb0-0xb7*/
- 0xe6ca, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0xe6c5, 0x8b8d, /*0xb8-0xbf*/
- 0x8b8e, 0xbcde, 0xc9a9, 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, /*0xc0-0xc7*/
- 0x8b94, 0xbcb5, 0x8b95, 0x8b96, 0xcfd3, 0x8b97, 0x8b98, 0x8b99, /*0xc8-0xcf*/
- 0x8b9a, 0x8b9b, 0xe6c8, 0x8b9c, 0xe6c9, 0x8b9d, 0xe6ce, 0x8b9e, /*0xd0-0xd7*/
- 0xe6d0, 0x8b9f, 0x8ba0, 0x8ba1, 0xe6d1, 0x8ba2, 0x8ba3, 0x8ba4, /*0xd8-0xdf*/
- 0xe6cb, 0xb5d5, 0x8ba5, 0xe6cc, 0x8ba6, 0x8ba7, 0xe6cf, 0x8ba8, /*0xe0-0xe7*/
- 0x8ba9, 0xc4db, 0x8baa, 0xe6c6, 0x8bab, 0x8bac, 0x8bad, 0x8bae, /*0xe8-0xef*/
- 0x8baf, 0xe6cd, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, /*0xf0-0xf7*/
- 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, /*0xf8-0xff*/
- /* 0x5b00 */
- 0x8bbe, 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, /*0x00-0x07*/
- 0x8bc6, 0xe6d2, 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, /*0x08-0x0f*/
- 0x8bcd, 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0xe6d4, 0xe6d3, /*0x10-0x17*/
- 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, /*0x18-0x1f*/
- 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, 0x8be0, 0x8be1, 0x8be2, /*0x20-0x27*/
- 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 0x8bea, /*0x28-0x2f*/
- 0x8beb, 0x8bec, 0xe6d5, 0x8bed, 0xd9f8, 0x8bee, 0x8bef, 0xe6d6, /*0x30-0x37*/
- 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, /*0x38-0x3f*/
- 0xe6d7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, /*0x40-0x47*/
- 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, /*0x48-0x4f*/
- 0xd7d3, 0xe6dd, 0x8c48, 0xe6de, 0xbfd7, 0xd4d0, 0x8c49, 0xd7d6, /*0x50-0x57*/
- 0xb4e6, 0xcbef, 0xe6da, 0xd8c3, 0xd7ce, 0xd0a2, 0x8c4a, 0xc3cf, /*0x58-0x5f*/
- 0x8c4b, 0x8c4c, 0xe6df, 0xbcbe, 0xb9c2, 0xe6db, 0xd1a7, 0x8c4d, /*0x60-0x67*/
- 0x8c4e, 0xbaa2, 0xc2cf, 0x8c4f, 0xd8ab, 0x8c50, 0x8c51, 0x8c52, /*0x68-0x6f*/
- 0xcaeb, 0xe5ee, 0x8c53, 0xe6dc, 0x8c54, 0xb7f5, 0x8c55, 0x8c56, /*0x70-0x77*/
- 0x8c57, 0x8c58, 0xc8e6, 0x8c59, 0x8c5a, 0xc4f5, 0x8c5b, 0x8c5c, /*0x78-0x7f*/
- 0xe5b2, 0xc4fe, 0x8c5d, 0xcbfc, 0xe5b3, 0xd5ac, 0x8c5e, 0xd3ee, /*0x80-0x87*/
- 0xcad8, 0xb0b2, 0x8c5f, 0xcbce, 0xcdea, 0x8c60, 0x8c61, 0xbaea, /*0x88-0x8f*/
- 0x8c62, 0x8c63, 0x8c64, 0xe5b5, 0x8c65, 0xe5b4, 0x8c66, 0xd7da, /*0x90-0x97*/
- 0xb9d9, 0xd6e6, 0xb6a8, 0xcdf0, 0xd2cb, 0xb1a6, 0xcab5, 0x8c67, /*0x98-0x9f*/
- 0xb3e8, 0xc9f3, 0xbfcd, 0xd0fb, 0xcad2, 0xe5b6, 0xbbc2, 0x8c68, /*0xa0-0xa7*/
- 0x8c69, 0x8c6a, 0xcfdc, 0xb9ac, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, /*0xa8-0xaf*/
- 0xd4d7, 0x8c6f, 0x8c70, 0xbaa6, 0xd1e7, 0xcffc, 0xbcd2, 0x8c71, /*0xb0-0xb7*/
- 0xe5b7, 0xc8dd, 0x8c72, 0x8c73, 0x8c74, 0xbfed, 0xb1f6, 0xcbde, /*0xb8-0xbf*/
- 0x8c75, 0x8c76, 0xbcc5, 0x8c77, 0xbcc4, 0xd2fa, 0xc3dc, 0xbfdc, /*0xc0-0xc7*/
- 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0xb8bb, 0x8c7c, 0x8c7d, 0x8c7e, /*0xc8-0xcf*/
- 0xc3c2, 0x8c80, 0xbaae, 0xd4a2, 0x8c81, 0x8c82, 0x8c83, 0x8c84, /*0xd0-0xd7*/
- 0x8c85, 0x8c86, 0x8c87, 0x8c88, 0x8c89, 0xc7de, 0xc4af, 0xb2ec, /*0xd8-0xdf*/
- 0x8c8a, 0xb9d1, 0x8c8b, 0x8c8c, 0xe5bb, 0xc1c8, 0x8c8d, 0x8c8e, /*0xe0-0xe7*/
- 0xd5af, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, 0xe5bc, 0x8c94, /*0xe8-0xef*/
- 0xe5be, 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, 0x8c9a, 0x8c9b, /*0xf0-0xf7*/
- 0xb4e7, 0xb6d4, 0xcbc2, 0xd1b0, 0xb5bc, 0x8c9c, 0x8c9d, 0xcad9, /*0xf8-0xff*/
- /* 0x5c00 */
- 0x8c9e, 0xb7e2, 0x8c9f, 0x8ca0, 0xc9e4, 0x8ca1, 0xbdab, 0x8ca2, /*0x00-0x07*/
- 0x8ca3, 0xcebe, 0xd7f0, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0xd0a1, /*0x08-0x0f*/
- 0x8ca8, 0xc9d9, 0x8ca9, 0x8caa, 0xb6fb, 0xe6d8, 0xbce2, 0x8cab, /*0x10-0x17*/
- 0xb3be, 0x8cac, 0xc9d0, 0x8cad, 0xe6d9, 0xb3a2, 0x8cae, 0x8caf, /*0x18-0x1f*/
- 0x8cb0, 0x8cb1, 0xdecc, 0x8cb2, 0xd3c8, 0xdecd, 0x8cb3, 0xd2a2, /*0x20-0x27*/
- 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0xdece, 0x8cb8, 0x8cb9, 0x8cba, /*0x28-0x2f*/
- 0x8cbb, 0xbecd, 0x8cbc, 0x8cbd, 0xdecf, 0x8cbe, 0x8cbf, 0x8cc0, /*0x30-0x37*/
- 0xcaac, 0xd2fc, 0xb3df, 0xe5ea, 0xc4e1, 0xbea1, 0xceb2, 0xc4f2, /*0x38-0x3f*/
- 0xbed6, 0xc6a8, 0xb2e3, 0x8cc1, 0x8cc2, 0xbed3, 0x8cc3, 0x8cc4, /*0x40-0x47*/
- 0xc7fc, 0xcceb, 0xbdec, 0xcedd, 0x8cc5, 0x8cc6, 0xcaba, 0xc6c1, /*0x48-0x4f*/
- 0xe5ec, 0xd0bc, 0x8cc7, 0x8cc8, 0x8cc9, 0xd5b9, 0x8cca, 0x8ccb, /*0x50-0x57*/
- 0x8ccc, 0xe5ed, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0xcaf4, 0x8cd1, /*0x58-0x5f*/
- 0xcdc0, 0xc2c5, 0x8cd2, 0xe5ef, 0x8cd3, 0xc2c4, 0xe5f0, 0x8cd4, /*0x60-0x67*/
- 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0xe5f8, 0xcdcd, /*0x68-0x6f*/
- 0x8cdb, 0xc9bd, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, /*0x70-0x77*/
- 0x8ce2, 0xd2d9, 0xe1a8, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0xd3ec, /*0x78-0x7f*/
- 0x8ce7, 0xcbea, 0xc6f1, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, /*0x80-0x87*/
- 0xe1ac, 0x8ced, 0x8cee, 0x8cef, 0xe1a7, 0xe1a9, 0x8cf0, 0x8cf1, /*0x88-0x8f*/
- 0xe1aa, 0xe1af, 0x8cf2, 0x8cf3, 0xb2ed, 0x8cf4, 0xe1ab, 0xb8da, /*0x90-0x97*/
- 0xe1ad, 0xe1ae, 0xe1b0, 0xb5ba, 0xe1b1, 0x8cf5, 0x8cf6, 0x8cf7, /*0x98-0x9f*/
- 0x8cf8, 0x8cf9, 0xe1b3, 0xe1b8, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, /*0xa0-0xa7*/
- 0x8cfe, 0xd1d2, 0x8d40, 0xe1b6, 0xe1b5, 0xc1eb, 0x8d41, 0x8d42, /*0xa8-0xaf*/
- 0x8d43, 0xe1b7, 0x8d44, 0xd4c0, 0x8d45, 0xe1b2, 0x8d46, 0xe1ba, /*0xb0-0xb7*/
- 0xb0b6, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0xe1b4, 0x8d4b, 0xbff9, /*0xb8-0xbf*/
- 0x8d4c, 0xe1b9, 0x8d4d, 0x8d4e, 0xe1bb, 0x8d4f, 0x8d50, 0x8d51, /*0xc0-0xc7*/
- 0x8d52, 0x8d53, 0x8d54, 0xe1be, 0x8d55, 0x8d56, 0x8d57, 0x8d58, /*0xc8-0xcf*/
- 0x8d59, 0x8d5a, 0xe1bc, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, /*0xd0-0xd7*/
- 0x8d60, 0xd6c5, 0x8d61, 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, /*0xd8-0xdf*/
- 0x8d67, 0xcfbf, 0x8d68, 0x8d69, 0xe1bd, 0xe1bf, 0xc2cd, 0x8d6a, /*0xe0-0xe7*/
- 0xb6eb, 0x8d6b, 0xd3f8, 0x8d6c, 0x8d6d, 0xc7cd, 0x8d6e, 0x8d6f, /*0xe8-0xef*/
- 0xb7e5, 0x8d70, 0x8d71, 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, /*0xf0-0xf7*/
- 0x8d77, 0x8d78, 0x8d79, 0xbefe, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, /*0xf8-0xff*/
- /* 0x5d00 */
- 0x8d7e, 0x8d80, 0xe1c0, 0xe1c1, 0x8d81, 0x8d82, 0xe1c7, 0xb3e7, /*0x00-0x07*/
- 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0xc6e9, 0x8d89, /*0x08-0x0f*/
- 0x8d8a, 0x8d8b, 0x8d8c, 0x8d8d, 0xb4de, 0x8d8e, 0xd1c2, 0x8d8f, /*0x10-0x17*/
- 0x8d90, 0x8d91, 0x8d92, 0xe1c8, 0x8d93, 0x8d94, 0xe1c6, 0x8d95, /*0x18-0x1f*/
- 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0xe1c5, 0x8d9a, 0xe1c3, 0xe1c2, /*0x20-0x27*/
- 0x8d9b, 0xb1c0, 0x8d9c, 0x8d9d, 0x8d9e, 0xd5b8, 0xe1c4, 0x8d9f, /*0x28-0x2f*/
- 0x8da0, 0x8da1, 0x8da2, 0x8da3, 0xe1cb, 0x8da4, 0x8da5, 0x8da6, /*0x30-0x37*/
- 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0xe1cc, 0xe1ca, 0x8dac, /*0x38-0x3f*/
- 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2, 0x8db3, 0xeffa, /*0x40-0x47*/
- 0x8db4, 0x8db5, 0xe1d3, 0xe1d2, 0xc7b6, 0x8db6, 0x8db7, 0x8db8, /*0x48-0x4f*/
- 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, /*0x50-0x57*/
- 0xe1c9, 0x8dc1, 0x8dc2, 0xe1ce, 0x8dc3, 0xe1d0, 0x8dc4, 0x8dc5, /*0x58-0x5f*/
- 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, /*0x60-0x67*/
- 0x8dce, 0xe1d4, 0x8dcf, 0xe1d1, 0xe1cd, 0x8dd0, 0x8dd1, 0xe1cf, /*0x68-0x6f*/
- 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, 0xe1d5, 0x8dd6, 0x8dd7, 0x8dd8, /*0x70-0x77*/
- 0x8dd9, 0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, /*0x78-0x7f*/
- 0x8de1, 0x8de2, 0xe1d6, 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, /*0x80-0x87*/
- 0x8de8, 0x8de9, 0x8dea, 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, /*0x88-0x8f*/
- 0x8df0, 0x8df1, 0x8df2, 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, /*0x90-0x97*/
- 0x8df8, 0xe1d7, 0x8df9, 0x8dfa, 0x8dfb, 0xe1d8, 0x8dfc, 0x8dfd, /*0x98-0x9f*/
- 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, /*0xa0-0xa7*/
- 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, /*0xa8-0xaf*/
- 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53, 0x8e54, 0x8e55, 0xe1da, /*0xb0-0xb7*/
- 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, /*0xb8-0xbf*/
- 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0xe1db, 0x8e63, 0x8e64, /*0xc0-0xc7*/
- 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0xcea1, 0x8e6a, 0x8e6b, /*0xc8-0xcf*/
- 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, /*0xd0-0xd7*/
- 0x8e74, 0x8e75, 0x8e76, 0xe7dd, 0x8e77, 0xb4a8, 0xd6dd, 0x8e78, /*0xd8-0xdf*/
- 0x8e79, 0xd1b2, 0xb3b2, 0x8e7a, 0x8e7b, 0xb9a4, 0xd7f3, 0xc7c9, /*0xe0-0xe7*/
- 0xbede, 0xb9ae, 0x8e7c, 0xced7, 0x8e7d, 0x8e7e, 0xb2ee, 0xdbcf, /*0xe8-0xef*/
- 0x8e80, 0xbcba, 0xd2d1, 0xcbc8, 0xb0cd, 0x8e81, 0x8e82, 0xcfef, /*0xf0-0xf7*/
- 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0xd9e3, 0xbded, 0x8e88, /*0xf8-0xff*/
- /* 0x5e00 */
- 0x8e89, 0xb1d2, 0xcad0, 0xb2bc, 0x8e8a, 0xcba7, 0xb7ab, 0x8e8b, /*0x00-0x07*/
- 0xcaa6, 0x8e8c, 0x8e8d, 0x8e8e, 0xcfa3, 0x8e8f, 0x8e90, 0xe0f8, /*0x08-0x0f*/
- 0xd5ca, 0xe0fb, 0x8e91, 0x8e92, 0xe0fa, 0xc5c1, 0xccfb, 0x8e93, /*0x10-0x17*/
- 0xc1b1, 0xe0f9, 0xd6e3, 0xb2af, 0xd6c4, 0xb5db, 0x8e94, 0x8e95, /*0x18-0x1f*/
- 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0xb4f8, 0xd6a1, /*0x20-0x27*/
- 0x8e9c, 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0xcfaf, 0xb0ef, 0x8ea1, /*0x28-0x2f*/
- 0x8ea2, 0xe0fc, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, 0xe1a1, /*0x30-0x37*/
- 0xb3a3, 0x8ea8, 0x8ea9, 0xe0fd, 0xe0fe, 0xc3b1, 0x8eaa, 0x8eab, /*0x38-0x3f*/
- 0x8eac, 0x8ead, 0xc3dd, 0x8eae, 0xe1a2, 0xb7f9, 0x8eaf, 0x8eb0, /*0x40-0x47*/
- 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0xbbcf, 0x8eb5, 0x8eb6, 0x8eb7, /*0x48-0x4f*/
- 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0xe1a3, 0xc4bb, 0x8ebc, 0x8ebd, /*0x50-0x57*/
- 0x8ebe, 0x8ebf, 0x8ec0, 0xe1a4, 0x8ec1, 0x8ec2, 0xe1a5, 0x8ec3, /*0x58-0x5f*/
- 0x8ec4, 0xe1a6, 0xb4b1, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, /*0x60-0x67*/
- 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, /*0x68-0x6f*/
- 0x8ed2, 0x8ed3, 0xb8c9, 0xc6bd, 0xc4ea, 0x8ed4, 0xb2a2, 0x8ed5, /*0x70-0x77*/
- 0xd0d2, 0x8ed6, 0xe7db, 0xbbc3, 0xd3d7, 0xd3c4, 0x8ed7, 0xb9e3, /*0x78-0x7f*/
- 0xe2cf, 0x8ed8, 0x8ed9, 0x8eda, 0xd7af, 0x8edb, 0xc7ec, 0xb1d3, /*0x80-0x87*/
- 0x8edc, 0x8edd, 0xb4b2, 0xe2d1, 0x8ede, 0x8edf, 0x8ee0, 0xd0f2, /*0x88-0x8f*/
- 0xc2ae, 0xe2d0, 0x8ee1, 0xbfe2, 0xd3a6, 0xb5d7, 0xe2d2, 0xb5ea, /*0x90-0x97*/
- 0x8ee2, 0xc3ed, 0xb8fd, 0x8ee3, 0xb8ae, 0x8ee4, 0xc5d3, 0xb7cf, /*0x98-0x9f*/
- 0xe2d4, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0xe2d3, 0xb6c8, 0xd7f9, /*0xa0-0xa7*/
- 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, 0x8eed, 0xcda5, 0x8eee, 0x8eef, /*0xa8-0xaf*/
- 0x8ef0, 0x8ef1, 0x8ef2, 0xe2d8, 0x8ef3, 0xe2d6, 0xcafc, 0xbfb5, /*0xb0-0xb7*/
- 0xd3b9, 0xe2d5, 0x8ef4, 0x8ef5, 0x8ef6, 0x8ef7, 0xe2d7, 0x8ef8, /*0xb8-0xbf*/
- 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8f40, 0x8f41, /*0xc0-0xc7*/
- 0x8f42, 0xc1ae, 0xc0c8, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, /*0xc8-0xcf*/
- 0x8f48, 0xe2db, 0xe2da, 0xc0aa, 0x8f49, 0x8f4a, 0xc1ce, 0x8f4b, /*0xd0-0xd7*/
- 0x8f4c, 0x8f4d, 0x8f4e, 0xe2dc, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, /*0xd8-0xdf*/
- 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, /*0xe0-0xe7*/
- 0xe2dd, 0x8f5b, 0xe2de, 0x8f5c, 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, /*0xe8-0xef*/
- 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0xdbc8, 0x8f65, 0xd1d3, 0xcda2, /*0xf0-0xf7*/
- 0x8f66, 0x8f67, 0xbda8, 0x8f68, 0x8f69, 0x8f6a, 0xdec3, 0xd8a5, /*0xf8-0xff*/
- /* 0x5f00 */
- 0xbfaa, 0xdbcd, 0xd2ec, 0xc6fa, 0xc5aa, 0x8f6b, 0x8f6c, 0x8f6d, /*0x00-0x07*/
- 0xdec4, 0x8f6e, 0xb1d7, 0xdfae, 0x8f6f, 0x8f70, 0x8f71, 0xcabd, /*0x08-0x0f*/
- 0x8f72, 0xdfb1, 0x8f73, 0xb9ad, 0x8f74, 0xd2fd, 0x8f75, 0xb8a5, /*0x10-0x17*/
- 0xbaeb, 0x8f76, 0x8f77, 0xb3da, 0x8f78, 0x8f79, 0x8f7a, 0xb5dc, /*0x18-0x1f*/
- 0xd5c5, 0x8f7b, 0x8f7c, 0x8f7d, 0x8f7e, 0xc3d6, 0xcfd2, 0xbba1, /*0x20-0x27*/
- 0x8f80, 0xe5f3, 0xe5f2, 0x8f81, 0x8f82, 0xe5f4, 0x8f83, 0xcde4, /*0x28-0x2f*/
- 0x8f84, 0xc8f5, 0x8f85, 0x8f86, 0x8f87, 0x8f88, 0x8f89, 0x8f8a, /*0x30-0x37*/
- 0x8f8b, 0xb5af, 0xc7bf, 0x8f8c, 0xe5f6, 0x8f8d, 0x8f8e, 0x8f8f, /*0x38-0x3f*/
- 0xecb0, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96, /*0x40-0x47*/
- 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, /*0x48-0x4f*/
- 0xe5e6, 0x8f9f, 0xb9e9, 0xb5b1, 0x8fa0, 0xc2bc, 0xe5e8, 0xe5e7, /*0x50-0x57*/
- 0xe5e9, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0xd2cd, 0x8fa5, 0x8fa6, /*0x58-0x5f*/
- 0x8fa7, 0xe1ea, 0xd0ce, 0x8fa8, 0xcdae, 0x8fa9, 0xd1e5, 0x8faa, /*0x60-0x67*/
- 0x8fab, 0xb2ca, 0xb1eb, 0x8fac, 0xb1f2, 0xc5ed, 0x8fad, 0x8fae, /*0x68-0x6f*/
- 0xd5c3, 0xd3b0, 0x8faf, 0xe1dc, 0x8fb0, 0x8fb1, 0x8fb2, 0xe1dd, /*0x70-0x77*/
- 0x8fb3, 0xd2db, 0x8fb4, 0xb3b9, 0xb1cb, 0x8fb5, 0x8fb6, 0x8fb7, /*0x78-0x7f*/
- 0xcdf9, 0xd5f7, 0xe1de, 0x8fb8, 0xbeb6, 0xb4fd, 0x8fb9, 0xe1df, /*0x80-0x87*/
- 0xbadc, 0xe1e0, 0xbbb2, 0xc2c9, 0xe1e1, 0x8fba, 0x8fbb, 0x8fbc, /*0x88-0x8f*/
- 0xd0ec, 0x8fbd, 0xcdbd, 0x8fbe, 0x8fbf, 0xe1e2, 0x8fc0, 0xb5c3, /*0x90-0x97*/
- 0xc5c7, 0xe1e3, 0x8fc1, 0x8fc2, 0xe1e4, 0x8fc3, 0x8fc4, 0x8fc5, /*0x98-0x9f*/
- 0x8fc6, 0xd3f9, 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, /*0xa0-0xa7*/
- 0xe1e5, 0x8fcd, 0xd1ad, 0x8fce, 0x8fcf, 0xe1e6, 0xcea2, 0x8fd0, /*0xa8-0xaf*/
- 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0xe1e7, 0x8fd6, 0xb5c2, /*0xb0-0xb7*/
- 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0xe1e8, 0xbbd5, 0x8fdb, 0x8fdc, /*0xb8-0xbf*/
- 0x8fdd, 0x8fde, 0x8fdf, 0xd0c4, 0xe2e0, 0xb1d8, 0xd2e4, 0x8fe0, /*0xc0-0xc7*/
- 0x8fe1, 0xe2e1, 0x8fe2, 0x8fe3, 0xbcc9, 0xc8cc, 0x8fe4, 0xe2e3, /*0xc8-0xcf*/
- 0xecfe, 0xecfd, 0xdfaf, 0x8fe5, 0x8fe6, 0x8fe7, 0xe2e2, 0xd6be, /*0xd0-0xd7*/
- 0xcdfc, 0xc3a6, 0x8fe8, 0x8fe9, 0x8fea, 0xe3c3, 0x8feb, 0x8fec, /*0xd8-0xdf*/
- 0xd6d2, 0xe2e7, 0x8fed, 0x8fee, 0xe2e8, 0x8fef, 0x8ff0, 0xd3c7, /*0xe0-0xe7*/
- 0x8ff1, 0x8ff2, 0xe2ec, 0xbfec, 0x8ff3, 0xe2ed, 0xe2e5, 0x8ff4, /*0xe8-0xef*/
- 0x8ff5, 0xb3c0, 0x8ff6, 0x8ff7, 0x8ff8, 0xc4ee, 0x8ff9, 0x8ffa, /*0xf0-0xf7*/
- 0xe2ee, 0x8ffb, 0x8ffc, 0xd0c3, 0x8ffd, 0xbaf6, 0xe2e9, 0xb7de, /*0xf8-0xff*/
- /* 0x6000 */
- 0xbbb3, 0xccac, 0xcbcb, 0xe2e4, 0xe2e6, 0xe2ea, 0xe2eb, 0x8ffe, /*0x00-0x07*/
- 0x9040, 0x9041, 0xe2f7, 0x9042, 0x9043, 0xe2f4, 0xd4f5, 0xe2f3, /*0x08-0x0f*/
- 0x9044, 0x9045, 0xc5ad, 0x9046, 0xd5fa, 0xc5c2, 0xb2c0, 0x9047, /*0x10-0x17*/
- 0x9048, 0xe2ef, 0x9049, 0xe2f2, 0xc1af, 0xcbbc, 0x904a, 0x904b, /*0x18-0x1f*/
- 0xb5a1, 0xe2f9, 0x904c, 0x904d, 0x904e, 0xbcb1, 0xe2f1, 0xd0d4, /*0x20-0x27*/
- 0xd4b9, 0xe2f5, 0xb9d6, 0xe2f6, 0x904f, 0x9050, 0x9051, 0xc7d3, /*0x28-0x2f*/
- 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0xe2f0, 0x9057, 0x9058, /*0x30-0x37*/
- 0x9059, 0x905a, 0x905b, 0xd7dc, 0xeda1, 0x905c, 0x905d, 0xe2f8, /*0x38-0x3f*/
- 0x905e, 0xeda5, 0xe2fe, 0xcad1, 0x905f, 0x9060, 0x9061, 0x9062, /*0x40-0x47*/
- 0x9063, 0x9064, 0x9065, 0xc1b5, 0x9066, 0xbbd0, 0x9067, 0x9068, /*0x48-0x4f*/
- 0xbfd6, 0x9069, 0xbae3, 0x906a, 0x906b, 0xcba1, 0x906c, 0x906d, /*0x50-0x57*/
- 0x906e, 0xeda6, 0xeda3, 0x906f, 0x9070, 0xeda2, 0x9071, 0x9072, /*0x58-0x5f*/
- 0x9073, 0x9074, 0xbbd6, 0xeda7, 0xd0f4, 0x9075, 0x9076, 0xeda4, /*0x60-0x67*/
- 0xbade, 0xb6f7, 0xe3a1, 0xb6b2, 0xccf1, 0xb9a7, 0x9077, 0xcfa2, /*0x68-0x6f*/
- 0xc7a1, 0x9078, 0x9079, 0xbfd2, 0x907a, 0x907b, 0xb6f1, 0x907c, /*0x70-0x77*/
- 0xe2fa, 0xe2fb, 0xe2fd, 0xe2fc, 0xc4d5, 0xe3a2, 0x907d, 0xd3c1, /*0x78-0x7f*/
- 0x907e, 0x9080, 0x9081, 0xe3a7, 0xc7c4, 0x9082, 0x9083, 0x9084, /*0x80-0x87*/
- 0x9085, 0xcfa4, 0x9086, 0x9087, 0xe3a9, 0xbab7, 0x9088, 0x9089, /*0x88-0x8f*/
- 0x908a, 0x908b, 0xe3a8, 0x908c, 0xbbda, 0x908d, 0xe3a3, 0x908e, /*0x90-0x97*/
- 0x908f, 0x9090, 0xe3a4, 0xe3aa, 0x9091, 0xe3a6, 0x9092, 0xcef2, /*0x98-0x9f*/
- 0xd3c6, 0x9093, 0x9094, 0xbbbc, 0x9095, 0x9096, 0xd4c3, 0x9097, /*0xa0-0xa7*/
- 0xc4fa, 0x9098, 0x9099, 0xeda8, 0xd0fc, 0xe3a5, 0x909a, 0xc3f5, /*0xa8-0xaf*/
- 0x909b, 0xe3ad, 0xb1af, 0x909c, 0xe3b2, 0x909d, 0x909e, 0x909f, /*0xb0-0xb7*/
- 0xbcc2, 0x90a0, 0x90a1, 0xe3ac, 0xb5bf, 0x90a2, 0x90a3, 0x90a4, /*0xb8-0xbf*/
- 0x90a5, 0x90a6, 0x90a7, 0x90a8, 0x90a9, 0xc7e9, 0xe3b0, 0x90aa, /*0xc0-0xc7*/
- 0x90ab, 0x90ac, 0xbeaa, 0xcdef, 0x90ad, 0x90ae, 0x90af, 0x90b0, /*0xc8-0xcf*/
- 0x90b1, 0xbbf3, 0x90b2, 0x90b3, 0x90b4, 0xcce8, 0x90b5, 0x90b6, /*0xd0-0xd7*/
- 0xe3af, 0x90b7, 0xe3b1, 0x90b8, 0xcfa7, 0xe3ae, 0x90b9, 0xcea9, /*0xd8-0xdf*/
- 0xbbdd, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0xb5eb, 0xbee5, /*0xe0-0xe7*/
- 0xb2d2, 0xb3cd, 0x90bf, 0xb1b9, 0xe3ab, 0xb2d1, 0xb5ac, 0xb9df, /*0xe8-0xef*/
- 0xb6e8, 0x90c0, 0x90c1, 0xcfeb, 0xe3b7, 0x90c2, 0xbbcc, 0x90c3, /*0xf0-0xf7*/
- 0x90c4, 0xc8c7, 0xd0ca, 0x90c5, 0x90c6, 0x90c7, 0x90c8, 0x90c9, /*0xf8-0xff*/
- /* 0x6100 */
- 0xe3b8, 0xb3ee, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0xeda9, 0x90ce, /*0x00-0x07*/
- 0xd3fa, 0xd3e4, 0x90cf, 0x90d0, 0x90d1, 0xedaa, 0xe3b9, 0xd2e2, /*0x08-0x0f*/
- 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0xe3b5, 0x90d7, 0x90d8, /*0x10-0x17*/
- 0x90d9, 0x90da, 0xd3de, 0x90db, 0x90dc, 0x90dd, 0x90de, 0xb8d0, /*0x18-0x1f*/
- 0xe3b3, 0x90df, 0x90e0, 0xe3b6, 0xb7df, 0x90e1, 0xe3b4, 0xc0a2, /*0x20-0x27*/
- 0x90e2, 0x90e3, 0x90e4, 0xe3ba, 0x90e5, 0x90e6, 0x90e7, 0x90e8, /*0x28-0x2f*/
- 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, /*0x30-0x37*/
- 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0xd4b8, /*0x38-0x3f*/
- 0x90f8, 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, /*0x40-0x47*/
- 0xb4c8, 0x9141, 0xe3bb, 0x9142, 0xbbc5, 0x9143, 0xc9f7, 0x9144, /*0x48-0x4f*/
- 0x9145, 0xc9e5, 0x9146, 0x9147, 0x9148, 0xc4bd, 0x9149, 0x914a, /*0x50-0x57*/
- 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0xedab, 0x9150, 0x9151, /*0x58-0x5f*/
- 0x9152, 0x9153, 0xc2fd, 0x9154, 0x9155, 0x9156, 0x9157, 0xbbdb, /*0x60-0x67*/
- 0xbfae, 0x9158, 0x9159, 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, /*0x68-0x6f*/
- 0xcebf, 0x915f, 0x9160, 0x9161, 0x9162, 0xe3bc, 0x9163, 0xbfb6, /*0x70-0x77*/
- 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, 0x916a, 0x916b, /*0x78-0x7f*/
- 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171, 0x9172, 0x9173, /*0x80-0x87*/
- 0x9174, 0x9175, 0x9176, 0xb1ef, 0x9177, 0x9178, 0xd4f7, 0x9179, /*0x88-0x8f*/
- 0x917a, 0x917b, 0x917c, 0x917d, 0xe3be, 0x917e, 0x9180, 0x9181, /*0x90-0x97*/
- 0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0xedad, 0x9187, 0x9188, /*0x98-0x9f*/
- 0x9189, 0x918a, 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0xe3bf, /*0xa0-0xa7*/
- 0xbaa9, 0xedac, 0x9190, 0x9191, 0xe3bd, 0x9192, 0x9193, 0x9194, /*0xa8-0xaf*/
- 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a, 0x919b, 0xe3c0, /*0xb0-0xb7*/
- 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0xbab6, 0x91a2, /*0xb8-0xbf*/
- 0x91a3, 0x91a4, 0xb6ae, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, /*0xc0-0xc7*/
- 0xd0b8, 0x91aa, 0xb0c3, 0xedae, 0x91ab, 0x91ac, 0x91ad, 0x91ae, /*0xc8-0xcf*/
- 0x91af, 0xedaf, 0xc0c1, 0x91b0, 0xe3c1, 0x91b1, 0x91b2, 0x91b3, /*0xd0-0xd7*/
- 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba, 0x91bb, /*0xd8-0xdf*/
- 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0xc5b3, 0x91c2, /*0xe0-0xe7*/
- 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, /*0xe8-0xef*/
- 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0xe3c2, 0x91d0, 0x91d1, /*0xf0-0xf7*/
- 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0xdcb2, /*0xf8-0xff*/
- /* 0x6200 */
- 0x91d9, 0x91da, 0x91db, 0x91dc, 0x91dd, 0x91de, 0xedb0, 0x91df, /*0x00-0x07*/
- 0xb8ea, 0x91e0, 0xceec, 0xeaa7, 0xd0e7, 0xcaf9, 0xc8d6, 0xcfb7, /*0x08-0x0f*/
- 0xb3c9, 0xced2, 0xbde4, 0x91e1, 0x91e2, 0xe3de, 0xbbf2, 0xeaa8, /*0x10-0x17*/
- 0xd5bd, 0x91e3, 0xc6dd, 0xeaa9, 0x91e4, 0x91e5, 0x91e6, 0xeaaa, /*0x18-0x1f*/
- 0x91e7, 0xeaac, 0xeaab, 0x91e8, 0xeaae, 0xeaad, 0x91e9, 0x91ea, /*0x20-0x27*/
- 0x91eb, 0x91ec, 0xbdd8, 0x91ed, 0xeaaf, 0x91ee, 0xc2be, 0x91ef, /*0x28-0x2f*/
- 0x91f0, 0x91f1, 0x91f2, 0xb4c1, 0xb4f7, 0x91f3, 0x91f4, 0xbba7, /*0x30-0x37*/
- 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0xece6, 0xece5, 0xb7bf, /*0x38-0x3f*/
- 0xcbf9, 0xb1e2, 0x91fa, 0xece7, 0x91fb, 0x91fc, 0x91fd, 0xc9c8, /*0x40-0x47*/
- 0xece8, 0xece9, 0x91fe, 0xcad6, 0xded0, 0xb2c5, 0xd4fa, 0x9240, /*0x48-0x4f*/
- 0x9241, 0xc6cb, 0xb0c7, 0xb4f2, 0xc8d3, 0x9242, 0x9243, 0x9244, /*0x50-0x57*/
- 0xcdd0, 0x9245, 0x9246, 0xbfb8, 0x9247, 0x9248, 0x9249, 0x924a, /*0x58-0x5f*/
- 0x924b, 0x924c, 0x924d, 0xbfdb, 0x924e, 0x924f, 0xc7a4, 0xd6b4, /*0x60-0x67*/
- 0x9250, 0xc0a9, 0xded1, 0xc9a8, 0xd1ef, 0xc5a4, 0xb0e7, 0xb3b6, /*0x68-0x6f*/
- 0xc8c5, 0x9251, 0x9252, 0xb0e2, 0x9253, 0x9254, 0xb7f6, 0x9255, /*0x70-0x77*/
- 0x9256, 0xc5fa, 0x9257, 0x9258, 0xb6f3, 0x9259, 0xd5d2, 0xb3d0, /*0x78-0x7f*/
- 0xbcbc, 0x925a, 0x925b, 0x925c, 0xb3ad, 0x925d, 0x925e, 0x925f, /*0x80-0x87*/
- 0x9260, 0xbef1, 0xb0d1, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, /*0x88-0x8f*/
- 0x9266, 0xd2d6, 0xcae3, 0xd7a5, 0x9267, 0xcdb6, 0xb6b6, 0xbfb9, /*0x90-0x97*/
- 0xd5db, 0x9268, 0xb8a7, 0xc5d7, 0x9269, 0x926a, 0x926b, 0xded2, /*0x98-0x9f*/
- 0xbfd9, 0xc2d5, 0xc7c0, 0x926c, 0xbba4, 0xb1a8, 0x926d, 0x926e, /*0xa0-0xa7*/
- 0xc5ea, 0x926f, 0x9270, 0xc5fb, 0xcca7, 0x9271, 0x9272, 0x9273, /*0xa8-0xaf*/
- 0x9274, 0xb1a7, 0x9275, 0x9276, 0x9277, 0xb5d6, 0x9278, 0x9279, /*0xb0-0xb7*/
- 0x927a, 0xc4a8, 0x927b, 0xded3, 0xd1ba, 0xb3e9, 0x927c, 0xc3f2, /*0xb8-0xbf*/
- 0x927d, 0x927e, 0xb7f7, 0x9280, 0xd6f4, 0xb5a3, 0xb2f0, 0xc4b4, /*0xc0-0xc7*/
- 0xc4e9, 0xc0ad, 0xded4, 0x9281, 0xb0e8, 0xc5c4, 0xc1e0, 0x9282, /*0xc8-0xcf*/
- 0xb9d5, 0x9283, 0xbedc, 0xcdd8, 0xb0ce, 0x9284, 0xcdcf, 0xded6, /*0xd0-0xd7*/
- 0xbed0, 0xd7be, 0xded5, 0xd5d0, 0xb0dd, 0x9285, 0x9286, 0xc4e2, /*0xd8-0xdf*/
- 0x9287, 0x9288, 0xc2a3, 0xbcf0, 0x9289, 0xd3b5, 0xc0b9, 0xc5a1, /*0xe0-0xe7*/
- 0xb2a6, 0xd4f1, 0x928a, 0x928b, 0xc0a8, 0xcac3, 0xded7, 0xd5fc, /*0xe8-0xef*/
- 0x928c, 0xb9b0, 0x928d, 0xc8ad, 0xcba9, 0x928e, 0xded9, 0xbfbd, /*0xf0-0xf7*/
- 0x928f, 0x9290, 0x9291, 0x9292, 0xc6b4, 0xd7a7, 0xcab0, 0xc4c3, /*0xf8-0xff*/
- /* 0x6300 */
- 0x9293, 0xb3d6, 0xb9d2, 0x9294, 0x9295, 0x9296, 0x9297, 0xd6b8, /*0x00-0x07*/
- 0xeafc, 0xb0b4, 0x9298, 0x9299, 0x929a, 0x929b, 0xbfe6, 0x929c, /*0x08-0x0f*/
- 0x929d, 0xccf4, 0x929e, 0x929f, 0x92a0, 0x92a1, 0xcdda, 0x92a2, /*0x10-0x17*/
- 0x92a3, 0x92a4, 0xd6bf, 0xc2ce, 0x92a5, 0xcece, 0xcca2, 0xd0ae, /*0x18-0x1f*/
- 0xc4d3, 0xb5b2, 0xded8, 0xd5f5, 0xbcb7, 0xbbd3, 0x92a6, 0x92a7, /*0x20-0x27*/
- 0xb0a4, 0x92a8, 0xc5b2, 0xb4ec, 0x92a9, 0x92aa, 0x92ab, 0xd5f1, /*0x28-0x2f*/
- 0x92ac, 0x92ad, 0xeafd, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, /*0x30-0x37*/
- 0x92b3, 0xdeda, 0xcda6, 0x92b4, 0x92b5, 0xcdec, 0x92b6, 0x92b7, /*0x38-0x3f*/
- 0x92b8, 0x92b9, 0xcee6, 0xdedc, 0x92ba, 0xcdb1, 0xc0a6, 0x92bb, /*0x40-0x47*/
- 0x92bc, 0xd7bd, 0x92bd, 0xdedb, 0xb0c6, 0xbab4, 0xc9d3, 0xc4f3, /*0x48-0x4f*/
- 0xbee8, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0xb2b6, 0x92c2, 0x92c3, /*0x50-0x57*/
- 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0xc0cc, 0xcbf0, /*0x58-0x5f*/
- 0x92ca, 0xbcf1, 0xbbbb, 0xb5b7, 0x92cb, 0x92cc, 0x92cd, 0xc5f5, /*0x60-0x67*/
- 0x92ce, 0xdee6, 0x92cf, 0x92d0, 0x92d1, 0xdee3, 0xbedd, 0x92d2, /*0x68-0x6f*/
- 0x92d3, 0xdedf, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0xb4b7, 0xbddd, /*0x70-0x77*/
- 0x92d8, 0x92d9, 0xdee0, 0xc4ed, 0x92da, 0x92db, 0x92dc, 0x92dd, /*0x78-0x7f*/
- 0xcfc6, 0x92de, 0xb5e0, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0xb6de, /*0x80-0x87*/
- 0xcada, 0xb5f4, 0xdee5, 0x92e3, 0xd5c6, 0x92e4, 0xdee1, 0xcccd, /*0x88-0x8f*/
- 0xc6fe, 0x92e5, 0xc5c5, 0x92e6, 0x92e7, 0x92e8, 0xd2b4, 0x92e9, /*0x90-0x97*/
- 0xbef2, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, /*0x98-0x9f*/
- 0xc2d3, 0x92f1, 0xccbd, 0xb3b8, 0x92f2, 0xbdd3, 0x92f3, 0xbfd8, /*0xa0-0xa7*/
- 0xcdc6, 0xd1da, 0xb4eb, 0x92f4, 0xdee4, 0xdedd, 0xdee7, 0x92f5, /*0xa8-0xaf*/
- 0xeafe, 0x92f6, 0x92f7, 0xc2b0, 0xdee2, 0x92f8, 0x92f9, 0xd6c0, /*0xb0-0xb7*/
- 0xb5a7, 0x92fa, 0xb2f4, 0x92fb, 0xdee8, 0x92fc, 0xdef2, 0x92fd, /*0xb8-0xbf*/
- 0x92fe, 0x9340, 0x9341, 0x9342, 0xdeed, 0x9343, 0xdef1, 0x9344, /*0xc0-0xc7*/
- 0x9345, 0xc8e0, 0x9346, 0x9347, 0x9348, 0xd7e1, 0xdeef, 0xc3e8, /*0xc8-0xcf*/
- 0xcce1, 0x9349, 0xb2e5, 0x934a, 0x934b, 0x934c, 0xd2be, 0x934d, /*0xd0-0xd7*/
- 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0xdeee, 0x9354, /*0xd8-0xdf*/
- 0xdeeb, 0xced5, 0x9355, 0xb4a7, 0x9356, 0x9357, 0x9358, 0x9359, /*0xe0-0xe7*/
- 0x935a, 0xbfab, 0xbebe, 0x935b, 0x935c, 0xbdd2, 0x935d, 0x935e, /*0xe8-0xef*/
- 0x935f, 0x9360, 0xdee9, 0x9361, 0xd4ae, 0x9362, 0xdede, 0x9363, /*0xf0-0xf7*/
- 0xdeea, 0x9364, 0x9365, 0x9366, 0x9367, 0xc0bf, 0x9368, 0xdeec, /*0xf8-0xff*/
- /* 0x6400 */
- 0xb2f3, 0xb8e9, 0xc2a7, 0x9369, 0x936a, 0xbdc1, 0x936b, 0x936c, /*0x00-0x07*/
- 0x936d, 0x936e, 0x936f, 0xdef5, 0xdef8, 0x9370, 0x9371, 0xb2ab, /*0x08-0x0f*/
- 0xb4a4, 0x9372, 0x9373, 0xb4ea, 0xc9a6, 0x9374, 0x9375, 0x9376, /*0x10-0x17*/
- 0x9377, 0x9378, 0x9379, 0xdef6, 0xcbd1, 0x937a, 0xb8e3, 0x937b, /*0x18-0x1f*/
- 0xdef7, 0xdefa, 0x937c, 0x937d, 0x937e, 0x9380, 0xdef9, 0x9381, /*0x20-0x27*/
- 0x9382, 0x9383, 0xccc2, 0x9384, 0xb0e1, 0xb4ee, 0x9385, 0x9386, /*0x28-0x2f*/
- 0x9387, 0x9388, 0x9389, 0x938a, 0xe5ba, 0x938b, 0x938c, 0x938d, /*0x30-0x37*/
- 0x938e, 0x938f, 0xd0af, 0x9390, 0x9391, 0xb2eb, 0x9392, 0xeba1, /*0x38-0x3f*/
- 0x9393, 0xdef4, 0x9394, 0x9395, 0xc9e3, 0xdef3, 0xb0da, 0xd2a1, /*0x40-0x47*/
- 0xb1f7, 0x9396, 0xccaf, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, /*0x48-0x4f*/
- 0x939c, 0x939d, 0xdef0, 0x939e, 0xcba4, 0x939f, 0x93a0, 0x93a1, /*0x50-0x57*/
- 0xd5aa, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0xdefb, 0x93a7, /*0x58-0x5f*/
- 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, 0xb4dd, /*0x60-0x67*/
- 0x93af, 0xc4a6, 0x93b0, 0x93b1, 0x93b2, 0xdefd, 0x93b3, 0x93b4, /*0x68-0x6f*/
- 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, /*0x70-0x77*/
- 0xc3fe, 0xc4a1, 0xdfa1, 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, /*0x78-0x7f*/
- 0x93c2, 0x93c3, 0xc1cc, 0x93c4, 0xdefc, 0xbeef, 0x93c5, 0xc6b2, /*0x80-0x87*/
- 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, /*0x88-0x8f*/
- 0x93ce, 0xb3c5, 0xc8f6, 0x93cf, 0x93d0, 0xcbba, 0xdefe, 0x93d1, /*0x90-0x97*/
- 0x93d2, 0xdfa4, 0x93d3, 0x93d4, 0x93d5, 0x93d6, 0xd7b2, 0x93d7, /*0x98-0x9f*/
- 0x93d8, 0x93d9, 0x93da, 0x93db, 0xb3b7, 0x93dc, 0x93dd, 0x93de, /*0xa0-0xa7*/
- 0x93df, 0xc1c3, 0x93e0, 0x93e1, 0xc7cb, 0xb2a5, 0xb4e9, 0x93e2, /*0xa8-0xaf*/
- 0xd7ab, 0x93e3, 0x93e4, 0x93e5, 0x93e6, 0xc4ec, 0x93e7, 0xdfa2, /*0xb0-0xb7*/
- 0xdfa3, 0x93e8, 0xdfa5, 0x93e9, 0xbab3, 0x93ea, 0x93eb, 0x93ec, /*0xb8-0xbf*/
- 0xdfa6, 0x93ed, 0xc0de, 0x93ee, 0x93ef, 0xc9c3, 0x93f0, 0x93f1, /*0xc0-0xc7*/
- 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, 0xb2d9, 0xc7e6, 0x93f7, /*0xc8-0xcf*/
- 0xdfa7, 0x93f8, 0xc7dc, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0xdfa8, /*0xd0-0xd7*/
- 0xeba2, 0x93fd, 0x93fe, 0x9440, 0x9441, 0x9442, 0xcbd3, 0x9443, /*0xd8-0xdf*/
- 0x9444, 0x9445, 0xdfaa, 0x9446, 0xdfa9, 0x9447, 0xb2c1, 0x9448, /*0xe0-0xe7*/
- 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, 0x9450, /*0xe8-0xef*/
- 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, /*0xf0-0xf7*/
- 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, 0x9460, /*0xf8-0xff*/
- /* 0x6500 */
- 0xc5ca, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, /*0x00-0x07*/
- 0x9468, 0xdfab, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, /*0x08-0x0f*/
- 0x946f, 0x9470, 0xd4dc, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, /*0x10-0x17*/
- 0xc8c1, 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, /*0x18-0x1f*/
- 0x947d, 0x947e, 0x9480, 0x9481, 0x9482, 0xdfac, 0x9483, 0x9484, /*0x20-0x27*/
- 0x9485, 0x9486, 0x9487, 0xbef0, 0x9488, 0x9489, 0xdfad, 0xd6a7, /*0x28-0x2f*/
- 0x948a, 0x948b, 0x948c, 0x948d, 0xeab7, 0xebb6, 0xcad5, 0x948e, /*0x30-0x37*/
- 0xd8fc, 0xb8c4, 0x948f, 0xb9a5, 0x9490, 0x9491, 0xb7c5, 0xd5fe, /*0x38-0x3f*/
- 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0xb9ca, 0x9497, 0x9498, /*0x40-0x47*/
- 0xd0a7, 0xf4cd, 0x9499, 0x949a, 0xb5d0, 0x949b, 0x949c, 0xc3f4, /*0x48-0x4f*/
- 0x949d, 0xbec8, 0x949e, 0x949f, 0x94a0, 0xebb7, 0xb0bd, 0x94a1, /*0x50-0x57*/
- 0x94a2, 0xbdcc, 0x94a3, 0xc1b2, 0x94a4, 0xb1d6, 0xb3a8, 0x94a5, /*0x58-0x5f*/
- 0x94a6, 0x94a7, 0xb8d2, 0xc9a2, 0x94a8, 0x94a9, 0xb6d8, 0x94aa, /*0x60-0x67*/
- 0x94ab, 0x94ac, 0x94ad, 0xebb8, 0xbeb4, 0x94ae, 0x94af, 0x94b0, /*0x68-0x6f*/
- 0xcafd, 0x94b1, 0xc7c3, 0x94b2, 0xd5fb, 0x94b3, 0x94b4, 0xb7f3, /*0x70-0x77*/
- 0x94b5, 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, /*0x78-0x7f*/
- 0x94bd, 0x94be, 0x94bf, 0x94c0, 0x94c1, 0x94c2, 0x94c3, 0xcec4, /*0x80-0x87*/
- 0x94c4, 0x94c5, 0x94c6, 0xd5ab, 0xb1f3, 0x94c7, 0x94c8, 0x94c9, /*0x88-0x8f*/
- 0xecb3, 0xb0df, 0x94ca, 0xecb5, 0x94cb, 0x94cc, 0x94cd, 0xb6b7, /*0x90-0x97*/
- 0x94ce, 0xc1cf, 0x94cf, 0xf5fa, 0xd0b1, 0x94d0, 0x94d1, 0xd5e5, /*0x98-0x9f*/
- 0x94d2, 0xced3, 0x94d3, 0x94d4, 0xbdef, 0xb3e2, 0x94d5, 0xb8ab, /*0xa0-0xa7*/
- 0x94d6, 0xd5b6, 0x94d7, 0xedbd, 0x94d8, 0xb6cf, 0x94d9, 0xcbb9, /*0xa8-0xaf*/
- 0xd0c2, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, /*0xb0-0xb7*/
- 0x94e1, 0xb7bd, 0x94e2, 0x94e3, 0xecb6, 0xcaa9, 0x94e4, 0x94e5, /*0xb8-0xbf*/
- 0x94e6, 0xc5d4, 0x94e7, 0xecb9, 0xecb8, 0xc2c3, 0xecb7, 0x94e8, /*0xc0-0xc7*/
- 0x94e9, 0x94ea, 0x94eb, 0xd0fd, 0xecba, 0x94ec, 0xecbb, 0xd7e5, /*0xc8-0xcf*/
- 0x94ed, 0x94ee, 0xecbc, 0x94ef, 0x94f0, 0x94f1, 0xecbd, 0xc6ec, /*0xd0-0xd7*/
- 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, /*0xd8-0xdf*/
- 0xcede, 0x94fa, 0xbcc8, 0x94fb, 0x94fc, 0xc8d5, 0xb5a9, 0xbec9, /*0xe0-0xe7*/
- 0xd6bc, 0xd4e7, 0x94fd, 0x94fe, 0xd1ae, 0xd0f1, 0xeab8, 0xeab9, /*0xe8-0xef*/
- 0xeaba, 0xbab5, 0x9540, 0x9541, 0x9542, 0x9543, 0xcab1, 0xbff5, /*0xf0-0xf7*/
- 0x9544, 0x9545, 0xcdfa, 0x9546, 0x9547, 0x9548, 0x9549, 0x954a, /*0xf8-0xff*/
- /* 0x6600 */
- 0xeac0, 0x954b, 0xb0ba, 0xeabe, 0x954c, 0x954d, 0xc0a5, 0x954e, /*0x00-0x07*/
- 0x954f, 0x9550, 0xeabb, 0x9551, 0xb2fd, 0x9552, 0xc3f7, 0xbbe8, /*0x08-0x0f*/
- 0x9553, 0x9554, 0x9555, 0xd2d7, 0xcef4, 0xeabf, 0x9556, 0x9557, /*0x10-0x17*/
- 0x9558, 0xeabc, 0x9559, 0x955a, 0x955b, 0xeac3, 0x955c, 0xd0c7, /*0x18-0x1f*/
- 0xd3b3, 0x955d, 0x955e, 0x955f, 0x9560, 0xb4ba, 0x9561, 0xc3c1, /*0x20-0x27*/
- 0xd7f2, 0x9562, 0x9563, 0x9564, 0x9565, 0xd5d1, 0x9566, 0xcac7, /*0x28-0x2f*/
- 0x9567, 0xeac5, 0x9568, 0x9569, 0xeac4, 0xeac7, 0xeac6, 0x956a, /*0x30-0x37*/
- 0x956b, 0x956c, 0x956d, 0x956e, 0xd6e7, 0x956f, 0xcfd4, 0x9570, /*0x38-0x3f*/
- 0x9571, 0xeacb, 0x9572, 0xbbce, 0x9573, 0x9574, 0x9575, 0x9576, /*0x40-0x47*/
- 0x9577, 0x9578, 0x9579, 0xbdfa, 0xc9ce, 0x957a, 0x957b, 0xeacc, /*0x48-0x4f*/
- 0x957c, 0x957d, 0xc9b9, 0xcffe, 0xeaca, 0xd4ce, 0xeacd, 0xeacf, /*0x50-0x57*/
- 0x957e, 0x9580, 0xcded, 0x9581, 0x9582, 0x9583, 0x9584, 0xeac9, /*0x58-0x5f*/
- 0x9585, 0xeace, 0x9586, 0x9587, 0xceee, 0x9588, 0xbbde, 0x9589, /*0x60-0x67*/
- 0xb3bf, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0xc6d5, 0xbeb0, /*0x68-0x6f*/
- 0xcefa, 0x958f, 0x9590, 0x9591, 0xc7e7, 0x9592, 0xbea7, 0xead0, /*0x70-0x77*/
- 0x9593, 0x9594, 0xd6c7, 0x9595, 0x9596, 0x9597, 0xc1c0, 0x9598, /*0x78-0x7f*/
- 0x9599, 0x959a, 0xd4dd, 0x959b, 0xead1, 0x959c, 0x959d, 0xcfbe, /*0x80-0x87*/
- 0x959e, 0x959f, 0x95a0, 0x95a1, 0xead2, 0x95a2, 0x95a3, 0x95a4, /*0x88-0x8f*/
- 0x95a5, 0xcaee, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0xc5af, 0xb0b5, /*0x90-0x97*/
- 0x95aa, 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0xead4, 0x95af, 0x95b0, /*0x98-0x9f*/
- 0x95b1, 0x95b2, 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0xead3, /*0xa0-0xa7*/
- 0xf4df, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0xc4ba, 0x95bd, /*0xa8-0xaf*/
- 0x95be, 0x95bf, 0x95c0, 0x95c1, 0xb1a9, 0x95c2, 0x95c3, 0x95c4, /*0xb0-0xb7*/
- 0x95c5, 0xe5df, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0xead5, 0x95ca, /*0xb8-0xbf*/
- 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, /*0xc0-0xc7*/
- 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, /*0xc8-0xcf*/
- 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, /*0xd0-0xd7*/
- 0x95e3, 0xcaef, 0x95e4, 0xead6, 0xead7, 0xc6d8, 0x95e5, 0x95e6, /*0xd8-0xdf*/
- 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, 0xead8, 0x95ed, /*0xe0-0xe7*/
- 0x95ee, 0xead9, 0x95ef, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, /*0xe8-0xef*/
- 0xd4bb, 0x95f5, 0xc7fa, 0xd2b7, 0xb8fc, 0x95f6, 0x95f7, 0xeac2, /*0xf0-0xf7*/
- 0x95f8, 0xb2dc, 0x95f9, 0x95fa, 0xc2fc, 0x95fb, 0xd4f8, 0xcce6, /*0xf8-0xff*/
- /* 0x6700 */
- 0xd7ee, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643, /*0x00-0x07*/
- 0xd4c2, 0xd3d0, 0xebc3, 0xc5f3, 0x9644, 0xb7fe, 0x9645, 0x9646, /*0x08-0x0f*/
- 0xebd4, 0x9647, 0x9648, 0x9649, 0xcbb7, 0xebde, 0x964a, 0xc0ca, /*0x10-0x17*/
- 0x964b, 0x964c, 0x964d, 0xcdfb, 0x964e, 0xb3af, 0x964f, 0xc6da, /*0x18-0x1f*/
- 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0xebfc, 0x9656, /*0x20-0x27*/
- 0xc4be, 0x9657, 0xceb4, 0xc4a9, 0xb1be, 0xd4fd, 0x9658, 0xcaf5, /*0x28-0x2f*/
- 0x9659, 0xd6ec, 0x965a, 0x965b, 0xc6d3, 0xb6e4, 0x965c, 0x965d, /*0x30-0x37*/
- 0x965e, 0x965f, 0xbbfa, 0x9660, 0x9661, 0xd0e0, 0x9662, 0x9663, /*0x38-0x3f*/
- 0xc9b1, 0x9664, 0xd4d3, 0xc8a8, 0x9665, 0x9666, 0xb8cb, 0x9667, /*0x40-0x47*/
- 0xe8be, 0xc9bc, 0x9668, 0x9669, 0xe8bb, 0x966a, 0xc0ee, 0xd0d3, /*0x48-0x4f*/
- 0xb2c4, 0xb4e5, 0x966b, 0xe8bc, 0x966c, 0x966d, 0xd5c8, 0x966e, /*0x50-0x57*/
- 0x966f, 0x9670, 0x9671, 0x9672, 0xb6c5, 0x9673, 0xe8bd, 0xcaf8, /*0x58-0x5f*/
- 0xb8dc, 0xccf5, 0x9674, 0x9675, 0x9676, 0xc0b4, 0x9677, 0x9678, /*0x60-0x67*/
- 0xd1ee, 0xe8bf, 0xe8c2, 0x9679, 0x967a, 0xbabc, 0x967b, 0xb1ad, /*0x68-0x6f*/
- 0xbddc, 0x967c, 0xeabd, 0xe8c3, 0x967d, 0xe8c6, 0x967e, 0xe8cb, /*0x70-0x77*/
- 0x9680, 0x9681, 0x9682, 0x9683, 0xe8cc, 0x9684, 0xcbc9, 0xb0e5, /*0x78-0x7f*/
- 0x9685, 0xbcab, 0x9686, 0x9687, 0xb9b9, 0x9688, 0x9689, 0xe8c1, /*0x80-0x87*/
- 0x968a, 0xcdf7, 0x968b, 0xe8ca, 0x968c, 0x968d, 0x968e, 0x968f, /*0x88-0x8f*/
- 0xcef6, 0x9690, 0x9691, 0x9692, 0x9693, 0xd5ed, 0x9694, 0xc1d6, /*0x90-0x97*/
- 0xe8c4, 0x9695, 0xc3b6, 0x9696, 0xb9fb, 0xd6a6, 0xe8c8, 0x9697, /*0x98-0x9f*/
- 0x9698, 0x9699, 0xcae0, 0xd4e6, 0x969a, 0xe8c0, 0x969b, 0xe8c5, /*0xa0-0xa7*/
- 0xe8c7, 0x969c, 0xc7b9, 0xb7e3, 0x969d, 0xe8c9, 0x969e, 0xbfdd, /*0xa8-0xaf*/
- 0xe8d2, 0x969f, 0x96a0, 0xe8d7, 0x96a1, 0xe8d5, 0xbcdc, 0xbccf, /*0xb0-0xb7*/
- 0xe8db, 0x96a2, 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a7, 0x96a8, /*0xb8-0xbf*/
- 0x96a9, 0xe8de, 0x96aa, 0xe8da, 0xb1fa, 0x96ab, 0x96ac, 0x96ad, /*0xc0-0xc7*/
- 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4, 0xb0d8, /*0xc8-0xcf*/
- 0xc4b3, 0xb8cc, 0xc6e2, 0xc8be, 0xc8e1, 0x96b5, 0x96b6, 0x96b7, /*0xd0-0xd7*/
- 0xe8cf, 0xe8d4, 0xe8d6, 0x96b8, 0xb9f1, 0xe8d8, 0xd7f5, 0x96b9, /*0xd8-0xdf*/
- 0xc4fb, 0x96ba, 0xe8dc, 0x96bb, 0x96bc, 0xb2e9, 0x96bd, 0x96be, /*0xe0-0xe7*/
- 0x96bf, 0xe8d1, 0x96c0, 0x96c1, 0xbced, 0x96c2, 0x96c3, 0xbfc2, /*0xe8-0xef*/
- 0xe8cd, 0xd6f9, 0x96c4, 0xc1f8, 0xb2f1, 0x96c5, 0x96c6, 0x96c7, /*0xf0-0xf7*/
- 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0xe8df, 0x96cd, 0xcac1, /*0xf8-0xff*/
- /* 0x6800 */
- 0xe8d9, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0xd5a4, 0x96d2, 0xb1ea, /*0x00-0x07*/
- 0xd5bb, 0xe8ce, 0xe8d0, 0xb6b0, 0xe8d3, 0x96d3, 0xe8dd, 0xc0b8, /*0x08-0x0f*/
- 0x96d4, 0xcaf7, 0x96d5, 0xcba8, 0x96d6, 0x96d7, 0xc6dc, 0xc0f5, /*0x10-0x17*/
- 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, 0xe8e9, 0x96dd, 0x96de, /*0x18-0x1f*/
- 0x96df, 0xd0a3, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4, 0x96e5, /*0x20-0x27*/
- 0x96e6, 0xe8f2, 0xd6ea, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, /*0x28-0x2f*/
- 0x96ec, 0x96ed, 0xe8e0, 0xe8e1, 0x96ee, 0x96ef, 0x96f0, 0xd1f9, /*0x30-0x37*/
- 0xbacb, 0xb8f9, 0x96f1, 0x96f2, 0xb8f1, 0xd4d4, 0xe8ef, 0x96f3, /*0x38-0x3f*/
- 0xe8ee, 0xe8ec, 0xb9f0, 0xccd2, 0xe8e6, 0xcea6, 0xbff2, 0x96f4, /*0x40-0x47*/
- 0xb0b8, 0xe8f1, 0xe8f0, 0x96f5, 0xd7c0, 0x96f6, 0xe8e4, 0x96f7, /*0x48-0x4f*/
- 0xcda9, 0xc9a3, 0x96f8, 0xbbb8, 0xbddb, 0xe8ea, 0x96f9, 0x96fa, /*0x50-0x57*/
- 0x96fb, 0x96fc, 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, /*0x58-0x5f*/
- 0xe8e2, 0xe8e3, 0xe8e5, 0xb5b5, 0xe8e7, 0xc7c5, 0xe8eb, 0xe8ed, /*0x60-0x67*/
- 0xbdb0, 0xd7ae, 0x9744, 0xe8f8, 0x9745, 0x9746, 0x9747, 0x9748, /*0x68-0x6f*/
- 0x9749, 0x974a, 0x974b, 0x974c, 0xe8f5, 0x974d, 0xcdb0, 0xe8f6, /*0x70-0x77*/
- 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, /*0x78-0x7f*/
- 0x9756, 0xc1ba, 0x9757, 0xe8e8, 0x9758, 0xc3b7, 0xb0f0, 0x9759, /*0x80-0x87*/
- 0x975a, 0x975b, 0x975c, 0x975d, 0x975e, 0x975f, 0x9760, 0xe8f4, /*0x88-0x8f*/
- 0x9761, 0x9762, 0x9763, 0xe8f7, 0x9764, 0x9765, 0x9766, 0xb9a3, /*0x90-0x97*/
- 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, 0x976e, /*0x98-0x9f*/
- 0x976f, 0x9770, 0xc9d2, 0x9771, 0x9772, 0x9773, 0xc3ce, 0xcee0, /*0xa0-0xa7*/
- 0xc0e6, 0x9774, 0x9775, 0x9776, 0x9777, 0xcbf3, 0x9778, 0xccdd, /*0xa8-0xaf*/
- 0xd0b5, 0x9779, 0x977a, 0xcae1, 0x977b, 0xe8f3, 0x977c, 0x977d, /*0xb0-0xb7*/
- 0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, /*0xb8-0xbf*/
- 0xbcec, 0x9787, 0xe8f9, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, /*0xc0-0xc7*/
- 0x978d, 0xc3de, 0x978e, 0xc6e5, 0x978f, 0xb9f7, 0x9790, 0x9791, /*0xc8-0xcf*/
- 0x9792, 0x9793, 0xb0f4, 0x9794, 0x9795, 0xd7d8, 0x9796, 0x9797, /*0xd0-0xd7*/
- 0xbcac, 0x9798, 0xc5ef, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, /*0xd8-0xdf*/
- 0xccc4, 0x979e, 0x979f, 0xe9a6, 0x97a0, 0x97a1, 0x97a2, 0x97a3, /*0xe0-0xe7*/
- 0x97a4, 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0xc9ad, 0x97aa, /*0xe8-0xef*/
- 0xe9a2, 0xc0e2, 0x97ab, 0x97ac, 0x97ad, 0xbfc3, 0x97ae, 0x97af, /*0xf0-0xf7*/
- 0x97b0, 0xe8fe, 0xb9d7, 0x97b1, 0xe8fb, 0x97b2, 0x97b3, 0x97b4, /*0xf8-0xff*/
- /* 0x6900 */
- 0x97b5, 0xe9a4, 0x97b6, 0x97b7, 0x97b8, 0xd2ce, 0x97b9, 0x97ba, /*0x00-0x07*/
- 0x97bb, 0x97bc, 0x97bd, 0xe9a3, 0x97be, 0xd6b2, 0xd7b5, 0x97bf, /*0x08-0x0f*/
- 0xe9a7, 0x97c0, 0xbdb7, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, /*0x10-0x17*/
- 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0xe8fc, /*0x18-0x1f*/
- 0xe8fd, 0x97cd, 0x97ce, 0x97cf, 0xe9a1, 0x97d0, 0x97d1, 0x97d2, /*0x20-0x27*/
- 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7, 0xcdd6, 0x97d8, 0x97d9, /*0x28-0x2f*/
- 0xd2ac, 0x97da, 0x97db, 0x97dc, 0xe9b2, 0x97dd, 0x97de, 0x97df, /*0x30-0x37*/
- 0x97e0, 0xe9a9, 0x97e1, 0x97e2, 0x97e3, 0xb4aa, 0x97e4, 0xb4bb, /*0x38-0x3f*/
- 0x97e5, 0x97e6, 0xe9ab, 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, /*0x40-0x47*/
- 0x97ec, 0x97ed, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, /*0x48-0x4f*/
- 0x97f4, 0x97f5, 0x97f6, 0x97f7, 0xd0a8, 0x97f8, 0x97f9, 0xe9a5, /*0x50-0x57*/
- 0x97fa, 0x97fb, 0xb3fe, 0x97fc, 0x97fd, 0xe9ac, 0xc0e3, 0x97fe, /*0x58-0x5f*/
- 0xe9aa, 0x9840, 0x9841, 0xe9b9, 0x9842, 0x9843, 0xe9b8, 0x9844, /*0x60-0x67*/
- 0x9845, 0x9846, 0x9847, 0xe9ae, 0x9848, 0x9849, 0xe8fa, 0x984a, /*0x68-0x6f*/
- 0x984b, 0xe9a8, 0x984c, 0x984d, 0x984e, 0x984f, 0x9850, 0xbfac, /*0x70-0x77*/
- 0xe9b1, 0xe9ba, 0x9851, 0x9852, 0xc2a5, 0x9853, 0x9854, 0x9855, /*0x78-0x7f*/
- 0xe9af, 0x9856, 0xb8c5, 0x9857, 0xe9ad, 0x9858, 0xd3dc, 0xe9b4, /*0x80-0x87*/
- 0xe9b5, 0xe9b7, 0x9859, 0x985a, 0x985b, 0xe9c7, 0x985c, 0x985d, /*0x88-0x8f*/
- 0x985e, 0x985f, 0x9860, 0x9861, 0xc0c6, 0xe9c5, 0x9862, 0x9863, /*0x90-0x97*/
- 0xe9b0, 0x9864, 0x9865, 0xe9bb, 0xb0f1, 0x9866, 0x9867, 0x9868, /*0x98-0x9f*/
- 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0xe9bc, /*0xa0-0xa7*/
- 0xd5a5, 0x9870, 0x9871, 0xe9be, 0x9872, 0xe9bf, 0x9873, 0x9874, /*0xa8-0xaf*/
- 0x9875, 0xe9c1, 0x9876, 0x9877, 0xc1f1, 0x9878, 0x9879, 0xc8b6, /*0xb0-0xb7*/
- 0x987a, 0x987b, 0x987c, 0xe9bd, 0x987d, 0x987e, 0x9880, 0x9881, /*0xb8-0xbf*/
- 0x9882, 0xe9c2, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, /*0xc0-0xc7*/
- 0x9889, 0x988a, 0xe9c3, 0x988b, 0xe9b3, 0x988c, 0xe9b6, 0x988d, /*0xc8-0xcf*/
- 0xbbb1, 0x988e, 0x988f, 0x9890, 0xe9c0, 0x9891, 0x9892, 0x9893, /*0xd0-0xd7*/
- 0x9894, 0x9895, 0x9896, 0xbcf7, 0x9897, 0x9898, 0x9899, 0xe9c4, /*0xd8-0xdf*/
- 0xe9c6, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, /*0xe0-0xe7*/
- 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0xe9ca, 0x98a6, 0x98a7, /*0xe8-0xef*/
- 0x98a8, 0x98a9, 0xe9ce, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, /*0xf0-0xf7*/
- 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, 0xb2db, 0x98b4, 0xe9c8, /*0xf8-0xff*/
- /* 0x6a00 */
- 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, 0x98bc, /*0x00-0x07*/
- 0x98bd, 0x98be, 0xb7ae, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, /*0x08-0x0f*/
- 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0xe9cb, /*0x10-0x17*/
- 0xe9cc, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0, 0xd5c1, /*0x18-0x1f*/
- 0x98d1, 0xc4a3, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, /*0x20-0x27*/
- 0xe9d8, 0x98d8, 0xbae1, 0x98d9, 0x98da, 0x98db, 0x98dc, 0xe9c9, /*0x28-0x2f*/
- 0x98dd, 0xd3a3, 0x98de, 0x98df, 0x98e0, 0xe9d4, 0x98e1, 0x98e2, /*0x30-0x37*/
- 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0xe9d7, 0xe9d0, 0x98e8, /*0x38-0x3f*/
- 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0xe9cf, 0x98ed, 0x98ee, 0xc7c1, /*0x40-0x47*/
- 0x98ef, 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, /*0x48-0x4f*/
- 0xe9d2, 0x98f7, 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, /*0x50-0x57*/
- 0xe9d9, 0xb3c8, 0x98fe, 0xe9d3, 0x9940, 0x9941, 0x9942, 0x9943, /*0x58-0x5f*/
- 0x9944, 0xcff0, 0x9945, 0x9946, 0x9947, 0xe9cd, 0x9948, 0x9949, /*0x60-0x67*/
- 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, /*0x68-0x6f*/
- 0x9952, 0xb3f7, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, /*0x70-0x77*/
- 0x9959, 0xe9d6, 0x995a, 0x995b, 0xe9da, 0x995c, 0x995d, 0x995e, /*0x78-0x7f*/
- 0xccb4, 0x995f, 0x9960, 0x9961, 0xcfad, 0x9962, 0x9963, 0x9964, /*0x80-0x87*/
- 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996a, 0xe9d5, 0x996b, /*0x88-0x8f*/
- 0xe9dc, 0xe9db, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0xe9de, /*0x90-0x97*/
- 0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, /*0x98-0x9f*/
- 0xe9d1, 0x9979, 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, /*0xa0-0xa7*/
- 0x9981, 0xe9dd, 0x9982, 0xe9df, 0xc3ca, 0x9983, 0x9984, 0x9985, /*0xa8-0xaf*/
- 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, 0x998b, 0x998c, 0x998d, /*0xb0-0xb7*/
- 0x998e, 0x998f, 0x9990, 0x9991, 0x9992, 0x9993, 0x9994, 0x9995, /*0xb8-0xbf*/
- 0x9996, 0x9997, 0x9998, 0x9999, 0x999a, 0x999b, 0x999c, 0x999d, /*0xc0-0xc7*/
- 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a5, /*0xc8-0xcf*/
- 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, /*0xd0-0xd7*/
- 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, 0x99b3, 0x99b4, 0x99b5, /*0xd8-0xdf*/
- 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, 0x99bb, 0x99bc, 0x99bd, /*0xe0-0xe7*/
- 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0x99c5, /*0xe8-0xef*/
- 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd, /*0xf0-0xf7*/
- 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, 0x99d3, 0x99d4, 0x99d5, /*0xf8-0xff*/
- /* 0x6b00 */
- 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, /*0x00-0x07*/
- 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, /*0x08-0x0f*/
- 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, /*0x10-0x17*/
- 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, 0x99f3, 0x99f4, 0x99f5, /*0x18-0x1f*/
- 0xc7b7, 0xb4ce, 0xbbb6, 0xd0c0, 0xeca3, 0x99f6, 0x99f7, 0xc5b7, /*0x20-0x27*/
- 0x99f8, 0x99f9, 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, /*0x28-0x2f*/
- 0x9a41, 0x9a42, 0xd3fb, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0xeca4, /*0x30-0x37*/
- 0x9a47, 0xeca5, 0xc6db, 0x9a48, 0x9a49, 0x9a4a, 0xbfee, 0x9a4b, /*0x38-0x3f*/
- 0x9a4c, 0x9a4d, 0x9a4e, 0xeca6, 0x9a4f, 0x9a50, 0xeca7, 0xd0aa, /*0x40-0x47*/
- 0x9a51, 0xc7b8, 0x9a52, 0x9a53, 0xb8e8, 0x9a54, 0x9a55, 0x9a56, /*0x48-0x4f*/
- 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, /*0x50-0x57*/
- 0x9a5f, 0xeca8, 0x9a60, 0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, /*0x58-0x5f*/
- 0x9a66, 0x9a67, 0xd6b9, 0xd5fd, 0xb4cb, 0xb2bd, 0xcee4, 0xc6e7, /*0x60-0x67*/
- 0x9a68, 0x9a69, 0xcde1, 0x9a6a, 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e, /*0x68-0x6f*/
- 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, 0x9a74, 0x9a75, 0x9a76, /*0x70-0x77*/
- 0x9a77, 0xb4f5, 0x9a78, 0xcbc0, 0xbcdf, 0x9a79, 0x9a7a, 0x9a7b, /*0x78-0x7f*/
- 0x9a7c, 0xe9e2, 0xe9e3, 0xd1ea, 0xe9e5, 0x9a7d, 0xb4f9, 0xe9e4, /*0x80-0x87*/
- 0x9a7e, 0xd1b3, 0xcae2, 0xb2d0, 0x9a80, 0xe9e8, 0x9a81, 0x9a82, /*0x88-0x8f*/
- 0x9a83, 0x9a84, 0xe9e6, 0xe9e7, 0x9a85, 0x9a86, 0xd6b3, 0x9a87, /*0x90-0x97*/
- 0x9a88, 0x9a89, 0xe9e9, 0xe9ea, 0x9a8a, 0x9a8b, 0x9a8c, 0x9a8d, /*0x98-0x9f*/
- 0x9a8e, 0xe9eb, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94, /*0xa0-0xa7*/
- 0x9a95, 0x9a96, 0xe9ec, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, /*0xa8-0xaf*/
- 0x9a9c, 0x9a9d, 0x9a9e, 0xecaf, 0xc5b9, 0xb6ce, 0x9a9f, 0xd2f3, /*0xb0-0xb7*/
- 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0xb5ee, /*0xb8-0xbf*/
- 0x9aa7, 0xbbd9, 0xecb1, 0x9aa8, 0x9aa9, 0xd2e3, 0x9aaa, 0x9aab, /*0xc0-0xc7*/
- 0x9aac, 0x9aad, 0x9aae, 0xcee3, 0x9aaf, 0xc4b8, 0x9ab0, 0xc3bf, /*0xc8-0xcf*/
- 0x9ab1, 0x9ab2, 0xb6be, 0xd8b9, 0xb1c8, 0xb1cf, 0xb1d1, 0xc5fe, /*0xd0-0xd7*/
- 0x9ab3, 0xb1d0, 0x9ab4, 0xc3ab, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, /*0xd8-0xdf*/
- 0x9ab9, 0xd5b1, 0x9aba, 0x9abb, 0x9abc, 0x9abd, 0x9abe, 0x9abf, /*0xe0-0xe7*/
- 0x9ac0, 0x9ac1, 0xeba4, 0xbac1, 0x9ac2, 0x9ac3, 0x9ac4, 0xccba, /*0xe8-0xef*/
- 0x9ac5, 0x9ac6, 0x9ac7, 0xeba5, 0x9ac8, 0xeba7, 0x9ac9, 0x9aca, /*0xf0-0xf7*/
- 0x9acb, 0xeba8, 0x9acc, 0x9acd, 0x9ace, 0xeba6, 0x9acf, 0x9ad0, /*0xf8-0xff*/
- /* 0x6c00 */
- 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, 0x9ad5, 0xeba9, 0xebab, 0xebaa, /*0x00-0x07*/
- 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0xebac, 0x9adb, 0xcacf, /*0x08-0x0f*/
- 0xd8b5, 0xc3f1, 0x9adc, 0xc3a5, 0xc6f8, 0xebad, 0xc4ca, 0x9add, /*0x10-0x17*/
- 0xebae, 0xebaf, 0xebb0, 0xb7d5, 0x9ade, 0x9adf, 0x9ae0, 0xb7fa, /*0x18-0x1f*/
- 0x9ae1, 0xebb1, 0xc7e2, 0x9ae2, 0xebb3, 0x9ae3, 0xbaa4, 0xd1f5, /*0x20-0x27*/
- 0xb0b1, 0xebb2, 0xebb4, 0x9ae4, 0x9ae5, 0x9ae6, 0xb5aa, 0xc2c8, /*0x28-0x2f*/
- 0xc7e8, 0x9ae7, 0xebb5, 0x9ae8, 0xcbae, 0xe3df, 0x9ae9, 0x9aea, /*0x30-0x37*/
- 0xd3c0, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0xd9db, 0x9aef, 0x9af0, /*0x38-0x3f*/
- 0xcda1, 0xd6ad, 0xc7f3, 0x9af1, 0x9af2, 0x9af3, 0xd9e0, 0xbbe3, /*0x40-0x47*/
- 0x9af4, 0xbaba, 0xe3e2, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, /*0x48-0x4f*/
- 0xcfab, 0x9afa, 0x9afb, 0x9afc, 0xe3e0, 0xc9c7, 0x9afd, 0xbab9, /*0x50-0x57*/
- 0x9afe, 0x9b40, 0x9b41, 0xd1b4, 0xe3e1, 0xc8ea, 0xb9af, 0xbdad, /*0x58-0x5f*/
- 0xb3d8, 0xcedb, 0x9b42, 0x9b43, 0xccc0, 0x9b44, 0x9b45, 0x9b46, /*0x60-0x67*/
- 0xe3e8, 0xe3e9, 0xcdf4, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, /*0x68-0x6f*/
- 0xccad, 0x9b4c, 0xbcb3, 0x9b4d, 0xe3ea, 0x9b4e, 0xe3eb, 0x9b4f, /*0x70-0x77*/
- 0x9b50, 0xd0da, 0x9b51, 0x9b52, 0x9b53, 0xc6fb, 0xb7da, 0x9b54, /*0x78-0x7f*/
- 0x9b55, 0xc7df, 0xd2ca, 0xced6, 0x9b56, 0xe3e4, 0xe3ec, 0x9b57, /*0x80-0x87*/
- 0xc9f2, 0xb3c1, 0x9b58, 0x9b59, 0xe3e7, 0x9b5a, 0x9b5b, 0xc6e3, /*0x88-0x8f*/
- 0xe3e5, 0x9b5c, 0x9b5d, 0xedb3, 0xe3e6, 0x9b5e, 0x9b5f, 0x9b60, /*0x90-0x97*/
- 0x9b61, 0xc9b3, 0x9b62, 0xc5e6, 0x9b63, 0x9b64, 0x9b65, 0xb9b5, /*0x98-0x9f*/
- 0x9b66, 0xc3bb, 0x9b67, 0xe3e3, 0xc5bd, 0xc1a4, 0xc2d9, 0xb2d7, /*0xa0-0xa7*/
- 0x9b68, 0xe3ed, 0xbba6, 0xc4ad, 0x9b69, 0xe3f0, 0xbeda, 0x9b6a, /*0xa8-0xaf*/
- 0x9b6b, 0xe3fb, 0xe3f5, 0xbad3, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, /*0xb0-0xb7*/
- 0xb7d0, 0xd3cd, 0x9b70, 0xd6ce, 0xd5d3, 0xb9c1, 0xd5b4, 0xd1d8, /*0xb8-0xbf*/
- 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0xd0b9, 0xc7f6, 0x9b75, 0x9b76, /*0xc0-0xc7*/
- 0x9b77, 0xc8aa, 0xb2b4, 0x9b78, 0xc3da, 0x9b79, 0x9b7a, 0x9b7b, /*0xc8-0xcf*/
- 0xe3ee, 0x9b7c, 0x9b7d, 0xe3fc, 0xe3ef, 0xb7a8, 0xe3f7, 0xe3f4, /*0xd0-0xd7*/
- 0x9b7e, 0x9b80, 0x9b81, 0xb7ba, 0x9b82, 0x9b83, 0xc5a2, 0x9b84, /*0xd8-0xdf*/
- 0xe3f6, 0xc5dd, 0xb2a8, 0xc6fc, 0x9b85, 0xc4e0, 0x9b86, 0x9b87, /*0xe0-0xe7*/
- 0xd7a2, 0x9b88, 0xc0e1, 0xe3f9, 0x9b89, 0x9b8a, 0xe3fa, 0xe3fd, /*0xe8-0xef*/
- 0xcca9, 0xe3f3, 0x9b8b, 0xd3be, 0x9b8c, 0xb1c3, 0xedb4, 0xe3f1, /*0xf0-0xf7*/
- 0xe3f2, 0x9b8d, 0xe3f8, 0xd0ba, 0xc6c3, 0xd4f3, 0xe3fe, 0x9b8e, /*0xf8-0xff*/
- /* 0x6d00 */
- 0x9b8f, 0xbde0, 0x9b90, 0x9b91, 0xe4a7, 0x9b92, 0x9b93, 0xe4a6, /*0x00-0x07*/
- 0x9b94, 0x9b95, 0x9b96, 0xd1f3, 0xe4a3, 0x9b97, 0xe4a9, 0x9b98, /*0x08-0x0f*/
- 0x9b99, 0x9b9a, 0xc8f7, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e, 0xcfb4, /*0x10-0x17*/
- 0x9b9f, 0xe4a8, 0xe4ae, 0xc2e5, 0x9ba0, 0x9ba1, 0xb6b4, 0x9ba2, /*0x18-0x1f*/
- 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0xbdf2, 0x9ba8, 0xe4a2, /*0x20-0x27*/
- 0x9ba9, 0x9baa, 0xbae9, 0xe4aa, 0x9bab, 0x9bac, 0xe4ac, 0x9bad, /*0x28-0x2f*/
- 0x9bae, 0xb6fd, 0xd6de, 0xe4b2, 0x9baf, 0xe4ad, 0x9bb0, 0x9bb1, /*0x30-0x37*/
- 0x9bb2, 0xe4a1, 0x9bb3, 0xbbee, 0xcddd, 0xc7a2, 0xc5c9, 0x9bb4, /*0x38-0x3f*/
- 0x9bb5, 0xc1f7, 0x9bb6, 0xe4a4, 0x9bb7, 0xc7b3, 0xbdac, 0xbdbd, /*0x40-0x47*/
- 0xe4a5, 0x9bb8, 0xd7c7, 0xb2e2, 0x9bb9, 0xe4ab, 0xbcc3, 0xe4af, /*0x48-0x4f*/
- 0x9bba, 0xbbeb, 0xe4b0, 0xc5a8, 0xe4b1, 0x9bbb, 0x9bbc, 0x9bbd, /*0x50-0x57*/
- 0x9bbe, 0xd5e3, 0xbfa3, 0x9bbf, 0xe4ba, 0x9bc0, 0xe4b7, 0x9bc1, /*0x58-0x5f*/
- 0xe4bb, 0x9bc2, 0x9bc3, 0xe4bd, 0x9bc4, 0x9bc5, 0xc6d6, 0x9bc6, /*0x60-0x67*/
- 0x9bc7, 0xbac6, 0xc0cb, 0x9bc8, 0x9bc9, 0x9bca, 0xb8a1, 0xe4b4, /*0x68-0x6f*/
- 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0xd4a1, 0x9bcf, 0x9bd0, 0xbaa3, /*0x70-0x77*/
- 0xbdfe, 0x9bd1, 0x9bd2, 0x9bd3, 0xe4bc, 0x9bd4, 0x9bd5, 0x9bd6, /*0x78-0x7f*/
- 0x9bd7, 0x9bd8, 0xcdbf, 0x9bd9, 0x9bda, 0xc4f9, 0x9bdb, 0x9bdc, /*0x80-0x87*/
- 0xcffb, 0xc9e6, 0x9bdd, 0x9bde, 0xd3bf, 0x9bdf, 0xcfd1, 0x9be0, /*0x88-0x8f*/
- 0x9be1, 0xe4b3, 0x9be2, 0xe4b8, 0xe4b9, 0xcce9, 0x9be3, 0x9be4, /*0x90-0x97*/
- 0x9be5, 0x9be6, 0x9be7, 0xccce, 0x9be8, 0xc0d4, 0xe4b5, 0xc1b0, /*0x98-0x9f*/
- 0xe4b6, 0xced0, 0x9be9, 0xbbc1, 0xb5d3, 0x9bea, 0xc8f3, 0xbda7, /*0xa0-0xa7*/
- 0xd5c7, 0xc9ac, 0xb8a2, 0xe4ca, 0x9beb, 0x9bec, 0xe4cc, 0xd1c4, /*0xa8-0xaf*/
- 0x9bed, 0x9bee, 0xd2ba, 0x9bef, 0x9bf0, 0xbaad, 0x9bf1, 0x9bf2, /*0xb0-0xb7*/
- 0xbad4, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0xe4c3, /*0xb8-0xbf*/
- 0xb5ed, 0x9bf9, 0x9bfa, 0x9bfb, 0xd7cd, 0xe4c0, 0xcffd, 0xe4bf, /*0xc0-0xc7*/
- 0x9bfc, 0x9bfd, 0x9bfe, 0xc1dc, 0xccca, 0x9c40, 0x9c41, 0x9c42, /*0xc8-0xcf*/
- 0x9c43, 0xcae7, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0xc4d7, 0x9c48, /*0xd0-0xd7*/
- 0xccd4, 0xe4c8, 0x9c49, 0x9c4a, 0x9c4b, 0xe4c7, 0xe4c1, 0x9c4c, /*0xd8-0xdf*/
- 0xe4c4, 0xb5ad, 0x9c4d, 0x9c4e, 0xd3d9, 0x9c4f, 0xe4c6, 0x9c50, /*0xe0-0xe7*/
- 0x9c51, 0x9c52, 0x9c53, 0xd2f9, 0xb4e3, 0x9c54, 0xbbb4, 0x9c55, /*0xe8-0xef*/
- 0x9c56, 0xc9ee, 0x9c57, 0xb4be, 0x9c58, 0x9c59, 0x9c5a, 0xbbec, /*0xf0-0xf7*/
- 0x9c5b, 0xd1cd, 0x9c5c, 0xcced, 0xedb5, 0x9c5d, 0x9c5e, 0x9c5f, /*0xf8-0xff*/
- /* 0x6e00 */
- 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0xc7e5, 0x9c65, 0x9c66, /*0x00-0x07*/
- 0x9c67, 0x9c68, 0xd4a8, 0x9c69, 0xe4cb, 0xd7d5, 0xe4c2, 0x9c6a, /*0x08-0x0f*/
- 0xbda5, 0xe4c5, 0x9c6b, 0x9c6c, 0xd3e6, 0x9c6d, 0xe4c9, 0xc9f8, /*0x10-0x17*/
- 0x9c6e, 0x9c6f, 0xe4be, 0x9c70, 0x9c71, 0xd3e5, 0x9c72, 0x9c73, /*0x18-0x1f*/
- 0xc7fe, 0xb6c9, 0x9c74, 0xd4fc, 0xb2b3, 0xe4d7, 0x9c75, 0x9c76, /*0x20-0x27*/
- 0x9c77, 0xcec2, 0x9c78, 0xe4cd, 0x9c79, 0xcebc, 0x9c7a, 0xb8db, /*0x28-0x2f*/
- 0x9c7b, 0x9c7c, 0xe4d6, 0x9c7d, 0xbfca, 0x9c7e, 0x9c80, 0x9c81, /*0x30-0x37*/
- 0xd3ce, 0x9c82, 0xc3ec, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, /*0x38-0x3f*/
- 0x9c88, 0x9c89, 0x9c8a, 0xc5c8, 0xe4d8, 0x9c8b, 0x9c8c, 0x9c8d, /*0x40-0x47*/
- 0x9c8e, 0x9c8f, 0x9c90, 0x9c91, 0x9c92, 0xcdc4, 0xe4cf, 0x9c93, /*0x48-0x4f*/
- 0x9c94, 0x9c95, 0x9c96, 0xe4d4, 0xe4d5, 0x9c97, 0xbafe, 0x9c98, /*0x50-0x57*/
- 0xcfe6, 0x9c99, 0x9c9a, 0xd5bf, 0x9c9b, 0x9c9c, 0x9c9d, 0xe4d2, /*0x58-0x5f*/
- 0x9c9e, 0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, /*0x60-0x67*/
- 0x9ca6, 0x9ca7, 0x9ca8, 0xe4d0, 0x9ca9, 0x9caa, 0xe4ce, 0x9cab, /*0x68-0x6f*/
- 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, /*0x70-0x77*/
- 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0xcde5, 0xcaaa, /*0x78-0x7f*/
- 0x9cba, 0x9cbb, 0x9cbc, 0xc0a3, 0x9cbd, 0xbda6, 0xe4d3, 0x9cbe, /*0x80-0x87*/
- 0x9cbf, 0xb8c8, 0x9cc0, 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0xe4e7, /*0x88-0x8f*/
- 0xd4b4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, 0x9cc9, 0x9cca, 0x9ccb, /*0x90-0x97*/
- 0xe4db, 0x9ccc, 0x9ccd, 0x9cce, 0xc1ef, 0x9ccf, 0x9cd0, 0xe4e9, /*0x98-0x9f*/
- 0x9cd1, 0x9cd2, 0xd2e7, 0x9cd3, 0x9cd4, 0xe4df, 0x9cd5, 0xe4e0, /*0xa0-0xa7*/
- 0x9cd6, 0x9cd7, 0xcfaa, 0x9cd8, 0x9cd9, 0x9cda, 0x9cdb, 0xcbdd, /*0xa8-0xaf*/
- 0x9cdc, 0xe4da, 0xe4d1, 0x9cdd, 0xe4e5, 0x9cde, 0xc8dc, 0xe4e3, /*0xb0-0xb7*/
- 0x9cdf, 0x9ce0, 0xc4e7, 0xe4e2, 0x9ce1, 0xe4e1, 0x9ce2, 0x9ce3, /*0xb8-0xbf*/
- 0x9ce4, 0xb3fc, 0xe4e8, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0xb5e1, /*0xc0-0xc7*/
- 0x9ce9, 0x9cea, 0x9ceb, 0xd7cc, 0x9cec, 0x9ced, 0x9cee, 0xe4e6, /*0xc8-0xcf*/
- 0x9cef, 0xbbac, 0x9cf0, 0xd7d2, 0xcccf, 0xebf8, 0x9cf1, 0xe4e4, /*0xd0-0xd7*/
- 0x9cf2, 0x9cf3, 0xb9f6, 0x9cf4, 0x9cf5, 0x9cf6, 0xd6cd, 0xe4d9, /*0xd8-0xdf*/
- 0xe4dc, 0xc2fa, 0xe4de, 0x9cf7, 0xc2cb, 0xc0c4, 0xc2d0, 0x9cf8, /*0xe0-0xe7*/
- 0xb1f5, 0xccb2, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, /*0xe8-0xef*/
- 0x9d40, 0x9d41, 0x9d42, 0x9d43, 0xb5ce, 0x9d44, 0x9d45, 0x9d46, /*0xf0-0xf7*/
- 0x9d47, 0xe4ef, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, /*0xf8-0xff*/
- /* 0x6f00 */
- 0x9d4e, 0x9d4f, 0xc6af, 0x9d50, 0x9d51, 0x9d52, 0xc6e1, 0x9d53, /*0x00-0x07*/
- 0x9d54, 0xe4f5, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0xc2a9, /*0x08-0x0f*/
- 0x9d5a, 0x9d5b, 0x9d5c, 0xc0ec, 0xd1dd, 0xe4ee, 0x9d5d, 0x9d5e, /*0x10-0x17*/
- 0x9d5f, 0x9d60, 0x9d61, 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, /*0x18-0x1f*/
- 0xc4ae, 0x9d67, 0x9d68, 0x9d69, 0xe4ed, 0x9d6a, 0x9d6b, 0x9d6c, /*0x20-0x27*/
- 0x9d6d, 0xe4f6, 0xe4f4, 0xc2fe, 0x9d6e, 0xe4dd, 0x9d6f, 0xe4f0, /*0x28-0x2f*/
- 0x9d70, 0xcafe, 0x9d71, 0xd5c4, 0x9d72, 0x9d73, 0xe4f1, 0x9d74, /*0x30-0x37*/
- 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0xd1fa, 0x9d7b, /*0x38-0x3f*/
- 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82, 0xe4eb, 0xe4ec, /*0x40-0x47*/
- 0x9d83, 0x9d84, 0x9d85, 0xe4f2, 0x9d86, 0xceab, 0x9d87, 0x9d88, /*0x48-0x4f*/
- 0x9d89, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, /*0x50-0x57*/
- 0xc5cb, 0x9d91, 0x9d92, 0x9d93, 0xc7b1, 0x9d94, 0xc2ba, 0x9d95, /*0x58-0x5f*/
- 0x9d96, 0x9d97, 0xe4ea, 0x9d98, 0x9d99, 0x9d9a, 0xc1ca, 0x9d9b, /*0x60-0x67*/
- 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0xccb6, 0xb3b1, 0x9da1, /*0x68-0x6f*/
- 0x9da2, 0x9da3, 0xe4fb, 0x9da4, 0xe4f3, 0x9da5, 0x9da6, 0x9da7, /*0x70-0x77*/
- 0xe4fa, 0x9da8, 0xe4fd, 0x9da9, 0xe4fc, 0x9daa, 0x9dab, 0x9dac, /*0x78-0x7f*/
- 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0xb3ce, 0x9db1, 0x9db2, 0x9db3, /*0x80-0x87*/
- 0xb3ba, 0xe4f7, 0x9db4, 0x9db5, 0xe4f9, 0xe4f8, 0xc5ec, 0x9db6, /*0x88-0x8f*/
- 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, /*0x90-0x97*/
- 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, 0xc0bd, 0x9dc3, 0x9dc4, 0x9dc5, /*0x98-0x9f*/
- 0x9dc6, 0xd4e8, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, 0x9dcb, 0xe5a2, /*0xa0-0xa7*/
- 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, 0x9dd3, /*0xa8-0xaf*/
- 0x9dd4, 0x9dd5, 0x9dd6, 0xb0c4, 0x9dd7, 0x9dd8, 0xe5a4, 0x9dd9, /*0xb0-0xb7*/
- 0x9dda, 0xe5a3, 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, /*0xb8-0xbf*/
- 0xbca4, 0x9de1, 0xe5a5, 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, /*0xc0-0xc7*/
- 0x9de7, 0xe5a1, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, 0x9ded, /*0xc8-0xcf*/
- 0x9dee, 0xe4fe, 0xb1f4, 0x9def, 0x9df0, 0x9df1, 0x9df2, 0x9df3, /*0xd0-0xd7*/
- 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0xe5a8, 0x9dfa, /*0xd8-0xdf*/
- 0xe5a9, 0xe5a6, 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, /*0xe0-0xe7*/
- 0x9e42, 0x9e43, 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0xe5a7, 0xe5aa, /*0xe8-0xef*/
- 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, /*0xf0-0xf7*/
- 0x9e50, 0x9e51, 0x9e52, 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, /*0xf8-0xff*/
- /* 0x7000 */
- 0x9e58, 0x9e59, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, /*0x00-0x07*/
- 0x9e60, 0x9e61, 0x9e62, 0x9e63, 0x9e64, 0x9e65, 0x9e66, 0x9e67, /*0x08-0x0f*/
- 0x9e68, 0xc6d9, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e6d, 0x9e6e, /*0x10-0x17*/
- 0x9e6f, 0x9e70, 0xe5ab, 0xe5ad, 0x9e71, 0x9e72, 0x9e73, 0x9e74, /*0x18-0x1f*/
- 0x9e75, 0x9e76, 0x9e77, 0xe5ac, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, /*0x20-0x27*/
- 0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84, /*0x28-0x2f*/
- 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0xe5af, 0x9e8a, 0x9e8b, /*0x30-0x37*/
- 0x9e8c, 0xe5ae, 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, /*0x38-0x3f*/
- 0x9e93, 0x9e94, 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, /*0x40-0x47*/
- 0x9e9b, 0x9e9c, 0x9e9d, 0x9e9e, 0xb9e0, 0x9e9f, 0x9ea0, 0xe5b0, /*0x48-0x4f*/
- 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, /*0x50-0x57*/
- 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0xe5b1, 0x9eaf, /*0x58-0x5f*/
- 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, 0x9eb5, 0x9eb6, 0x9eb7, /*0x60-0x67*/
- 0x9eb8, 0x9eb9, 0x9eba, 0xbbf0, 0xece1, 0xc3f0, 0x9ebb, 0xb5c6, /*0x68-0x6f*/
- 0xbbd2, 0x9ebc, 0x9ebd, 0x9ebe, 0x9ebf, 0xc1e9, 0xd4ee, 0x9ec0, /*0x70-0x77*/
- 0xbec4, 0x9ec1, 0x9ec2, 0x9ec3, 0xd7c6, 0x9ec4, 0xd4d6, 0xb2d3, /*0x78-0x7f*/
- 0xecbe, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0xeac1, 0x9ec9, 0x9eca, /*0x80-0x87*/
- 0x9ecb, 0xc2af, 0xb4b6, 0x9ecc, 0x9ecd, 0x9ece, 0xd1d7, 0x9ecf, /*0x88-0x8f*/
- 0x9ed0, 0x9ed1, 0xb3b4, 0x9ed2, 0xc8b2, 0xbfbb, 0xecc0, 0x9ed3, /*0x90-0x97*/
- 0x9ed4, 0xd6cb, 0x9ed5, 0x9ed6, 0xecbf, 0xecc1, 0x9ed7, 0x9ed8, /*0x98-0x9f*/
- 0x9ed9, 0x9eda, 0x9edb, 0x9edc, 0x9edd, 0x9ede, 0x9edf, 0x9ee0, /*0xa0-0xa7*/
- 0x9ee1, 0x9ee2, 0x9ee3, 0xecc5, 0xbee6, 0xccbf, 0xc5da, 0xbebc, /*0xa8-0xaf*/
- 0x9ee4, 0xecc6, 0x9ee5, 0xb1fe, 0x9ee6, 0x9ee7, 0x9ee8, 0xecc4, /*0xb0-0xb7*/
- 0xd5a8, 0xb5e3, 0x9ee9, 0xecc2, 0xc1b6, 0xb3e3, 0x9eea, 0x9eeb, /*0xb8-0xbf*/
- 0xecc3, 0xcbb8, 0xc0c3, 0xccfe, 0x9eec, 0x9eed, 0x9eee, 0x9eef, /*0xc0-0xc7*/
- 0xc1d2, 0x9ef0, 0xecc8, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, 0x9ef5, /*0xc8-0xcf*/
- 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, /*0xd0-0xd7*/
- 0xbae6, 0xc0d3, 0x9efe, 0xd6f2, 0x9f40, 0x9f41, 0x9f42, 0xd1cc, /*0xd8-0xdf*/
- 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0xbfbe, 0x9f47, 0xb7b3, 0xc9d5, /*0xe0-0xe7*/
- 0xecc7, 0xbbe2, 0x9f48, 0xcccc, 0xbdfd, 0xc8c8, 0x9f49, 0xcfa9, /*0xe8-0xef*/
- 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, 0xcde9, /*0xf0-0xf7*/
- 0x9f51, 0xc5eb, 0x9f52, 0x9f53, 0x9f54, 0xb7e9, 0x9f55, 0x9f56, /*0xf8-0xff*/
- /* 0x7100 */
- 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, /*0x00-0x07*/
- 0x9f5f, 0xd1c9, 0xbab8, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, /*0x08-0x0f*/
- 0xecc9, 0x9f65, 0x9f66, 0xecca, 0x9f67, 0xbbc0, 0xeccb, 0x9f68, /*0x10-0x17*/
- 0xece2, 0xb1ba, 0xb7d9, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, /*0x18-0x1f*/
- 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0xbdb9, 0x9f74, /*0x20-0x27*/
- 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0xeccc, /*0x28-0x2f*/
- 0xd1e6, 0xeccd, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f80, 0xc8bb, 0x9f81, /*0x30-0x37*/
- 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, 0x9f87, 0x9f88, 0x9f89, /*0x38-0x3f*/
- 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0xecd1, 0x9f8f, 0x9f90, /*0x40-0x47*/
- 0x9f91, 0x9f92, 0xecd3, 0x9f93, 0xbbcd, 0x9f94, 0xbce5, 0x9f95, /*0x48-0x4f*/
- 0x9f96, 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, /*0x50-0x57*/
- 0x9f9e, 0x9f9f, 0x9fa0, 0x9fa1, 0xeccf, 0x9fa2, 0xc9b7, 0x9fa3, /*0x58-0x5f*/
- 0x9fa4, 0x9fa5, 0x9fa6, 0x9fa7, 0xc3ba, 0x9fa8, 0xece3, 0xd5d5, /*0x60-0x67*/
- 0xecd0, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0xd6f3, 0x9fae, /*0x68-0x6f*/
- 0x9faf, 0x9fb0, 0xecd2, 0xecce, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, /*0x70-0x77*/
- 0xecd4, 0x9fb5, 0xecd5, 0x9fb6, 0x9fb7, 0xc9bf, 0x9fb8, 0x9fb9, /*0x78-0x7f*/
- 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0xcfa8, 0x9fbe, 0x9fbf, 0x9fc0, /*0x80-0x87*/
- 0x9fc1, 0x9fc2, 0xd0dc, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6, 0xd1ac, /*0x88-0x8f*/
- 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0xc8db, 0x9fcb, 0x9fcc, 0x9fcd, /*0x90-0x97*/
- 0xecd6, 0xcef5, 0x9fce, 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0xcaec, /*0x98-0x9f*/
- 0xecda, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, 0x9fd7, 0x9fd8, 0x9fd9, /*0xa0-0xa7*/
- 0xecd9, 0x9fda, 0x9fdb, 0x9fdc, 0xb0be, 0x9fdd, 0x9fde, 0x9fdf, /*0xa8-0xaf*/
- 0x9fe0, 0x9fe1, 0x9fe2, 0xecd7, 0x9fe3, 0xecd8, 0x9fe4, 0x9fe5, /*0xb0-0xb7*/
- 0x9fe6, 0xece4, 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, /*0xb8-0xbf*/
- 0x9fed, 0x9fee, 0x9fef, 0xc8bc, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, /*0xc0-0xc7*/
- 0x9ff4, 0x9ff5, 0x9ff6, 0x9ff7, 0x9ff8, 0x9ff9, 0xc1c7, 0x9ffa, /*0xc8-0xcf*/
- 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe, 0xecdc, 0xd1e0, 0xa040, 0xa041, /*0xd0-0xd7*/
- 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047, 0xa048, 0xa049, /*0xd8-0xdf*/
- 0xecdb, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xd4ef, 0xa04e, 0xecdd, /*0xe0-0xe7*/
- 0xa04f, 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xdbc6, 0xa055, /*0xe8-0xef*/
- 0xa056, 0xa057, 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, /*0xf0-0xf7*/
- 0xa05e, 0xecde, 0xa05f, 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, /*0xf8-0xff*/
- /* 0x7200 */
- 0xa065, 0xa066, 0xa067, 0xa068, 0xa069, 0xa06a, 0xb1ac, 0xa06b, /*0x00-0x07*/
- 0xa06c, 0xa06d, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa072, 0xa073, /*0x08-0x0f*/
- 0xa074, 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, 0xa07a, 0xa07b, /*0x10-0x17*/
- 0xa07c, 0xa07d, 0xa07e, 0xa080, 0xa081, 0xecdf, 0xa082, 0xa083, /*0x18-0x1f*/
- 0xa084, 0xa085, 0xa086, 0xa087, 0xa088, 0xa089, 0xa08a, 0xa08b, /*0x20-0x27*/
- 0xece0, 0xa08c, 0xd7a6, 0xa08d, 0xc5c0, 0xa08e, 0xa08f, 0xa090, /*0x28-0x2f*/
- 0xebbc, 0xb0ae, 0xa091, 0xa092, 0xa093, 0xbef4, 0xb8b8, 0xd2af, /*0x30-0x37*/
- 0xb0d6, 0xb5f9, 0xa094, 0xd8b3, 0xa095, 0xcbac, 0xa096, 0xe3dd, /*0x38-0x3f*/
- 0xa097, 0xa098, 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xc6ac, /*0x40-0x47*/
- 0xb0e6, 0xa09e, 0xa09f, 0xa0a0, 0xc5c6, 0xebb9, 0xa0a1, 0xa0a2, /*0x48-0x4f*/
- 0xa0a3, 0xa0a4, 0xebba, 0xa0a5, 0xa0a6, 0xa0a7, 0xebbb, 0xa0a8, /*0x50-0x57*/
- 0xa0a9, 0xd1c0, 0xa0aa, 0xc5a3, 0xa0ab, 0xeaf2, 0xa0ac, 0xc4b2, /*0x58-0x5f*/
- 0xa0ad, 0xc4b5, 0xc0ce, 0xa0ae, 0xa0af, 0xa0b0, 0xeaf3, 0xc4c1, /*0x60-0x67*/
- 0xa0b1, 0xceef, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xeaf0, 0xeaf4, /*0x68-0x6f*/
- 0xa0b6, 0xa0b7, 0xc9fc, 0xa0b8, 0xa0b9, 0xc7a3, 0xa0ba, 0xa0bb, /*0x70-0x77*/
- 0xa0bc, 0xccd8, 0xcefe, 0xa0bd, 0xa0be, 0xa0bf, 0xeaf5, 0xeaf6, /*0x78-0x7f*/
- 0xcfac, 0xc0e7, 0xa0c0, 0xa0c1, 0xeaf7, 0xa0c2, 0xa0c3, 0xa0c4, /*0x80-0x87*/
- 0xa0c5, 0xa0c6, 0xb6bf, 0xeaf8, 0xa0c7, 0xeaf9, 0xa0c8, 0xeafa, /*0x88-0x8f*/
- 0xa0c9, 0xa0ca, 0xeafb, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, /*0x90-0x97*/
- 0xa0d0, 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xeaf1, /*0x98-0x9f*/
- 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, /*0xa0-0xa7*/
- 0xa0df, 0xa0e0, 0xa0e1, 0xa0e2, 0xc8ae, 0xe1eb, 0xa0e3, 0xb7b8, /*0xa8-0xaf*/
- 0xe1ec, 0xa0e4, 0xa0e5, 0xa0e6, 0xe1ed, 0xa0e7, 0xd7b4, 0xe1ee, /*0xb0-0xb7*/
- 0xe1ef, 0xd3cc, 0xa0e8, 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, /*0xb8-0xbf*/
- 0xa0ee, 0xe1f1, 0xbff1, 0xe1f0, 0xb5d2, 0xa0ef, 0xa0f0, 0xa0f1, /*0xc0-0xc7*/
- 0xb1b7, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xe1f3, 0xe1f2, 0xa0f6, /*0xc8-0xcf*/
- 0xbafc, 0xa0f7, 0xe1f4, 0xa0f8, 0xa0f9, 0xa0fa, 0xa0fb, 0xb9b7, /*0xd0-0xd7*/
- 0xa0fc, 0xbed1, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41, 0xc4fc, 0xaa42, /*0xd8-0xdf*/
- 0xbadd, 0xbdc6, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, /*0xe0-0xe7*/
- 0xe1f5, 0xe1f7, 0xaa49, 0xaa4a, 0xb6c0, 0xcfc1, 0xcaa8, 0xe1f6, /*0xe8-0xef*/
- 0xd5f8, 0xd3fc, 0xe1f8, 0xe1fc, 0xe1f9, 0xaa4b, 0xaa4c, 0xe1fa, /*0xf0-0xf7*/
- 0xc0ea, 0xaa4d, 0xe1fe, 0xe2a1, 0xc0c7, 0xaa4e, 0xaa4f, 0xaa50, /*0xf8-0xff*/
- /* 0x7300 */
- 0xaa51, 0xe1fb, 0xaa52, 0xe1fd, 0xaa53, 0xaa54, 0xaa55, 0xaa56, /*0x00-0x07*/
- 0xaa57, 0xaa58, 0xe2a5, 0xaa59, 0xaa5a, 0xaa5b, 0xc1d4, 0xaa5c, /*0x08-0x0f*/
- 0xaa5d, 0xaa5e, 0xaa5f, 0xe2a3, 0xaa60, 0xe2a8, 0xb2fe, 0xe2a2, /*0x10-0x17*/
- 0xaa61, 0xaa62, 0xaa63, 0xc3cd, 0xb2c2, 0xe2a7, 0xe2a6, 0xaa64, /*0x18-0x1f*/
- 0xaa65, 0xe2a4, 0xe2a9, 0xaa66, 0xaa67, 0xe2ab, 0xaa68, 0xaa69, /*0x20-0x27*/
- 0xaa6a, 0xd0c9, 0xd6ed, 0xc3a8, 0xe2ac, 0xaa6b, 0xcfd7, 0xaa6c, /*0x28-0x2f*/
- 0xaa6d, 0xe2ae, 0xaa6e, 0xaa6f, 0xbaef, 0xaa70, 0xaa71, 0xe9e0, /*0x30-0x37*/
- 0xe2ad, 0xe2aa, 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xbbab, 0xd4b3, /*0x38-0x3f*/
- 0xaa76, 0xaa77, 0xaa78, 0xaa79, 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, /*0x40-0x47*/
- 0xaa7e, 0xaa80, 0xaa81, 0xaa82, 0xaa83, 0xe2b0, 0xaa84, 0xaa85, /*0x48-0x4f*/
- 0xe2af, 0xaa86, 0xe9e1, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xe2b1, /*0x50-0x57*/
- 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, /*0x58-0x5f*/
- 0xe2b2, 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, /*0x60-0x67*/
- 0xaa9a, 0xaa9b, 0xaa9c, 0xaa9d, 0xe2b3, 0xcca1, 0xaa9e, 0xe2b4, /*0x68-0x6f*/
- 0xaa9f, 0xaaa0, 0xab40, 0xab41, 0xab42, 0xab43, 0xab44, 0xab45, /*0x70-0x77*/
- 0xab46, 0xab47, 0xab48, 0xab49, 0xab4a, 0xab4b, 0xe2b5, 0xab4c, /*0x78-0x7f*/
- 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xd0fe, 0xab51, 0xab52, 0xc2ca, /*0x80-0x87*/
- 0xab53, 0xd3f1, 0xab54, 0xcdf5, 0xab55, 0xab56, 0xe7e0, 0xab57, /*0x88-0x8f*/
- 0xab58, 0xe7e1, 0xab59, 0xab5a, 0xab5b, 0xab5c, 0xbec1, 0xab5d, /*0x90-0x97*/
- 0xab5e, 0xab5f, 0xab60, 0xc2ea, 0xab61, 0xab62, 0xab63, 0xe7e4, /*0x98-0x9f*/
- 0xab64, 0xab65, 0xe7e3, 0xab66, 0xab67, 0xab68, 0xab69, 0xab6a, /*0xa0-0xa7*/
- 0xab6b, 0xcde6, 0xab6c, 0xc3b5, 0xab6d, 0xab6e, 0xe7e2, 0xbbb7, /*0xa8-0xaf*/
- 0xcfd6, 0xab6f, 0xc1e1, 0xe7e9, 0xab70, 0xab71, 0xab72, 0xe7e8, /*0xb0-0xb7*/
- 0xab73, 0xab74, 0xe7f4, 0xb2a3, 0xab75, 0xab76, 0xab77, 0xab78, /*0xb8-0xbf*/
- 0xe7ea, 0xab79, 0xe7e6, 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, /*0xc0-0xc7*/
- 0xe7ec, 0xe7eb, 0xc9ba, 0xab80, 0xab81, 0xd5e4, 0xab82, 0xe7e5, /*0xc8-0xcf*/
- 0xb7a9, 0xe7e7, 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, /*0xd0-0xd7*/
- 0xab89, 0xe7ee, 0xab8a, 0xab8b, 0xab8c, 0xab8d, 0xe7f3, 0xab8e, /*0xd8-0xdf*/
- 0xd6e9, 0xab8f, 0xab90, 0xab91, 0xab92, 0xe7ed, 0xab93, 0xe7f2, /*0xe0-0xe7*/
- 0xab94, 0xe7f1, 0xab95, 0xab96, 0xab97, 0xb0e0, 0xab98, 0xab99, /*0xe8-0xef*/
- 0xab9a, 0xab9b, 0xe7f5, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, /*0xf0-0xf7*/
- 0xac40, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, /*0xf8-0xff*/
- /* 0x7400 */
- 0xac48, 0xac49, 0xac4a, 0xc7f2, 0xac4b, 0xc0c5, 0xc0ed, 0xac4c, /*0x00-0x07*/
- 0xac4d, 0xc1f0, 0xe7f0, 0xac4e, 0xac4f, 0xac50, 0xac51, 0xe7f6, /*0x08-0x0f*/
- 0xcbf6, 0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, /*0x10-0x17*/
- 0xac59, 0xac5a, 0xe8a2, 0xe8a1, 0xac5b, 0xac5c, 0xac5d, 0xac5e, /*0x18-0x1f*/
- 0xac5f, 0xac60, 0xd7c1, 0xac61, 0xac62, 0xe7fa, 0xe7f9, 0xac63, /*0x20-0x27*/
- 0xe7fb, 0xac64, 0xe7f7, 0xac65, 0xe7fe, 0xac66, 0xe7fd, 0xac67, /*0x28-0x2f*/
- 0xe7fc, 0xac68, 0xac69, 0xc1d5, 0xc7d9, 0xc5fd, 0xc5c3, 0xac6a, /*0x30-0x37*/
- 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xc7ed, 0xac6f, 0xac70, 0xac71, /*0x38-0x3f*/
- 0xac72, 0xe8a3, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, /*0x40-0x47*/
- 0xac79, 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, /*0x48-0x4f*/
- 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xe8a6, 0xac87, 0xe8a5, /*0x50-0x57*/
- 0xac88, 0xe8a7, 0xbaf7, 0xe7f8, 0xe8a4, 0xac89, 0xc8f0, 0xc9aa, /*0x58-0x5f*/
- 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, /*0x60-0x67*/
- 0xac92, 0xac93, 0xac94, 0xac95, 0xac96, 0xe8a9, 0xac97, 0xac98, /*0x68-0x6f*/
- 0xb9e5, 0xac99, 0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xd1fe, 0xe8a8, /*0x70-0x77*/
- 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41, 0xad42, 0xe8aa, 0xad43, /*0x78-0x7f*/
- 0xe8ad, 0xe8ae, 0xad44, 0xc1a7, 0xad45, 0xad46, 0xad47, 0xe8af, /*0x80-0x87*/
- 0xad48, 0xad49, 0xad4a, 0xe8b0, 0xad4b, 0xad4c, 0xe8ac, 0xad4d, /*0x88-0x8f*/
- 0xe8b4, 0xad4e, 0xad4f, 0xad50, 0xad51, 0xad52, 0xad53, 0xad54, /*0x90-0x97*/
- 0xad55, 0xad56, 0xad57, 0xad58, 0xe8ab, 0xad59, 0xe8b1, 0xad5a, /*0x98-0x9f*/
- 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61, 0xe8b5, /*0xa0-0xa7*/
- 0xe8b2, 0xe8b3, 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, /*0xa8-0xaf*/
- 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, /*0xb0-0xb7*/
- 0xad70, 0xad71, 0xe8b7, 0xad72, 0xad73, 0xad74, 0xad75, 0xad76, /*0xb8-0xbf*/
- 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, /*0xc0-0xc7*/
- 0xad80, 0xad81, 0xad82, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, /*0xc8-0xcf*/
- 0xad88, 0xad89, 0xe8b6, 0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, /*0xd0-0xd7*/
- 0xad8f, 0xad90, 0xad91, 0xad92, 0xb9cf, 0xad93, 0xf0ac, 0xad94, /*0xd8-0xdf*/
- 0xf0ad, 0xad95, 0xc6b0, 0xb0ea, 0xc8bf, 0xad96, 0xcddf, 0xad97, /*0xe0-0xe7*/
- 0xad98, 0xad99, 0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xcecd, 0xeab1, /*0xe8-0xef*/
- 0xad9e, 0xad9f, 0xada0, 0xae40, 0xeab2, 0xae41, 0xc6bf, 0xb4c9, /*0xf0-0xf7*/
- 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xeab3, /*0xf8-0xff*/
- /* 0x7500 */
- 0xae49, 0xae4a, 0xae4b, 0xae4c, 0xd5e7, 0xae4d, 0xae4e, 0xae4f, /*0x00-0x07*/
- 0xae50, 0xae51, 0xae52, 0xae53, 0xae54, 0xddf9, 0xae55, 0xeab4, /*0x08-0x0f*/
- 0xae56, 0xeab5, 0xae57, 0xeab6, 0xae58, 0xae59, 0xae5a, 0xae5b, /*0x10-0x17*/
- 0xb8ca, 0xdfb0, 0xc9f5, 0xae5c, 0xccf0, 0xae5d, 0xae5e, 0xc9fa, /*0x18-0x1f*/
- 0xae5f, 0xae60, 0xae61, 0xae62, 0xae63, 0xc9fb, 0xae64, 0xae65, /*0x20-0x27*/
- 0xd3c3, 0xcba6, 0xae66, 0xb8a6, 0xf0ae, 0xb1c2, 0xae67, 0xe5b8, /*0x28-0x2f*/
- 0xccef, 0xd3c9, 0xbcd7, 0xc9ea, 0xae68, 0xb5e7, 0xae69, 0xc4d0, /*0x30-0x37*/
- 0xb5e9, 0xae6a, 0xeeae, 0xbbad, 0xae6b, 0xae6c, 0xe7de, 0xae6d, /*0x38-0x3f*/
- 0xeeaf, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xb3a9, 0xae72, 0xae73, /*0x40-0x47*/
- 0xeeb2, 0xae74, 0xae75, 0xeeb1, 0xbde7, 0xae76, 0xeeb0, 0xceb7, /*0x48-0x4f*/
- 0xae77, 0xae78, 0xae79, 0xae7a, 0xc5cf, 0xae7b, 0xae7c, 0xae7d, /*0x50-0x57*/
- 0xae7e, 0xc1f4, 0xdbce, 0xeeb3, 0xd0f3, 0xae80, 0xae81, 0xae82, /*0x58-0x5f*/
- 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xc2d4, 0xc6e8, 0xae88, /*0x60-0x67*/
- 0xae89, 0xae8a, 0xb7ac, 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, /*0x68-0x6f*/
- 0xae90, 0xae91, 0xeeb4, 0xae92, 0xb3eb, 0xae93, 0xae94, 0xae95, /*0x70-0x77*/
- 0xbbfb, 0xeeb5, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, 0xe7dc, /*0x78-0x7f*/
- 0xae9b, 0xae9c, 0xae9d, 0xeeb6, 0xae9e, 0xae9f, 0xbdae, 0xaea0, /*0x80-0x87*/
- 0xaf40, 0xaf41, 0xaf42, 0xf1e2, 0xaf43, 0xaf44, 0xaf45, 0xcae8, /*0x88-0x8f*/
- 0xaf46, 0xd2c9, 0xf0da, 0xaf47, 0xf0db, 0xaf48, 0xf0dc, 0xc1c6, /*0x90-0x97*/
- 0xaf49, 0xb8ed, 0xbece, 0xaf4a, 0xaf4b, 0xf0de, 0xaf4c, 0xc5b1, /*0x98-0x9f*/
- 0xf0dd, 0xd1f1, 0xaf4d, 0xf0e0, 0xb0cc, 0xbdea, 0xaf4e, 0xaf4f, /*0xa0-0xa7*/
- 0xaf50, 0xaf51, 0xaf52, 0xd2df, 0xf0df, 0xaf53, 0xb4af, 0xb7e8, /*0xa8-0xaf*/
- 0xf0e6, 0xf0e5, 0xc6a3, 0xf0e1, 0xf0e2, 0xb4c3, 0xaf54, 0xaf55, /*0xb0-0xb7*/
- 0xf0e3, 0xd5ee, 0xaf56, 0xaf57, 0xccdb, 0xbed2, 0xbcb2, 0xaf58, /*0xb8-0xbf*/
- 0xaf59, 0xaf5a, 0xf0e8, 0xf0e7, 0xf0e4, 0xb2a1, 0xaf5b, 0xd6a2, /*0xc0-0xc7*/
- 0xd3b8, 0xbeb7, 0xc8ac, 0xaf5c, 0xaf5d, 0xf0ea, 0xaf5e, 0xaf5f, /*0xc8-0xcf*/
- 0xaf60, 0xaf61, 0xd1f7, 0xaf62, 0xd6cc, 0xbadb, 0xf0e9, 0xaf63, /*0xd0-0xd7*/
- 0xb6bb, 0xaf64, 0xaf65, 0xcdb4, 0xaf66, 0xaf67, 0xc6a6, 0xaf68, /*0xd8-0xdf*/
- 0xaf69, 0xaf6a, 0xc1a1, 0xf0eb, 0xf0ee, 0xaf6b, 0xf0ed, 0xf0f0, /*0xe0-0xe7*/
- 0xf0ec, 0xaf6c, 0xbbbe, 0xf0ef, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, /*0xe8-0xef*/
- 0xccb5, 0xf0f2, 0xaf71, 0xaf72, 0xb3d5, 0xaf73, 0xaf74, 0xaf75, /*0xf0-0xf7*/
- 0xaf76, 0xb1d4, 0xaf77, 0xaf78, 0xf0f3, 0xaf79, 0xaf7a, 0xf0f4, /*0xf8-0xff*/
- /* 0x7600 */
- 0xf0f6, 0xb4e1, 0xaf7b, 0xf0f1, 0xaf7c, 0xf0f7, 0xaf7d, 0xaf7e, /*0x00-0x07*/
- 0xaf80, 0xaf81, 0xf0fa, 0xaf82, 0xf0f8, 0xaf83, 0xaf84, 0xaf85, /*0x08-0x0f*/
- 0xf0f5, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xf0fd, 0xaf8a, 0xf0f9, /*0x10-0x17*/
- 0xf0fc, 0xf0fe, 0xaf8b, 0xf1a1, 0xaf8c, 0xaf8d, 0xaf8e, 0xcec1, /*0x18-0x1f*/
- 0xf1a4, 0xaf8f, 0xf1a3, 0xaf90, 0xc1f6, 0xf0fb, 0xcadd, 0xaf91, /*0x20-0x27*/
- 0xaf92, 0xb4f1, 0xb1f1, 0xccb1, 0xaf93, 0xf1a6, 0xaf94, 0xaf95, /*0x28-0x2f*/
- 0xf1a7, 0xaf96, 0xaf97, 0xf1ac, 0xd5ce, 0xf1a9, 0xaf98, 0xaf99, /*0x30-0x37*/
- 0xc8b3, 0xaf9a, 0xaf9b, 0xaf9c, 0xf1a2, 0xaf9d, 0xf1ab, 0xf1a8, /*0x38-0x3f*/
- 0xf1a5, 0xaf9e, 0xaf9f, 0xf1aa, 0xafa0, 0xb040, 0xb041, 0xb042, /*0x40-0x47*/
- 0xb043, 0xb044, 0xb045, 0xb046, 0xb0a9, 0xf1ad, 0xb047, 0xb048, /*0x48-0x4f*/
- 0xb049, 0xb04a, 0xb04b, 0xb04c, 0xf1af, 0xb04d, 0xf1b1, 0xb04e, /*0x50-0x57*/
- 0xb04f, 0xb050, 0xb051, 0xb052, 0xf1b0, 0xb053, 0xf1ae, 0xb054, /*0x58-0x5f*/
- 0xb055, 0xb056, 0xb057, 0xd1a2, 0xb058, 0xb059, 0xb05a, 0xb05b, /*0x60-0x67*/
- 0xb05c, 0xb05d, 0xb05e, 0xf1b2, 0xb05f, 0xb060, 0xb061, 0xf1b3, /*0x68-0x6f*/
- 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, /*0x70-0x77*/
- 0xb9ef, 0xb06a, 0xb06b, 0xb5c7, 0xb06c, 0xb0d7, 0xb0d9, 0xb06d, /*0x78-0x7f*/
- 0xb06e, 0xb06f, 0xd4ed, 0xb070, 0xb5c4, 0xb071, 0xbdd4, 0xbbca, /*0x80-0x87*/
- 0xf0a7, 0xb072, 0xb073, 0xb8de, 0xb074, 0xb075, 0xf0a8, 0xb076, /*0x88-0x8f*/
- 0xb077, 0xb0a8, 0xb078, 0xf0a9, 0xb079, 0xb07a, 0xcdee, 0xb07b, /*0x90-0x97*/
- 0xb07c, 0xf0aa, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082, 0xb083, /*0x98-0x9f*/
- 0xb084, 0xb085, 0xb086, 0xb087, 0xf0ab, 0xb088, 0xb089, 0xb08a, /*0xa0-0xa7*/
- 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xc6a4, 0xb091, /*0xa8-0xaf*/
- 0xb092, 0xd6e5, 0xf1e4, 0xb093, 0xf1e5, 0xb094, 0xb095, 0xb096, /*0xb0-0xb7*/
- 0xb097, 0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, 0xc3f3, /*0xb8-0xbf*/
- 0xb09e, 0xb09f, 0xd3db, 0xb0a0, 0xb140, 0xd6d1, 0xc5e8, 0xb141, /*0xc0-0xc7*/
- 0xd3af, 0xb142, 0xd2e6, 0xb143, 0xb144, 0xeec1, 0xb0bb, 0xd5b5, /*0xc8-0xcf*/
- 0xd1ce, 0xbce0, 0xbad0, 0xb145, 0xbff8, 0xb146, 0xb8c7, 0xb5c1, /*0xd0-0xd7*/
- 0xc5cc, 0xb147, 0xb148, 0xcaa2, 0xb149, 0xb14a, 0xb14b, 0xc3cb, /*0xd8-0xdf*/
- 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xeec2, 0xb151, 0xb152, /*0xe0-0xe7*/
- 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xc4bf, 0xb6a2, /*0xe8-0xef*/
- 0xb159, 0xedec, 0xc3a4, 0xb15a, 0xd6b1, 0xb15b, 0xb15c, 0xb15d, /*0xf0-0xf7*/
- 0xcfe0, 0xedef, 0xb15e, 0xb15f, 0xc5ce, 0xb160, 0xb6dc, 0xb161, /*0xf8-0xff*/
- /* 0x7700 */
- 0xb162, 0xcaa1, 0xb163, 0xb164, 0xeded, 0xb165, 0xb166, 0xedf0, /*0x00-0x07*/
- 0xedf1, 0xc3bc, 0xb167, 0xbfb4, 0xb168, 0xedee, 0xb169, 0xb16a, /*0x08-0x0f*/
- 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, 0xb172, /*0x10-0x17*/
- 0xb173, 0xedf4, 0xedf2, 0xb174, 0xb175, 0xb176, 0xb177, 0xd5e6, /*0x18-0x1f*/
- 0xc3df, 0xb178, 0xedf3, 0xb179, 0xb17a, 0xb17b, 0xedf6, 0xb17c, /*0x20-0x27*/
- 0xd5a3, 0xd1a3, 0xb17d, 0xb17e, 0xb180, 0xedf5, 0xb181, 0xc3d0, /*0x28-0x2f*/
- 0xb182, 0xb183, 0xb184, 0xb185, 0xb186, 0xedf7, 0xbff4, 0xbeec, /*0x30-0x37*/
- 0xedf8, 0xb187, 0xccf7, 0xb188, 0xd1db, 0xb189, 0xb18a, 0xb18b, /*0x38-0x3f*/
- 0xd7c5, 0xd5f6, 0xb18c, 0xedfc, 0xb18d, 0xb18e, 0xb18f, 0xedfb, /*0x40-0x47*/
- 0xb190, 0xb191, 0xb192, 0xb193, 0xb194, 0xb195, 0xb196, 0xb197, /*0x48-0x4f*/
- 0xedf9, 0xedfa, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xb19c, 0xb19d, /*0x50-0x57*/
- 0xb19e, 0xb19f, 0xedfd, 0xbea6, 0xb1a0, 0xb240, 0xb241, 0xb242, /*0x58-0x5f*/
- 0xb243, 0xcbaf, 0xeea1, 0xb6bd, 0xb244, 0xeea2, 0xc4c0, 0xb245, /*0x60-0x67*/
- 0xedfe, 0xb246, 0xb247, 0xbdde, 0xb2c7, 0xb248, 0xb249, 0xb24a, /*0x68-0x6f*/
- 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, /*0x70-0x77*/
- 0xb253, 0xb6c3, 0xb254, 0xb255, 0xb256, 0xeea5, 0xd8ba, 0xeea3, /*0x78-0x7f*/
- 0xeea6, 0xb257, 0xb258, 0xb259, 0xc3e9, 0xb3f2, 0xb25a, 0xb25b, /*0x80-0x87*/
- 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xeea7, 0xeea4, 0xcfb9, 0xb260, /*0x88-0x8f*/
- 0xb261, 0xeea8, 0xc2f7, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, /*0x90-0x97*/
- 0xb267, 0xb268, 0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xeea9, /*0x98-0x9f*/
- 0xeeaa, 0xb26e, 0xdeab, 0xb26f, 0xb270, 0xc6b3, 0xb271, 0xc7c6, /*0xa0-0xa7*/
- 0xb272, 0xd6f5, 0xb5c9, 0xb273, 0xcbb2, 0xb274, 0xb275, 0xb276, /*0xa8-0xaf*/
- 0xeeab, 0xb277, 0xb278, 0xcdab, 0xb279, 0xeeac, 0xb27a, 0xb27b, /*0xb0-0xb7*/
- 0xb27c, 0xb27d, 0xb27e, 0xd5b0, 0xb280, 0xeead, 0xb281, 0xf6c4, /*0xb8-0xbf*/
- 0xb282, 0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, /*0xc0-0xc7*/
- 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xdbc7, 0xb28f, 0xb290, /*0xc8-0xcf*/
- 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb4a3, /*0xd0-0xd7*/
- 0xb298, 0xb299, 0xb29a, 0xc3ac, 0xf1e6, 0xb29b, 0xb29c, 0xb29d, /*0xd8-0xdf*/
- 0xb29e, 0xb29f, 0xcab8, 0xd2d3, 0xb2a0, 0xd6aa, 0xb340, 0xeff2, /*0xe0-0xe7*/
- 0xb341, 0xbed8, 0xb342, 0xbdc3, 0xeff3, 0xb6cc, 0xb0ab, 0xb343, /*0xe8-0xef*/
- 0xb344, 0xb345, 0xb346, 0xcaaf, 0xb347, 0xb348, 0xedb6, 0xb349, /*0xf0-0xf7*/
- 0xedb7, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xcef9, 0xb7af, 0xbff3, /*0xf8-0xff*/
- /* 0x7800 */
- 0xedb8, 0xc2eb, 0xc9b0, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, /*0x00-0x07*/
- 0xb353, 0xedb9, 0xb354, 0xb355, 0xc6f6, 0xbfb3, 0xb356, 0xb357, /*0x08-0x0f*/
- 0xb358, 0xedbc, 0xc5f8, 0xb359, 0xd1d0, 0xb35a, 0xd7a9, 0xedba, /*0x10-0x17*/
- 0xedbb, 0xb35b, 0xd1e2, 0xb35c, 0xedbf, 0xedc0, 0xb35d, 0xedc4, /*0x18-0x1f*/
- 0xb35e, 0xb35f, 0xb360, 0xedc8, 0xb361, 0xedc6, 0xedce, 0xd5e8, /*0x20-0x27*/
- 0xb362, 0xedc9, 0xb363, 0xb364, 0xedc7, 0xedbe, 0xb365, 0xb366, /*0x28-0x2f*/
- 0xc5e9, 0xb367, 0xb368, 0xb369, 0xc6c6, 0xb36a, 0xb36b, 0xc9e9, /*0x30-0x37*/
- 0xd4d2, 0xedc1, 0xedc2, 0xedc3, 0xedc5, 0xb36c, 0xc0f9, 0xb36d, /*0x38-0x3f*/
- 0xb4a1, 0xb36e, 0xb36f, 0xb370, 0xb371, 0xb9e8, 0xb372, 0xedd0, /*0x40-0x47*/
- 0xb373, 0xb374, 0xb375, 0xb376, 0xedd1, 0xb377, 0xedca, 0xb378, /*0x48-0x4f*/
- 0xedcf, 0xb379, 0xcef8, 0xb37a, 0xb37b, 0xcbb6, 0xedcc, 0xedcd, /*0x50-0x57*/
- 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xcff5, 0xb382, 0xb383, /*0x58-0x5f*/
- 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, /*0x60-0x67*/
- 0xb38c, 0xb38d, 0xedd2, 0xc1f2, 0xd3b2, 0xedcb, 0xc8b7, 0xb38e, /*0x68-0x6f*/
- 0xb38f, 0xb390, 0xb391, 0xb392, 0xb393, 0xb394, 0xb395, 0xbcef, /*0x70-0x77*/
- 0xb396, 0xb397, 0xb398, 0xb399, 0xc5f0, 0xb39a, 0xb39b, 0xb39c, /*0x78-0x7f*/
- 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441, 0xb442, 0xedd6, /*0x80-0x87*/
- 0xb443, 0xb5ef, 0xb444, 0xb445, 0xc2b5, 0xb0ad, 0xcbe9, 0xb446, /*0x88-0x8f*/
- 0xb447, 0xb1ae, 0xb448, 0xedd4, 0xb449, 0xb44a, 0xb44b, 0xcdeb, /*0x90-0x97*/
- 0xb5e2, 0xb44c, 0xedd5, 0xedd3, 0xedd7, 0xb44d, 0xb44e, 0xb5fa, /*0x98-0x9f*/
- 0xb44f, 0xedd8, 0xb450, 0xedd9, 0xb451, 0xeddc, 0xb452, 0xb1cc, /*0xa0-0xa7*/
- 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, 0xb45a, /*0xa8-0xaf*/
- 0xc5f6, 0xbcee, 0xedda, 0xccbc, 0xb2ea, 0xb45b, 0xb45c, 0xb45d, /*0xb0-0xb7*/
- 0xb45e, 0xeddb, 0xb45f, 0xb460, 0xb461, 0xb462, 0xc4eb, 0xb463, /*0xb8-0xbf*/
- 0xb464, 0xb4c5, 0xb465, 0xb466, 0xb467, 0xb0f5, 0xb468, 0xb469, /*0xc0-0xc7*/
- 0xb46a, 0xeddf, 0xc0da, 0xb4e8, 0xb46b, 0xb46c, 0xb46d, 0xb46e, /*0xc8-0xcf*/
- 0xc5cd, 0xb46f, 0xb470, 0xb471, 0xeddd, 0xbfc4, 0xb472, 0xb473, /*0xd0-0xd7*/
- 0xb474, 0xedde, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, /*0xd8-0xdf*/
- 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482, 0xb483, /*0xe0-0xe7*/
- 0xc4a5, 0xb484, 0xb485, 0xb486, 0xede0, 0xb487, 0xb488, 0xb489, /*0xe8-0xef*/
- 0xb48a, 0xb48b, 0xede1, 0xb48c, 0xede3, 0xb48d, 0xb48e, 0xc1d7, /*0xf0-0xf7*/
- 0xb48f, 0xb490, 0xbbc7, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, /*0xf8-0xff*/
- /* 0x7900 */
- 0xb496, 0xbdb8, 0xb497, 0xb498, 0xb499, 0xede2, 0xb49a, 0xb49b, /*0x00-0x07*/
- 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541, 0xb542, /*0x08-0x0f*/
- 0xb543, 0xb544, 0xb545, 0xede4, 0xb546, 0xb547, 0xb548, 0xb549, /*0x10-0x17*/
- 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xede6, 0xb550, /*0x18-0x1f*/
- 0xb551, 0xb552, 0xb553, 0xb554, 0xede5, 0xb555, 0xb556, 0xb557, /*0x20-0x27*/
- 0xb558, 0xb559, 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, /*0x28-0x2f*/
- 0xb560, 0xb561, 0xb562, 0xb563, 0xede7, 0xb564, 0xb565, 0xb566, /*0x30-0x37*/
- 0xb567, 0xb568, 0xcabe, 0xecea, 0xc0f1, 0xb569, 0xc9e7, 0xb56a, /*0x38-0x3f*/
- 0xeceb, 0xc6ee, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xecec, 0xb56f, /*0x40-0x47*/
- 0xc6ed, 0xeced, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xb575, /*0x48-0x4f*/
- 0xb576, 0xb577, 0xb578, 0xecf0, 0xb579, 0xb57a, 0xd7e6, 0xecf3, /*0x50-0x57*/
- 0xb57b, 0xb57c, 0xecf1, 0xecee, 0xecef, 0xd7a3, 0xc9f1, 0xcbee, /*0x58-0x5f*/
- 0xecf4, 0xb57d, 0xecf2, 0xb57e, 0xb580, 0xcfe9, 0xb581, 0xecf6, /*0x60-0x67*/
- 0xc6b1, 0xb582, 0xb583, 0xb584, 0xb585, 0xbcc0, 0xb586, 0xecf5, /*0x68-0x6f*/
- 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb5bb, /*0x70-0x77*/
- 0xbbf6, 0xb58e, 0xecf7, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, /*0x78-0x7f*/
- 0xd9f7, 0xbdfb, 0xb594, 0xb595, 0xc2bb, 0xecf8, 0xb596, 0xb597, /*0x80-0x87*/
- 0xb598, 0xb599, 0xecf9, 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb8a3, /*0x88-0x8f*/
- 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641, 0xb642, 0xb643, 0xb644, /*0x90-0x97*/
- 0xb645, 0xb646, 0xecfa, 0xb647, 0xb648, 0xb649, 0xb64a, 0xb64b, /*0x98-0x9f*/
- 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, 0xecfb, /*0xa0-0xa7*/
- 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, /*0xa8-0xaf*/
- 0xb65b, 0xb65c, 0xb65d, 0xecfc, 0xb65e, 0xb65f, 0xb660, 0xb661, /*0xb0-0xb7*/
- 0xb662, 0xd3ed, 0xd8ae, 0xc0eb, 0xb663, 0xc7dd, 0xbacc, 0xb664, /*0xb8-0xbf*/
- 0xd0e3, 0xcbbd, 0xb665, 0xcdba, 0xb666, 0xb667, 0xb8d1, 0xb668, /*0xc0-0xc7*/
- 0xb669, 0xb1fc, 0xb66a, 0xc7ef, 0xb66b, 0xd6d6, 0xb66c, 0xb66d, /*0xc8-0xcf*/
- 0xb66e, 0xbfc6, 0xc3eb, 0xb66f, 0xb670, 0xeff5, 0xb671, 0xb672, /*0xd0-0xd7*/
- 0xc3d8, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xd7e2, /*0xd8-0xdf*/
- 0xb679, 0xb67a, 0xb67b, 0xeff7, 0xb3d3, 0xb67c, 0xc7d8, 0xd1ed, /*0xe0-0xe7*/
- 0xb67d, 0xd6c8, 0xb67e, 0xeff8, 0xb680, 0xeff6, 0xb681, 0xbbfd, /*0xe8-0xef*/
- 0xb3c6, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, /*0xf0-0xf7*/
- 0xbdd5, 0xb689, 0xb68a, 0xd2c6, 0xb68b, 0xbbe0, 0xb68c, 0xb68d, /*0xf8-0xff*/
- /* 0x7a00 */
- 0xcfa1, 0xb68e, 0xeffc, 0xeffb, 0xb68f, 0xb690, 0xeff9, 0xb691, /*0x00-0x07*/
- 0xb692, 0xb693, 0xb694, 0xb3cc, 0xb695, 0xc9d4, 0xcbb0, 0xb696, /*0x08-0x0f*/
- 0xb697, 0xb698, 0xb699, 0xb69a, 0xeffe, 0xb69b, 0xb69c, 0xb0de, /*0x10-0x17*/
- 0xb69d, 0xb69e, 0xd6c9, 0xb69f, 0xb6a0, 0xb740, 0xeffd, 0xb741, /*0x18-0x1f*/
- 0xb3ed, 0xb742, 0xb743, 0xf6d5, 0xb744, 0xb745, 0xb746, 0xb747, /*0x20-0x27*/
- 0xb748, 0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, /*0x28-0x2f*/
- 0xb750, 0xb751, 0xb752, 0xcec8, 0xb753, 0xb754, 0xb755, 0xf0a2, /*0x30-0x37*/
- 0xb756, 0xf0a1, 0xb757, 0xb5be, 0xbcda, 0xbbfc, 0xb758, 0xb8e5, /*0x38-0x3f*/
- 0xb759, 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xc4c2, 0xb75f, /*0x40-0x47*/
- 0xb760, 0xb761, 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, /*0x48-0x4f*/
- 0xb768, 0xf0a3, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xcbeb, /*0x50-0x57*/
- 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb772, 0xb773, 0xb774, 0xb775, /*0x58-0x5f*/
- 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77c, 0xb77d, /*0x60-0x67*/
- 0xb77e, 0xb780, 0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, /*0x68-0x6f*/
- 0xf0a6, 0xb787, 0xb788, 0xb789, 0xd1a8, 0xb78a, 0xbebf, 0xc7ee, /*0x70-0x77*/
- 0xf1b6, 0xf1b7, 0xbfd5, 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb4a9, /*0x78-0x7f*/
- 0xf1b8, 0xcdbb, 0xb78f, 0xc7d4, 0xd5ad, 0xb790, 0xf1b9, 0xb791, /*0x80-0x87*/
- 0xf1ba, 0xb792, 0xb793, 0xb794, 0xb795, 0xc7cf, 0xb796, 0xb797, /*0x88-0x8f*/
- 0xb798, 0xd2a4, 0xd6cf, 0xb799, 0xb79a, 0xf1bb, 0xbdd1, 0xb4b0, /*0x90-0x97*/
- 0xbebd, 0xb79b, 0xb79c, 0xb79d, 0xb4dc, 0xced1, 0xb79e, 0xbfdf, /*0x98-0x9f*/
- 0xf1bd, 0xb79f, 0xb7a0, 0xb840, 0xb841, 0xbffa, 0xf1bc, 0xb842, /*0xa0-0xa7*/
- 0xf1bf, 0xb843, 0xb844, 0xb845, 0xf1be, 0xf1c0, 0xb846, 0xb847, /*0xa8-0xaf*/
- 0xb848, 0xb849, 0xb84a, 0xf1c1, 0xb84b, 0xb84c, 0xb84d, 0xb84e, /*0xb0-0xb7*/
- 0xb84f, 0xb850, 0xb851, 0xb852, 0xb853, 0xb854, 0xb855, 0xc1fe, /*0xb8-0xbf*/
- 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, 0xb85c, 0xb85d, /*0xc0-0xc7*/
- 0xb85e, 0xb85f, 0xb860, 0xc1a2, 0xb861, 0xb862, 0xb863, 0xb864, /*0xc8-0xcf*/
- 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, 0xcafa, 0xb86b, /*0xd0-0xd7*/
- 0xb86c, 0xd5be, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xbeba, 0xbeb9, /*0xd8-0xdf*/
- 0xd5c2, 0xb871, 0xb872, 0xbfa2, 0xb873, 0xcdaf, 0xf1b5, 0xb874, /*0xe0-0xe7*/
- 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, 0xbddf, 0xb87a, 0xb6cb, /*0xe8-0xef*/
- 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882, 0xb883, /*0xf0-0xf7*/
- 0xb884, 0xd6f1, 0xf3c3, 0xb885, 0xb886, 0xf3c4, 0xb887, 0xb8cd, /*0xf8-0xff*/
- /* 0x7b00 */
- 0xb888, 0xb889, 0xb88a, 0xf3c6, 0xf3c7, 0xb88b, 0xb0ca, 0xb88c, /*0x00-0x07*/
- 0xf3c5, 0xb88d, 0xf3c9, 0xcbf1, 0xb88e, 0xb88f, 0xb890, 0xf3cb, /*0x08-0x0f*/
- 0xb891, 0xd0a6, 0xb892, 0xb893, 0xb1ca, 0xf3c8, 0xb894, 0xb895, /*0x10-0x17*/
- 0xb896, 0xf3cf, 0xb897, 0xb5d1, 0xb898, 0xb899, 0xf3d7, 0xb89a, /*0x18-0x1f*/
- 0xf3d2, 0xb89b, 0xb89c, 0xb89d, 0xf3d4, 0xf3d3, 0xb7fb, 0xb89e, /*0x20-0x27*/
- 0xb1bf, 0xb89f, 0xf3ce, 0xf3ca, 0xb5da, 0xb8a0, 0xf3d0, 0xb940, /*0x28-0x2f*/
- 0xb941, 0xf3d1, 0xb942, 0xf3d5, 0xb943, 0xb944, 0xb945, 0xb946, /*0x30-0x37*/
- 0xf3cd, 0xb947, 0xbce3, 0xb948, 0xc1fd, 0xb949, 0xf3d6, 0xb94a, /*0x38-0x3f*/
- 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xf3da, 0xb950, 0xf3cc, /*0x40-0x47*/
- 0xb951, 0xb5c8, 0xb952, 0xbdee, 0xf3dc, 0xb953, 0xb954, 0xb7a4, /*0x48-0x4f*/
- 0xbff0, 0xd6fe, 0xcdb2, 0xb955, 0xb4f0, 0xb956, 0xb2df, 0xb957, /*0x50-0x57*/
- 0xf3d8, 0xb958, 0xf3d9, 0xc9b8, 0xb959, 0xf3dd, 0xb95a, 0xb95b, /*0x58-0x5f*/
- 0xf3de, 0xb95c, 0xf3e1, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961, /*0x60-0x67*/
- 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xf3df, 0xb968, /*0x68-0x6f*/
- 0xb969, 0xf3e3, 0xf3e2, 0xb96a, 0xb96b, 0xf3db, 0xb96c, 0xbfea, /*0x70-0x77*/
- 0xb96d, 0xb3ef, 0xb96e, 0xf3e0, 0xb96f, 0xb970, 0xc7a9, 0xb971, /*0x78-0x7f*/
- 0xbcf2, 0xb972, 0xb973, 0xb974, 0xb975, 0xf3eb, 0xb976, 0xb977, /*0x80-0x87*/
- 0xb978, 0xb979, 0xb97a, 0xb97b, 0xb97c, 0xb9bf, 0xb97d, 0xb97e, /*0x88-0x8f*/
- 0xf3e4, 0xb980, 0xb981, 0xb982, 0xb2ad, 0xbbfe, 0xb983, 0xcbe3, /*0x90-0x97*/
- 0xb984, 0xb985, 0xb986, 0xb987, 0xf3ed, 0xf3e9, 0xb988, 0xb989, /*0x98-0x9f*/
- 0xb98a, 0xb9dc, 0xf3ee, 0xb98b, 0xb98c, 0xb98d, 0xf3e5, 0xf3e6, /*0xa0-0xa7*/
- 0xf3ea, 0xc2e1, 0xf3ec, 0xf3ef, 0xf3e8, 0xbcfd, 0xb98e, 0xb98f, /*0xa8-0xaf*/
- 0xb990, 0xcfe4, 0xb991, 0xb992, 0xf3f0, 0xb993, 0xb994, 0xb995, /*0xb0-0xb7*/
- 0xf3e7, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, /*0xb8-0xbf*/
- 0xb99d, 0xf3f2, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xd7ad, 0xc6aa, /*0xc0-0xc7*/
- 0xba41, 0xba42, 0xba43, 0xba44, 0xf3f3, 0xba45, 0xba46, 0xba47, /*0xc8-0xcf*/
- 0xba48, 0xf3f1, 0xba49, 0xc2a8, 0xba4a, 0xba4b, 0xba4c, 0xba4d, /*0xd0-0xd7*/
- 0xba4e, 0xb8dd, 0xf3f5, 0xba4f, 0xba50, 0xf3f4, 0xba51, 0xba52, /*0xd8-0xdf*/
- 0xba53, 0xb4db, 0xba54, 0xba55, 0xba56, 0xf3f6, 0xf3f7, 0xba57, /*0xe0-0xe7*/
- 0xba58, 0xba59, 0xf3f8, 0xba5a, 0xba5b, 0xba5c, 0xc0ba, 0xba5d, /*0xe8-0xef*/
- 0xba5e, 0xc0e9, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63, 0xc5f1, /*0xf0-0xf7*/
- 0xba64, 0xba65, 0xba66, 0xba67, 0xf3fb, 0xba68, 0xf3fa, 0xba69, /*0xf8-0xff*/
- /* 0x7c00 */
- 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xb4d8, /*0x00-0x07*/
- 0xba71, 0xba72, 0xba73, 0xf3fe, 0xf3f9, 0xba74, 0xba75, 0xf3fc, /*0x08-0x0f*/
- 0xba76, 0xba77, 0xba78, 0xba79, 0xba7a, 0xba7b, 0xf3fd, 0xba7c, /*0x10-0x17*/
- 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82, 0xba83, 0xba84, 0xf4a1, /*0x18-0x1f*/
- 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, 0xf4a3, 0xbbc9, /*0x20-0x27*/
- 0xba8b, 0xba8c, 0xf4a2, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, /*0x28-0x2f*/
- 0xba92, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, /*0x30-0x37*/
- 0xf4a4, 0xba9a, 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xb2be, /*0x38-0x3f*/
- 0xf4a6, 0xf4a5, 0xbaa0, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb44, /*0x40-0x47*/
- 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 0xbcae, 0xbb4a, 0xbb4b, /*0x48-0x4f*/
- 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, 0xbb52, 0xbb53, /*0x50-0x57*/
- 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59, 0xbb5a, 0xbb5b, /*0x58-0x5f*/
- 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61, 0xbb62, 0xbb63, /*0x60-0x67*/
- 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, /*0x68-0x6f*/
- 0xbb6c, 0xbb6d, 0xbb6e, 0xc3d7, 0xd9e1, 0xbb6f, 0xbb70, 0xbb71, /*0x70-0x77*/
- 0xbb72, 0xbb73, 0xbb74, 0xc0e0, 0xf4cc, 0xd7d1, 0xbb75, 0xbb76, /*0x78-0x7f*/
- 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, /*0x80-0x87*/
- 0xbb80, 0xb7db, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, /*0x88-0x8f*/
- 0xbb87, 0xf4ce, 0xc1a3, 0xbb88, 0xbb89, 0xc6c9, 0xbb8a, 0xb4d6, /*0x90-0x97*/
- 0xd5b3, 0xbb8b, 0xbb8c, 0xbb8d, 0xf4d0, 0xf4cf, 0xf4d1, 0xcbda, /*0x98-0x9f*/
- 0xbb8e, 0xbb8f, 0xf4d2, 0xbb90, 0xd4c1, 0xd6e0, 0xbb91, 0xbb92, /*0xa0-0xa7*/
- 0xbb93, 0xbb94, 0xb7e0, 0xbb95, 0xbb96, 0xbb97, 0xc1b8, 0xbb98, /*0xa8-0xaf*/
- 0xbb99, 0xc1bb, 0xf4d3, 0xbeac, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, /*0xb0-0xb7*/
- 0xbb9e, 0xb4e2, 0xbb9f, 0xbba0, 0xf4d4, 0xf4d5, 0xbeab, 0xbc40, /*0xb8-0xbf*/
- 0xbc41, 0xf4d6, 0xbc42, 0xbc43, 0xbc44, 0xf4db, 0xbc45, 0xf4d7, /*0xc0-0xc7*/
- 0xf4da, 0xbc46, 0xbafd, 0xbc47, 0xf4d8, 0xf4d9, 0xbc48, 0xbc49, /*0xc8-0xcf*/
- 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xb8e2, 0xccc7, 0xf4dc, /*0xd0-0xd7*/
- 0xbc4f, 0xb2da, 0xbc50, 0xbc51, 0xc3d3, 0xbc52, 0xbc53, 0xd4e3, /*0xd8-0xdf*/
- 0xbfb7, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, 0xbc5a, /*0xe0-0xe7*/
- 0xf4dd, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xc5b4, /*0xe8-0xef*/
- 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, /*0xf0-0xf7*/
- 0xf4e9, 0xbc69, 0xbc6a, 0xcfb5, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, /*0xf8-0xff*/
- /* 0x7d00 */
- 0xbc6f, 0xbc70, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, /*0x00-0x07*/
- 0xbc77, 0xbc78, 0xcec9, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, /*0x08-0x0f*/
- 0xbc7e, 0xbc80, 0xbc81, 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xbc86, /*0x10-0x17*/
- 0xbc87, 0xbc88, 0xbc89, 0xbc8a, 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, /*0x18-0x1f*/
- 0xcbd8, 0xbc8f, 0xcbf7, 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbdf4, /*0x20-0x27*/
- 0xbc94, 0xbc95, 0xbc96, 0xd7cf, 0xbc97, 0xbc98, 0xbc99, 0xc0db, /*0x28-0x2f*/
- 0xbc9a, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, /*0x30-0x37*/
- 0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, /*0x38-0x3f*/
- 0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, /*0x40-0x47*/
- 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, /*0x48-0x4f*/
- 0xbd59, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, /*0x50-0x57*/
- 0xbd61, 0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, /*0x58-0x5f*/
- 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, /*0x60-0x67*/
- 0xbd71, 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xd0f5, 0xbd77, /*0x68-0x6f*/
- 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xf4ea, /*0x70-0x77*/
- 0xbd80, 0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, /*0x78-0x7f*/
- 0xbd88, 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, /*0x80-0x87*/
- 0xbd90, 0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, /*0x88-0x8f*/
- 0xbd98, 0xbd99, 0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, /*0x90-0x97*/
- 0xbda0, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, /*0x98-0x9f*/
- 0xbe47, 0xbe48, 0xbe49, 0xbe4a, 0xbe4b, 0xbe4c, 0xf4eb, 0xbe4d, /*0xa0-0xa7*/
- 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xf4ec, 0xbe54, /*0xa8-0xaf*/
- 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, 0xbe5a, 0xbe5b, 0xbe5c, /*0xb0-0xb7*/
- 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61, 0xbe62, 0xbe63, 0xbe64, /*0xb8-0xbf*/
- 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, /*0xc0-0xc7*/
- 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, 0xbe72, 0xbe73, 0xbe74, /*0xc8-0xcf*/
- 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0xbe7c, /*0xd0-0xd7*/
- 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, /*0xd8-0xdf*/
- 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, 0xbe8b, 0xbe8c, 0xbe8d, /*0xe0-0xe7*/
- 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92, 0xbe93, 0xbe94, 0xbe95, /*0xe8-0xef*/
- 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, /*0xf0-0xf7*/
- 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41, 0xbf42, 0xbf43, 0xbf44, /*0xf8-0xff*/
- /* 0x7e00 */
- 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, /*0x00-0x07*/
- 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, 0xbf52, 0xbf53, 0xbf54, /*0x08-0x0f*/
- 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, 0xbf5c, /*0x10-0x17*/
- 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, 0xbf64, /*0x18-0x1f*/
- 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, /*0x20-0x27*/
- 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xbf74, /*0x28-0x2f*/
- 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, /*0x30-0x37*/
- 0xbf7d, 0xbf7e, 0xbf80, 0xf7e3, 0xbf81, 0xbf82, 0xbf83, 0xbf84, /*0x38-0x3f*/
- 0xbf85, 0xb7b1, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, 0xf4ed, /*0x40-0x47*/
- 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, /*0x48-0x4f*/
- 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, /*0x50-0x57*/
- 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041, /*0x58-0x5f*/
- 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, /*0x60-0x67*/
- 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, /*0x68-0x6f*/
- 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, /*0x70-0x77*/
- 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061, /*0x78-0x7f*/
- 0xc062, 0xc063, 0xd7eb, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, /*0x80-0x87*/
- 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, /*0x88-0x8f*/
- 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, /*0x90-0x97*/
- 0xc079, 0xc07a, 0xc07b, 0xf4ee, 0xc07c, 0xc07d, 0xc07e, 0xe6f9, /*0x98-0x9f*/
- 0xbec0, 0xe6fa, 0xbaec, 0xe6fb, 0xcfcb, 0xe6fc, 0xd4bc, 0xbcb6, /*0xa0-0xa7*/
- 0xe6fd, 0xe6fe, 0xbccd, 0xc8d2, 0xceb3, 0xe7a1, 0xc080, 0xb4bf, /*0xa8-0xaf*/
- 0xe7a2, 0xc9b4, 0xb8d9, 0xc4c9, 0xc081, 0xd7dd, 0xc2da, 0xb7d7, /*0xb0-0xb7*/
- 0xd6bd, 0xcec6, 0xb7c4, 0xc082, 0xc083, 0xc5a6, 0xe7a3, 0xcfdf, /*0xb8-0xbf*/
- 0xe7a4, 0xe7a5, 0xe7a6, 0xc1b7, 0xd7e9, 0xc9f0, 0xcfb8, 0xd6af, /*0xc0-0xc7*/
- 0xd6d5, 0xe7a7, 0xb0ed, 0xe7a8, 0xe7a9, 0xc9dc, 0xd2ef, 0xbead, /*0xc8-0xcf*/
- 0xe7aa, 0xb0f3, 0xc8de, 0xbde1, 0xe7ab, 0xc8c6, 0xc084, 0xe7ac, /*0xd0-0xd7*/
- 0xbbe6, 0xb8f8, 0xd1a4, 0xe7ad, 0xc2e7, 0xbef8, 0xbdca, 0xcdb3, /*0xd8-0xdf*/
- 0xe7ae, 0xe7af, 0xbeee, 0xd0e5, 0xc085, 0xcbe7, 0xccd0, 0xbccc, /*0xe0-0xe7*/
- 0xe7b0, 0xbca8, 0xd0f7, 0xe7b1, 0xc086, 0xd0f8, 0xe7b2, 0xe7b3, /*0xe8-0xef*/
- 0xb4c2, 0xe7b4, 0xe7b5, 0xc9fe, 0xceac, 0xc3e0, 0xe7b7, 0xb1c1, /*0xf0-0xf7*/
- 0xb3f1, 0xc087, 0xe7b8, 0xe7b9, 0xd7db, 0xd5c0, 0xe7ba, 0xc2cc, /*0xf8-0xff*/
- /* 0x7f00 */
- 0xd7ba, 0xe7bb, 0xe7bc, 0xe7bd, 0xbcea, 0xc3e5, 0xc0c2, 0xe7be, /*0x00-0x07*/
- 0xe7bf, 0xbca9, 0xc088, 0xe7c0, 0xe7c1, 0xe7b6, 0xb6d0, 0xe7c2, /*0x08-0x0f*/
- 0xc089, 0xe7c3, 0xe7c4, 0xbbba, 0xb5de, 0xc2c6, 0xb1e0, 0xe7c5, /*0x10-0x17*/
- 0xd4b5, 0xe7c6, 0xb8bf, 0xe7c8, 0xe7c7, 0xb7ec, 0xc08a, 0xe7c9, /*0x18-0x1f*/
- 0xb2f8, 0xe7ca, 0xe7cb, 0xe7cc, 0xe7cd, 0xe7ce, 0xe7cf, 0xe7d0, /*0x20-0x27*/
- 0xd3a7, 0xcbf5, 0xe7d1, 0xe7d2, 0xe7d3, 0xe7d4, 0xc9c9, 0xe7d5, /*0x28-0x2f*/
- 0xe7d6, 0xe7d7, 0xe7d8, 0xe7d9, 0xbdc9, 0xe7da, 0xf3be, 0xc08b, /*0x30-0x37*/
- 0xb8d7, 0xc08c, 0xc8b1, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, /*0x38-0x3f*/
- 0xc092, 0xc093, 0xf3bf, 0xc094, 0xf3c0, 0xf3c1, 0xc095, 0xc096, /*0x40-0x47*/
- 0xc097, 0xc098, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, /*0x48-0x4f*/
- 0xb9de, 0xcdf8, 0xc09f, 0xc0a0, 0xd8e8, 0xbab1, 0xc140, 0xc2de, /*0x50-0x57*/
- 0xeeb7, 0xc141, 0xb7a3, 0xc142, 0xc143, 0xc144, 0xc145, 0xeeb9, /*0x58-0x5f*/
- 0xc146, 0xeeb8, 0xb0d5, 0xc147, 0xc148, 0xc149, 0xc14a, 0xc14b, /*0x60-0x67*/
- 0xeebb, 0xd5d6, 0xd7ef, 0xc14c, 0xc14d, 0xc14e, 0xd6c3, 0xc14f, /*0x68-0x6f*/
- 0xc150, 0xeebd, 0xcaf0, 0xc151, 0xeebc, 0xc152, 0xc153, 0xc154, /*0x70-0x77*/
- 0xc155, 0xeebe, 0xc156, 0xc157, 0xc158, 0xc159, 0xeec0, 0xc15a, /*0x78-0x7f*/
- 0xc15b, 0xeebf, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, /*0x80-0x87*/
- 0xc162, 0xc163, 0xd1f2, 0xc164, 0xc7bc, 0xc165, 0xc3c0, 0xc166, /*0x88-0x8f*/
- 0xc167, 0xc168, 0xc169, 0xc16a, 0xb8e1, 0xc16b, 0xc16c, 0xc16d, /*0x90-0x97*/
- 0xc16e, 0xc16f, 0xc1e7, 0xc170, 0xc171, 0xf4c6, 0xd0df, 0xf4c7, /*0x98-0x9f*/
- 0xc172, 0xcfdb, 0xc173, 0xc174, 0xc8ba, 0xc175, 0xc176, 0xf4c8, /*0xa0-0xa7*/
- 0xc177, 0xc178, 0xc179, 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xf4c9, /*0xa8-0xaf*/
- 0xf4ca, 0xc17e, 0xf4cb, 0xc180, 0xc181, 0xc182, 0xc183, 0xc184, /*0xb0-0xb7*/
- 0xd9fa, 0xb8fe, 0xc185, 0xc186, 0xe5f1, 0xd3f0, 0xc187, 0xf4e0, /*0xb8-0xbf*/
- 0xc188, 0xcecc, 0xc189, 0xc18a, 0xc18b, 0xb3e1, 0xc18c, 0xc18d, /*0xc0-0xc7*/
- 0xc18e, 0xc18f, 0xf1b4, 0xc190, 0xd2ee, 0xc191, 0xf4e1, 0xc192, /*0xc8-0xcf*/
- 0xc193, 0xc194, 0xc195, 0xc196, 0xcfe8, 0xf4e2, 0xc197, 0xc198, /*0xd0-0xd7*/
- 0xc7cc, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xb5d4, /*0xd8-0xdf*/
- 0xb4e4, 0xf4e4, 0xc19f, 0xc1a0, 0xc240, 0xf4e3, 0xf4e5, 0xc241, /*0xe0-0xe7*/
- 0xc242, 0xf4e6, 0xc243, 0xc244, 0xc245, 0xc246, 0xf4e7, 0xc247, /*0xe8-0xef*/
- 0xbab2, 0xb0bf, 0xc248, 0xf4e8, 0xc249, 0xc24a, 0xc24b, 0xc24c, /*0xf0-0xf7*/
- 0xc24d, 0xc24e, 0xc24f, 0xb7ad, 0xd2ed, 0xc250, 0xc251, 0xc252, /*0xf8-0xff*/
- /* 0x8000 */
- 0xd2ab, 0xc0cf, 0xc253, 0xbfbc, 0xeba3, 0xd5df, 0xeac8, 0xc254, /*0x00-0x07*/
- 0xc255, 0xc256, 0xc257, 0xf1f3, 0xb6f8, 0xcba3, 0xc258, 0xc259, /*0x08-0x0f*/
- 0xc4cd, 0xc25a, 0xf1e7, 0xc25b, 0xf1e8, 0xb8fb, 0xf1e9, 0xbac4, /*0x10-0x17*/
- 0xd4c5, 0xb0d2, 0xc25c, 0xc25d, 0xf1ea, 0xc25e, 0xc25f, 0xc260, /*0x18-0x1f*/
- 0xf1eb, 0xc261, 0xf1ec, 0xc262, 0xc263, 0xf1ed, 0xf1ee, 0xf1ef, /*0x20-0x27*/
- 0xf1f1, 0xf1f0, 0xc5d5, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, /*0x28-0x2f*/
- 0xc269, 0xf1f2, 0xc26a, 0xb6fa, 0xc26b, 0xf1f4, 0xd2ae, 0xdec7, /*0x30-0x37*/
- 0xcbca, 0xc26c, 0xc26d, 0xb3dc, 0xc26e, 0xb5a2, 0xc26f, 0xb9a2, /*0x38-0x3f*/
- 0xc270, 0xc271, 0xc4f4, 0xf1f5, 0xc272, 0xc273, 0xf1f6, 0xc274, /*0x40-0x47*/
- 0xc275, 0xc276, 0xc1c4, 0xc1fb, 0xd6b0, 0xf1f7, 0xc277, 0xc278, /*0x48-0x4f*/
- 0xc279, 0xc27a, 0xf1f8, 0xc27b, 0xc1aa, 0xc27c, 0xc27d, 0xc27e, /*0x50-0x57*/
- 0xc6b8, 0xc280, 0xbedb, 0xc281, 0xc282, 0xc283, 0xc284, 0xc285, /*0x58-0x5f*/
- 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, 0xc28d, /*0x60-0x67*/
- 0xc28e, 0xf1f9, 0xb4cf, 0xc28f, 0xc290, 0xc291, 0xc292, 0xc293, /*0x68-0x6f*/
- 0xc294, 0xf1fa, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, /*0x70-0x77*/
- 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xedb2, /*0x78-0x7f*/
- 0xedb1, 0xc341, 0xc342, 0xcbe0, 0xd2de, 0xc343, 0xcbc1, 0xd5d8, /*0x80-0x87*/
- 0xc344, 0xc8e2, 0xc345, 0xc0df, 0xbca1, 0xc346, 0xc347, 0xc348, /*0x88-0x8f*/
- 0xc349, 0xc34a, 0xc34b, 0xebc1, 0xc34c, 0xc34d, 0xd0a4, 0xc34e, /*0x90-0x97*/
- 0xd6e2, 0xc34f, 0xb6c7, 0xb8d8, 0xebc0, 0xb8ce, 0xc350, 0xebbf, /*0x98-0x9f*/
- 0xb3a6, 0xb9c9, 0xd6ab, 0xc351, 0xb7f4, 0xb7ca, 0xc352, 0xc353, /*0xa0-0xa7*/
- 0xc354, 0xbce7, 0xb7be, 0xebc6, 0xc355, 0xebc7, 0xb0b9, 0xbfcf, /*0xa8-0xaf*/
- 0xc356, 0xebc5, 0xd3fd, 0xc357, 0xebc8, 0xc358, 0xc359, 0xebc9, /*0xb0-0xb7*/
- 0xc35a, 0xc35b, 0xb7ce, 0xc35c, 0xebc2, 0xebc4, 0xc9f6, 0xd6d7, /*0xb8-0xbf*/
- 0xd5cd, 0xd0b2, 0xebcf, 0xceb8, 0xebd0, 0xc35d, 0xb5a8, 0xc35e, /*0xc0-0xc7*/
- 0xc35f, 0xc360, 0xc361, 0xc362, 0xb1b3, 0xebd2, 0xcca5, 0xc363, /*0xc8-0xcf*/
- 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369, 0xc5d6, 0xebd3, /*0xd0-0xd7*/
- 0xc36a, 0xebd1, 0xc5df, 0xebce, 0xcaa4, 0xebd5, 0xb0fb, 0xc36b, /*0xd8-0xdf*/
- 0xc36c, 0xbafa, 0xc36d, 0xc36e, 0xd8b7, 0xf1e3, 0xc36f, 0xebca, /*0xe0-0xe7*/
- 0xebcb, 0xebcc, 0xebcd, 0xebd6, 0xe6c0, 0xebd9, 0xc370, 0xbfe8, /*0xe8-0xef*/
- 0xd2c8, 0xebd7, 0xebdc, 0xb8ec, 0xebd8, 0xc371, 0xbdba, 0xc372, /*0xf0-0xf7*/
- 0xd0d8, 0xc373, 0xb0b7, 0xc374, 0xebdd, 0xc4dc, 0xc375, 0xc376, /*0xf8-0xff*/
- /* 0x8100 */
- 0xc377, 0xc378, 0xd6ac, 0xc379, 0xc37a, 0xc37b, 0xb4e0, 0xc37c, /*0x00-0x07*/
- 0xc37d, 0xc2f6, 0xbcb9, 0xc37e, 0xc380, 0xebda, 0xebdb, 0xd4e0, /*0x08-0x0f*/
- 0xc6ea, 0xc4d4, 0xebdf, 0xc5a7, 0xd9f5, 0xc381, 0xb2b1, 0xc382, /*0x10-0x17*/
- 0xebe4, 0xc383, 0xbdc5, 0xc384, 0xc385, 0xc386, 0xebe2, 0xc387, /*0x18-0x1f*/
- 0xc388, 0xc389, 0xc38a, 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, /*0x20-0x27*/
- 0xc390, 0xc391, 0xc392, 0xc393, 0xebe3, 0xc394, 0xc395, 0xb8ac, /*0x28-0x2f*/
- 0xc396, 0xcdd1, 0xebe5, 0xc397, 0xc398, 0xc399, 0xebe1, 0xc39a, /*0x30-0x37*/
- 0xc1b3, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc6a2, 0xc3a0, /*0x38-0x3f*/
- 0xc440, 0xc441, 0xc442, 0xc443, 0xc444, 0xc445, 0xccf3, 0xc446, /*0x40-0x47*/
- 0xebe6, 0xc447, 0xc0b0, 0xd2b8, 0xebe7, 0xc448, 0xc449, 0xc44a, /*0x48-0x4f*/
- 0xb8af, 0xb8ad, 0xc44b, 0xebe8, 0xc7bb, 0xcdf3, 0xc44c, 0xc44d, /*0x50-0x57*/
- 0xc44e, 0xebea, 0xebeb, 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, /*0x58-0x5f*/
- 0xebed, 0xc454, 0xc455, 0xc456, 0xc457, 0xd0c8, 0xc458, 0xebf2, /*0x60-0x67*/
- 0xc459, 0xebee, 0xc45a, 0xc45b, 0xc45c, 0xebf1, 0xc8f9, 0xc45d, /*0x68-0x6f*/
- 0xd1fc, 0xebec, 0xc45e, 0xc45f, 0xebe9, 0xc460, 0xc461, 0xc462, /*0x70-0x77*/
- 0xc463, 0xb8b9, 0xcfd9, 0xc4e5, 0xebef, 0xebf0, 0xccda, 0xcdc8, /*0x78-0x7f*/
- 0xb0f2, 0xc464, 0xebf6, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, /*0x80-0x87*/
- 0xebf5, 0xc46a, 0xb2b2, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xb8e0, /*0x88-0x8f*/
- 0xc46f, 0xebf7, 0xc470, 0xc471, 0xc472, 0xc473, 0xc474, 0xc475, /*0x90-0x97*/
- 0xb1ec, 0xc476, 0xc477, 0xccc5, 0xc4a4, 0xcfa5, 0xc478, 0xc479, /*0x98-0x9f*/
- 0xc47a, 0xc47b, 0xc47c, 0xebf9, 0xc47d, 0xc47e, 0xeca2, 0xc480, /*0xa0-0xa7*/
- 0xc5f2, 0xc481, 0xebfa, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, /*0xa8-0xaf*/
- 0xc487, 0xc488, 0xc489, 0xc9c5, 0xc48a, 0xc48b, 0xc48c, 0xc48d, /*0xb0-0xb7*/
- 0xc48e, 0xc48f, 0xe2df, 0xebfe, 0xc490, 0xc491, 0xc492, 0xc493, /*0xb8-0xbf*/
- 0xcdce, 0xeca1, 0xb1db, 0xd3b7, 0xc494, 0xc495, 0xd2dc, 0xc496, /*0xc0-0xc7*/
- 0xc497, 0xc498, 0xebfd, 0xc499, 0xebfb, 0xc49a, 0xc49b, 0xc49c, /*0xc8-0xcf*/
- 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541, 0xc542, 0xc543, /*0xd0-0xd7*/
- 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, 0xc54a, 0xc54b, /*0xd8-0xdf*/
- 0xc54c, 0xc54d, 0xc54e, 0xb3bc, 0xc54f, 0xc550, 0xc551, 0xeab0, /*0xe0-0xe7*/
- 0xc552, 0xc553, 0xd7d4, 0xc554, 0xf4ab, 0xb3f4, 0xc555, 0xc556, /*0xe8-0xef*/
- 0xc557, 0xc558, 0xc559, 0xd6c1, 0xd6c2, 0xc55a, 0xc55b, 0xc55c, /*0xf0-0xf7*/
- 0xc55d, 0xc55e, 0xc55f, 0xd5e9, 0xbeca, 0xc560, 0xf4a7, 0xc561, /*0xf8-0xff*/
- /* 0x8200 */
- 0xd2a8, 0xf4a8, 0xf4a9, 0xc562, 0xf4aa, 0xbecb, 0xd3df, 0xc563, /*0x00-0x07*/
- 0xc564, 0xc565, 0xc566, 0xc567, 0xc9e0, 0xc9e1, 0xc568, 0xc569, /*0x08-0x0f*/
- 0xf3c2, 0xc56a, 0xcae6, 0xc56b, 0xccf2, 0xc56c, 0xc56d, 0xc56e, /*0x10-0x17*/
- 0xc56f, 0xc570, 0xc571, 0xe2b6, 0xcbb4, 0xc572, 0xcee8, 0xd6db, /*0x18-0x1f*/
- 0xc573, 0xf4ad, 0xf4ae, 0xf4af, 0xc574, 0xc575, 0xc576, 0xc577, /*0x20-0x27*/
- 0xf4b2, 0xc578, 0xbabd, 0xf4b3, 0xb0e3, 0xf4b0, 0xc579, 0xf4b1, /*0x28-0x2f*/
- 0xbda2, 0xb2d5, 0xc57a, 0xf4b6, 0xf4b7, 0xb6e6, 0xb2b0, 0xcfcf, /*0x30-0x37*/
- 0xf4b4, 0xb4ac, 0xc57b, 0xf4b5, 0xc57c, 0xc57d, 0xf4b8, 0xc57e, /*0x38-0x3f*/
- 0xc580, 0xc581, 0xc582, 0xc583, 0xf4b9, 0xc584, 0xc585, 0xcda7, /*0x40-0x47*/
- 0xc586, 0xf4ba, 0xc587, 0xf4bb, 0xc588, 0xc589, 0xc58a, 0xf4bc, /*0x48-0x4f*/
- 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592, /*0x50-0x57*/
- 0xcbd2, 0xc593, 0xf4bd, 0xc594, 0xc595, 0xc596, 0xc597, 0xf4be, /*0x58-0x5f*/
- 0xc598, 0xc599, 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, /*0x60-0x67*/
- 0xf4bf, 0xc5a0, 0xc640, 0xc641, 0xc642, 0xc643, 0xf4de, 0xc1bc, /*0x68-0x6f*/
- 0xbce8, 0xc644, 0xc9ab, 0xd1de, 0xe5f5, 0xc645, 0xc646, 0xc647, /*0x70-0x77*/
- 0xc648, 0xdcb3, 0xd2d5, 0xc649, 0xc64a, 0xdcb4, 0xb0ac, 0xdcb5, /*0x78-0x7f*/
- 0xc64b, 0xc64c, 0xbdda, 0xc64d, 0xdcb9, 0xc64e, 0xc64f, 0xc650, /*0x80-0x87*/
- 0xd8c2, 0xc651, 0xdcb7, 0xd3f3, 0xc652, 0xc9d6, 0xdcba, 0xdcb6, /*0x88-0x8f*/
- 0xc653, 0xdcbb, 0xc3a2, 0xc654, 0xc655, 0xc656, 0xc657, 0xdcbc, /*0x90-0x97*/
- 0xdcc5, 0xdcbd, 0xc658, 0xc659, 0xcedf, 0xd6a5, 0xc65a, 0xdccf, /*0x98-0x9f*/
- 0xc65b, 0xdccd, 0xc65c, 0xc65d, 0xdcd2, 0xbde6, 0xc2ab, 0xc65e, /*0xa0-0xa7*/
- 0xdcb8, 0xdccb, 0xdcce, 0xdcbe, 0xb7d2, 0xb0c5, 0xdcc7, 0xd0be, /*0xa8-0xaf*/
- 0xdcc1, 0xbba8, 0xc65f, 0xb7bc, 0xdccc, 0xc660, 0xc661, 0xdcc6, /*0xb0-0xb7*/
- 0xdcbf, 0xc7db, 0xc662, 0xc663, 0xc664, 0xd1bf, 0xdcc0, 0xc665, /*0xb8-0xbf*/
- 0xc666, 0xdcca, 0xc667, 0xc668, 0xdcd0, 0xc669, 0xc66a, 0xcead, /*0xc0-0xc7*/
- 0xdcc2, 0xc66b, 0xdcc3, 0xdcc8, 0xdcc9, 0xb2d4, 0xdcd1, 0xcbd5, /*0xc8-0xcf*/
- 0xc66c, 0xd4b7, 0xdcdb, 0xdcdf, 0xcca6, 0xdce6, 0xc66d, 0xc3e7, /*0xd0-0xd7*/
- 0xdcdc, 0xc66e, 0xc66f, 0xbfc1, 0xdcd9, 0xc670, 0xb0fa, 0xb9b6, /*0xd8-0xdf*/
- 0xdce5, 0xdcd3, 0xc671, 0xdcc4, 0xdcd6, 0xc8f4, 0xbfe0, 0xc672, /*0xe0-0xe7*/
- 0xc673, 0xc674, 0xc675, 0xc9bb, 0xc676, 0xc677, 0xc678, 0xb1bd, /*0xe8-0xef*/
- 0xc679, 0xd3a2, 0xc67a, 0xc67b, 0xdcda, 0xc67c, 0xc67d, 0xdcd5, /*0xf0-0xf7*/
- 0xc67e, 0xc6bb, 0xc680, 0xdcde, 0xc681, 0xc682, 0xc683, 0xc684, /*0xf8-0xff*/
- /* 0x8300 */
- 0xc685, 0xd7c2, 0xc3af, 0xb7b6, 0xc7d1, 0xc3a9, 0xdce2, 0xdcd8, /*0x00-0x07*/
- 0xdceb, 0xdcd4, 0xc686, 0xc687, 0xdcdd, 0xc688, 0xbea5, 0xdcd7, /*0x08-0x0f*/
- 0xc689, 0xdce0, 0xc68a, 0xc68b, 0xdce3, 0xdce4, 0xc68c, 0xdcf8, /*0x10-0x17*/
- 0xc68d, 0xc68e, 0xdce1, 0xdda2, 0xdce7, 0xc68f, 0xc690, 0xc691, /*0x18-0x1f*/
- 0xc692, 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xbceb, /*0x20-0x27*/
- 0xb4c4, 0xc699, 0xc69a, 0xc3a3, 0xb2e7, 0xdcfa, 0xc69b, 0xdcf2, /*0x28-0x2f*/
- 0xc69c, 0xdcef, 0xc69d, 0xdcfc, 0xdcee, 0xd2f0, 0xb2e8, 0xc69e, /*0x30-0x37*/
- 0xc8d7, 0xc8e3, 0xdcfb, 0xc69f, 0xdced, 0xc6a0, 0xc740, 0xc741, /*0x38-0x3f*/
- 0xdcf7, 0xc742, 0xc743, 0xdcf5, 0xc744, 0xc745, 0xbea3, 0xdcf4, /*0x40-0x47*/
- 0xc746, 0xb2dd, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xdcf3, /*0x48-0x4f*/
- 0xbcf6, 0xdce8, 0xbbc4, 0xc74c, 0xc0f3, 0xc74d, 0xc74e, 0xc74f, /*0x50-0x57*/
- 0xc750, 0xc751, 0xbcd4, 0xdce9, 0xdcea, 0xc752, 0xdcf1, 0xdcf6, /*0x58-0x5f*/
- 0xdcf9, 0xb5b4, 0xc753, 0xc8d9, 0xbbe7, 0xdcfe, 0xdcfd, 0xd3ab, /*0x60-0x67*/
- 0xdda1, 0xdda3, 0xdda5, 0xd2f1, 0xdda4, 0xdda6, 0xdda7, 0xd2a9, /*0x68-0x6f*/
- 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, 0xbac9, /*0x70-0x77*/
- 0xdda9, 0xc75b, 0xc75c, 0xddb6, 0xddb1, 0xddb4, 0xc75d, 0xc75e, /*0x78-0x7f*/
- 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xddb0, 0xc6ce, 0xc764, /*0x80-0x87*/
- 0xc765, 0xc0f2, 0xc766, 0xc767, 0xc768, 0xc769, 0xc9af, 0xc76a, /*0x88-0x8f*/
- 0xc76b, 0xc76c, 0xdcec, 0xddae, 0xc76d, 0xc76e, 0xc76f, 0xc770, /*0x90-0x97*/
- 0xddb7, 0xc771, 0xc772, 0xdcf0, 0xddaf, 0xc773, 0xddb8, 0xc774, /*0x98-0x9f*/
- 0xddac, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, /*0xa0-0xa7*/
- 0xddb9, 0xddb3, 0xddad, 0xc4aa, 0xc77c, 0xc77d, 0xc77e, 0xc780, /*0xa8-0xaf*/
- 0xdda8, 0xc0b3, 0xc1ab, 0xddaa, 0xddab, 0xc781, 0xddb2, 0xbbf1, /*0xb0-0xb7*/
- 0xddb5, 0xd3a8, 0xddba, 0xc782, 0xddbb, 0xc3a7, 0xc783, 0xc784, /*0xb8-0xbf*/
- 0xddd2, 0xddbc, 0xc785, 0xc786, 0xc787, 0xddd1, 0xc788, 0xb9bd, /*0xc0-0xc7*/
- 0xc789, 0xc78a, 0xbed5, 0xc78b, 0xbefa, 0xc78c, 0xc78d, 0xbaca, /*0xc8-0xcf*/
- 0xc78e, 0xc78f, 0xc790, 0xc791, 0xddca, 0xc792, 0xddc5, 0xc793, /*0xd0-0xd7*/
- 0xddbf, 0xc794, 0xc795, 0xc796, 0xb2cb, 0xddc3, 0xc797, 0xddcb, /*0xd8-0xdf*/
- 0xb2a4, 0xddd5, 0xc798, 0xc799, 0xc79a, 0xddbe, 0xc79b, 0xc79c, /*0xe0-0xe7*/
- 0xc79d, 0xc6d0, 0xddd0, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841, /*0xe8-0xef*/
- 0xddd4, 0xc1e2, 0xb7c6, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, /*0xf0-0xf7*/
- 0xddce, 0xddcf, 0xc847, 0xc848, 0xc849, 0xddc4, 0xc84a, 0xc84b, /*0xf8-0xff*/
- /* 0x8400 */
- 0xc84c, 0xddbd, 0xc84d, 0xddcd, 0xccd1, 0xc84e, 0xddc9, 0xc84f, /*0x00-0x07*/
- 0xc850, 0xc851, 0xc852, 0xddc2, 0xc3c8, 0xc6bc, 0xceae, 0xddcc, /*0x08-0x0f*/
- 0xc853, 0xddc8, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, /*0x10-0x17*/
- 0xddc1, 0xc85a, 0xc85b, 0xc85c, 0xddc6, 0xc2dc, 0xc85d, 0xc85e, /*0x18-0x1f*/
- 0xc85f, 0xc860, 0xc861, 0xc862, 0xd3a9, 0xd3aa, 0xddd3, 0xcff4, /*0x20-0x27*/
- 0xc8f8, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, /*0x28-0x2f*/
- 0xc86a, 0xdde6, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, /*0x30-0x37*/
- 0xddc7, 0xc871, 0xc872, 0xc873, 0xdde0, 0xc2e4, 0xc874, 0xc875, /*0x38-0x3f*/
- 0xc876, 0xc877, 0xc878, 0xc879, 0xc87a, 0xc87b, 0xdde1, 0xc87c, /*0x40-0x47*/
- 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882, 0xc883, 0xc884, 0xc885, /*0x48-0x4f*/
- 0xc886, 0xddd7, 0xc887, 0xc888, 0xc889, 0xc88a, 0xc88b, 0xd6f8, /*0x50-0x57*/
- 0xc88c, 0xddd9, 0xddd8, 0xb8f0, 0xddd6, 0xc88d, 0xc88e, 0xc88f, /*0x58-0x5f*/
- 0xc890, 0xc6cf, 0xc891, 0xb6ad, 0xc892, 0xc893, 0xc894, 0xc895, /*0x60-0x67*/
- 0xc896, 0xdde2, 0xc897, 0xbaf9, 0xd4e1, 0xdde7, 0xc898, 0xc899, /*0x68-0x6f*/
- 0xc89a, 0xb4d0, 0xc89b, 0xddda, 0xc89c, 0xbffb, 0xdde3, 0xc89d, /*0x70-0x77*/
- 0xdddf, 0xc89e, 0xdddd, 0xc89f, 0xc8a0, 0xc940, 0xc941, 0xc942, /*0x78-0x7f*/
- 0xc943, 0xc944, 0xb5d9, 0xc945, 0xc946, 0xc947, 0xc948, 0xdddb, /*0x80-0x87*/
- 0xdddc, 0xddde, 0xc949, 0xbdaf, 0xdde4, 0xc94a, 0xdde5, 0xc94b, /*0x88-0x8f*/
- 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, 0xc952, 0xddf5, /*0x90-0x97*/
- 0xc953, 0xc3c9, 0xc954, 0xc955, 0xcbe2, 0xc956, 0xc957, 0xc958, /*0x98-0x9f*/
- 0xc959, 0xddf2, 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, /*0xa0-0xa7*/
- 0xc960, 0xc961, 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xd8e1, /*0xa8-0xaf*/
- 0xc967, 0xc968, 0xc6d1, 0xc969, 0xddf4, 0xc96a, 0xc96b, 0xc96c, /*0xb0-0xb7*/
- 0xd5f4, 0xddf3, 0xddf0, 0xc96d, 0xc96e, 0xddec, 0xc96f, 0xddef, /*0xb8-0xbf*/
- 0xc970, 0xdde8, 0xc971, 0xc972, 0xd0ee, 0xc973, 0xc974, 0xc975, /*0xc0-0xc7*/
- 0xc976, 0xc8d8, 0xddee, 0xc977, 0xc978, 0xdde9, 0xc979, 0xc97a, /*0xc8-0xcf*/
- 0xddea, 0xcbf2, 0xc97b, 0xdded, 0xc97c, 0xc97d, 0xb1cd, 0xc97e, /*0xd0-0xd7*/
- 0xc980, 0xc981, 0xc982, 0xc983, 0xc984, 0xc0b6, 0xc985, 0xbcbb, /*0xd8-0xdf*/
- 0xddf1, 0xc986, 0xc987, 0xddf7, 0xc988, 0xddf6, 0xddeb, 0xc989, /*0xe0-0xe7*/
- 0xc98a, 0xc98b, 0xc98c, 0xc98d, 0xc5ee, 0xc98e, 0xc98f, 0xc990, /*0xe8-0xef*/
- 0xddfb, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, /*0xf0-0xf7*/
- 0xc998, 0xc999, 0xc99a, 0xc99b, 0xdea4, 0xc99c, 0xc99d, 0xdea3, /*0xf8-0xff*/
- /* 0x8500 */
- 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41, 0xca42, 0xca43, 0xca44, /*0x00-0x07*/
- 0xca45, 0xca46, 0xca47, 0xca48, 0xddf8, 0xca49, 0xca4a, 0xca4b, /*0x08-0x0f*/
- 0xca4c, 0xc3ef, 0xca4d, 0xc2fb, 0xca4e, 0xca4f, 0xca50, 0xd5e1, /*0x10-0x17*/
- 0xca51, 0xca52, 0xceb5, 0xca53, 0xca54, 0xca55, 0xca56, 0xddfd, /*0x18-0x1f*/
- 0xca57, 0xb2cc, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5c, 0xca5d, /*0x20-0x27*/
- 0xca5e, 0xca5f, 0xca60, 0xc4e8, 0xcadf, 0xca61, 0xca62, 0xca63, /*0x28-0x2f*/
- 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69, 0xca6a, 0xc7be, /*0x30-0x37*/
- 0xddfa, 0xddfc, 0xddfe, 0xdea2, 0xb0aa, 0xb1ce, 0xca6b, 0xca6c, /*0x38-0x3f*/
- 0xca6d, 0xca6e, 0xca6f, 0xdeac, 0xca70, 0xca71, 0xca72, 0xca73, /*0x40-0x47*/
- 0xdea6, 0xbdb6, 0xc8ef, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, /*0x48-0x4f*/
- 0xca79, 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xdea1, 0xca80, /*0x50-0x57*/
- 0xca81, 0xdea5, 0xca82, 0xca83, 0xca84, 0xca85, 0xdea9, 0xca86, /*0x58-0x5f*/
- 0xca87, 0xca88, 0xca89, 0xca8a, 0xdea8, 0xca8b, 0xca8c, 0xca8d, /*0x60-0x67*/
- 0xdea7, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, 0xca93, 0xca94, /*0x68-0x6f*/
- 0xca95, 0xca96, 0xdead, 0xca97, 0xd4cc, 0xca98, 0xca99, 0xca9a, /*0x70-0x77*/
- 0xca9b, 0xdeb3, 0xdeaa, 0xdeae, 0xca9c, 0xca9d, 0xc0d9, 0xca9e, /*0x78-0x7f*/
- 0xca9f, 0xcaa0, 0xcb40, 0xcb41, 0xb1a1, 0xdeb6, 0xcb42, 0xdeb1, /*0x80-0x87*/
- 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, 0xdeb2, /*0x88-0x8f*/
- 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, /*0x90-0x97*/
- 0xcb52, 0xcb53, 0xcb54, 0xd1a6, 0xdeb5, 0xcb55, 0xcb56, 0xcb57, /*0x98-0x9f*/
- 0xcb58, 0xcb59, 0xcb5a, 0xcb5b, 0xdeaf, 0xcb5c, 0xcb5d, 0xcb5e, /*0xa0-0xa7*/
- 0xdeb0, 0xcb5f, 0xd0bd, 0xcb60, 0xcb61, 0xcb62, 0xdeb4, 0xcaed, /*0xa8-0xaf*/
- 0xdeb9, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xdeb8, /*0xb0-0xb7*/
- 0xcb69, 0xdeb7, 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, /*0xb8-0xbf*/
- 0xcb70, 0xdebb, 0xcb71, 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, /*0xc0-0xc7*/
- 0xcb77, 0xbde5, 0xcb78, 0xcb79, 0xcb7a, 0xcb7b, 0xcb7c, 0xb2d8, /*0xc8-0xcf*/
- 0xc3ea, 0xcb7d, 0xcb7e, 0xdeba, 0xcb80, 0xc5ba, 0xcb81, 0xcb82, /*0xd0-0xd7*/
- 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xdebc, 0xcb87, 0xcb88, 0xcb89, /*0xd8-0xdf*/
- 0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xccd9, 0xcb8e, 0xcb8f, 0xcb90, /*0xe0-0xe7*/
- 0xcb91, 0xb7aa, 0xcb92, 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, /*0xe8-0xef*/
- 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, /*0xf0-0xf7*/
- 0xcba0, 0xcc40, 0xcc41, 0xd4e5, 0xcc42, 0xcc43, 0xcc44, 0xdebd, /*0xf8-0xff*/
- /* 0x8600 */
- 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49, 0xdebf, 0xcc4a, 0xcc4b, /*0x00-0x07*/
- 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, 0xcc53, /*0x08-0x0f*/
- 0xcc54, 0xc4a2, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xdec1, 0xcc59, /*0x10-0x17*/
- 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61, /*0x18-0x1f*/
- 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xdebe, /*0x20-0x27*/
- 0xcc69, 0xdec0, 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, /*0x28-0x2f*/
- 0xcc70, 0xcc71, 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, /*0x30-0x37*/
- 0xd5ba, 0xcc78, 0xcc79, 0xcc7a, 0xdec2, 0xcc7b, 0xcc7c, 0xcc7d, /*0x38-0x3f*/
- 0xcc7e, 0xcc80, 0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85, 0xcc86, /*0x40-0x47*/
- 0xcc87, 0xcc88, 0xcc89, 0xcc8a, 0xcc8b, 0xf2ae, 0xbba2, 0xc2b2, /*0x48-0x4f*/
- 0xc5b0, 0xc2c7, 0xcc8c, 0xcc8d, 0xf2af, 0xcc8e, 0xcc8f, 0xcc90, /*0x50-0x57*/
- 0xcc91, 0xcc92, 0xd0e9, 0xcc93, 0xcc94, 0xcc95, 0xd3dd, 0xcc96, /*0x58-0x5f*/
- 0xcc97, 0xcc98, 0xebbd, 0xcc99, 0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, /*0x60-0x67*/
- 0xcc9e, 0xcc9f, 0xcca0, 0xb3e6, 0xf2b0, 0xcd40, 0xf2b1, 0xcd41, /*0x68-0x6f*/
- 0xcd42, 0xcaad, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, /*0x70-0x77*/
- 0xcd49, 0xbae7, 0xf2b3, 0xf2b5, 0xf2b4, 0xcbe4, 0xcfba, 0xf2b2, /*0x78-0x7f*/
- 0xcab4, 0xd2cf, 0xc2ec, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, /*0x80-0x87*/
- 0xcd4f, 0xcd50, 0xcec3, 0xf2b8, 0xb0f6, 0xf2b7, 0xcd51, 0xcd52, /*0x88-0x8f*/
- 0xcd53, 0xcd54, 0xcd55, 0xf2be, 0xcd56, 0xb2cf, 0xcd57, 0xcd58, /*0x90-0x97*/
- 0xcd59, 0xcd5a, 0xcd5b, 0xcd5c, 0xd1c1, 0xf2ba, 0xcd5d, 0xcd5e, /*0x98-0x9f*/
- 0xcd5f, 0xcd60, 0xcd61, 0xf2bc, 0xd4e9, 0xcd62, 0xcd63, 0xf2bb, /*0xa0-0xa7*/
- 0xf2b6, 0xf2bf, 0xf2bd, 0xcd64, 0xf2b9, 0xcd65, 0xcd66, 0xf2c7, /*0xa8-0xaf*/
- 0xf2c4, 0xf2c6, 0xcd67, 0xcd68, 0xf2ca, 0xf2c2, 0xf2c0, 0xcd69, /*0xb0-0xb7*/
- 0xcd6a, 0xcd6b, 0xf2c5, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, /*0xb8-0xbf*/
- 0xd6fb, 0xcd71, 0xcd72, 0xcd73, 0xf2c1, 0xcd74, 0xc7f9, 0xc9df, /*0xc0-0xc7*/
- 0xcd75, 0xf2c8, 0xb9c6, 0xb5b0, 0xcd76, 0xcd77, 0xf2c3, 0xf2c9, /*0xc8-0xcf*/
- 0xf2d0, 0xf2d6, 0xcd78, 0xcd79, 0xbbd7, 0xcd7a, 0xcd7b, 0xcd7c, /*0xd0-0xd7*/
- 0xf2d5, 0xcddc, 0xcd7d, 0xd6eb, 0xcd7e, 0xcd80, 0xf2d2, 0xf2d4, /*0xd8-0xdf*/
- 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xb8f2, 0xcd85, 0xcd86, 0xcd87, /*0xe0-0xe7*/
- 0xcd88, 0xf2cb, 0xcd89, 0xcd8a, 0xcd8b, 0xf2ce, 0xc2f9, 0xcd8c, /*0xe8-0xef*/
- 0xd5dd, 0xf2cc, 0xf2cd, 0xf2cf, 0xf2d3, 0xcd8d, 0xcd8e, 0xcd8f, /*0xf0-0xf7*/
- 0xf2d9, 0xd3bc, 0xcd90, 0xcd91, 0xcd92, 0xcd93, 0xb6ea, 0xcd94, /*0xf8-0xff*/
- /* 0x8700 */
- 0xcaf1, 0xcd95, 0xb7e4, 0xf2d7, 0xcd96, 0xcd97, 0xcd98, 0xf2d8, /*0x00-0x07*/
- 0xf2da, 0xf2dd, 0xf2db, 0xcd99, 0xcd9a, 0xf2dc, 0xcd9b, 0xcd9c, /*0x08-0x0f*/
- 0xcd9d, 0xcd9e, 0xd1d1, 0xf2d1, 0xcd9f, 0xcdc9, 0xcda0, 0xcecf, /*0x10-0x17*/
- 0xd6a9, 0xce40, 0xf2e3, 0xce41, 0xc3db, 0xce42, 0xf2e0, 0xce43, /*0x18-0x1f*/
- 0xce44, 0xc0af, 0xf2ec, 0xf2de, 0xce45, 0xf2e1, 0xce46, 0xce47, /*0x20-0x27*/
- 0xce48, 0xf2e8, 0xce49, 0xce4a, 0xce4b, 0xce4c, 0xf2e2, 0xce4d, /*0x28-0x2f*/
- 0xce4e, 0xf2e7, 0xce4f, 0xce50, 0xf2e6, 0xce51, 0xce52, 0xf2e9, /*0x30-0x37*/
- 0xce53, 0xce54, 0xce55, 0xf2df, 0xce56, 0xce57, 0xf2e4, 0xf2ea, /*0x38-0x3f*/
- 0xce58, 0xce59, 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xd3ac, /*0x40-0x47*/
- 0xf2e5, 0xb2f5, 0xce5f, 0xce60, 0xf2f2, 0xce61, 0xd0ab, 0xce62, /*0x48-0x4f*/
- 0xce63, 0xce64, 0xce65, 0xf2f5, 0xce66, 0xce67, 0xce68, 0xbbc8, /*0x50-0x57*/
- 0xce69, 0xf2f9, 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, /*0x58-0x5f*/
- 0xf2f0, 0xce70, 0xce71, 0xf2f6, 0xf2f8, 0xf2fa, 0xce72, 0xce73, /*0x60-0x67*/
- 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, 0xf2f3, 0xce7a, /*0x68-0x6f*/
- 0xf2f1, 0xce7b, 0xce7c, 0xce7d, 0xbafb, 0xce7e, 0xb5fb, 0xce80, /*0x70-0x77*/
- 0xce81, 0xce82, 0xce83, 0xf2ef, 0xf2f7, 0xf2ed, 0xf2ee, 0xce84, /*0x78-0x7f*/
- 0xce85, 0xce86, 0xf2eb, 0xf3a6, 0xce87, 0xf3a3, 0xce88, 0xce89, /*0x80-0x87*/
- 0xf3a2, 0xce8a, 0xce8b, 0xf2f4, 0xce8c, 0xc8da, 0xce8d, 0xce8e, /*0x88-0x8f*/
- 0xce8f, 0xce90, 0xce91, 0xf2fb, 0xce92, 0xce93, 0xce94, 0xf3a5, /*0x90-0x97*/
- 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a, 0xce9b, 0xc3f8, /*0x98-0x9f*/
- 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41, 0xcf42, /*0xa0-0xa7*/
- 0xf2fd, 0xcf43, 0xcf44, 0xf3a7, 0xf3a9, 0xf3a4, 0xcf45, 0xf2fc, /*0xa8-0xaf*/
- 0xcf46, 0xcf47, 0xcf48, 0xf3ab, 0xcf49, 0xf3aa, 0xcf4a, 0xcf4b, /*0xb0-0xb7*/
- 0xcf4c, 0xcf4d, 0xc2dd, 0xcf4e, 0xcf4f, 0xf3ae, 0xcf50, 0xcf51, /*0xb8-0xbf*/
- 0xf3b0, 0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xf3a1, 0xcf57, /*0xc0-0xc7*/
- 0xcf58, 0xcf59, 0xf3b1, 0xf3ac, 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, /*0xc8-0xcf*/
- 0xcf5e, 0xf3af, 0xf2fe, 0xf3ad, 0xcf5f, 0xcf60, 0xcf61, 0xcf62, /*0xd0-0xd7*/
- 0xcf63, 0xcf64, 0xcf65, 0xf3b2, 0xcf66, 0xcf67, 0xcf68, 0xcf69, /*0xd8-0xdf*/
- 0xf3b4, 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xf3a8, 0xcf6e, 0xcf6f, /*0xe0-0xe7*/
- 0xcf70, 0xcf71, 0xf3b3, 0xcf72, 0xcf73, 0xcf74, 0xf3b5, 0xcf75, /*0xe8-0xef*/
- 0xcf76, 0xcf77, 0xcf78, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, /*0xf0-0xf7*/
- 0xcf7e, 0xd0b7, 0xcf80, 0xcf81, 0xcf82, 0xcf83, 0xf3b8, 0xcf84, /*0xf8-0xff*/
- /* 0x8800 */
- 0xcf85, 0xcf86, 0xcf87, 0xd9f9, 0xcf88, 0xcf89, 0xcf8a, 0xcf8b, /*0x00-0x07*/
- 0xcf8c, 0xcf8d, 0xf3b9, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, /*0x08-0x0f*/
- 0xcf93, 0xcf94, 0xcf95, 0xf3b7, 0xcf96, 0xc8e4, 0xf3b6, 0xcf97, /*0x10-0x17*/
- 0xcf98, 0xcf99, 0xcf9a, 0xf3ba, 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, /*0x18-0x1f*/
- 0xcf9f, 0xf3bb, 0xb4c0, 0xcfa0, 0xd040, 0xd041, 0xd042, 0xd043, /*0x20-0x27*/
- 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, 0xd04a, 0xd04b, /*0x28-0x2f*/
- 0xd04c, 0xd04d, 0xeec3, 0xd04e, 0xd04f, 0xd050, 0xd051, 0xd052, /*0x30-0x37*/
- 0xd053, 0xf3bc, 0xd054, 0xd055, 0xf3bd, 0xd056, 0xd057, 0xd058, /*0x38-0x3f*/
- 0xd1aa, 0xd059, 0xd05a, 0xd05b, 0xf4ac, 0xd0c6, 0xd05c, 0xd05d, /*0x40-0x47*/
- 0xd05e, 0xd05f, 0xd060, 0xd061, 0xd0d0, 0xd1dc, 0xd062, 0xd063, /*0x48-0x4f*/
- 0xd064, 0xd065, 0xd066, 0xd067, 0xcfce, 0xd068, 0xd069, 0xbdd6, /*0x50-0x57*/
- 0xd06a, 0xd1c3, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, /*0x58-0x5f*/
- 0xd071, 0xbae2, 0xe1e9, 0xd2c2, 0xf1c2, 0xb2b9, 0xd072, 0xd073, /*0x60-0x67*/
- 0xb1ed, 0xf1c3, 0xd074, 0xc9c0, 0xb3c4, 0xd075, 0xd9f2, 0xd076, /*0x68-0x6f*/
- 0xcba5, 0xd077, 0xf1c4, 0xd078, 0xd079, 0xd07a, 0xd07b, 0xd6d4, /*0x70-0x77*/
- 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xf1c5, 0xf4c0, 0xf1c6, /*0x78-0x7f*/
- 0xd082, 0xd4ac, 0xf1c7, 0xd083, 0xb0c0, 0xf4c1, 0xd084, 0xd085, /*0x80-0x87*/
- 0xf4c2, 0xd086, 0xd087, 0xb4fc, 0xd088, 0xc5db, 0xd089, 0xd08a, /*0x88-0x8f*/
- 0xd08b, 0xd08c, 0xccbb, 0xd08d, 0xd08e, 0xd08f, 0xd0e4, 0xd090, /*0x90-0x97*/
- 0xd091, 0xd092, 0xd093, 0xd094, 0xcde0, 0xd095, 0xd096, 0xd097, /*0x98-0x9f*/
- 0xd098, 0xd099, 0xf1c8, 0xd09a, 0xd9f3, 0xd09b, 0xd09c, 0xd09d, /*0xa0-0xa7*/
- 0xd09e, 0xd09f, 0xd0a0, 0xb1bb, 0xd140, 0xcfae, 0xd141, 0xd142, /*0xa8-0xaf*/
- 0xd143, 0xb8a4, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xf1ca, /*0xb0-0xb7*/
- 0xd149, 0xd14a, 0xd14b, 0xd14c, 0xf1cb, 0xd14d, 0xd14e, 0xd14f, /*0xb8-0xbf*/
- 0xd150, 0xb2c3, 0xc1d1, 0xd151, 0xd152, 0xd7b0, 0xf1c9, 0xd153, /*0xc0-0xc7*/
- 0xd154, 0xf1cc, 0xd155, 0xd156, 0xd157, 0xd158, 0xf1ce, 0xd159, /*0xc8-0xcf*/
- 0xd15a, 0xd15b, 0xd9f6, 0xd15c, 0xd2e1, 0xd4a3, 0xd15d, 0xd15e, /*0xd0-0xd7*/
- 0xf4c3, 0xc8b9, 0xd15f, 0xd160, 0xd161, 0xd162, 0xd163, 0xf4c4, /*0xd8-0xdf*/
- 0xd164, 0xd165, 0xf1cd, 0xf1cf, 0xbfe3, 0xf1d0, 0xd166, 0xd167, /*0xe0-0xe7*/
- 0xf1d4, 0xd168, 0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, /*0xe8-0xef*/
- 0xf1d6, 0xf1d1, 0xd16f, 0xc9d1, 0xc5e1, 0xd170, 0xd171, 0xd172, /*0xf0-0xf7*/
- 0xc2e3, 0xb9fc, 0xd173, 0xd174, 0xf1d3, 0xd175, 0xf1d5, 0xd176, /*0xf8-0xff*/
- /* 0x8900 */
- 0xd177, 0xd178, 0xb9d3, 0xd179, 0xd17a, 0xd17b, 0xd17c, 0xd17d, /*0x00-0x07*/
- 0xd17e, 0xd180, 0xf1db, 0xd181, 0xd182, 0xd183, 0xd184, 0xd185, /*0x08-0x0f*/
- 0xbad6, 0xd186, 0xb0fd, 0xf1d9, 0xd187, 0xd188, 0xd189, 0xd18a, /*0x10-0x17*/
- 0xd18b, 0xf1d8, 0xf1d2, 0xf1da, 0xd18c, 0xd18d, 0xd18e, 0xd18f, /*0x18-0x1f*/
- 0xd190, 0xf1d7, 0xd191, 0xd192, 0xd193, 0xc8ec, 0xd194, 0xd195, /*0x20-0x27*/
- 0xd196, 0xd197, 0xcdca, 0xf1dd, 0xd198, 0xd199, 0xd19a, 0xd19b, /*0x28-0x2f*/
- 0xe5bd, 0xd19c, 0xd19d, 0xd19e, 0xf1dc, 0xd19f, 0xf1de, 0xd1a0, /*0x30-0x37*/
- 0xd240, 0xd241, 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, /*0x38-0x3f*/
- 0xd248, 0xf1df, 0xd249, 0xd24a, 0xcfe5, 0xd24b, 0xd24c, 0xd24d, /*0x40-0x47*/
- 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd252, 0xd253, 0xd254, 0xd255, /*0x48-0x4f*/
- 0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, /*0x50-0x57*/
- 0xd25e, 0xd25f, 0xd260, 0xd261, 0xd262, 0xd263, 0xf4c5, 0xbdf3, /*0x58-0x5f*/
- 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, 0xf1e0, 0xd26a, /*0x60-0x67*/
- 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, 0xd272, /*0x68-0x6f*/
- 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, 0xd27a, /*0x70-0x77*/
- 0xd27b, 0xd27c, 0xd27d, 0xf1e1, 0xd27e, 0xd280, 0xd281, 0xcef7, /*0x78-0x7f*/
- 0xd282, 0xd2aa, 0xd283, 0xf1fb, 0xd284, 0xd285, 0xb8b2, 0xd286, /*0x80-0x87*/
- 0xd287, 0xd288, 0xd289, 0xd28a, 0xd28b, 0xd28c, 0xd28d, 0xd28e, /*0x88-0x8f*/
- 0xd28f, 0xd290, 0xd291, 0xd292, 0xd293, 0xd294, 0xd295, 0xd296, /*0x90-0x97*/
- 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29c, 0xd29d, 0xd29e, /*0x98-0x9f*/
- 0xd29f, 0xd2a0, 0xd340, 0xd341, 0xd342, 0xd343, 0xd344, 0xd345, /*0xa0-0xa7*/
- 0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, 0xd34b, 0xd34c, 0xd34d, /*0xa8-0xaf*/
- 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd352, 0xd353, 0xd354, 0xd355, /*0xb0-0xb7*/
- 0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, /*0xb8-0xbf*/
- 0xd35e, 0xbcfb, 0xb9db, 0xd35f, 0xb9e6, 0xc3d9, 0xcad3, 0xeae8, /*0xc0-0xc7*/
- 0xc0c0, 0xbef5, 0xeae9, 0xeaea, 0xeaeb, 0xd360, 0xeaec, 0xeaed, /*0xc8-0xcf*/
- 0xeaee, 0xeaef, 0xbdc7, 0xd361, 0xd362, 0xd363, 0xf5fb, 0xd364, /*0xd0-0xd7*/
- 0xd365, 0xd366, 0xf5fd, 0xd367, 0xf5fe, 0xd368, 0xf5fc, 0xd369, /*0xd8-0xdf*/
- 0xd36a, 0xd36b, 0xd36c, 0xbde2, 0xd36d, 0xf6a1, 0xb4a5, 0xd36e, /*0xe0-0xe7*/
- 0xd36f, 0xd370, 0xd371, 0xf6a2, 0xd372, 0xd373, 0xd374, 0xf6a3, /*0xe8-0xef*/
- 0xd375, 0xd376, 0xd377, 0xecb2, 0xd378, 0xd379, 0xd37a, 0xd37b, /*0xf0-0xf7*/
- 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382, 0xd383, 0xd384, /*0xf8-0xff*/
- /* 0x8a00 */
- 0xd1d4, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, 0xd9ea, /*0x00-0x07*/
- 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392, /*0x08-0x0f*/
- 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, /*0x10-0x17*/
- 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441, /*0x18-0x1f*/
- 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, /*0x20-0x27*/
- 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, /*0x28-0x2f*/
- 0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, /*0x30-0x37*/
- 0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xf6a4, 0xd460, /*0x38-0x3f*/
- 0xd461, 0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, /*0x40-0x47*/
- 0xeeba, 0xd469, 0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, /*0x48-0x4f*/
- 0xd470, 0xd471, 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, /*0x50-0x57*/
- 0xd478, 0xd479, 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, /*0x58-0x5f*/
- 0xd481, 0xd482, 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, /*0x60-0x67*/
- 0xd489, 0xd48a, 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, /*0x68-0x6f*/
- 0xd491, 0xd492, 0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, /*0x70-0x77*/
- 0xd499, 0xd5b2, 0xd49a, 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, /*0x78-0x7f*/
- 0xd4a0, 0xd540, 0xd541, 0xd542, 0xd543, 0xd544, 0xd545, 0xd546, /*0x80-0x87*/
- 0xd547, 0xd3fe, 0xccdc, 0xd548, 0xd549, 0xd54a, 0xd54b, 0xd54c, /*0x88-0x8f*/
- 0xd54d, 0xd54e, 0xd54f, 0xcac4, 0xd550, 0xd551, 0xd552, 0xd553, /*0x90-0x97*/
- 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559, 0xd55a, 0xd55b, /*0x98-0x9f*/
- 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561, 0xd562, 0xd563, /*0xa0-0xa7*/
- 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569, 0xd56a, 0xd56b, /*0xa8-0xaf*/
- 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, /*0xb0-0xb7*/
- 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579, 0xd57a, 0xd57b, /*0xb8-0xbf*/
- 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582, 0xd583, 0xd584, /*0xc0-0xc7*/
- 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a, 0xd58b, 0xd58c, /*0xc8-0xcf*/
- 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592, 0xd593, 0xd594, /*0xd0-0xd7*/
- 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, 0xd59b, 0xd59c, /*0xd8-0xdf*/
- 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641, 0xd642, 0xd643, /*0xe0-0xe7*/
- 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649, 0xd64a, 0xd64b, /*0xe8-0xef*/
- 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651, 0xd652, 0xd653, /*0xf0-0xf7*/
- 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659, 0xd65a, 0xd65b, /*0xf8-0xff*/
- /* 0x8b00 */
- 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, 0xd662, 0xe5c0, /*0x00-0x07*/
- 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669, 0xd66a, /*0x08-0x0f*/
- 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671, 0xd672, /*0x10-0x17*/
- 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679, 0xd67a, /*0x18-0x1f*/
- 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xf6a5, 0xd682, /*0x20-0x27*/
- 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, /*0x28-0x2f*/
- 0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, /*0x30-0x37*/
- 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, /*0x38-0x3f*/
- 0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741, /*0x40-0x47*/
- 0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, /*0x48-0x4f*/
- 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751, /*0x50-0x57*/
- 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759, /*0x58-0x5f*/
- 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xbeaf, 0xd760, /*0x60-0x67*/
- 0xd761, 0xd762, 0xd763, 0xd764, 0xc6a9, 0xd765, 0xd766, 0xd767, /*0x68-0x6f*/
- 0xd768, 0xd769, 0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, /*0x70-0x77*/
- 0xd770, 0xd771, 0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, /*0x78-0x7f*/
- 0xd778, 0xd779, 0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, /*0x80-0x87*/
- 0xd781, 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, /*0x88-0x8f*/
- 0xd789, 0xd78a, 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, /*0x90-0x97*/
- 0xd791, 0xd792, 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, /*0x98-0x9f*/
- 0xdaa5, 0xbcc6, 0xb6a9, 0xb8bc, 0xc8cf, 0xbca5, 0xdaa6, 0xdaa7, /*0xa0-0xa7*/
- 0xccd6, 0xc8c3, 0xdaa8, 0xc6fd, 0xd799, 0xd1b5, 0xd2e9, 0xd1b6, /*0xa8-0xaf*/
- 0xbcc7, 0xd79a, 0xbdb2, 0xbbe4, 0xdaa9, 0xdaaa, 0xd1c8, 0xdaab, /*0xb0-0xb7*/
- 0xd0ed, 0xb6ef, 0xc2db, 0xd79b, 0xcbcf, 0xb7ed, 0xc9e8, 0xb7c3, /*0xb8-0xbf*/
- 0xbef7, 0xd6a4, 0xdaac, 0xdaad, 0xc6c0, 0xd7e7, 0xcab6, 0xd79c, /*0xc0-0xc7*/
- 0xd5a9, 0xcbdf, 0xd5ef, 0xdaae, 0xd6df, 0xb4ca, 0xdab0, 0xdaaf, /*0xc8-0xcf*/
- 0xd79d, 0xd2eb, 0xdab1, 0xdab2, 0xdab3, 0xcad4, 0xdab4, 0xcaab, /*0xd0-0xd7*/
- 0xdab5, 0xdab6, 0xb3cf, 0xd6ef, 0xdab7, 0xbbb0, 0xb5ae, 0xdab8, /*0xd8-0xdf*/
- 0xdab9, 0xb9ee, 0xd1af, 0xd2e8, 0xdaba, 0xb8c3, 0xcfea, 0xb2ef, /*0xe0-0xe7*/
- 0xdabb, 0xdabc, 0xd79e, 0xbdeb, 0xcedc, 0xd3ef, 0xdabd, 0xcef3, /*0xe8-0xef*/
- 0xdabe, 0xd3d5, 0xbbe5, 0xdabf, 0xcbb5, 0xcbd0, 0xdac0, 0xc7eb, /*0xf0-0xf7*/
- 0xd6ee, 0xdac1, 0xc5b5, 0xb6c1, 0xdac2, 0xb7cc, 0xbfce, 0xdac3, /*0xf8-0xff*/
- /* 0x8c00 */
- 0xdac4, 0xcbad, 0xdac5, 0xb5f7, 0xdac6, 0xc1c2, 0xd7bb, 0xdac7, /*0x00-0x07*/
- 0xccb8, 0xd79f, 0xd2ea, 0xc4b1, 0xdac8, 0xb5fd, 0xbbd1, 0xdac9, /*0x08-0x0f*/
- 0xd0b3, 0xdaca, 0xdacb, 0xcebd, 0xdacc, 0xdacd, 0xdace, 0xb2f7, /*0x10-0x17*/
- 0xdad1, 0xdacf, 0xd1e8, 0xdad0, 0xc3d5, 0xdad2, 0xd7a0, 0xdad3, /*0x18-0x1f*/
- 0xdad4, 0xdad5, 0xd0bb, 0xd2a5, 0xb0f9, 0xdad6, 0xc7ab, 0xdad7, /*0x20-0x27*/
- 0xbdf7, 0xc3a1, 0xdad8, 0xdad9, 0xc3fd, 0xccb7, 0xdada, 0xdadb, /*0x28-0x2f*/
- 0xc0be, 0xc6d7, 0xdadc, 0xdadd, 0xc7b4, 0xdade, 0xdadf, 0xb9c8, /*0x30-0x37*/
- 0xd840, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, /*0x38-0x3f*/
- 0xd848, 0xbbed, 0xd849, 0xd84a, 0xd84b, 0xd84c, 0xb6b9, 0xf4f8, /*0x40-0x47*/
- 0xd84d, 0xf4f9, 0xd84e, 0xd84f, 0xcde3, 0xd850, 0xd851, 0xd852, /*0x48-0x4f*/
- 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xf5b9, 0xd858, 0xd859, /*0x50-0x57*/
- 0xd85a, 0xd85b, 0xebe0, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, /*0x58-0x5f*/
- 0xd861, 0xcff3, 0xbbbf, 0xd862, 0xd863, 0xd864, 0xd865, 0xd866, /*0x60-0x67*/
- 0xd867, 0xd868, 0xbac0, 0xd4a5, 0xd869, 0xd86a, 0xd86b, 0xd86c, /*0x68-0x6f*/
- 0xd86d, 0xd86e, 0xd86f, 0xe1d9, 0xd870, 0xd871, 0xd872, 0xd873, /*0x70-0x77*/
- 0xf5f4, 0xb1aa, 0xb2f2, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, /*0x78-0x7f*/
- 0xd879, 0xd87a, 0xf5f5, 0xd87b, 0xd87c, 0xf5f7, 0xd87d, 0xd87e, /*0x80-0x87*/
- 0xd880, 0xbad1, 0xf5f6, 0xd881, 0xc3b2, 0xd882, 0xd883, 0xd884, /*0x88-0x8f*/
- 0xd885, 0xd886, 0xd887, 0xd888, 0xf5f9, 0xd889, 0xd88a, 0xd88b, /*0x90-0x97*/
- 0xf5f8, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892, /*0x98-0x9f*/
- 0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a, /*0xa0-0xa7*/
- 0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941, /*0xa8-0xaf*/
- 0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, /*0xb0-0xb7*/
- 0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951, /*0xb8-0xbf*/
- 0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959, /*0xc0-0xc7*/
- 0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961, /*0xc8-0xcf*/
- 0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969, /*0xd0-0xd7*/
- 0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971, /*0xd8-0xdf*/
- 0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979, /*0xe0-0xe7*/
- 0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982, /*0xe8-0xef*/
- 0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a, /*0xf0-0xf7*/
- 0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992, /*0xf8-0xff*/
- /* 0x8d00 */
- 0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a, /*0x00-0x07*/
- 0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41, /*0x08-0x0f*/
- 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49, /*0x10-0x17*/
- 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xb1b4, 0xd5ea, 0xb8ba, /*0x18-0x1f*/
- 0xda4f, 0xb9b1, 0xb2c6, 0xd4f0, 0xcfcd, 0xb0dc, 0xd5cb, 0xbbf5, /*0x20-0x27*/
- 0xd6ca, 0xb7b7, 0xccb0, 0xc6b6, 0xb1e1, 0xb9ba, 0xd6fc, 0xb9e1, /*0x28-0x2f*/
- 0xb7a1, 0xbcfa, 0xeada, 0xeadb, 0xccf9, 0xb9f3, 0xeadc, 0xb4fb, /*0x30-0x37*/
- 0xc3b3, 0xb7d1, 0xbad8, 0xeadd, 0xd4f4, 0xeade, 0xbcd6, 0xbbdf, /*0x38-0x3f*/
- 0xeadf, 0xc1de, 0xc2b8, 0xd4df, 0xd7ca, 0xeae0, 0xeae1, 0xeae4, /*0x40-0x47*/
- 0xeae2, 0xeae3, 0xc9de, 0xb8b3, 0xb6c4, 0xeae5, 0xcaea, 0xc9cd, /*0x48-0x4f*/
- 0xb4cd, 0xda50, 0xda51, 0xe2d9, 0xc5e2, 0xeae6, 0xc0b5, 0xda52, /*0x50-0x57*/
- 0xd7b8, 0xeae7, 0xd7ac, 0xc8fc, 0xd8d3, 0xd8cd, 0xd4de, 0xda53, /*0x58-0x5f*/
- 0xd4f9, 0xc9c4, 0xd3ae, 0xb8d3, 0xb3e0, 0xda54, 0xc9e2, 0xf4f6, /*0x60-0x67*/
- 0xda55, 0xda56, 0xda57, 0xbad5, 0xda58, 0xf4f7, 0xda59, 0xda5a, /*0x68-0x6f*/
- 0xd7df, 0xda5b, 0xda5c, 0xf4f1, 0xb8b0, 0xd5d4, 0xb8cf, 0xc6f0, /*0x70-0x77*/
- 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61, 0xda62, 0xda63, 0xda64, /*0x78-0x7f*/
- 0xda65, 0xb3c3, 0xda66, 0xda67, 0xf4f2, 0xb3ac, 0xda68, 0xda69, /*0x80-0x87*/
- 0xda6a, 0xda6b, 0xd4bd, 0xc7f7, 0xda6c, 0xda6d, 0xda6e, 0xda6f, /*0x88-0x8f*/
- 0xda70, 0xf4f4, 0xda71, 0xda72, 0xf4f3, 0xda73, 0xda74, 0xda75, /*0x90-0x97*/
- 0xda76, 0xda77, 0xda78, 0xda79, 0xda7a, 0xda7b, 0xda7c, 0xcccb, /*0x98-0x9f*/
- 0xda7d, 0xda7e, 0xda80, 0xc8a4, 0xda81, 0xda82, 0xda83, 0xda84, /*0xa0-0xa7*/
- 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a, 0xda8b, 0xda8c, /*0xa8-0xaf*/
- 0xda8d, 0xf4f5, 0xda8e, 0xd7e3, 0xc5bf, 0xf5c0, 0xda8f, 0xda90, /*0xb0-0xb7*/
- 0xf5bb, 0xda91, 0xf5c3, 0xda92, 0xf5c2, 0xda93, 0xd6ba, 0xf5c1, /*0xb8-0xbf*/
- 0xda94, 0xda95, 0xda96, 0xd4be, 0xf5c4, 0xda97, 0xf5cc, 0xda98, /*0xc0-0xc7*/
- 0xda99, 0xda9a, 0xda9b, 0xb0cf, 0xb5f8, 0xda9c, 0xf5c9, 0xf5ca, /*0xc8-0xcf*/
- 0xda9d, 0xc5dc, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xf5c5, 0xf5c6, /*0xd0-0xd7*/
- 0xdb41, 0xdb42, 0xf5c7, 0xf5cb, 0xdb43, 0xbee0, 0xf5c8, 0xb8fa, /*0xd8-0xdf*/
- 0xdb44, 0xdb45, 0xdb46, 0xf5d0, 0xf5d3, 0xdb47, 0xdb48, 0xdb49, /*0xe0-0xe7*/
- 0xbfe7, 0xdb4a, 0xb9f2, 0xf5bc, 0xf5cd, 0xdb4b, 0xdb4c, 0xc2b7, /*0xe8-0xef*/
- 0xdb4d, 0xdb4e, 0xdb4f, 0xccf8, 0xdb50, 0xbcf9, 0xdb51, 0xf5ce, /*0xf0-0xf7*/
- 0xf5cf, 0xf5d1, 0xb6e5, 0xf5d2, 0xdb52, 0xf5d5, 0xdb53, 0xdb54, /*0xf8-0xff*/
- /* 0x8e00 */
- 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59, 0xf5bd, 0xdb5a, 0xdb5b, /*0x00-0x07*/
- 0xdb5c, 0xf5d4, 0xd3bb, 0xdb5d, 0xb3ec, 0xdb5e, 0xdb5f, 0xcca4, /*0x08-0x0f*/
- 0xdb60, 0xdb61, 0xdb62, 0xdb63, 0xf5d6, 0xdb64, 0xdb65, 0xdb66, /*0x10-0x17*/
- 0xdb67, 0xdb68, 0xdb69, 0xdb6a, 0xdb6b, 0xf5d7, 0xbee1, 0xf5d8, /*0x18-0x1f*/
- 0xdb6c, 0xdb6d, 0xccdf, 0xf5db, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71, /*0x20-0x27*/
- 0xdb72, 0xb2c8, 0xd7d9, 0xdb73, 0xf5d9, 0xdb74, 0xf5da, 0xf5dc, /*0x28-0x2f*/
- 0xdb75, 0xf5e2, 0xdb76, 0xdb77, 0xdb78, 0xf5e0, 0xdb79, 0xdb7a, /*0x30-0x37*/
- 0xdb7b, 0xf5df, 0xf5dd, 0xdb7c, 0xdb7d, 0xf5e1, 0xdb7e, 0xdb80, /*0x38-0x3f*/
- 0xf5de, 0xf5e4, 0xf5e5, 0xdb81, 0xcce3, 0xdb82, 0xdb83, 0xe5bf, /*0x40-0x47*/
- 0xb5b8, 0xf5e3, 0xf5e8, 0xcca3, 0xdb84, 0xdb85, 0xdb86, 0xdb87, /*0x48-0x4f*/
- 0xdb88, 0xf5e6, 0xf5e7, 0xdb89, 0xdb8a, 0xdb8b, 0xdb8c, 0xdb8d, /*0x50-0x57*/
- 0xdb8e, 0xf5be, 0xdb8f, 0xdb90, 0xdb91, 0xdb92, 0xdb93, 0xdb94, /*0x58-0x5f*/
- 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a, 0xb1c4, 0xdb9b, /*0x60-0x67*/
- 0xdb9c, 0xf5bf, 0xdb9d, 0xdb9e, 0xb5c5, 0xb2e4, 0xdb9f, 0xf5ec, /*0x68-0x6f*/
- 0xf5e9, 0xdba0, 0xb6d7, 0xdc40, 0xf5ed, 0xdc41, 0xf5ea, 0xdc42, /*0x70-0x77*/
- 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xf5eb, 0xdc47, 0xdc48, 0xb4da, /*0x78-0x7f*/
- 0xdc49, 0xd4ea, 0xdc4a, 0xdc4b, 0xdc4c, 0xf5ee, 0xdc4d, 0xb3f9, /*0x80-0x87*/
- 0xdc4e, 0xdc4f, 0xdc50, 0xdc51, 0xdc52, 0xdc53, 0xdc54, 0xf5ef, /*0x88-0x8f*/
- 0xf5f1, 0xdc55, 0xdc56, 0xdc57, 0xf5f0, 0xdc58, 0xdc59, 0xdc5a, /*0x90-0x97*/
- 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xf5f2, 0xdc5f, 0xf5f3, 0xdc60, /*0x98-0x9f*/
- 0xdc61, 0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, /*0xa0-0xa7*/
- 0xdc69, 0xdc6a, 0xdc6b, 0xc9ed, 0xb9aa, 0xdc6c, 0xdc6d, 0xc7fb, /*0xa8-0xaf*/
- 0xdc6e, 0xdc6f, 0xb6e3, 0xdc70, 0xdc71, 0xdc72, 0xdc73, 0xdc74, /*0xb0-0xb7*/
- 0xdc75, 0xdc76, 0xccc9, 0xdc77, 0xdc78, 0xdc79, 0xdc7a, 0xdc7b, /*0xb8-0xbf*/
- 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82, 0xdc83, 0xdc84, /*0xc0-0xc7*/
- 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a, 0xeaa6, 0xdc8b, /*0xc8-0xcf*/
- 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92, 0xdc93, /*0xd0-0xd7*/
- 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a, 0xdc9b, /*0xd8-0xdf*/
- 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41, 0xdd42, /*0xe0-0xe7*/
- 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49, 0xdd4a, /*0xe8-0xef*/
- 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, 0xdd52, /*0xf0-0xf7*/
- 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59, 0xdd5a, /*0xf8-0xff*/
- /* 0x8f00 */
- 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61, 0xdd62, /*0x00-0x07*/
- 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69, 0xdd6a, /*0x08-0x0f*/
- 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71, 0xdd72, /*0x10-0x17*/
- 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79, 0xdd7a, /*0x18-0x1f*/
- 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82, 0xdd83, /*0x20-0x27*/
- 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a, 0xdd8b, /*0x28-0x2f*/
- 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92, 0xdd93, /*0x30-0x37*/
- 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a, 0xdd9b, /*0x38-0x3f*/
- 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41, 0xde42, /*0x40-0x47*/
- 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49, 0xde4a, /*0x48-0x4f*/
- 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51, 0xde52, /*0x50-0x57*/
- 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59, 0xde5a, /*0x58-0x5f*/
- 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xb3b5, 0xd4fe, /*0x60-0x67*/
- 0xb9ec, 0xd0f9, 0xde61, 0xe9ed, 0xd7aa, 0xe9ee, 0xc2d6, 0xc8ed, /*0x68-0x6f*/
- 0xbae4, 0xe9ef, 0xe9f0, 0xe9f1, 0xd6e1, 0xe9f2, 0xe9f3, 0xe9f5, /*0x70-0x77*/
- 0xe9f4, 0xe9f6, 0xe9f7, 0xc7e1, 0xe9f8, 0xd4d8, 0xe9f9, 0xbdce, /*0x78-0x7f*/
- 0xde62, 0xe9fa, 0xe9fb, 0xbdcf, 0xe9fc, 0xb8a8, 0xc1be, 0xe9fd, /*0x80-0x87*/
- 0xb1b2, 0xbbd4, 0xb9f5, 0xe9fe, 0xde63, 0xeaa1, 0xeaa2, 0xeaa3, /*0x88-0x8f*/
- 0xb7f8, 0xbcad, 0xde64, 0xcae4, 0xe0ce, 0xd4af, 0xcfbd, 0xd5b7, /*0x90-0x97*/
- 0xeaa4, 0xd5de, 0xeaa5, 0xd0c1, 0xb9bc, 0xde65, 0xb4c7, 0xb1d9, /*0x98-0x9f*/
- 0xde66, 0xde67, 0xde68, 0xc0b1, 0xde69, 0xde6a, 0xde6b, 0xde6c, /*0xa0-0xa7*/
- 0xb1e6, 0xb1e7, 0xde6d, 0xb1e8, 0xde6e, 0xde6f, 0xde70, 0xde71, /*0xa8-0xaf*/
- 0xb3bd, 0xc8e8, 0xde72, 0xde73, 0xde74, 0xde75, 0xe5c1, 0xde76, /*0xb0-0xb7*/
- 0xde77, 0xb1df, 0xde78, 0xde79, 0xde7a, 0xc1c9, 0xb4ef, 0xde7b, /*0xb8-0xbf*/
- 0xde7c, 0xc7a8, 0xd3d8, 0xde7d, 0xc6f9, 0xd1b8, 0xde7e, 0xb9fd, /*0xc0-0xc7*/
- 0xc2f5, 0xde80, 0xde81, 0xde82, 0xde83, 0xde84, 0xd3ad, 0xde85, /*0xc8-0xcf*/
- 0xd4cb, 0xbdfc, 0xde86, 0xe5c2, 0xb7b5, 0xe5c3, 0xde87, 0xde88, /*0xd0-0xd7*/
- 0xbbb9, 0xd5e2, 0xde89, 0xbdf8, 0xd4b6, 0xcea5, 0xc1ac, 0xb3d9, /*0xd8-0xdf*/
- 0xde8a, 0xde8b, 0xccf6, 0xde8c, 0xe5c6, 0xe5c4, 0xe5c8, 0xde8d, /*0xe0-0xe7*/
- 0xe5ca, 0xe5c7, 0xb5cf, 0xc6c8, 0xde8e, 0xb5fc, 0xe5c5, 0xde8f, /*0xe8-0xef*/
- 0xcaf6, 0xde90, 0xde91, 0xe5c9, 0xde92, 0xde93, 0xde94, 0xc3d4, /*0xf0-0xf7*/
- 0xb1c5, 0xbca3, 0xde95, 0xde96, 0xde97, 0xd7b7, 0xde98, 0xde99, /*0xf8-0xff*/
- /* 0x9000 */
- 0xcdcb, 0xcbcd, 0xcaca, 0xccd3, 0xe5cc, 0xe5cb, 0xc4e6, 0xde9a, /*0x00-0x07*/
- 0xde9b, 0xd1a1, 0xd1b7, 0xe5cd, 0xde9c, 0xe5d0, 0xde9d, 0xcdb8, /*0x08-0x0f*/
- 0xd6f0, 0xe5cf, 0xb5dd, 0xde9e, 0xcdbe, 0xde9f, 0xe5d1, 0xb6ba, /*0x10-0x17*/
- 0xdea0, 0xdf40, 0xcda8, 0xb9e4, 0xdf41, 0xcac5, 0xb3d1, 0xcbd9, /*0x18-0x1f*/
- 0xd4ec, 0xe5d2, 0xb7ea, 0xdf42, 0xdf43, 0xdf44, 0xe5ce, 0xdf45, /*0x20-0x27*/
- 0xdf46, 0xdf47, 0xdf48, 0xdf49, 0xdf4a, 0xe5d5, 0xb4fe, 0xe5d6, /*0x28-0x2f*/
- 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xe5d3, 0xe5d4, 0xdf50, /*0x30-0x37*/
- 0xd2dd, 0xdf51, 0xdf52, 0xc2df, 0xb1c6, 0xdf53, 0xd3e2, 0xdf54, /*0x38-0x3f*/
- 0xdf55, 0xb6dd, 0xcbec, 0xdf56, 0xe5d7, 0xdf57, 0xdf58, 0xd3f6, /*0x40-0x47*/
- 0xdf59, 0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xb1e9, 0xdf5e, 0xb6f4, /*0x48-0x4f*/
- 0xe5da, 0xe5d8, 0xe5d9, 0xb5c0, 0xdf5f, 0xdf60, 0xdf61, 0xd2c5, /*0x50-0x57*/
- 0xe5dc, 0xdf62, 0xdf63, 0xe5de, 0xdf64, 0xdf65, 0xdf66, 0xdf67, /*0x58-0x5f*/
- 0xdf68, 0xdf69, 0xe5dd, 0xc7b2, 0xdf6a, 0xd2a3, 0xdf6b, 0xdf6c, /*0x60-0x67*/
- 0xe5db, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xd4e2, 0xd5da, 0xdf71, /*0x68-0x6f*/
- 0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xe5e0, 0xd7f1, 0xdf76, 0xdf77, /*0x70-0x77*/
- 0xdf78, 0xdf79, 0xdf7a, 0xdf7b, 0xdf7c, 0xe5e1, 0xdf7d, 0xb1dc, /*0x78-0x7f*/
- 0xd1fb, 0xdf7e, 0xe5e2, 0xe5e4, 0xdf80, 0xdf81, 0xdf82, 0xdf83, /*0x80-0x87*/
- 0xe5e3, 0xdf84, 0xdf85, 0xe5e5, 0xdf86, 0xdf87, 0xdf88, 0xdf89, /*0x88-0x8f*/
- 0xdf8a, 0xd2d8, 0xdf8b, 0xb5cb, 0xdf8c, 0xe7df, 0xdf8d, 0xdaf5, /*0x90-0x97*/
- 0xdf8e, 0xdaf8, 0xdf8f, 0xdaf6, 0xdf90, 0xdaf7, 0xdf91, 0xdf92, /*0x98-0x9f*/
- 0xdf93, 0xdafa, 0xd0cf, 0xc4c7, 0xdf94, 0xdf95, 0xb0ee, 0xdf96, /*0xa0-0xa7*/
- 0xdf97, 0xdf98, 0xd0b0, 0xdf99, 0xdaf9, 0xdf9a, 0xd3ca, 0xbaaa, /*0xa8-0xaf*/
- 0xdba2, 0xc7f1, 0xdf9b, 0xdafc, 0xdafb, 0xc9db, 0xdafd, 0xdf9c, /*0xb0-0xb7*/
- 0xdba1, 0xd7de, 0xdafe, 0xc1da, 0xdf9d, 0xdf9e, 0xdba5, 0xdf9f, /*0xb8-0xbf*/
- 0xdfa0, 0xd3f4, 0xe040, 0xe041, 0xdba7, 0xdba4, 0xe042, 0xdba8, /*0xc0-0xc7*/
- 0xe043, 0xe044, 0xbdbc, 0xe045, 0xe046, 0xe047, 0xc0c9, 0xdba3, /*0xc8-0xcf*/
- 0xdba6, 0xd6a3, 0xe048, 0xdba9, 0xe049, 0xe04a, 0xe04b, 0xdbad, /*0xd0-0xd7*/
- 0xe04c, 0xe04d, 0xe04e, 0xdbae, 0xdbac, 0xbac2, 0xe04f, 0xe050, /*0xd8-0xdf*/
- 0xe051, 0xbfa4, 0xdbab, 0xe052, 0xe053, 0xe054, 0xdbaa, 0xd4c7, /*0xe0-0xe7*/
- 0xb2bf, 0xe055, 0xe056, 0xdbaf, 0xe057, 0xb9f9, 0xe058, 0xdbb0, /*0xe8-0xef*/
- 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xb3bb, 0xe05d, 0xe05e, 0xe05f, /*0xf0-0xf7*/
- 0xb5a6, 0xe060, 0xe061, 0xe062, 0xe063, 0xb6bc, 0xdbb1, 0xe064, /*0xf8-0xff*/
- /* 0x9100 */
- 0xe065, 0xe066, 0xb6f5, 0xe067, 0xdbb2, 0xe068, 0xe069, 0xe06a, /*0x00-0x07*/
- 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, 0xe072, /*0x08-0x0f*/
- 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, 0xe07a, /*0x10-0x17*/
- 0xe07b, 0xb1c9, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xdbb4, 0xe081, /*0x18-0x1f*/
- 0xe082, 0xe083, 0xdbb3, 0xdbb5, 0xe084, 0xe085, 0xe086, 0xe087, /*0x20-0x27*/
- 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xdbb7, /*0x28-0x2f*/
- 0xe08f, 0xdbb6, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, /*0x30-0x37*/
- 0xe096, 0xdbb8, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, /*0x38-0x3f*/
- 0xe09d, 0xe09e, 0xe09f, 0xdbb9, 0xe0a0, 0xe140, 0xdbba, 0xe141, /*0x40-0x47*/
- 0xe142, 0xd3cf, 0xf4fa, 0xc7f5, 0xd7c3, 0xc5e4, 0xf4fc, 0xf4fd, /*0x48-0x4f*/
- 0xf4fb, 0xe143, 0xbec6, 0xe144, 0xe145, 0xe146, 0xe147, 0xd0ef, /*0x50-0x57*/
- 0xe148, 0xe149, 0xb7d3, 0xe14a, 0xe14b, 0xd4cd, 0xccaa, 0xe14c, /*0x58-0x5f*/
- 0xe14d, 0xf5a2, 0xf5a1, 0xbaa8, 0xf4fe, 0xcbd6, 0xe14e, 0xe14f, /*0x60-0x67*/
- 0xe150, 0xf5a4, 0xc0d2, 0xe151, 0xb3ea, 0xe152, 0xcdaa, 0xf5a5, /*0x68-0x6f*/
- 0xf5a3, 0xbdb4, 0xf5a8, 0xe153, 0xf5a9, 0xbdcd, 0xc3b8, 0xbfe1, /*0x70-0x77*/
- 0xcbe1, 0xf5aa, 0xe154, 0xe155, 0xe156, 0xf5a6, 0xf5a7, 0xc4f0, /*0x78-0x7f*/
- 0xe157, 0xe158, 0xe159, 0xe15a, 0xe15b, 0xf5ac, 0xe15c, 0xb4bc, /*0x80-0x87*/
- 0xe15d, 0xd7ed, 0xe15e, 0xb4d7, 0xf5ab, 0xf5ae, 0xe15f, 0xe160, /*0x88-0x8f*/
- 0xf5ad, 0xf5af, 0xd0d1, 0xe161, 0xe162, 0xe163, 0xe164, 0xe165, /*0x90-0x97*/
- 0xe166, 0xe167, 0xc3d1, 0xc8a9, 0xe168, 0xe169, 0xe16a, 0xe16b, /*0x98-0x9f*/
- 0xe16c, 0xe16d, 0xf5b0, 0xf5b1, 0xe16e, 0xe16f, 0xe170, 0xe171, /*0xa0-0xa7*/
- 0xe172, 0xe173, 0xf5b2, 0xe174, 0xe175, 0xf5b3, 0xf5b4, 0xf5b5, /*0xa8-0xaf*/
- 0xe176, 0xe177, 0xe178, 0xe179, 0xf5b7, 0xf5b6, 0xe17a, 0xe17b, /*0xb0-0xb7*/
- 0xe17c, 0xe17d, 0xf5b8, 0xe17e, 0xe180, 0xe181, 0xe182, 0xe183, /*0xb8-0xbf*/
- 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a, 0xb2c9, /*0xc0-0xc7*/
- 0xe18b, 0xd3d4, 0xcacd, 0xe18c, 0xc0ef, 0xd6d8, 0xd2b0, 0xc1bf, /*0xc8-0xcf*/
- 0xe18d, 0xbdf0, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, 0xe193, /*0xd0-0xd7*/
- 0xe194, 0xe195, 0xe196, 0xe197, 0xb8aa, 0xe198, 0xe199, 0xe19a, /*0xd8-0xdf*/
- 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241, /*0xe0-0xe7*/
- 0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, /*0xe8-0xef*/
- 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, /*0xf0-0xf7*/
- 0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, /*0xf8-0xff*/
- /* 0x9200 */
- 0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, /*0x00-0x07*/
- 0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, /*0x08-0x0f*/
- 0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, /*0x10-0x17*/
- 0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, /*0x18-0x1f*/
- 0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282, /*0x20-0x27*/
- 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, /*0x28-0x2f*/
- 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, /*0x30-0x37*/
- 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, /*0x38-0x3f*/
- 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341, /*0x40-0x47*/
- 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349, /*0x48-0x4f*/
- 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351, /*0x50-0x57*/
- 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359, /*0x58-0x5f*/
- 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361, /*0x60-0x67*/
- 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369, /*0x68-0x6f*/
- 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xbcf8, 0xe36e, 0xe36f, 0xe370, /*0x70-0x77*/
- 0xe371, 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, /*0x78-0x7f*/
- 0xe379, 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, /*0x80-0x87*/
- 0xe382, 0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xf6c6, 0xe388, /*0x88-0x8f*/
- 0xe389, 0xe38a, 0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, /*0x90-0x97*/
- 0xe391, 0xe392, 0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, /*0x98-0x9f*/
- 0xe399, 0xe39a, 0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, /*0xa0-0xa7*/
- 0xe440, 0xe441, 0xe442, 0xe443, 0xe444, 0xe445, 0xf6c7, 0xe446, /*0xa8-0xaf*/
- 0xe447, 0xe448, 0xe449, 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, /*0xb0-0xb7*/
- 0xe44f, 0xe450, 0xe451, 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, /*0xb8-0xbf*/
- 0xe457, 0xe458, 0xe459, 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, /*0xc0-0xc7*/
- 0xf6c8, 0xe45f, 0xe460, 0xe461, 0xe462, 0xe463, 0xe464, 0xe465, /*0xc8-0xcf*/
- 0xe466, 0xe467, 0xe468, 0xe469, 0xe46a, 0xe46b, 0xe46c, 0xe46d, /*0xd0-0xd7*/
- 0xe46e, 0xe46f, 0xe470, 0xe471, 0xe472, 0xe473, 0xe474, 0xe475, /*0xd8-0xdf*/
- 0xe476, 0xe477, 0xe478, 0xe479, 0xe47a, 0xe47b, 0xe47c, 0xe47d, /*0xe0-0xe7*/
- 0xe47e, 0xe480, 0xe481, 0xe482, 0xe483, 0xe484, 0xe485, 0xe486, /*0xe8-0xef*/
- 0xe487, 0xe488, 0xe489, 0xe48a, 0xe48b, 0xe48c, 0xe48d, 0xe48e, /*0xf0-0xf7*/
- 0xe48f, 0xe490, 0xe491, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, /*0xf8-0xff*/
- /* 0x9300 */
- 0xe497, 0xe498, 0xe499, 0xe49a, 0xe49b, 0xe49c, 0xe49d, 0xe49e, /*0x00-0x07*/
- 0xe49f, 0xe4a0, 0xe540, 0xe541, 0xe542, 0xe543, 0xe544, 0xe545, /*0x08-0x0f*/
- 0xe546, 0xe547, 0xe548, 0xe549, 0xe54a, 0xe54b, 0xe54c, 0xe54d, /*0x10-0x17*/
- 0xe54e, 0xe54f, 0xe550, 0xe551, 0xe552, 0xe553, 0xe554, 0xe555, /*0x18-0x1f*/
- 0xe556, 0xe557, 0xe558, 0xe559, 0xe55a, 0xe55b, 0xe55c, 0xe55d, /*0x20-0x27*/
- 0xe55e, 0xe55f, 0xe560, 0xe561, 0xe562, 0xe563, 0xe564, 0xe565, /*0x28-0x2f*/
- 0xe566, 0xe567, 0xe568, 0xe569, 0xe56a, 0xe56b, 0xe56c, 0xe56d, /*0x30-0x37*/
- 0xe56e, 0xe56f, 0xe570, 0xe571, 0xe572, 0xe573, 0xf6c9, 0xe574, /*0x38-0x3f*/
- 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, 0xe57a, 0xe57b, 0xe57c, /*0x40-0x47*/
- 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582, 0xe583, 0xe584, 0xe585, /*0x48-0x4f*/
- 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, 0xe58b, 0xe58c, 0xe58d, /*0x50-0x57*/
- 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, 0xe593, 0xe594, 0xe595, /*0x58-0x5f*/
- 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, 0xe59b, 0xe59c, 0xe59d, /*0x60-0x67*/
- 0xe59e, 0xe59f, 0xf6ca, 0xe5a0, 0xe640, 0xe641, 0xe642, 0xe643, /*0x68-0x6f*/
- 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649, 0xe64a, 0xe64b, /*0x70-0x77*/
- 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651, 0xe652, 0xe653, /*0x78-0x7f*/
- 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659, 0xe65a, 0xe65b, /*0x80-0x87*/
- 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661, 0xe662, 0xf6cc, /*0x88-0x8f*/
- 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669, 0xe66a, /*0x90-0x97*/
- 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671, 0xe672, /*0x98-0x9f*/
- 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679, 0xe67a, /*0xa0-0xa7*/
- 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682, 0xe683, /*0xa8-0xaf*/
- 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a, 0xe68b, /*0xb0-0xb7*/
- 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692, 0xe693, /*0xb8-0xbf*/
- 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a, 0xe69b, /*0xc0-0xc7*/
- 0xe69c, 0xe69d, 0xf6cb, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741, /*0xc8-0xcf*/
- 0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xf7e9, 0xe748, /*0xd0-0xd7*/
- 0xe749, 0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, /*0xd8-0xdf*/
- 0xe751, 0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, /*0xe0-0xe7*/
- 0xe759, 0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, /*0xe8-0xef*/
- 0xe761, 0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, /*0xf0-0xf7*/
- 0xe769, 0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, /*0xf8-0xff*/
- /* 0x9400 */
- 0xe771, 0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, /*0x00-0x07*/
- 0xe779, 0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, /*0x08-0x0f*/
- 0xe782, 0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, /*0x10-0x17*/
- 0xe78a, 0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, /*0x18-0x1f*/
- 0xe792, 0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, /*0x20-0x27*/
- 0xe79a, 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, /*0x28-0x2f*/
- 0xe841, 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, /*0x30-0x37*/
- 0xe849, 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xf6cd, 0xe84f, /*0x38-0x3f*/
- 0xe850, 0xe851, 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, /*0x40-0x47*/
- 0xe858, 0xe859, 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, /*0x48-0x4f*/
- 0xe860, 0xe861, 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, /*0x50-0x57*/
- 0xe868, 0xe869, 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, /*0x58-0x5f*/
- 0xe870, 0xe871, 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, /*0x60-0x67*/
- 0xe878, 0xe879, 0xe87a, 0xf6ce, 0xe87b, 0xe87c, 0xe87d, 0xe87e, /*0x68-0x6f*/
- 0xe880, 0xe881, 0xe882, 0xe883, 0xe884, 0xe885, 0xe886, 0xe887, /*0x70-0x77*/
- 0xe888, 0xe889, 0xe88a, 0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, /*0x78-0x7f*/
- 0xe890, 0xe891, 0xe892, 0xe893, 0xe894, 0xeec4, 0xeec5, 0xeec6, /*0x80-0x87*/
- 0xd5eb, 0xb6a4, 0xeec8, 0xeec7, 0xeec9, 0xeeca, 0xc7a5, 0xeecb, /*0x88-0x8f*/
- 0xeecc, 0xe895, 0xb7b0, 0xb5f6, 0xeecd, 0xeecf, 0xe896, 0xeece, /*0x90-0x97*/
- 0xe897, 0xb8c6, 0xeed0, 0xeed1, 0xeed2, 0xb6db, 0xb3ae, 0xd6d3, /*0x98-0x9f*/
- 0xc4c6, 0xb1b5, 0xb8d6, 0xeed3, 0xeed4, 0xd4bf, 0xc7d5, 0xbefb, /*0xa0-0xa7*/
- 0xced9, 0xb9b3, 0xeed6, 0xeed5, 0xeed8, 0xeed7, 0xc5a5, 0xeed9, /*0xa8-0xaf*/
- 0xeeda, 0xc7ae, 0xeedb, 0xc7af, 0xeedc, 0xb2a7, 0xeedd, 0xeede, /*0xb0-0xb7*/
- 0xeedf, 0xeee0, 0xeee1, 0xd7ea, 0xeee2, 0xeee3, 0xbcd8, 0xeee4, /*0xb8-0xbf*/
- 0xd3cb, 0xccfa, 0xb2ac, 0xc1e5, 0xeee5, 0xc7a6, 0xc3ad, 0xe898, /*0xc0-0xc7*/
- 0xeee6, 0xeee7, 0xeee8, 0xeee9, 0xeeea, 0xeeeb, 0xeeec, 0xe899, /*0xc8-0xcf*/
- 0xeeed, 0xeeee, 0xeeef, 0xe89a, 0xe89b, 0xeef0, 0xeef1, 0xeef2, /*0xd0-0xd7*/
- 0xeef4, 0xeef3, 0xe89c, 0xeef5, 0xcdad, 0xc2c1, 0xeef6, 0xeef7, /*0xd8-0xdf*/
- 0xeef8, 0xd5a1, 0xeef9, 0xcfb3, 0xeefa, 0xeefb, 0xe89d, 0xeefc, /*0xe0-0xe7*/
- 0xeefd, 0xefa1, 0xeefe, 0xefa2, 0xb8f5, 0xc3fa, 0xefa3, 0xefa4, /*0xe8-0xef*/
- 0xbdc2, 0xd2bf, 0xb2f9, 0xefa5, 0xefa6, 0xefa7, 0xd2f8, 0xefa8, /*0xf0-0xf7*/
- 0xd6fd, 0xefa9, 0xc6cc, 0xe89e, 0xefaa, 0xefab, 0xc1b4, 0xefac, /*0xf8-0xff*/
- /* 0x9500 */
- 0xcffa, 0xcbf8, 0xefae, 0xefad, 0xb3fa, 0xb9f8, 0xefaf, 0xefb0, /*0x00-0x07*/
- 0xd0e2, 0xefb1, 0xefb2, 0xb7e6, 0xd0bf, 0xefb3, 0xefb4, 0xefb5, /*0x08-0x0f*/
- 0xc8f1, 0xcce0, 0xefb6, 0xefb7, 0xefb8, 0xefb9, 0xefba, 0xd5e0, /*0x10-0x17*/
- 0xefbb, 0xb4ed, 0xc3aa, 0xefbc, 0xe89f, 0xefbd, 0xefbe, 0xefbf, /*0x18-0x1f*/
- 0xe8a0, 0xcefd, 0xefc0, 0xc2e0, 0xb4b8, 0xd7b6, 0xbdf5, 0xe940, /*0x20-0x27*/
- 0xcfc7, 0xefc3, 0xefc1, 0xefc2, 0xefc4, 0xb6a7, 0xbcfc, 0xbee2, /*0x28-0x2f*/
- 0xc3cc, 0xefc5, 0xefc6, 0xe941, 0xefc7, 0xefcf, 0xefc8, 0xefc9, /*0x30-0x37*/
- 0xefca, 0xc7c2, 0xeff1, 0xb6cd, 0xefcb, 0xe942, 0xefcc, 0xefcd, /*0x38-0x3f*/
- 0xb6c6, 0xc3be, 0xefce, 0xe943, 0xefd0, 0xefd1, 0xefd2, 0xd5f2, /*0x40-0x47*/
- 0xe944, 0xefd3, 0xc4f7, 0xe945, 0xefd4, 0xc4f8, 0xefd5, 0xefd6, /*0x48-0x4f*/
- 0xb8e4, 0xb0f7, 0xefd7, 0xefd8, 0xefd9, 0xe946, 0xefda, 0xefdb, /*0x50-0x57*/
- 0xefdc, 0xefdd, 0xe947, 0xefde, 0xbeb5, 0xefe1, 0xefdf, 0xefe0, /*0x58-0x5f*/
- 0xe948, 0xefe2, 0xefe3, 0xc1cd, 0xefe4, 0xefe5, 0xefe6, 0xefe7, /*0x60-0x67*/
- 0xefe8, 0xefe9, 0xefea, 0xefeb, 0xefec, 0xc0d8, 0xe949, 0xefed, /*0x68-0x6f*/
- 0xc1ad, 0xefee, 0xefef, 0xeff0, 0xe94a, 0xe94b, 0xcfe2, 0xe94c, /*0x70-0x77*/
- 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951, 0xe952, 0xe953, 0xb3a4, /*0x78-0x7f*/
- 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959, 0xe95a, 0xe95b, /*0x80-0x87*/
- 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961, 0xe962, 0xe963, /*0x88-0x8f*/
- 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, 0xe96a, 0xe96b, /*0x90-0x97*/
- 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971, 0xe972, 0xe973, /*0x98-0x9f*/
- 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979, 0xe97a, 0xe97b, /*0xa0-0xa7*/
- 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982, 0xe983, 0xe984, /*0xa8-0xaf*/
- 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a, 0xe98b, 0xe98c, /*0xb0-0xb7*/
- 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992, 0xe993, 0xe994, /*0xb8-0xbf*/
- 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a, 0xe99b, 0xe99c, /*0xc0-0xc7*/
- 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41, 0xea42, 0xea43, /*0xc8-0xcf*/
- 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49, 0xea4a, 0xea4b, /*0xd0-0xd7*/
- 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51, 0xea52, 0xea53, /*0xd8-0xdf*/
- 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59, 0xea5a, 0xea5b, /*0xe0-0xe7*/
- 0xc3c5, 0xe3c5, 0xc9c1, 0xe3c6, 0xea5c, 0xb1d5, 0xceca, 0xb4b3, /*0xe8-0xef*/
- 0xc8f2, 0xe3c7, 0xcfd0, 0xe3c8, 0xbce4, 0xe3c9, 0xe3ca, 0xc3c6, /*0xf0-0xf7*/
- 0xd5a2, 0xc4d6, 0xb9eb, 0xcec5, 0xe3cb, 0xc3f6, 0xe3cc, 0xea5d, /*0xf8-0xff*/
- /* 0x9600 */
- 0xb7a7, 0xb8f3, 0xbad2, 0xe3cd, 0xe3ce, 0xd4c4, 0xe3cf, 0xea5e, /*0x00-0x07*/
- 0xe3d0, 0xd1cb, 0xe3d1, 0xe3d2, 0xe3d3, 0xe3d4, 0xd1d6, 0xe3d5, /*0x08-0x0f*/
- 0xb2fb, 0xc0bb, 0xe3d6, 0xea5f, 0xc0ab, 0xe3d7, 0xe3d8, 0xe3d9, /*0x10-0x17*/
- 0xea60, 0xe3da, 0xe3db, 0xea61, 0xb8b7, 0xdae2, 0xea62, 0xb6d3, /*0x18-0x1f*/
- 0xea63, 0xdae4, 0xdae3, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, /*0x20-0x27*/
- 0xea69, 0xea6a, 0xdae6, 0xea6b, 0xea6c, 0xea6d, 0xc8ee, 0xea6e, /*0x28-0x2f*/
- 0xea6f, 0xdae5, 0xb7c0, 0xd1f4, 0xd2f5, 0xd5f3, 0xbdd7, 0xea70, /*0x30-0x37*/
- 0xea71, 0xea72, 0xea73, 0xd7e8, 0xdae8, 0xdae7, 0xea74, 0xb0a2, /*0x38-0x3f*/
- 0xcdd3, 0xea75, 0xdae9, 0xea76, 0xb8bd, 0xbcca, 0xc2bd, 0xc2a4, /*0x40-0x47*/
- 0xb3c2, 0xdaea, 0xea77, 0xc2aa, 0xc4b0, 0xbdb5, 0xea78, 0xea79, /*0x48-0x4f*/
- 0xcfde, 0xea7a, 0xea7b, 0xea7c, 0xdaeb, 0xc9c2, 0xea7d, 0xea7e, /*0x50-0x57*/
- 0xea80, 0xea81, 0xea82, 0xb1dd, 0xea83, 0xea84, 0xea85, 0xdaec, /*0x58-0x5f*/
- 0xea86, 0xb6b8, 0xd4ba, 0xea87, 0xb3fd, 0xea88, 0xea89, 0xdaed, /*0x60-0x67*/
- 0xd4c9, 0xcfd5, 0xc5e3, 0xea8a, 0xdaee, 0xea8b, 0xea8c, 0xea8d, /*0x68-0x6f*/
- 0xea8e, 0xea8f, 0xdaef, 0xea90, 0xdaf0, 0xc1ea, 0xccd5, 0xcfdd, /*0x70-0x77*/
- 0xea91, 0xea92, 0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, /*0x78-0x7f*/
- 0xea99, 0xea9a, 0xea9b, 0xea9c, 0xea9d, 0xd3e7, 0xc2a1, 0xea9e, /*0x80-0x87*/
- 0xdaf1, 0xea9f, 0xeaa0, 0xcbe5, 0xeb40, 0xdaf2, 0xeb41, 0xcbe6, /*0x88-0x8f*/
- 0xd2fe, 0xeb42, 0xeb43, 0xeb44, 0xb8f4, 0xeb45, 0xeb46, 0xdaf3, /*0x90-0x97*/
- 0xb0af, 0xcfb6, 0xeb47, 0xeb48, 0xd5cf, 0xeb49, 0xeb4a, 0xeb4b, /*0x98-0x9f*/
- 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51, 0xeb52, 0xcbed, /*0xa0-0xa7*/
- 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59, 0xeb5a, /*0xa8-0xaf*/
- 0xdaf4, 0xeb5b, 0xeb5c, 0xe3c4, 0xeb5d, 0xeb5e, 0xc1a5, 0xeb5f, /*0xb0-0xb7*/
- 0xeb60, 0xf6bf, 0xeb61, 0xeb62, 0xf6c0, 0xf6c1, 0xc4d1, 0xeb63, /*0xb8-0xbf*/
- 0xc8b8, 0xd1e3, 0xeb64, 0xeb65, 0xd0db, 0xd1c5, 0xbcaf, 0xb9cd, /*0xc0-0xc7*/
- 0xeb66, 0xeff4, 0xeb67, 0xeb68, 0xb4c6, 0xd3ba, 0xf6c2, 0xb3fb, /*0xc8-0xcf*/
- 0xeb69, 0xeb6a, 0xf6c3, 0xeb6b, 0xeb6c, 0xb5f1, 0xeb6d, 0xeb6e, /*0xd0-0xd7*/
- 0xeb6f, 0xeb70, 0xeb71, 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, /*0xd8-0xdf*/
- 0xf6c5, 0xeb77, 0xeb78, 0xeb79, 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, /*0xe0-0xe7*/
- 0xd3ea, 0xf6a7, 0xd1a9, 0xeb7e, 0xeb80, 0xeb81, 0xeb82, 0xf6a9, /*0xe8-0xef*/
- 0xeb83, 0xeb84, 0xeb85, 0xf6a8, 0xeb86, 0xeb87, 0xc1e3, 0xc0d7, /*0xf0-0xf7*/
- 0xeb88, 0xb1a2, 0xeb89, 0xeb8a, 0xeb8b, 0xeb8c, 0xceed, 0xeb8d, /*0xf8-0xff*/
- /* 0x9700 */
- 0xd0e8, 0xf6ab, 0xeb8e, 0xeb8f, 0xcff6, 0xeb90, 0xf6aa, 0xd5f0, /*0x00-0x07*/
- 0xf6ac, 0xc3b9, 0xeb91, 0xeb92, 0xeb93, 0xbbf4, 0xf6ae, 0xf6ad, /*0x08-0x0f*/
- 0xeb94, 0xeb95, 0xeb96, 0xc4de, 0xeb97, 0xeb98, 0xc1d8, 0xeb99, /*0x10-0x17*/
- 0xeb9a, 0xeb9b, 0xeb9c, 0xeb9d, 0xcbaa, 0xeb9e, 0xcfbc, 0xeb9f, /*0x18-0x1f*/
- 0xeba0, 0xec40, 0xec41, 0xec42, 0xec43, 0xec44, 0xec45, 0xec46, /*0x20-0x27*/
- 0xec47, 0xec48, 0xf6af, 0xec49, 0xec4a, 0xf6b0, 0xec4b, 0xec4c, /*0x28-0x2f*/
- 0xf6b1, 0xec4d, 0xc2b6, 0xec4e, 0xec4f, 0xec50, 0xec51, 0xec52, /*0x30-0x37*/
- 0xb0d4, 0xc5f9, 0xec53, 0xec54, 0xec55, 0xec56, 0xf6b2, 0xec57, /*0x38-0x3f*/
- 0xec58, 0xec59, 0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, /*0x40-0x47*/
- 0xec60, 0xec61, 0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, /*0x48-0x4f*/
- 0xec68, 0xec69, 0xc7e0, 0xf6a6, 0xec6a, 0xec6b, 0xbeb8, 0xec6c, /*0x50-0x57*/
- 0xec6d, 0xbeb2, 0xec6e, 0xb5e5, 0xec6f, 0xec70, 0xb7c7, 0xec71, /*0x58-0x5f*/
- 0xbfbf, 0xc3d2, 0xc3e6, 0xec72, 0xec73, 0xd8cc, 0xec74, 0xec75, /*0x60-0x67*/
- 0xec76, 0xb8ef, 0xec77, 0xec78, 0xec79, 0xec7a, 0xec7b, 0xec7c, /*0x68-0x6f*/
- 0xec7d, 0xec7e, 0xec80, 0xbdf9, 0xd1a5, 0xec81, 0xb0d0, 0xec82, /*0x70-0x77*/
- 0xec83, 0xec84, 0xec85, 0xec86, 0xf7b0, 0xec87, 0xec88, 0xec89, /*0x78-0x7f*/
- 0xec8a, 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xf7b1, 0xec8f, 0xec90, /*0x80-0x87*/
- 0xec91, 0xec92, 0xec93, 0xd0ac, 0xec94, 0xb0b0, 0xec95, 0xec96, /*0x88-0x8f*/
- 0xec97, 0xf7b2, 0xf7b3, 0xec98, 0xf7b4, 0xec99, 0xec9a, 0xec9b, /*0x90-0x97*/
- 0xc7ca, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41, /*0x98-0x9f*/
- 0xbecf, 0xed42, 0xed43, 0xf7b7, 0xed44, 0xed45, 0xed46, 0xed47, /*0xa0-0xa7*/
- 0xed48, 0xed49, 0xed4a, 0xf7b6, 0xed4b, 0xb1de, 0xed4c, 0xf7b5, /*0xa8-0xaf*/
- 0xed4d, 0xed4e, 0xf7b8, 0xed4f, 0xf7b9, 0xed50, 0xed51, 0xed52, /*0xb0-0xb7*/
- 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59, 0xed5a, /*0xb8-0xbf*/
- 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61, 0xed62, /*0xc0-0xc7*/
- 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69, 0xed6a, /*0xc8-0xcf*/
- 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71, 0xed72, /*0xd0-0xd7*/
- 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79, 0xed7a, /*0xd8-0xdf*/
- 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xcea4, 0xc8cd, /*0xe0-0xe7*/
- 0xed82, 0xbaab, 0xe8b8, 0xe8b9, 0xe8ba, 0xbec2, 0xed83, 0xed84, /*0xe8-0xef*/
- 0xed85, 0xed86, 0xed87, 0xd2f4, 0xed88, 0xd4cf, 0xc9d8, 0xed89, /*0xf0-0xf7*/
- 0xed8a, 0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, /*0xf8-0xff*/
- /* 0x9800 */
- 0xed92, 0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, /*0x00-0x07*/
- 0xed9a, 0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, /*0x08-0x0f*/
- 0xee41, 0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, /*0x10-0x17*/
- 0xee49, 0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, /*0x18-0x1f*/
- 0xee51, 0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, /*0x20-0x27*/
- 0xee59, 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, /*0x28-0x2f*/
- 0xee61, 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, /*0x30-0x37*/
- 0xee69, 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, /*0x38-0x3f*/
- 0xee71, 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, /*0x40-0x47*/
- 0xee79, 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, /*0x48-0x4f*/
- 0xee82, 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, /*0x50-0x57*/
- 0xee8a, 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, /*0x58-0x5f*/
- 0xee92, 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, /*0x60-0x67*/
- 0xee9a, 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, /*0x68-0x6f*/
- 0xef41, 0xef42, 0xef43, 0xef44, 0xef45, 0xd2b3, 0xb6a5, 0xc7ea, /*0x70-0x77*/
- 0xf1fc, 0xcfee, 0xcbb3, 0xd0eb, 0xe7ef, 0xcde7, 0xb9cb, 0xb6d9, /*0x78-0x7f*/
- 0xf1fd, 0xb0e4, 0xcbcc, 0xf1fe, 0xd4a4, 0xc2ad, 0xc1ec, 0xc6c4, /*0x80-0x87*/
- 0xbeb1, 0xf2a1, 0xbcd5, 0xef46, 0xf2a2, 0xf2a3, 0xef47, 0xf2a4, /*0x88-0x8f*/
- 0xd2c3, 0xc6b5, 0xef48, 0xcdc7, 0xf2a5, 0xef49, 0xd3b1, 0xbfc5, /*0x90-0x97*/
- 0xcce2, 0xef4a, 0xf2a6, 0xf2a7, 0xd1d5, 0xb6ee, 0xf2a8, 0xf2a9, /*0x98-0x9f*/
- 0xb5df, 0xf2aa, 0xf2ab, 0xef4b, 0xb2fc, 0xf2ac, 0xf2ad, 0xc8a7, /*0xa0-0xa7*/
- 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51, 0xef52, 0xef53, /*0xa8-0xaf*/
- 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, 0xef5a, 0xef5b, /*0xb0-0xb7*/
- 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, 0xef62, 0xef63, /*0xb8-0xbf*/
- 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, 0xef6a, 0xef6b, /*0xc0-0xc7*/
- 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, 0xb7e7, 0xef72, /*0xc8-0xcf*/
- 0xef73, 0xeca9, 0xecaa, 0xecab, 0xef74, 0xecac, 0xef75, 0xef76, /*0xd0-0xd7*/
- 0xc6ae, 0xecad, 0xecae, 0xef77, 0xef78, 0xef79, 0xb7c9, 0xcab3, /*0xd8-0xdf*/
- 0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xe2b8, /*0xe0-0xe7*/
- 0xf7cf, 0xef82, 0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, /*0xe8-0xef*/
- 0xef89, 0xef8a, 0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, /*0xf0-0xf7*/
- 0xef91, 0xef92, 0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, /*0xf8-0xff*/
- /* 0x9900 */
- 0xef99, 0xef9a, 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, /*0x00-0x07*/
- 0xf040, 0xf041, 0xf042, 0xf043, 0xf044, 0xf7d0, 0xf045, 0xf046, /*0x08-0x0f*/
- 0xb2cd, 0xf047, 0xf048, 0xf049, 0xf04a, 0xf04b, 0xf04c, 0xf04d, /*0x10-0x17*/
- 0xf04e, 0xf04f, 0xf050, 0xf051, 0xf052, 0xf053, 0xf054, 0xf055, /*0x18-0x1f*/
- 0xf056, 0xf057, 0xf058, 0xf059, 0xf05a, 0xf05b, 0xf05c, 0xf05d, /*0x20-0x27*/
- 0xf05e, 0xf05f, 0xf060, 0xf061, 0xf062, 0xf063, 0xf7d1, 0xf064, /*0x28-0x2f*/
- 0xf065, 0xf066, 0xf067, 0xf068, 0xf069, 0xf06a, 0xf06b, 0xf06c, /*0x30-0x37*/
- 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071, 0xf072, 0xf073, 0xf074, /*0x38-0x3f*/
- 0xf075, 0xf076, 0xf077, 0xf078, 0xf079, 0xf07a, 0xf07b, 0xf07c, /*0x40-0x47*/
- 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082, 0xf083, 0xf084, 0xf085, /*0x48-0x4f*/
- 0xf086, 0xf087, 0xf088, 0xf089, 0xf7d3, 0xf7d2, 0xf08a, 0xf08b, /*0x50-0x57*/
- 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092, 0xf093, /*0x58-0x5f*/
- 0xf094, 0xf095, 0xf096, 0xe2bb, 0xf097, 0xbca2, 0xf098, 0xe2bc, /*0x60-0x67*/
- 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, 0xe2c1, 0xb7b9, 0xd2fb, 0xbda4, /*0x68-0x6f*/
- 0xcace, 0xb1a5, 0xcbc7, 0xf099, 0xe2c2, 0xb6fc, 0xc8c4, 0xe2c3, /*0x70-0x77*/
- 0xf09a, 0xf09b, 0xbdc8, 0xf09c, 0xb1fd, 0xe2c4, 0xf09d, 0xb6f6, /*0x78-0x7f*/
- 0xe2c5, 0xc4d9, 0xf09e, 0xf09f, 0xe2c6, 0xcfda, 0xb9dd, 0xe2c7, /*0x80-0x87*/
- 0xc0a1, 0xf0a0, 0xe2c8, 0xb2f6, 0xf140, 0xe2c9, 0xf141, 0xc1f3, /*0x88-0x8f*/
- 0xe2ca, 0xe2cb, 0xc2f8, 0xe2cc, 0xe2cd, 0xe2ce, 0xcad7, 0xd8b8, /*0x90-0x97*/
- 0xd9e5, 0xcfe3, 0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, /*0x98-0x9f*/
- 0xf148, 0xf149, 0xf14a, 0xf14b, 0xf14c, 0xf0a5, 0xf14d, 0xf14e, /*0xa0-0xa7*/
- 0xdcb0, 0xf14f, 0xf150, 0xf151, 0xf152, 0xf153, 0xf154, 0xf155, /*0xa8-0xaf*/
- 0xf156, 0xf157, 0xf158, 0xf159, 0xf15a, 0xf15b, 0xf15c, 0xf15d, /*0xb0-0xb7*/
- 0xf15e, 0xf15f, 0xf160, 0xf161, 0xf162, 0xf163, 0xf164, 0xf165, /*0xb8-0xbf*/
- 0xf166, 0xf167, 0xf168, 0xf169, 0xf16a, 0xf16b, 0xf16c, 0xf16d, /*0xc0-0xc7*/
- 0xf16e, 0xf16f, 0xf170, 0xf171, 0xf172, 0xf173, 0xf174, 0xf175, /*0xc8-0xcf*/
- 0xf176, 0xf177, 0xf178, 0xf179, 0xf17a, 0xf17b, 0xf17c, 0xf17d, /*0xd0-0xd7*/
- 0xf17e, 0xf180, 0xf181, 0xf182, 0xf183, 0xf184, 0xf185, 0xf186, /*0xd8-0xdf*/
- 0xf187, 0xf188, 0xf189, 0xf18a, 0xf18b, 0xf18c, 0xf18d, 0xf18e, /*0xe0-0xe7*/
- 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193, 0xf194, 0xf195, 0xf196, /*0xe8-0xef*/
- 0xf197, 0xf198, 0xf199, 0xf19a, 0xf19b, 0xf19c, 0xf19d, 0xf19e, /*0xf0-0xf7*/
- 0xf19f, 0xf1a0, 0xf240, 0xf241, 0xf242, 0xf243, 0xf244, 0xf245, /*0xf8-0xff*/
- /* 0x9a00 */
- 0xf246, 0xf247, 0xf248, 0xf249, 0xf24a, 0xf24b, 0xf24c, 0xf24d, /*0x00-0x07*/
- 0xf24e, 0xf24f, 0xf250, 0xf251, 0xf252, 0xf253, 0xf254, 0xf255, /*0x08-0x0f*/
- 0xf256, 0xf257, 0xf258, 0xf259, 0xf25a, 0xf25b, 0xf25c, 0xf25d, /*0x10-0x17*/
- 0xf25e, 0xf25f, 0xf260, 0xf261, 0xf262, 0xf263, 0xf264, 0xf265, /*0x18-0x1f*/
- 0xf266, 0xf267, 0xf268, 0xf269, 0xf26a, 0xf26b, 0xf26c, 0xf26d, /*0x20-0x27*/
- 0xf26e, 0xf26f, 0xf270, 0xf271, 0xf272, 0xf273, 0xf274, 0xf275, /*0x28-0x2f*/
- 0xf276, 0xf277, 0xf278, 0xf279, 0xf27a, 0xf27b, 0xf27c, 0xf27d, /*0x30-0x37*/
- 0xf27e, 0xf280, 0xf281, 0xf282, 0xf283, 0xf284, 0xf285, 0xf286, /*0x38-0x3f*/
- 0xf287, 0xf288, 0xf289, 0xf28a, 0xf28b, 0xf28c, 0xf28d, 0xf28e, /*0x40-0x47*/
- 0xf28f, 0xf290, 0xf291, 0xf292, 0xf293, 0xf294, 0xf295, 0xf296, /*0x48-0x4f*/
- 0xf297, 0xf298, 0xf299, 0xf29a, 0xf29b, 0xf29c, 0xf29d, 0xf29e, /*0x50-0x57*/
- 0xf29f, 0xf2a0, 0xf340, 0xf341, 0xf342, 0xf343, 0xf344, 0xf345, /*0x58-0x5f*/
- 0xf346, 0xf347, 0xf348, 0xf349, 0xf34a, 0xf34b, 0xf34c, 0xf34d, /*0x60-0x67*/
- 0xf34e, 0xf34f, 0xf350, 0xf351, 0xc2ed, 0xd4a6, 0xcdd4, 0xd1b1, /*0x68-0x6f*/
- 0xb3db, 0xc7fd, 0xf352, 0xb2b5, 0xc2bf, 0xe6e0, 0xcabb, 0xe6e1, /*0x70-0x77*/
- 0xe6e2, 0xbed4, 0xe6e3, 0xd7a4, 0xcdd5, 0xe6e5, 0xbcdd, 0xe6e4, /*0x78-0x7f*/
- 0xe6e6, 0xe6e7, 0xc2ee, 0xf353, 0xbdbe, 0xe6e8, 0xc2e6, 0xbaa7, /*0x80-0x87*/
- 0xe6e9, 0xf354, 0xe6ea, 0xb3d2, 0xd1e9, 0xf355, 0xf356, 0xbfa5, /*0x88-0x8f*/
- 0xe6eb, 0xc6ef, 0xe6ec, 0xe6ed, 0xf357, 0xf358, 0xe6ee, 0xc6ad, /*0x90-0x97*/
- 0xe6ef, 0xf359, 0xc9a7, 0xe6f0, 0xe6f1, 0xe6f2, 0xe5b9, 0xe6f3, /*0x98-0x9f*/
- 0xe6f4, 0xc2e2, 0xe6f5, 0xe6f6, 0xd6e8, 0xe6f7, 0xf35a, 0xe6f8, /*0xa0-0xa7*/
- 0xb9c7, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, /*0xa8-0xaf*/
- 0xf7bb, 0xf7ba, 0xf362, 0xf363, 0xf364, 0xf365, 0xf7be, 0xf7bc, /*0xb0-0xb7*/
- 0xbaa1, 0xf366, 0xf7bf, 0xf367, 0xf7c0, 0xf368, 0xf369, 0xf36a, /*0xb8-0xbf*/
- 0xf7c2, 0xf7c1, 0xf7c4, 0xf36b, 0xf36c, 0xf7c3, 0xf36d, 0xf36e, /*0xc0-0xc7*/
- 0xf36f, 0xf370, 0xf371, 0xf7c5, 0xf7c6, 0xf372, 0xf373, 0xf374, /*0xc8-0xcf*/
- 0xf375, 0xf7c7, 0xf376, 0xcbe8, 0xf377, 0xf378, 0xf379, 0xf37a, /*0xd0-0xd7*/
- 0xb8df, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf7d4, /*0xd8-0xdf*/
- 0xf382, 0xf7d5, 0xf383, 0xf384, 0xf385, 0xf386, 0xf7d6, 0xf387, /*0xe0-0xe7*/
- 0xf388, 0xf389, 0xf38a, 0xf7d8, 0xf38b, 0xf7da, 0xf38c, 0xf7d7, /*0xe8-0xef*/
- 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392, 0xf393, 0xf394, /*0xf0-0xf7*/
- 0xf395, 0xf7db, 0xf396, 0xf7d9, 0xf397, 0xf398, 0xf399, 0xf39a, /*0xf8-0xff*/
- /* 0x9b00 */
- 0xf39b, 0xf39c, 0xf39d, 0xd7d7, 0xf39e, 0xf39f, 0xf3a0, 0xf440, /*0x00-0x07*/
- 0xf7dc, 0xf441, 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf7dd, /*0x08-0x0f*/
- 0xf447, 0xf448, 0xf449, 0xf7de, 0xf44a, 0xf44b, 0xf44c, 0xf44d, /*0x10-0x17*/
- 0xf44e, 0xf44f, 0xf450, 0xf451, 0xf452, 0xf453, 0xf454, 0xf7df, /*0x18-0x1f*/
- 0xf455, 0xf456, 0xf457, 0xf7e0, 0xf458, 0xf459, 0xf45a, 0xf45b, /*0x20-0x27*/
- 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, 0xf462, 0xdbcb, /*0x28-0x2f*/
- 0xf463, 0xf464, 0xd8aa, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469, /*0x30-0x37*/
- 0xf46a, 0xf46b, 0xf46c, 0xe5f7, 0xb9ed, 0xf46d, 0xf46e, 0xf46f, /*0x38-0x3f*/
- 0xf470, 0xbffd, 0xbbea, 0xf7c9, 0xc6c7, 0xf7c8, 0xf471, 0xf7ca, /*0x40-0x47*/
- 0xf7cc, 0xf7cb, 0xf472, 0xf473, 0xf474, 0xf7cd, 0xf475, 0xceba, /*0x48-0x4f*/
- 0xf476, 0xf7ce, 0xf477, 0xf478, 0xc4a7, 0xf479, 0xf47a, 0xf47b, /*0x50-0x57*/
- 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482, 0xf483, 0xf484, /*0x58-0x5f*/
- 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a, 0xf48b, 0xf48c, /*0x60-0x67*/
- 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492, 0xf493, 0xf494, /*0x68-0x6f*/
- 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a, 0xf49b, 0xf49c, /*0x70-0x77*/
- 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541, 0xf542, 0xf543, /*0x78-0x7f*/
- 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549, 0xf54a, 0xf54b, /*0x80-0x87*/
- 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551, 0xf552, 0xf553, /*0x88-0x8f*/
- 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559, 0xf55a, 0xf55b, /*0x90-0x97*/
- 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561, 0xf562, 0xf563, /*0x98-0x9f*/
- 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569, 0xf56a, 0xf56b, /*0xa0-0xa7*/
- 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571, 0xf572, 0xf573, /*0xa8-0xaf*/
- 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579, 0xf57a, 0xf57b, /*0xb0-0xb7*/
- 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582, 0xf583, 0xf584, /*0xb8-0xbf*/
- 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a, 0xf58b, 0xf58c, /*0xc0-0xc7*/
- 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592, 0xf593, 0xf594, /*0xc8-0xcf*/
- 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a, 0xf59b, 0xf59c, /*0xd0-0xd7*/
- 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641, 0xf642, 0xf643, /*0xd8-0xdf*/
- 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649, 0xf64a, 0xf64b, /*0xe0-0xe7*/
- 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651, 0xf652, 0xf653, /*0xe8-0xef*/
- 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659, 0xf65a, 0xf65b, /*0xf0-0xf7*/
- 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661, 0xf662, 0xf663, /*0xf8-0xff*/
- /* 0x9c00 */
- 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669, 0xf66a, 0xf66b, /*0x00-0x07*/
- 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671, 0xf672, 0xf673, /*0x08-0x0f*/
- 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679, 0xf67a, 0xf67b, /*0x10-0x17*/
- 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682, 0xf683, 0xf684, /*0x18-0x1f*/
- 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a, 0xf68b, 0xf68c, /*0x20-0x27*/
- 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692, 0xf693, 0xf694, /*0x28-0x2f*/
- 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a, 0xf69b, 0xf69c, /*0x30-0x37*/
- 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741, 0xf742, 0xf743, /*0x38-0x3f*/
- 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749, 0xf74a, 0xf74b, /*0x40-0x47*/
- 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751, 0xf752, 0xf753, /*0x48-0x4f*/
- 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, 0xf75a, 0xf75b, /*0x50-0x57*/
- 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, 0xf762, 0xf763, /*0x58-0x5f*/
- 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, 0xf76a, 0xf76b, /*0x60-0x67*/
- 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, 0xf772, 0xf773, /*0x68-0x6f*/
- 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, 0xf77a, 0xf77b, /*0x70-0x77*/
- 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xd3e3, 0xf781, 0xf782, 0xf6cf, /*0x78-0x7f*/
- 0xf783, 0xc2b3, 0xf6d0, 0xf784, 0xf785, 0xf6d1, 0xf6d2, 0xf6d3, /*0x80-0x87*/
- 0xf6d4, 0xf786, 0xf787, 0xf6d6, 0xf788, 0xb1ab, 0xf6d7, 0xf789, /*0x88-0x8f*/
- 0xf6d8, 0xf6d9, 0xf6da, 0xf78a, 0xf6db, 0xf6dc, 0xf78b, 0xf78c, /*0x90-0x97*/
- 0xf78d, 0xf78e, 0xf6dd, 0xf6de, 0xcfca, 0xf78f, 0xf6df, 0xf6e0, /*0x98-0x9f*/
- 0xf6e1, 0xf6e2, 0xf6e3, 0xf6e4, 0xc0f0, 0xf6e5, 0xf6e6, 0xf6e7, /*0xa0-0xa7*/
- 0xf6e8, 0xf6e9, 0xf790, 0xf6ea, 0xf791, 0xf6eb, 0xf6ec, 0xf792, /*0xa8-0xaf*/
- 0xf6ed, 0xf6ee, 0xf6ef, 0xf6f0, 0xf6f1, 0xf6f2, 0xf6f3, 0xf6f4, /*0xb0-0xb7*/
- 0xbea8, 0xf793, 0xf6f5, 0xf6f6, 0xf6f7, 0xf6f8, 0xf794, 0xf795, /*0xb8-0xbf*/
- 0xf796, 0xf797, 0xf798, 0xc8fa, 0xf6f9, 0xf6fa, 0xf6fb, 0xf6fc, /*0xc0-0xc7*/
- 0xf799, 0xf79a, 0xf6fd, 0xf6fe, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, /*0xc8-0xcf*/
- 0xf7a5, 0xf79b, 0xf79c, 0xf7a6, 0xf7a7, 0xf7a8, 0xb1ee, 0xf7a9, /*0xd0-0xd7*/
- 0xf7aa, 0xf7ab, 0xf79d, 0xf79e, 0xf7ac, 0xf7ad, 0xc1db, 0xf7ae, /*0xd8-0xdf*/
- 0xf79f, 0xf7a0, 0xf7af, 0xf840, 0xf841, 0xf842, 0xf843, 0xf844, /*0xe0-0xe7*/
- 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, 0xf84a, 0xf84b, 0xf84c, /*0xe8-0xef*/
- 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851, 0xf852, 0xf853, 0xf854, /*0xf0-0xf7*/
- 0xf855, 0xf856, 0xf857, 0xf858, 0xf859, 0xf85a, 0xf85b, 0xf85c, /*0xf8-0xff*/
- /* 0x9d00 */
- 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861, 0xf862, 0xf863, 0xf864, /*0x00-0x07*/
- 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, 0xf86a, 0xf86b, 0xf86c, /*0x08-0x0f*/
- 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871, 0xf872, 0xf873, 0xf874, /*0x10-0x17*/
- 0xf875, 0xf876, 0xf877, 0xf878, 0xf879, 0xf87a, 0xf87b, 0xf87c, /*0x18-0x1f*/
- 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882, 0xf883, 0xf884, 0xf885, /*0x20-0x27*/
- 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a, 0xf88b, 0xf88c, 0xf88d, /*0x28-0x2f*/
- 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, 0xf893, 0xf894, 0xf895, /*0x30-0x37*/
- 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a, 0xf89b, 0xf89c, 0xf89d, /*0x38-0x3f*/
- 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941, 0xf942, 0xf943, 0xf944, /*0x40-0x47*/
- 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, 0xf94a, 0xf94b, 0xf94c, /*0x48-0x4f*/
- 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, 0xf952, 0xf953, 0xf954, /*0x50-0x57*/
- 0xf955, 0xf956, 0xf957, 0xf958, 0xf959, 0xf95a, 0xf95b, 0xf95c, /*0x58-0x5f*/
- 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961, 0xf962, 0xf963, 0xf964, /*0x60-0x67*/
- 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, 0xf96a, 0xf96b, 0xf96c, /*0x68-0x6f*/
- 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971, 0xf972, 0xf973, 0xf974, /*0x70-0x77*/
- 0xf975, 0xf976, 0xf977, 0xf978, 0xf979, 0xf97a, 0xf97b, 0xf97c, /*0x78-0x7f*/
- 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982, 0xf983, 0xf984, 0xf985, /*0x80-0x87*/
- 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a, 0xf98b, 0xf98c, 0xf98d, /*0x88-0x8f*/
- 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992, 0xf993, 0xf994, 0xf995, /*0x90-0x97*/
- 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a, 0xf99b, 0xf99c, 0xf99d, /*0x98-0x9f*/
- 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41, 0xfa42, 0xfa43, 0xfa44, /*0xa0-0xa7*/
- 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0xfa4a, 0xfa4b, 0xfa4c, /*0xa8-0xaf*/
- 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa54, /*0xb0-0xb7*/
- 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59, 0xfa5a, 0xfa5b, 0xfa5c, /*0xb8-0xbf*/
- 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61, 0xfa62, 0xfa63, 0xfa64, /*0xc0-0xc7*/
- 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69, 0xfa6a, 0xfa6b, 0xfa6c, /*0xc8-0xcf*/
- 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, 0xfa72, 0xfa73, 0xfa74, /*0xd0-0xd7*/
- 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79, 0xfa7a, 0xfa7b, 0xfa7c, /*0xd8-0xdf*/
- 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, 0xfa83, 0xfa84, 0xfa85, /*0xe0-0xe7*/
- 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a, 0xfa8b, 0xfa8c, 0xfa8d, /*0xe8-0xef*/
- 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92, 0xfa93, 0xfa94, 0xfa95, /*0xf0-0xf7*/
- 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a, 0xfa9b, 0xfa9c, 0xfa9d, /*0xf8-0xff*/
- /* 0x9e00 */
- 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41, 0xfb42, 0xfb43, 0xfb44, /*0x00-0x07*/
- 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, 0xfb4a, 0xfb4b, 0xfb4c, /*0x08-0x0f*/
- 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, 0xfb52, 0xfb53, 0xfb54, /*0x10-0x17*/
- 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59, 0xfb5a, 0xfb5b, 0xc4f1, /*0x18-0x1f*/
- 0xf0af, 0xbca6, 0xf0b0, 0xc3f9, 0xfb5c, 0xc5b8, 0xd1bb, 0xfb5d, /*0x20-0x27*/
- 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xd1bc, 0xfb5e, 0xd1ec, /*0x28-0x2f*/
- 0xfb5f, 0xf0b7, 0xf0b6, 0xd4a7, 0xfb60, 0xcdd2, 0xf0b8, 0xf0ba, /*0x30-0x37*/
- 0xf0b9, 0xf0bb, 0xf0bc, 0xfb61, 0xfb62, 0xb8eb, 0xf0bd, 0xbae8, /*0x38-0x3f*/
- 0xfb63, 0xf0be, 0xf0bf, 0xbee9, 0xf0c0, 0xb6ec, 0xf0c1, 0xf0c2, /*0x40-0x47*/
- 0xf0c3, 0xf0c4, 0xc8b5, 0xf0c5, 0xf0c6, 0xfb64, 0xf0c7, 0xc5f4, /*0x48-0x4f*/
- 0xfb65, 0xf0c8, 0xfb66, 0xfb67, 0xfb68, 0xf0c9, 0xfb69, 0xf0ca, /*0x50-0x57*/
- 0xf7bd, 0xfb6a, 0xf0cb, 0xf0cc, 0xf0cd, 0xfb6b, 0xf0ce, 0xfb6c, /*0x58-0x5f*/
- 0xfb6d, 0xfb6e, 0xfb6f, 0xf0cf, 0xbad7, 0xfb70, 0xf0d0, 0xf0d1, /*0x60-0x67*/
- 0xf0d2, 0xf0d3, 0xf0d4, 0xf0d5, 0xf0d6, 0xf0d8, 0xfb71, 0xfb72, /*0x68-0x6f*/
- 0xd3a5, 0xf0d7, 0xfb73, 0xf0d9, 0xfb74, 0xfb75, 0xfb76, 0xfb77, /*0x70-0x77*/
- 0xfb78, 0xfb79, 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xf5ba, 0xc2b9, /*0x78-0x7f*/
- 0xfb7e, 0xfb80, 0xf7e4, 0xfb81, 0xfb82, 0xfb83, 0xfb84, 0xf7e5, /*0x80-0x87*/
- 0xf7e6, 0xfb85, 0xfb86, 0xf7e7, 0xfb87, 0xfb88, 0xfb89, 0xfb8a, /*0x88-0x8f*/
- 0xfb8b, 0xfb8c, 0xf7e8, 0xc2b4, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, /*0x90-0x97*/
- 0xfb91, 0xfb92, 0xfb93, 0xfb94, 0xfb95, 0xf7ea, 0xfb96, 0xf7eb, /*0x98-0x9f*/
- 0xfb97, 0xfb98, 0xfb99, 0xfb9a, 0xfb9b, 0xfb9c, 0xc2f3, 0xfb9d, /*0xa0-0xa7*/
- 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41, 0xfc42, 0xfc43, 0xfc44, /*0xa8-0xaf*/
- 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xf4f0, 0xfc49, 0xfc4a, 0xfc4b, /*0xb0-0xb7*/
- 0xf4ef, 0xfc4c, 0xfc4d, 0xc2e9, 0xfc4e, 0xf7e1, 0xf7e2, 0xfc4f, /*0xb8-0xbf*/
- 0xfc50, 0xfc51, 0xfc52, 0xfc53, 0xbbc6, 0xfc54, 0xfc55, 0xfc56, /*0xc0-0xc7*/
- 0xfc57, 0xd9e4, 0xfc58, 0xfc59, 0xfc5a, 0xcaf2, 0xc0e8, 0xf0a4, /*0xc8-0xcf*/
- 0xfc5b, 0xbada, 0xfc5c, 0xfc5d, 0xc7ad, 0xfc5e, 0xfc5f, 0xfc60, /*0xd0-0xd7*/
- 0xc4ac, 0xfc61, 0xfc62, 0xf7ec, 0xf7ed, 0xf7ee, 0xfc63, 0xf7f0, /*0xd8-0xdf*/
- 0xf7ef, 0xfc64, 0xf7f1, 0xfc65, 0xfc66, 0xf7f4, 0xfc67, 0xf7f3, /*0xe0-0xe7*/
- 0xfc68, 0xf7f2, 0xf7f5, 0xfc69, 0xfc6a, 0xfc6b, 0xfc6c, 0xf7f6, /*0xe8-0xef*/
- 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, 0xfc72, 0xfc73, 0xfc74, /*0xf0-0xf7*/
- 0xfc75, 0xede9, 0xfc76, 0xedea, 0xedeb, 0xfc77, 0xf6bc, 0xfc78, /*0xf8-0xff*/
- /* 0x9f00 */
- 0xfc79, 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, /*0x00-0x07*/
- 0xfc82, 0xfc83, 0xfc84, 0xf6bd, 0xfc85, 0xf6be, 0xb6a6, 0xfc86, /*0x08-0x0f*/
- 0xd8be, 0xfc87, 0xfc88, 0xb9c4, 0xfc89, 0xfc8a, 0xfc8b, 0xd8bb, /*0x10-0x17*/
- 0xfc8c, 0xdcb1, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92, /*0x18-0x1f*/
- 0xcaf3, 0xfc93, 0xf7f7, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, /*0x20-0x27*/
- 0xfc99, 0xfc9a, 0xfc9b, 0xfc9c, 0xf7f8, 0xfc9d, 0xfc9e, 0xf7f9, /*0x28-0x2f*/
- 0xfc9f, 0xfca0, 0xfd40, 0xfd41, 0xfd42, 0xfd43, 0xfd44, 0xf7fb, /*0x30-0x37*/
- 0xfd45, 0xf7fa, 0xfd46, 0xb1c7, 0xfd47, 0xf7fc, 0xf7fd, 0xfd48, /*0x38-0x3f*/
- 0xfd49, 0xfd4a, 0xfd4b, 0xfd4c, 0xf7fe, 0xfd4d, 0xfd4e, 0xfd4f, /*0x40-0x47*/
- 0xfd50, 0xfd51, 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, /*0x48-0x4f*/
- 0xc6eb, 0xecb4, 0xfd58, 0xfd59, 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, /*0x50-0x57*/
- 0xfd5e, 0xfd5f, 0xfd60, 0xfd61, 0xfd62, 0xfd63, 0xfd64, 0xfd65, /*0x58-0x5f*/
- 0xfd66, 0xfd67, 0xfd68, 0xfd69, 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, /*0x60-0x67*/
- 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, 0xfd72, 0xfd73, 0xfd74, 0xfd75, /*0x68-0x6f*/
- 0xfd76, 0xfd77, 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, /*0x70-0x77*/
- 0xfd7e, 0xfd80, 0xfd81, 0xfd82, 0xfd83, 0xfd84, 0xfd85, 0xb3dd, /*0x78-0x7f*/
- 0xf6b3, 0xfd86, 0xfd87, 0xf6b4, 0xc1e4, 0xf6b5, 0xf6b6, 0xf6b7, /*0x80-0x87*/
- 0xf6b8, 0xf6b9, 0xf6ba, 0xc8a3, 0xf6bb, 0xfd88, 0xfd89, 0xfd8a, /*0x88-0x8f*/
- 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92, /*0x90-0x97*/
- 0xfd93, 0xc1fa, 0xb9a8, 0xede8, 0xfd94, 0xfd95, 0xfd96, 0xb9ea, /*0x98-0x9f*/
- 0xd9df, 0xfd97, 0xfd98, 0xfd99, 0xfd9a, 0xfd9b, 0x0000, 0x0000, /*0xa0-0xa7*/
-};
-static const unsigned short gbk_pagef9a[32] = {
- 0x0000, 0xfd9d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfd9e, 0x0000, 0x0000, /*0x90-0x97*/
-};
-static const unsigned short gbk_pagef9b[24] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfd9f, /*0xe0-0xe7*/
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xe8-0xef*/
- 0x0000, 0xfda0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xf0-0xf7*/
-};
-static const unsigned short gbk_pagefa[40] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0xfe40, 0xfe41, 0xfe42, 0xfe43, /*0x08-0x0f*/
- 0x0000, 0xfe44, 0x0000, 0xfe45, 0xfe46, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/
- 0xfe47, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe48, /*0x18-0x1f*/
- 0xfe49, 0xfe4a, 0x0000, 0xfe4b, 0xfe4c, 0x0000, 0x0000, 0xfe4d, /*0x20-0x27*/
- 0xfe4e, 0xfe4f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
-};
-static const unsigned short gbk_pagefe[64] = {
- 0xa955, 0xa6f2, 0x0000, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, /*0x30-0x37*/
- 0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, /*0x38-0x3f*/
- 0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/
- 0x0000, 0xa968, 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, /*0x48-0x4f*/
- 0xa96f, 0xa970, 0xa971, 0x0000, 0xa972, 0xa973, 0xa974, 0xa975, /*0x50-0x57*/
- 0x0000, 0xa976, 0xa977, 0xa978, 0xa979, 0xa97a, 0xa97b, 0xa97c, /*0x58-0x5f*/
- 0xa97d, 0xa97e, 0xa980, 0xa981, 0xa982, 0xa983, 0xa984, 0x0000, /*0x60-0x67*/
- 0xa985, 0xa986, 0xa987, 0xa988, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
-};
-static const unsigned short gbk_pageffa[96] = {
- 0x0000, 0xa3a1, 0xa3a2, 0xa3a3, 0xa1e7, 0xa3a5, 0xa3a6, 0xa3a7, /*0x00-0x07*/
- 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, /*0x08-0x0f*/
- 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, /*0x10-0x17*/
- 0xa3b8, 0xa3b9, 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa3be, 0xa3bf, /*0x18-0x1f*/
- 0xa3c0, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, /*0x20-0x27*/
- 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, /*0x28-0x2f*/
- 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, /*0x30-0x37*/
- 0xa3d8, 0xa3d9, 0xa3da, 0xa3db, 0xa3dc, 0xa3dd, 0xa3de, 0xa3df, /*0x38-0x3f*/
- 0xa3e0, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, /*0x40-0x47*/
- 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, /*0x48-0x4f*/
- 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, /*0x50-0x57*/
- 0xa3f8, 0xa3f9, 0xa3fa, 0xa3fb, 0xa3fc, 0xa3fd, 0xa1ab, 0x0000, /*0x58-0x5f*/
-};
-static const unsigned short gbk_pageffb[8] = {
- 0xa1e9, 0xa1ea, 0xa956, 0xa3fe, 0xa957, 0xa3a4, 0x0000, 0x0000, /*0xe0-0xe7*/
-};
-
-static int
-gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- unsigned short c = 0;
- if (wc >= 0x00a0 && wc < 0x0170)
- c = gbk_page00[wc-0x00a0];
- else if (wc >= 0x01c8 && wc < 0x01e0)
- c = gbk_page01[wc-0x01c8];
- else if (wc >= 0x0250 && wc < 0x0268)
- c = gbk_page02a[wc-0x0250];
- else if (wc >= 0x02c0 && wc < 0x02e0)
- c = gbk_page02b[wc-0x02c0];
- else if (wc >= 0x0390 && wc < 0x03d0)
- c = gbk_page03[wc-0x0390];
- else if (wc >= 0x0400 && wc < 0x0458)
- c = gbk_page04[wc-0x0400];
- else if (wc >= 0x2010 && wc < 0x2040)
- c = gbk_page20[wc-0x2010];
- else if (wc >= 0x2100 && wc < 0x21a0)
- c = gbk_page21[wc-0x2100];
- else if (wc >= 0x2208 && wc < 0x22c0)
- c = gbk_page22[wc-0x2208];
- else if (wc == 0x2312)
- c = 0xa1d0;
- else if (wc >= 0x2460 && wc < 0x24a0)
- c = gbk_page24[wc-0x2460];
- else if (wc >= 0x2500 && wc < 0x25e8)
- c = gbk_page25[wc-0x2500];
- else if (wc >= 0x2600 && wc < 0x2648)
- c = gbk_page26[wc-0x2600];
- else if (wc >= 0x3000 && wc < 0x3130)
- c = gbk_page30[wc-0x3000];
- else if (wc >= 0x3220 && wc < 0x3238)
- c = gbk_page32[wc-0x3220];
- else if (wc == 0x32a3)
- c = 0xa949;
- else if (wc >= 0x3388 && wc < 0x33d8)
- c = gbk_page33[wc-0x3388];
- else if (wc >= 0x4e00 && wc < 0x9fa8)
- c = gbk_page4e[wc-0x4e00];
- else if (wc == 0xf92c)
- c = 0xfd9c;
- else if (wc >= 0xf978 && wc < 0xf998)
- c = gbk_pagef9a[wc-0xf978];
- else if (wc >= 0xf9e0 && wc < 0xf9f8)
- c = gbk_pagef9b[wc-0xf9e0];
- else if (wc >= 0xfa08 && wc < 0xfa30)
- c = gbk_pagefa[wc-0xfa08];
- else if (wc >= 0xfe30 && wc < 0xfe70)
- c = gbk_pagefe[wc-0xfe30];
- else if (wc >= 0xff00 && wc < 0xff60)
- c = gbk_pageffa[wc-0xff00];
- else if (wc >= 0xffe0 && wc < 0xffe8)
- c = gbk_pageffb[wc-0xffe0];
- if (c != 0) {
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/georgian_academy.h b/nx-X11/lib/X11/lcUniConv/georgian_academy.h
deleted file mode 100644
index 0e4350461..000000000
--- a/nx-X11/lib/X11/lcUniConv/georgian_academy.h
+++ /dev/null
@@ -1,87 +0,0 @@
-
-/*
- * GEORGIAN-ACADEMY
- */
-
-static const unsigned short georgian_academy_2uni[32] = {
- /* 0x80 */
- 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
- 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f,
- /* 0x90 */
- 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
- 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178,
-};
-
-static int
-georgian_academy_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0x80 && c < 0xa0)
- *pwc = (ucs4_t) georgian_academy_2uni[c-0x80];
- else if (c >= 0xc0 && c < 0xe7)
- *pwc = (ucs4_t) c + 0x1010;
- else
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static const unsigned char georgian_academy_page00[32] = {
- 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
- 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */
-};
-static const unsigned char georgian_academy_page01[72] = {
- 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
-};
-static const unsigned char georgian_academy_page02[32] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
-};
-static const unsigned char georgian_academy_page20[48] = {
- 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
- 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
-};
-
-static int
-georgian_academy_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x0080 && wc < 0x00a0)
- c = georgian_academy_page00[wc-0x0080];
- else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100))
- c = wc;
- else if (wc >= 0x0150 && wc < 0x0198)
- c = georgian_academy_page01[wc-0x0150];
- else if (wc >= 0x02c0 && wc < 0x02e0)
- c = georgian_academy_page02[wc-0x02c0];
- else if (wc >= 0x10d0 && wc < 0x10f7)
- c = wc-0x1010;
- else if (wc >= 0x2010 && wc < 0x2040)
- c = georgian_academy_page20[wc-0x2010];
- else if (wc == 0x2122)
- c = 0x99;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/georgian_ps.h b/nx-X11/lib/X11/lcUniConv/georgian_ps.h
deleted file mode 100644
index b96c491df..000000000
--- a/nx-X11/lib/X11/lcUniConv/georgian_ps.h
+++ /dev/null
@@ -1,104 +0,0 @@
-
-/*
- * GEORGIAN-PS
- */
-
-static const unsigned short georgian_ps_2uni_1[32] = {
- /* 0x80 */
- 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
- 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f,
- /* 0x90 */
- 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
- 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178,
-};
-static const unsigned short georgian_ps_2uni_2[39] = {
- /* 0xc0 */
- 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1,
- 0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd,
- /* 0xd0 */
- 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4,
- 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec,
- /* 0xe0 */
- 0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5,
-};
-
-static int
-georgian_ps_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0x80 && c < 0xa0)
- *pwc = (ucs4_t) georgian_ps_2uni_1[c-0x80];
- else if (c >= 0xc0 && c < 0xe6)
- *pwc = (ucs4_t) georgian_ps_2uni_2[c-0xc0];
- else
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static const unsigned char georgian_ps_page00[32] = {
- 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
- 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */
-};
-static const unsigned char georgian_ps_page01[72] = {
- 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
-};
-static const unsigned char georgian_ps_page02[32] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
-};
-static const unsigned char georgian_ps_page10[40] = {
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc8, /* 0xd0-0xd7 */
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcf, 0xd0, 0xd1, /* 0xd8-0xdf */
- 0xd2, 0xd3, 0xd4, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, /* 0xe0-0xe7 */
- 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe3, /* 0xe8-0xef */
- 0xe4, 0xc7, 0xce, 0xd5, 0xe2, 0xe5, 0x00, 0x00, /* 0xf0-0xf7 */
-};
-static const unsigned char georgian_ps_page20[48] = {
- 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
- 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
-};
-
-static int
-georgian_ps_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x0080 && wc < 0x00a0)
- c = georgian_ps_page00[wc-0x0080];
- else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e6 && wc < 0x0100))
- c = wc;
- else if (wc >= 0x0150 && wc < 0x0198)
- c = georgian_ps_page01[wc-0x0150];
- else if (wc >= 0x02c0 && wc < 0x02e0)
- c = georgian_ps_page02[wc-0x02c0];
- else if (wc >= 0x10d0 && wc < 0x10f8)
- c = georgian_ps_page10[wc-0x10d0];
- else if (wc >= 0x2010 && wc < 0x2040)
- c = georgian_ps_page20[wc-0x2010];
- else if (wc == 0x2122)
- c = 0x99;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_1.h b/nx-X11/lib/X11/lcUniConv/iso8859_1.h
deleted file mode 100644
index fc302bb44..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_1.h
+++ /dev/null
@@ -1,22 +0,0 @@
-
-/*
- * ISO-8859-1
- */
-
-static int
-iso8859_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static int
-iso8859_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (wc < 0x0100) {
- *r = wc;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_10.h b/nx-X11/lib/X11/lcUniConv/iso8859_10.h
deleted file mode 100644
index 508db5758..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_10.h
+++ /dev/null
@@ -1,87 +0,0 @@
-
-/*
- * ISO-8859-10
- */
-
-static const unsigned short iso8859_10_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7,
- 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a,
- /* 0xb0 */
- 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7,
- 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b,
- /* 0xc0 */
- 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
- 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf,
- /* 0xd0 */
- 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168,
- 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
- /* 0xe0 */
- 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
- 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169,
- 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138,
-};
-
-static int
-iso8859_10_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) iso8859_10_2uni[c-0xa0];
- return 1;
-}
-
-static const unsigned char iso8859_10_page00[224] = {
- 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
- 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */
- 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
- 0xd0, 0x00, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */
- 0xd8, 0x00, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xd8-0xdf */
- 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */
- 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */
- 0xf0, 0x00, 0x00, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */
- 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */
- /* 0x0100 */
- 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
- 0xa9, 0xb9, 0xa2, 0xb2, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */
- 0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0xa3, 0xb3, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0xa5, 0xb5, 0xa4, 0xb4, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xb6, /* 0x30-0x37 */
- 0xff, 0x00, 0x00, 0xa8, 0xb8, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0xaf, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, 0xab, 0xbb, /* 0x60-0x67 */
- 0xd7, 0xf7, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, 0x00, /* 0x78-0x7f */
-};
-
-static int
-iso8859_10_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0180)
- c = iso8859_10_page00[wc-0x00a0];
- else if (wc == 0x2015)
- c = 0xbd;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_11.h b/nx-X11/lib/X11/lcUniConv/iso8859_11.h
deleted file mode 100644
index 5458da514..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_11.h
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/*
- * ISO8859-11
- */
-
-static const unsigned short iso8859_11_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
- 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
- /* 0xb0 */
- 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
- 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
- /* 0xc0 */
- 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
- 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
- /* 0xd0 */
- 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
- 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f,
- /* 0xe0 */
- 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
- 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,
- /* 0xf0 */
- 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
- 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-};
-
-static int
-iso8859_11_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else if (c < 0xa0) {
- }
- else {
- unsigned short wc = iso8859_11_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char iso8859_11_page0e[96] = {
- 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
- 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
- 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
- 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
-};
-
-static int
-iso8859_11_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080 || wc == 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x0e00 && wc < 0x0e60)
- c = iso8859_11_page0e[wc-0x0e00];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_13.h b/nx-X11/lib/X11/lcUniConv/iso8859_13.h
deleted file mode 100644
index c041b154a..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_13.h
+++ /dev/null
@@ -1,90 +0,0 @@
-
-/*
- * ISO-8859-13
- */
-
-static const unsigned short iso8859_13_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7,
- 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7,
- 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6,
- /* 0xc0 */
- 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112,
- 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b,
- /* 0xd0 */
- 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7,
- 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df,
- /* 0xe0 */
- 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113,
- 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c,
- /* 0xf0 */
- 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7,
- 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019,
-};
-
-static int
-iso8859_13_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) iso8859_13_2uni[c-0xa0];
- return 1;
-}
-
-static const unsigned char iso8859_13_page00[224] = {
- 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */
- 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
- 0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */
- 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
- 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
- /* 0x0100 */
- 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */
- 0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */
- 0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */
-};
-static const unsigned char iso8859_13_page20[8] = {
- 0x00, 0xff, 0x00, 0x00, 0xb4, 0xa1, 0xa5, 0x00, /* 0x18-0x1f */
-};
-
-static int
-iso8859_13_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0180)
- c = iso8859_13_page00[wc-0x00a0];
- else if (wc >= 0x2018 && wc < 0x2020)
- c = iso8859_13_page20[wc-0x2018];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_14.h b/nx-X11/lib/X11/lcUniConv/iso8859_14.h
deleted file mode 100644
index f01581492..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_14.h
+++ /dev/null
@@ -1,108 +0,0 @@
-
-/*
- * ISO-8859-14
- */
-
-static const unsigned short iso8859_14_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7,
- 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178,
- /* 0xb0 */
- 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56,
- 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61,
- /* 0xc0 */
- 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
- 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
- /* 0xd0 */
- 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a,
- 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df,
- /* 0xe0 */
- 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
- 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b,
- 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff,
-};
-
-static int
-iso8859_14_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0xa0)
- *pwc = (ucs4_t) iso8859_14_2uni[c-0xa0];
- else
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static const unsigned char iso8859_14_page00[96] = {
- 0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0x00, 0x00, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
- 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
- 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */
-};
-static const unsigned char iso8859_14_page01_0[32] = {
- 0x00, 0x00, 0xa4, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
-};
-static const unsigned char iso8859_14_page01_1[16] = {
- 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, 0xde, 0xfe, /* 0x70-0x77 */
- 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
-};
-static const unsigned char iso8859_14_page1e_0[136] = {
- 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xb1, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0xb4, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xb9, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0xbb, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0x00, 0x00, /* 0x80-0x87 */
-};
-static const unsigned char iso8859_14_page1e_1[8] = {
- 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */
-};
-
-static int
-iso8859_14_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0100)
- c = iso8859_14_page00[wc-0x00a0];
- else if (wc >= 0x0108 && wc < 0x0128)
- c = iso8859_14_page01_0[wc-0x0108];
- else if (wc >= 0x0170 && wc < 0x0180)
- c = iso8859_14_page01_1[wc-0x0170];
- else if (wc >= 0x1e00 && wc < 0x1e88)
- c = iso8859_14_page1e_0[wc-0x1e00];
- else if (wc >= 0x1ef0 && wc < 0x1ef8)
- c = iso8859_14_page1e_1[wc-0x1ef0];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_15.h b/nx-X11/lib/X11/lcUniConv/iso8859_15.h
deleted file mode 100644
index 631d9b5e2..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_15.h
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*
- * ISO-8859-15
- */
-
-static const unsigned short iso8859_15_2uni[32] = {
- /* 0xa0 */
- 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7,
- 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7,
- 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf,
-};
-
-static int
-iso8859_15_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0xa0 && c < 0xc0)
- *pwc = (ucs4_t) iso8859_15_2uni[c-0xa0];
- else
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static const unsigned char iso8859_15_page00[32] = {
- 0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0xb9, 0xba, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0xb8-0xbf */
-};
-static const unsigned char iso8859_15_page01[48] = {
- 0x00, 0x00, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */
-};
-
-static int
-iso8859_15_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00c0)
- c = iso8859_15_page00[wc-0x00a0];
- else if (wc >= 0x00c0 && wc < 0x0100)
- c = wc;
- else if (wc >= 0x0150 && wc < 0x0180)
- c = iso8859_15_page01[wc-0x0150];
- else if (wc == 0x20ac)
- c = 0xa4;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_16.h b/nx-X11/lib/X11/lcUniConv/iso8859_16.h
deleted file mode 100644
index 99a54d98f..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_16.h
+++ /dev/null
@@ -1,97 +0,0 @@
-
-/*
- * ISO-8859-16
- */
-
-static const unsigned short iso8859_16_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7,
- 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7,
- 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c,
- /* 0xc0 */
- 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7,
- 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
- /* 0xd0 */
- 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a,
- 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df,
- /* 0xe0 */
- 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7,
- 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b,
- 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff,
-};
-
-static int
-iso8859_16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) iso8859_16_2uni[c-0xa0];
- return 1;
-}
-
-static const unsigned char iso8859_16_page00[224] = {
- 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0xab, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0xc6, 0xc7, /* 0xc0-0xc7 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
- 0x00, 0x00, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0x00, /* 0xd0-0xd7 */
- 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
- 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0xe6, 0xe7, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
- 0x00, 0x00, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0x00, /* 0xf0-0xf7 */
- 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */
- /* 0x0100 */
- 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xa2, 0xc5, 0xe5, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0xb2, 0xb9, 0x00, 0x00, /* 0x08-0x0f */
- 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0xd5, 0xf5, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0xbe, 0xac, 0xae, 0xaf, 0xbf, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */
-};
-static const unsigned char iso8859_16_page02[8] = {
- 0xaa, 0xba, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
-};
-static const unsigned char iso8859_16_page20[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa5, 0x00, /* 0x18-0x1f */
-};
-
-static int
-iso8859_16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0180)
- c = iso8859_16_page00[wc-0x00a0];
- else if (wc >= 0x0218 && wc < 0x0220)
- c = iso8859_16_page02[wc-0x0218];
- else if (wc >= 0x2018 && wc < 0x2020)
- c = iso8859_16_page20[wc-0x2018];
- else if (wc == 0x20ac)
- c = 0xa4;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_2.h b/nx-X11/lib/X11/lcUniConv/iso8859_2.h
deleted file mode 100644
index a63d00424..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_2.h
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/*
- * ISO-8859-2
- */
-
-static const unsigned short iso8859_2_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7,
- 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b,
- /* 0xb0 */
- 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7,
- 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c,
- /* 0xc0 */
- 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
- 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
- /* 0xd0 */
- 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
- 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
- /* 0xe0 */
- 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
- 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
- /* 0xf0 */
- 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
- 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9,
-};
-
-static int
-iso8859_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) iso8859_2_2uni[c-0xa0];
- return 1;
-}
-
-static const unsigned char iso8859_2_page00[224] = {
- 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
- 0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
- 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */
- 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
- 0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */
- 0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
- 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */
- 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
- /* 0x0100 */
- 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */
- 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0xc5, 0xe5, 0x00, 0x00, 0xa5, 0xb5, 0x00, /* 0x38-0x3f */
- 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */
- 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */
- 0xd8, 0xf8, 0xa6, 0xb6, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */
- 0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */
- 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x78-0x7f */
-};
-static const unsigned char iso8859_2_page02[32] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */
-};
-
-static int
-iso8859_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0180)
- c = iso8859_2_page00[wc-0x00a0];
- else if (wc >= 0x02c0 && wc < 0x02e0)
- c = iso8859_2_page02[wc-0x02c0];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_3.h b/nx-X11/lib/X11/lcUniConv/iso8859_3.h
deleted file mode 100644
index 2282f19cf..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_3.h
+++ /dev/null
@@ -1,99 +0,0 @@
-
-/*
- * ISO-8859-3
- */
-
-static const unsigned short iso8859_3_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0xfffd, 0x0124, 0x00a7,
- 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0xfffd, 0x017b,
- /* 0xb0 */
- 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7,
- 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0xfffd, 0x017c,
- /* 0xc0 */
- 0x00c0, 0x00c1, 0x00c2, 0xfffd, 0x00c4, 0x010a, 0x0108, 0x00c7,
- 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
- /* 0xd0 */
- 0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7,
- 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df,
- /* 0xe0 */
- 0x00e0, 0x00e1, 0x00e2, 0xfffd, 0x00e4, 0x010b, 0x0109, 0x00e7,
- 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7,
- 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9,
-};
-
-static int
-iso8859_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = iso8859_3_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char iso8859_3_page00[96] = {
- 0xa0, 0x00, 0x00, 0xa3, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
- 0xb0, 0x00, 0xb2, 0xb3, 0xb4, 0xb5, 0x00, 0xb7, /* 0xb0-0xb7 */
- 0xb8, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */
- 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
- 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
- 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
- 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
- 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */
- 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
-};
-static const unsigned char iso8859_3_page01[120] = {
- 0xc6, 0xe6, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf8, 0xab, 0xbb, /* 0x18-0x1f */
- 0xd5, 0xf5, 0x00, 0x00, 0xa6, 0xb6, 0xa1, 0xb1, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0xa9, 0xb9, 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, 0xaa, 0xba, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0xdd, 0xfd, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, /* 0x78-0x7f */
-};
-static const unsigned char iso8859_3_page02[8] = {
- 0xa2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
-};
-
-static int
-iso8859_3_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0100)
- c = iso8859_3_page00[wc-0x00a0];
- else if (wc >= 0x0108 && wc < 0x0180)
- c = iso8859_3_page01[wc-0x0108];
- else if (wc >= 0x02d8 && wc < 0x02e0)
- c = iso8859_3_page02[wc-0x02d8];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_4.h b/nx-X11/lib/X11/lcUniConv/iso8859_4.h
deleted file mode 100644
index 878a7e44a..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_4.h
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/*
- * ISO-8859-4
- */
-
-static const unsigned short iso8859_4_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7,
- 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af,
- /* 0xb0 */
- 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7,
- 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b,
- /* 0xc0 */
- 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
- 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a,
- /* 0xd0 */
- 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
- 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df,
- /* 0xe0 */
- 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
- 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b,
- /* 0xf0 */
- 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
- 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9,
-};
-
-static int
-iso8859_4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) iso8859_4_2uni[c-0xa0];
- return 1;
-}
-
-static const unsigned char iso8859_4_page00[224] = {
- 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0xaf, /* 0xa8-0xaf */
- 0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
- 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */
- 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
- 0xd8, 0x00, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
- 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */
- 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0x00, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
- 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */
- /* 0x0100 */
- 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */
- 0xd0, 0xf0, 0xaa, 0xba, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */
- 0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0xab, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0xa5, 0xb5, 0xcf, 0xef, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0xf3, /* 0x30-0x37 */
- 0xa2, 0x00, 0x00, 0xa6, 0xb6, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0xbd, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xb3, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, /* 0x60-0x67 */
- 0xdd, 0xfd, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */
-};
-static const unsigned char iso8859_4_page02[32] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0xff, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
-};
-
-static int
-iso8859_4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0180)
- c = iso8859_4_page00[wc-0x00a0];
- else if (wc >= 0x02c0 && wc < 0x02e0)
- c = iso8859_4_page02[wc-0x02c0];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_5.h b/nx-X11/lib/X11/lcUniConv/iso8859_5.h
deleted file mode 100644
index cdd6c45db..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_5.h
+++ /dev/null
@@ -1,76 +0,0 @@
-
-/*
- * ISO-8859-5
- */
-
-static const unsigned short iso8859_5_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
- 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,
- /* 0xb0 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
- 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
- /* 0xc0 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
- 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
- /* 0xd0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
- 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
- /* 0xe0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
- 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
- /* 0xf0 */
- 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
- 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f,
-};
-
-static int
-iso8859_5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) iso8859_5_2uni[c-0xa0];
- return 1;
-}
-
-static const unsigned char iso8859_5_page00[16] = {
- 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
-};
-static const unsigned char iso8859_5_page04[96] = {
- 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
- 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
- 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
- 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */
-};
-
-static int
-iso8859_5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00b0)
- c = iso8859_5_page00[wc-0x00a0];
- else if (wc >= 0x0400 && wc < 0x0460)
- c = iso8859_5_page04[wc-0x0400];
- else if (wc == 0x2116)
- c = 0xf0;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_6.h b/nx-X11/lib/X11/lcUniConv/iso8859_6.h
deleted file mode 100644
index 4c80a64f5..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_6.h
+++ /dev/null
@@ -1,79 +0,0 @@
-
-/*
- * ISO-8859-6
- */
-
-static const unsigned short iso8859_6_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0x00ad, 0xfffd, 0xfffd,
- /* 0xb0 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f,
- /* 0xc0 */
- 0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
- 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
- /* 0xd0 */
- 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
- 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xe0 */
- 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
- 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f,
- /* 0xf0 */
- 0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-};
-
-static int
-iso8859_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = iso8859_6_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char iso8859_6_page00[16] = {
- 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
-};
-static const unsigned char iso8859_6_page06[80] = {
- 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */
- 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
- 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
- 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
-};
-
-static int
-iso8859_6_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00b0)
- c = iso8859_6_page00[wc-0x00a0];
- else if (wc >= 0x0608 && wc < 0x0658)
- c = iso8859_6_page06[wc-0x0608];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_7.h b/nx-X11/lib/X11/lcUniConv/iso8859_7.h
deleted file mode 100644
index 9b500e4b3..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_7.h
+++ /dev/null
@@ -1,87 +0,0 @@
-
-/*
- * ISO-8859-7
- */
-
-static const unsigned short iso8859_7_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x2018, 0x2019, 0x00a3, 0xfffd, 0xfffd, 0x00a6, 0x00a7,
- 0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7,
- 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,
- /* 0xc0 */
- 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
- 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
- /* 0xd0 */
- 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,
- 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,
- /* 0xe0 */
- 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
- 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
- /* 0xf0 */
- 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
- 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd,
-};
-
-static int
-iso8859_7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = iso8859_7_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char iso8859_7_page00[32] = {
- 0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */
-};
-static const unsigned char iso8859_7_page03[80] = {
- 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0x00, /* 0x80-0x87 */
- 0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */
- 0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */
-};
-static const unsigned char iso8859_7_page20[16] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, /* 0x10-0x17 */
- 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
-};
-
-static int
-iso8859_7_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00c0)
- c = iso8859_7_page00[wc-0x00a0];
- else if (wc >= 0x0380 && wc < 0x03d0)
- c = iso8859_7_page03[wc-0x0380];
- else if (wc >= 0x2010 && wc < 0x2020)
- c = iso8859_7_page20[wc-0x2010];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_8.h b/nx-X11/lib/X11/lcUniConv/iso8859_8.h
deleted file mode 100644
index 152dc3cae..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_8.h
+++ /dev/null
@@ -1,88 +0,0 @@
-
-/*
- * ISO-8859-8
- */
-
-static const unsigned short iso8859_8_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
- 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
- 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd,
- /* 0xc0 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0xd0 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017,
- /* 0xe0 */
- 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
- 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
- /* 0xf0 */
- 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
- 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd,
-};
-
-static int
-iso8859_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0xa0) {
- unsigned short wc = iso8859_8_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- else {
- *pwc = (ucs4_t) c;
- return 1;
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char iso8859_8_page00[88] = {
- 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */
-};
-static const unsigned char iso8859_8_page05[32] = {
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */
- 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
-};
-static const unsigned char iso8859_8_page20[16] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x10-0x17 */
-};
-
-static int
-iso8859_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00f8)
- c = iso8859_8_page00[wc-0x00a0];
- else if (wc >= 0x05d0 && wc < 0x05f0)
- c = iso8859_8_page05[wc-0x05d0];
- else if (wc >= 0x2008 && wc < 0x2018)
- c = iso8859_8_page20[wc-0x2008];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_9.h b/nx-X11/lib/X11/lcUniConv/iso8859_9.h
deleted file mode 100644
index b94ac9de6..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_9.h
+++ /dev/null
@@ -1,66 +0,0 @@
-
-/*
- * ISO-8859-9
- */
-
-static const unsigned short iso8859_9_2uni[48] = {
- /* 0xd0 */
- 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
- 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
- /* 0xe0 */
- 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
- 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
- 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff,
-};
-
-static int
-iso8859_9_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0xd0)
- *pwc = (ucs4_t) iso8859_9_2uni[c-0xd0];
- else
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static const unsigned char iso8859_9_page00[48] = {
- 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
- 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */
-};
-static const unsigned char iso8859_9_page01[72] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */
-};
-
-static int
-iso8859_9_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00d0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00d0 && wc < 0x0100)
- c = iso8859_9_page00[wc-0x00d0];
- else if (wc >= 0x0118 && wc < 0x0160)
- c = iso8859_9_page01[wc-0x0118];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/iso8859_9e.h b/nx-X11/lib/X11/lcUniConv/iso8859_9e.h
deleted file mode 100644
index cbab5816c..000000000
--- a/nx-X11/lib/X11/lcUniConv/iso8859_9e.h
+++ /dev/null
@@ -1,102 +0,0 @@
-
-/*
- * ISO-8859-9E
- */
-
-static const unsigned short iso8859_9e_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x017d, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x012c, 0x00a7,
- 0x016c, 0x00a9, 0x01e6, 0x00ab, 0x014a, 0x00ad, 0x00ae, 0x01d1,
- /* 0xb0 */
- 0x00b0, 0x017e, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x012d, 0x00b7,
- 0x016d, 0x00b9, 0x01e7, 0x00bb, 0x014b, 0x00bd, 0x0178, 0x01d2,
- /* 0xc0 */
- 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x018f, 0x00c7,
- 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
- /* 0xd0 */
- 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00dd,
- 0x019f, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
- /* 0xe0 */
- 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x0259, 0x00e7,
- 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
- /* 0xf0 */
- 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00fd,
- 0x0275, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff,
-};
-
-static int
-iso8859_9e_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c >= 0xa0)
- *pwc = (ucs4_t) iso8859_9e_2uni[c-0xa0];
- else
- *pwc = (ucs4_t) c;
- return 1;
-}
-
-static const unsigned char iso8859_9e_page00[96] = {
- 0xa0, 0x00, 0xa2, 0xa3, 0x00, 0xa5, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0xab, 0x00, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
- 0xb0, 0x00, 0xb2, 0xb3, 0xb4, 0xb5, 0x00, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0xb9, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x00, 0xc7, /* 0xc0-0xc7 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
- 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */
- 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0xd7, 0x00, 0xdf, /* 0xd8-0xdf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0x00, 0xe7, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
- 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */
- 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0xf7, 0x00, 0xff, /* 0xf8-0xff */
-};
-static const unsigned char iso8859_9e_page01[136] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0xa6, 0xb6, 0x00, 0x00, /* 0x28-0x2f */
- 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb8, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0xbe, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xb1, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, /* 0x88-0x8f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, /* 0x98-0x9f */
-};
-static const unsigned char iso8859_9e_page01_d[24] = {
- 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0xe0-0xe7 */
-};
-
-static int
-iso8859_9e_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x0100)
- c = iso8859_9e_page00[wc-0x00a0];
- else if (wc >= 0x0118 && wc < 0x01a0)
- c = iso8859_9e_page01[wc-0x0118];
- else if (wc >= 0x01d0 && wc < 0x01e8)
- c = iso8859_9e_page01_d[wc-0x01d0];
- else if (wc == 0x0259)
- c = 0xe6;
- else if (wc == 0x0275)
- c = 0xf8;
- else if (wc == 0x20ac)
- c = 0xa4;
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/jisx0201.h b/nx-X11/lib/X11/lcUniConv/jisx0201.h
deleted file mode 100644
index e4af9666f..000000000
--- a/nx-X11/lib/X11/lcUniConv/jisx0201.h
+++ /dev/null
@@ -1,47 +0,0 @@
-
-/*
- * JISX0201.1976-0
- */
-
-static int
-jisx0201_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80) {
- if (c == 0x5c)
- *pwc = (ucs4_t) 0x00a5;
- else if (c == 0x7e)
- *pwc = (ucs4_t) 0x203e;
- else
- *pwc = (ucs4_t) c;
- return 1;
- } else {
- if (c >= 0xa1 && c < 0xe0) {
- *pwc = (ucs4_t) c + 0xfec0;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static int
-jisx0201_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) {
- *r = wc;
- return 1;
- }
- if (wc == 0x00a5) {
- *r = 0x5c;
- return 1;
- }
- if (wc == 0x203e) {
- *r = 0x7e;
- return 1;
- }
- if (wc >= 0xff61 && wc < 0xffa0) {
- *r = wc - 0xfec0;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/jisx0208.h b/nx-X11/lib/X11/lcUniConv/jisx0208.h
deleted file mode 100644
index 5888f6f21..000000000
--- a/nx-X11/lib/X11/lcUniConv/jisx0208.h
+++ /dev/null
@@ -1,2396 +0,0 @@
-
-/*
- * JISX0208.1990-0
- */
-
-static const unsigned short jisx0208_2uni_page21[690] = {
- /* 0x21 */
- 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b,
- 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e,
- 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd,
- 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0xff3c,
- 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c,
- 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b,
- 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e,
- 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7,
- 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234,
- 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04,
- 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7,
- 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7,
- /* 0x22 */
- 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b,
- 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a,
- 0x2229, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207,
- 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235,
- 0x222b, 0x222c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021,
- 0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25ef,
- /* 0x23 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff10,
- 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
- 0xff19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
- 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
- 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
- 0xff39, 0xff3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
- 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
- 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
- 0xff59, 0xff5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x24 */
- 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
- 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
- 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
- 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
- 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
- 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
- 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
- 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
- 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
- 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
- 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x25 */
- 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
- 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
- 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
- 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
- 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
- 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
- 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
- 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
- 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
- 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
- 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x26 */
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
- 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
- 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
- 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
- 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x27 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
- 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
- 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
- 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
- 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
- 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
- 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x28 */
- 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c,
- 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
- 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f,
- 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542,
-};
-static const unsigned short jisx0208_2uni_page30[6398] = {
- /* 0x30 */
- 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6,
- 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed,
- 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b,
- 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f,
- 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d,
- 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937,
- 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905,
- 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e,
- 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df,
- 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32,
- 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0,
- 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d,
- /* 0x31 */
- 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf,
- 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893,
- 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5,
- 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2,
- 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3,
- 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834,
- 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5,
- 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712,
- 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf,
- 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276,
- 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a,
- 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc,
- /* 0x32 */
- 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956,
- 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b,
- 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069,
- 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d,
- 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6,
- 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b,
- 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304,
- 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6,
- 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b,
- 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb,
- 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a,
- 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539,
- /* 0x33 */
- 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75,
- 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916,
- 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb,
- 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3,
- 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1,
- 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a,
- 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66,
- 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f,
- 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b,
- 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6,
- 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc,
- 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431,
- /* 0x34 */
- 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2,
- 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c,
- 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be,
- 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57,
- 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff,
- 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e,
- 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2,
- 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc,
- 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811,
- 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa,
- 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee,
- 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4,
- /* 0x35 */
- 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63,
- 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc,
- 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993,
- 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947,
- 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409,
- 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd,
- 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7,
- 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d,
- 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08,
- 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8,
- 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8,
- 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac,
- /* 0x36 */
- 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354,
- 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a,
- 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2,
- 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1,
- 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d,
- 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4,
- 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981,
- 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39,
- 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a,
- 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2,
- 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047,
- 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48,
- /* 0x37 */
- 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688,
- 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab,
- 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2,
- 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951,
- 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a,
- 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c,
- 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63,
- 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287,
- 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a,
- 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039,
- 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805,
- 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372,
- /* 0x38 */
- 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79,
- 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375,
- 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b,
- 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00,
- 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1,
- 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56,
- 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87,
- 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d,
- 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7,
- 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e,
- 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c,
- 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411,
- /* 0x39 */
- 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f,
- 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18,
- 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643,
- 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69,
- 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05,
- 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154,
- 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc,
- 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805,
- 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5,
- 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a,
- 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170,
- 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc,
- /* 0x3a */
- 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068,
- 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a,
- 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6,
- 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df,
- 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9,
- 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73,
- 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e,
- 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750,
- 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4,
- 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b,
- 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f,
- 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237,
- /* 0x3b */
- 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1,
- 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09,
- 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6,
- 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178,
- 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f,
- 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9,
- 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307,
- 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b,
- 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2,
- 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee,
- 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d,
- 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642,
- /* 0x3c */
- 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a,
- 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f,
- 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1,
- 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be,
- 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61,
- 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c,
- 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7,
- 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c,
- 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6,
- 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b,
- 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388,
- 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468,
- /* 0x3d */
- 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0,
- 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846,
- 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6,
- 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4,
- 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919,
- 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa,
- 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c,
- 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96,
- 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6,
- 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72,
- 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f,
- 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f,
- /* 0x3e */
- 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617,
- 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a,
- 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c,
- 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f,
- 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167,
- 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11,
- 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3,
- 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266,
- 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57,
- 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5,
- 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8,
- 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe,
- /* 0x3f */
- 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6,
- 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507,
- 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b,
- 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e,
- 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab,
- 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875,
- 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663,
- 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017,
- 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b,
- 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e,
- 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e,
- 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe,
- /* 0x40 */
- 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4,
- 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574,
- 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f,
- 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93,
- 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106,
- 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3,
- 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f,
- 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83,
- 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148,
- 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247,
- 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c,
- 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda,
- /* 0x41 */
- 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce,
- 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d,
- 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce,
- 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9,
- 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44,
- 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc,
- 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64,
- 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd,
- 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89,
- 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349,
- 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d,
- 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e,
- /* 0x42 */
- 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373,
- 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e,
- 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58,
- 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a,
- 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1,
- 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe,
- 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff,
- 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000,
- 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c,
- 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85,
- 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438,
- 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea,
- /* 0x43 */
- 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea,
- 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39,
- 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1,
- 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6,
- 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696,
- 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b,
- 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718,
- 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010,
- 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99,
- 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b,
- 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457,
- 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5,
- /* 0x44 */
- 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2,
- 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074,
- 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a,
- 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88,
- 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc,
- 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb,
- 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f,
- 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3,
- 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448,
- 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c,
- 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b,
- 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013,
- /* 0x45 */
- 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575,
- 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9,
- 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55,
- 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9,
- 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835,
- 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b,
- 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa,
- 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd,
- 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b,
- 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7,
- 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977,
- 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230,
- /* 0x46 */
- 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003,
- 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5,
- 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5,
- 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97,
- 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec,
- 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6,
- 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566,
- 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948,
- 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a,
- 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf,
- 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1,
- 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165,
- /* 0x47 */
- 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1,
- 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5,
- 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc,
- 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2,
- 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2,
- 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3,
- 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc,
- 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973,
- 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f,
- 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf,
- 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd,
- 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6,
- /* 0x48 */
- 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61,
- 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197,
- 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a,
- 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db,
- 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af,
- 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6,
- 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0,
- 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c,
- 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2,
- 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9,
- 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e,
- 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e,
- /* 0x49 */
- 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d,
- 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867,
- 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19,
- 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf,
- 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed,
- 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3,
- 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66,
- 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7,
- 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c,
- 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66,
- 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a,
- 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d,
- /* 0x4a */
- 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8,
- 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4,
- 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587,
- 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a,
- 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb,
- 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f,
- 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf,
- 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703,
- 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893,
- 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8,
- 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29,
- 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b,
- /* 0x4b */
- 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c,
- 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd,
- 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8,
- 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2,
- 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e,
- 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2,
- 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86,
- 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469,
- 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce,
- 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52,
- 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4,
- 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80,
- /* 0x4c */
- 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac,
- 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d,
- 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727,
- 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e,
- 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d,
- 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302,
- 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499,
- 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24,
- 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301,
- 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2,
- 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3,
- 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652,
- /* 0x4d */
- 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5,
- 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c,
- 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091,
- 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89,
- 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da,
- 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194,
- 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21,
- 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83,
- 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765,
- 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71,
- 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229,
- 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483,
- /* 0x4e */
- 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387,
- 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409,
- 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e,
- 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee,
- 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7,
- 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1,
- 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a,
- 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e,
- 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2,
- 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62,
- 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b,
- 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f,
- /* 0x4f */
- 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2,
- 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c,
- 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e,
- 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6,
- 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0,
- 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900,
- 0x6e7e, 0x7897, 0x8155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x50 */
- 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f,
- 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212,
- 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3,
- 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede,
- 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d,
- 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69,
- 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf,
- 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5,
- 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6,
- 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043,
- 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c,
- 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2,
- /* 0x51 */
- 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed,
- 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116,
- 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b,
- 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169,
- 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f,
- 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9,
- 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd,
- 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0,
- 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a,
- 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e,
- 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d,
- 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8,
- /* 0x52 */
- 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7,
- 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8,
- 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315,
- 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346,
- 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e,
- 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5,
- 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc,
- 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440,
- 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e,
- 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492,
- 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2,
- 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8,
- /* 0x53 */
- 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6,
- 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539,
- 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557,
- 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f,
- 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9,
- 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4,
- 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9,
- 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b,
- 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0,
- 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc,
- 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7,
- 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709,
- /* 0x54 */
- 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c,
- 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769,
- 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3,
- 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3,
- 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821,
- 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885,
- 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae,
- 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc,
- 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd,
- 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d,
- 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a,
- 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969,
- /* 0x55 */
- 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6,
- 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11,
- 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36,
- 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd,
- 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c,
- 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43,
- 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69,
- 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83,
- 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4,
- 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3,
- 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28,
- 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53,
- /* 0x56 */
- 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79,
- 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc,
- 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa,
- 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f,
- 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c,
- 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84,
- 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7,
- 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb,
- 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36,
- 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f,
- 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f,
- 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf,
- /* 0x57 */
- 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8,
- 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe,
- 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29,
- 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51,
- 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83,
- 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99,
- 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4,
- 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019,
- 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026,
- 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a,
- 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b,
- 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a,
- /* 0x58 */
- 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1,
- 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5,
- 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4,
- 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147,
- 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134,
- 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a,
- 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153,
- 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a,
- 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8,
- 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3,
- 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200,
- 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b,
- /* 0x59 */
- 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241,
- 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282,
- 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294,
- 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8,
- 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c,
- 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350,
- 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab,
- 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369,
- 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6,
- 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d,
- 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a,
- 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc,
- /* 0x5a */
- 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1,
- 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c,
- 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c,
- 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536,
- 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e,
- 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f,
- 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2,
- 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603,
- 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644,
- 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f,
- 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698,
- 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc,
- /* 0x5b */
- 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9,
- 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727,
- 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746,
- 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9,
- 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7,
- 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de,
- 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c,
- 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3,
- 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad,
- 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5,
- 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908,
- 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd,
- /* 0x5c */
- 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3,
- 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923,
- 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954,
- 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961,
- 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf,
- 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb,
- 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4,
- 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2,
- 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a,
- 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36,
- 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22,
- 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3,
- /* 0x5d */
- 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac,
- 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05,
- 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37,
- 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59,
- 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80,
- 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa,
- 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6,
- 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x9ebe,
- 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55,
- 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e,
- 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd,
- 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe,
- /* 0x5e */
- 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36,
- 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c,
- 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95,
- 0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6,
- 0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5,
- 0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e,
- 0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b,
- 0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff,
- 0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3,
- 0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5,
- 0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe,
- 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc,
- /* 0x5f */
- 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80,
- 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e,
- 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9,
- 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1,
- 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f,
- 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030,
- 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1,
- 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x70d9,
- 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166,
- 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195,
- 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4,
- 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc,
- /* 0x60 */
- 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c,
- 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b,
- 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296,
- 0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce,
- 0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317,
- 0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325,
- 0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370,
- 0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb,
- 0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425,
- 0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441,
- 0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b,
- 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1,
- /* 0x61 */
- 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1,
- 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d,
- 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d,
- 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567,
- 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a,
- 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2,
- 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd,
- 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x75fc,
- 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609,
- 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630,
- 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662,
- 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670,
- /* 0x62 */
- 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b,
- 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8,
- 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1,
- 0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704,
- 0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738,
- 0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e,
- 0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6,
- 0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7,
- 0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926,
- 0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a,
- 0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb,
- 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec,
- /* 0x63 */
- 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919,
- 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955,
- 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa,
- 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec,
- 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f,
- 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49,
- 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88,
- 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x7ab6,
- 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf,
- 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6,
- 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18,
- 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50,
- /* 0x64 */
- 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65,
- 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98,
- 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d,
- 0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd,
- 0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07,
- 0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27,
- 0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54,
- 0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65,
- 0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab,
- 0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd,
- 0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b,
- 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06,
- /* 0x65 */
- 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32,
- 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68,
- 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d,
- 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab,
- 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8,
- 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a,
- 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22,
- 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x7e32,
- 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79,
- 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae,
- 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94,
- 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a,
- /* 0x66 */
- 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54,
- 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82,
- 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d,
- 0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8,
- 0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6,
- 0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012,
- 0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a,
- 0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073,
- 0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086,
- 0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db,
- 0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef,
- 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b,
- /* 0x67 */
- 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e,
- 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182,
- 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0,
- 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9,
- 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0,
- 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207,
- 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233,
- 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x8262,
- 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e,
- 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3,
- 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb,
- 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9,
- /* 0x68 */
- 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350,
- 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa,
- 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c,
- 0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413,
- 0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7,
- 0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438,
- 0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477,
- 0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f,
- 0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9,
- 0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1,
- 0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515,
- 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548,
- /* 0x69 */
- 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591,
- 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c,
- 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0,
- 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b,
- 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d,
- 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9,
- 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0,
- 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x86df,
- 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb,
- 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737,
- 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c,
- 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759,
- /* 0x6a */
- 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af,
- 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3,
- 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d,
- 0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815,
- 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844,
- 0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e,
- 0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892,
- 0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1,
- 0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902,
- 0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913,
- 0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b,
- 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e,
- /* 0x6b */
- 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e,
- 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6,
- 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da,
- 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10,
- 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52,
- 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82,
- 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3,
- 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x8ae4,
- 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c,
- 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33,
- 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f,
- 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b,
- /* 0x6c */
- 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e,
- 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f,
- 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78,
- 0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94,
- 0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3,
- 0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd,
- 0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d,
- 0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d,
- 0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf,
- 0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf,
- 0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10,
- 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a,
- /* 0x6d */
- 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60,
- 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87,
- 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99,
- 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5,
- 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe,
- 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f,
- 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42,
- 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x8f62,
- 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7,
- 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005,
- 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016,
- 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8,
- /* 0x6e */
- 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056,
- 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082,
- 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af,
- 0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112,
- 0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165,
- 0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab,
- 0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9,
- 0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5,
- 0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e,
- 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b,
- 0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9,
- 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e,
- /* 0x6f */
- 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c,
- 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394,
- 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd,
- 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407,
- 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452,
- 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470,
- 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f,
- 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x95a0,
- 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca,
- 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc,
- 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642,
- 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e,
- /* 0x70 */
- 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695,
- 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6,
- 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc,
- 0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e,
- 0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739,
- 0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c,
- 0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779,
- 0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790,
- 0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6,
- 0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6,
- 0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d,
- 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870,
- /* 0x71 */
- 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4,
- 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914,
- 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e,
- 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951,
- 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae,
- 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee,
- 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2,
- 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x9a3e,
- 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64,
- 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf,
- 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6,
- 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7,
- /* 0x72 */
- 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25,
- 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44,
- 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93,
- 0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4,
- 0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3,
- 0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0,
- 0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12,
- 0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30,
- 0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76,
- 0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03,
- 0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15,
- 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48,
- /* 0x73 */
- 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89,
- 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2,
- 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2,
- 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a,
- 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b,
- 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8,
- 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4,
- 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x9ef4,
- 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08,
- 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54,
- 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a,
- 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0,
- /* 0x74 */
- 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199,
-};
-
-static int
-jisx0208_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = (s[0] & 0x7F);
- if ((c1 >= 0x21 && c1 <= 0x28) || (c1 >= 0x30 && c1 <= 0x74)) {
- if (n >= 2) {
- unsigned char c2 = (s[1] & 0x7F);
- if (c2 >= 0x21 && c2 < 0x7f) {
- unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
- unsigned short wc = 0xfffd;
- if (i < 1410) {
- if (i < 690)
- wc = jisx0208_2uni_page21[i];
- } else {
- if (i < 7808)
- wc = jisx0208_2uni_page30[i-1410];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short jisx0208_2charset[6879] = {
- 0x2140, 0x2171, 0x2172, 0x2178, 0x212f, 0x224c, 0x216b, 0x215e,
- 0x212d, 0x2279, 0x215f, 0x2160, 0x2621, 0x2622, 0x2623, 0x2624,
- 0x2625, 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c,
- 0x262d, 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634,
- 0x2635, 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644,
- 0x2645, 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c,
- 0x264d, 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654,
- 0x2655, 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723,
- 0x2724, 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c,
- 0x272d, 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734,
- 0x2735, 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c,
- 0x273d, 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753,
- 0x2754, 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c,
- 0x275d, 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764,
- 0x2765, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
- 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x213e, 0x213d,
- 0x2142, 0x2146, 0x2147, 0x2148, 0x2149, 0x2277, 0x2278, 0x2145,
- 0x2144, 0x2273, 0x216c, 0x216d, 0x2228, 0x216e, 0x2272, 0x222b,
- 0x222c, 0x222a, 0x222d, 0x224d, 0x224e, 0x224f, 0x225f, 0x2250,
- 0x2260, 0x223a, 0x223b, 0x215d, 0x2265, 0x2267, 0x2167, 0x225c,
- 0x224a, 0x224b, 0x2241, 0x2240, 0x2269, 0x226a, 0x2168, 0x2268,
- 0x2266, 0x2262, 0x2162, 0x2261, 0x2165, 0x2166, 0x2263, 0x2264,
- 0x223e, 0x223f, 0x223c, 0x223d, 0x225d, 0x225e, 0x2821, 0x282c,
- 0x2822, 0x282d, 0x2823, 0x282e, 0x2824, 0x282f, 0x2826, 0x2831,
- 0x2825, 0x2830, 0x2827, 0x283c, 0x2837, 0x2832, 0x2829, 0x283e,
- 0x2839, 0x2834, 0x2828, 0x2838, 0x283d, 0x2833, 0x282a, 0x283a,
- 0x283f, 0x2835, 0x282b, 0x283b, 0x2840, 0x2836, 0x2223, 0x2222,
- 0x2225, 0x2224, 0x2227, 0x2226, 0x2221, 0x217e, 0x217b, 0x217d,
- 0x217c, 0x227e, 0x217a, 0x2179, 0x216a, 0x2169, 0x2276, 0x2275,
- 0x2274, 0x2121, 0x2122, 0x2123, 0x2137, 0x2139, 0x213a, 0x213b,
- 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159,
- 0x215a, 0x215b, 0x2229, 0x222e, 0x214c, 0x214d, 0x2141, 0x2421,
- 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429,
- 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431,
- 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439,
- 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441,
- 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449,
- 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451,
- 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459,
- 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461,
- 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
- 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471,
- 0x2472, 0x2473, 0x212b, 0x212c, 0x2135, 0x2136, 0x2521, 0x2522,
- 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a,
- 0x252b, 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532,
- 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a,
- 0x253b, 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542,
- 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a,
- 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, 0x2550, 0x2551, 0x2552,
- 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a,
- 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562,
- 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a,
- 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572,
- 0x2573, 0x2574, 0x2575, 0x2576, 0x2126, 0x213c, 0x2133, 0x2134,
- 0x306c, 0x437a, 0x3c37, 0x4b7c, 0x3e66, 0x3b30, 0x3e65, 0x323c,
- 0x4954, 0x4d3f, 0x5022, 0x312f, 0x336e, 0x5023, 0x4024, 0x5242,
- 0x3556, 0x4a3a, 0x3e67, 0x4e3e, 0x4a42, 0x5024, 0x4366, 0x5025,
- 0x367a, 0x5026, 0x345d, 0x4330, 0x3c67, 0x5027, 0x5028, 0x5029,
- 0x4735, 0x3557, 0x4737, 0x4663, 0x3843, 0x4b33, 0x6949, 0x502a,
- 0x3e68, 0x502b, 0x3235, 0x3665, 0x3870, 0x4c69, 0x5626, 0x4d70,
- 0x467d, 0x3425, 0x3535, 0x502c, 0x502d, 0x4e3b, 0x4d3d, 0x4168,
- 0x502f, 0x3b76, 0x4673, 0x5032, 0x313e, 0x385f, 0x385e, 0x3066,
- 0x4f4b, 0x4f4a, 0x3a33, 0x3021, 0x5033, 0x5034, 0x5035, 0x4b34,
- 0x5036, 0x3872, 0x3067, 0x4b72, 0x357c, 0x357d, 0x357e, 0x4462,
- 0x4e3c, 0x5037, 0x5038, 0x5039, 0x3f4d, 0x3d3a, 0x3f4e, 0x503e,
- 0x503c, 0x503d, 0x3558, 0x3a23, 0x3270, 0x503b, 0x503a, 0x4a29,
- 0x3b46, 0x3b45, 0x423e, 0x503f, 0x4955, 0x4067, 0x2138, 0x5040,
- 0x5042, 0x4265, 0x4e61, 0x304a, 0x5041, 0x323e, 0x3644, 0x4367,
- 0x376f, 0x5043, 0x4724, 0x346b, 0x5044, 0x304b, 0x3860, 0x346c,
- 0x497a, 0x4832, 0x3559, 0x3271, 0x5067, 0x4541, 0x476c, 0x5046,
- 0x483c, 0x4e62, 0x3f2d, 0x3b47, 0x3b77, 0x3240, 0x4451, 0x4322,
- 0x504a, 0x304c, 0x4463, 0x3d3b, 0x3a34, 0x4d24, 0x424e, 0x323f,
- 0x5049, 0x4d3e, 0x5045, 0x5047, 0x3a6e, 0x5048, 0x5524, 0x5050,
- 0x5053, 0x5051, 0x3242, 0x4a3b, 0x504b, 0x504f, 0x3873, 0x3b48,
- 0x3426, 0x5054, 0x504c, 0x4e63, 0x3b78, 0x504d, 0x5052, 0x5055,
- 0x504e, 0x3621, 0x304d, 0x3622, 0x3241, 0x5525, 0x4b79, 0x496e,
- 0x3874, 0x3f2f, 0x4e37, 0x4a58, 0x3738, 0x4225, 0x3264, 0x3d53,
- 0x5059, 0x505e, 0x505c, 0x5057, 0x422f, 0x505a, 0x505d, 0x505b,
- 0x4a5d, 0x5058, 0x3f2e, 0x4b73, 0x505f, 0x5060, 0x3d24, 0x506d,
- 0x4750, 0x4936, 0x5068, 0x4a70, 0x3236, 0x506c, 0x5066, 0x506f,
- 0x4152, 0x3844, 0x475c, 0x6047, 0x506e, 0x455d, 0x5063, 0x3876,
- 0x3875, 0x5061, 0x3c5a, 0x5069, 0x4a6f, 0x434d, 0x5065, 0x3771,
- 0x5062, 0x506a, 0x5064, 0x4e51, 0x506b, 0x4f41, 0x3666, 0x3770,
- 0x5070, 0x5071, 0x5075, 0x304e, 0x4a50, 0x5074, 0x5073, 0x5077,
- 0x5076, 0x4464, 0x3772, 0x5078, 0x3c45, 0x4226, 0x4465, 0x3676,
- 0x5079, 0x3536, 0x507a, 0x507c, 0x4b35, 0x3766, 0x3b31, 0x4877,
- 0x507b, 0x3a45, 0x4d43, 0x507e, 0x5123, 0x507d, 0x3a44, 0x3d7d,
- 0x3739, 0x5124, 0x364f, 0x5121, 0x5122, 0x462f, 0x417c, 0x3623,
- 0x4b4d, 0x5125, 0x4e3d, 0x5126, 0x5129, 0x5127, 0x414e, 0x5128,
- 0x512a, 0x512c, 0x512b, 0x4a48, 0x3537, 0x512e, 0x512f, 0x322f,
- 0x512d, 0x3c74, 0x5132, 0x5131, 0x5130, 0x5056, 0x5133, 0x3d7e,
- 0x5134, 0x4d25, 0x4c59, 0x5136, 0x5135, 0x5138, 0x5137, 0x5139,
- 0x513a, 0x3074, 0x3835, 0x373b, 0x3d3c, 0x437b, 0x3624, 0x4068,
- 0x3877, 0x396e, 0x513c, 0x4c48, 0x4546, 0x3b79, 0x513b, 0x513d,
- 0x455e, 0x3375, 0x513e, 0x467e, 0x4134, 0x5140, 0x5141, 0x482c,
- 0x3878, 0x4f3b, 0x5142, 0x3626, 0x4a3c, 0x4236, 0x3671, 0x4535,
- 0x3773, 0x5143, 0x5144, 0x4662, 0x315f, 0x5147, 0x3a7d, 0x5146,
- 0x3a46, 0x5148, 0x666e, 0x5149, 0x4b41, 0x514a, 0x514b, 0x514c,
- 0x3e69, 0x3c4c, 0x3427, 0x514f, 0x514d, 0x4c3d, 0x514e, 0x495a,
- 0x5150, 0x5151, 0x5152, 0x455f, 0x5156, 0x5154, 0x5155, 0x5153,
- 0x3a63, 0x5157, 0x4c6a, 0x4e64, 0x5158, 0x4028, 0x5159, 0x3d5a,
- 0x515a, 0x437c, 0x4e3f, 0x4560, 0x5245, 0x515b, 0x7425, 0x3645,
- 0x515c, 0x4b5e, 0x3d68, 0x427c, 0x515e, 0x4664, 0x515f, 0x5160,
- 0x332e, 0x5161, 0x3627, 0x464c, 0x317a, 0x3d50, 0x4821, 0x5162,
- 0x4561, 0x3f4f, 0x5163, 0x4a2c, 0x405a, 0x3422, 0x3429, 0x5164,
- 0x5166, 0x373a, 0x5165, 0x4e73, 0x3d69, 0x483d, 0x4a4c, 0x5167,
- 0x4d78, 0x5168, 0x5169, 0x457e, 0x516a, 0x4029, 0x3a7e, 0x3774,
- 0x516b, 0x3b49, 0x396f, 0x4466, 0x516d, 0x4227, 0x3a6f, 0x516e,
- 0x516f, 0x4130, 0x516c, 0x5171, 0x4b36, 0x3964, 0x5170, 0x3775,
- 0x3a5e, 0x476d, 0x5174, 0x5172, 0x497b, 0x3e6a, 0x517b, 0x3364,
- 0x5175, 0x5173, 0x414f, 0x5177, 0x5176, 0x3344, 0x3760, 0x517c,
- 0x4e2d, 0x5178, 0x517d, 0x517a, 0x5179, 0x4e4f, 0x3879, 0x3243,
- 0x4e74, 0x3d75, 0x4558, 0x3965, 0x5222, 0x5223, 0x4e65, 0x4f2b,
- 0x5225, 0x387a, 0x5224, 0x332f, 0x5226, 0x4b56, 0x443c, 0x4d26,
- 0x4a59, 0x5227, 0x7055, 0x4630, 0x5228, 0x342a, 0x4c33, 0x3e21,
- 0x5229, 0x4a67, 0x522d, 0x402a, 0x522a, 0x3650, 0x522b, 0x342b,
- 0x372e, 0x522e, 0x522f, 0x5230, 0x5231, 0x3c5b, 0x387b, 0x4c5e,
- 0x4c68, 0x4677, 0x4a71, 0x5232, 0x5233, 0x5235, 0x5237, 0x5236,
- 0x5238, 0x323d, 0x4b4c, 0x3a7c, 0x5239, 0x4159, 0x3e22, 0x3629,
- 0x523a, 0x485b, 0x523b, 0x523c, 0x523d, 0x523e, 0x4924, 0x3668,
- 0x3065, 0x463f, 0x523f, 0x3d3d, 0x4069, 0x5241, 0x5240, 0x3e23,
- 0x3861, 0x5243, 0x483e, 0x5244, 0x485c, 0x4234, 0x426e, 0x3628,
- 0x466e, 0x4331, 0x476e, 0x4b4e, 0x5246, 0x406a, 0x3735, 0x5247,
- 0x5248, 0x312c, 0x3075, 0x346d, 0x4228, 0x3551, 0x4d71, 0x524b,
- 0x3237, 0x524a, 0x362a, 0x524c, 0x4c71, 0x524d, 0x4e52, 0x387c,
- 0x3836, 0x524e, 0x5250, 0x524f, 0x3f5f, 0x3139, 0x315e, 0x5251,
- 0x5252, 0x3837, 0x5253, 0x356e, 0x3b32, 0x5254, 0x4b74, 0x3a35,
- 0x355a, 0x4d27, 0x4150, 0x483f, 0x3c7d, 0x3d47, 0x3c68, 0x3c75,
- 0x3d76, 0x4840, 0x5257, 0x3143, 0x4151, 0x387d, 0x3845, 0x3667,
- 0x525b, 0x4321, 0x427e, 0x362b, 0x3e24, 0x525c, 0x525a, 0x3244,
- 0x4266, 0x3c38, 0x3b4b, 0x3126, 0x3370, 0x3966, 0x3b4a, 0x525d,
- 0x525e, 0x3549, 0x3346, 0x3967, 0x3548, 0x445f, 0x3125, 0x4631,
- 0x4c3e, 0x3921, 0x4d79, 0x4547, 0x387e, 0x372f, 0x5267, 0x3663,
- 0x4b4a, 0x485d, 0x5266, 0x345e, 0x5261, 0x5262, 0x5264, 0x5265,
- 0x355b, 0x3f61, 0x4a2d, 0x5263, 0x525f, 0x3863, 0x5260, 0x4f24,
- 0x4a72, 0x4468, 0x3862, 0x3970, 0x5268, 0x465d, 0x526c, 0x3c7e,
- 0x3c76, 0x526f, 0x526d, 0x4c23, 0x526a, 0x5273, 0x526e, 0x5271,
- 0x3846, 0x4c3f, 0x5272, 0x5274, 0x5276, 0x3a70, 0x4f42, 0x526b,
- 0x5269, 0x5275, 0x5270, 0x5278, 0x5323, 0x527a, 0x527e, 0x5321,
- 0x527b, 0x533e, 0x3a69, 0x3331, 0x5279, 0x5325, 0x3076, 0x5324,
- 0x3025, 0x494a, 0x5322, 0x527c, 0x5277, 0x527d, 0x3a48, 0x5326,
- 0x3077, 0x532f, 0x5327, 0x5328, 0x3e25, 0x4b69, 0x532d, 0x532c,
- 0x452f, 0x532e, 0x532b, 0x3134, 0x3a36, 0x3f30, 0x5329, 0x4562,
- 0x532a, 0x3022, 0x5334, 0x4d23, 0x3e27, 0x533a, 0x5339, 0x5330,
- 0x4243, 0x5331, 0x426f, 0x5336, 0x3e26, 0x5333, 0x4c64, 0x373c,
- 0x5337, 0x5338, 0x5335, 0x533b, 0x5332, 0x5341, 0x5346, 0x5342,
- 0x533d, 0x5347, 0x4131, 0x5349, 0x3922, 0x533f, 0x437d, 0x5343,
- 0x533c, 0x342d, 0x346e, 0x3365, 0x5344, 0x5340, 0x3776, 0x534a,
- 0x5348, 0x4153, 0x354a, 0x362c, 0x5345, 0x3674, 0x3144, 0x534e,
- 0x534c, 0x5427, 0x5351, 0x534b, 0x534f, 0x534d, 0x3b4c, 0x5350,
- 0x5353, 0x5358, 0x5356, 0x5355, 0x4332, 0x3245, 0x5352, 0x5354,
- 0x3e28, 0x3133, 0x5357, 0x325e, 0x5362, 0x3e7c, 0x535e, 0x535c,
- 0x535d, 0x535f, 0x313d, 0x4139, 0x5359, 0x535a, 0x337a, 0x5361,
- 0x346f, 0x5364, 0x5360, 0x5363, 0x4a2e, 0x4655, 0x4838, 0x5366,
- 0x5365, 0x3345, 0x5367, 0x536a, 0x5369, 0x5368, 0x4739, 0x536b,
- 0x536c, 0x536e, 0x536d, 0x5370, 0x5373, 0x5371, 0x536f, 0x5372,
- 0x5374, 0x5375, 0x5376, 0x5377, 0x5378, 0x5145, 0x3c7c, 0x3b4d,
- 0x3273, 0x3078, 0x4344, 0x5379, 0x3a24, 0x304f, 0x3f5e, 0x537a,
- 0x3847, 0x3971, 0x537c, 0x537b, 0x4a60, 0x537d, 0x5421, 0x537e,
- 0x5422, 0x5423, 0x3777, 0x3160, 0x5424, 0x5426, 0x5425, 0x5428,
- 0x455a, 0x5429, 0x3035, 0x3a5f, 0x373d, 0x434f, 0x542a, 0x542b,
- 0x542d, 0x542e, 0x3a64, 0x3651, 0x4b37, 0x542c, 0x542f, 0x3a41,
- 0x3923, 0x5433, 0x3a25, 0x4333, 0x5430, 0x445a, 0x5434, 0x3f62,
- 0x5432, 0x5435, 0x373f, 0x5436, 0x5437, 0x3924, 0x3340, 0x5439,
- 0x543a, 0x543b, 0x5438, 0x5431, 0x543c, 0x543d, 0x4b64, 0x3e6b,
- 0x543f, 0x5440, 0x543e, 0x5442, 0x4738, 0x3068, 0x4956, 0x5443,
- 0x3e7d, 0x3c39, 0x475d, 0x3470, 0x3a6b, 0x4b59, 0x4632, 0x3778,
- 0x424f, 0x5441, 0x5444, 0x4244, 0x5445, 0x5446, 0x5448, 0x4469,
- 0x342e, 0x7421, 0x3161, 0x4a73, 0x3e6c, 0x4548, 0x3a66, 0x544e,
- 0x4a3d, 0x4e5d, 0x3274, 0x544a, 0x413a, 0x544d, 0x4563, 0x4549,
- 0x4564, 0x4839, 0x444d, 0x3a49, 0x5449, 0x3176, 0x4536, 0x544b,
- 0x5447, 0x3f50, 0x544f, 0x3d4e, 0x362d, 0x5450, 0x4a68, 0x417d,
- 0x4446, 0x5452, 0x4b4f, 0x5453, 0x5458, 0x4a2f, 0x5457, 0x5451,
- 0x5454, 0x5456, 0x3a26, 0x4a49, 0x5459, 0x4345, 0x3275, 0x3e6d,
- 0x545b, 0x545a, 0x3968, 0x545c, 0x545e, 0x545d, 0x5460, 0x5455,
- 0x5462, 0x5461, 0x545f, 0x3b4e, 0x3f51, 0x4154, 0x5463, 0x403c,
- 0x306d, 0x4764, 0x445b, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468,
- 0x5469, 0x4a51, 0x546a, 0x3246, 0x546b, 0x4d3c, 0x3330, 0x5249,
- 0x3d48, 0x423f, 0x546c, 0x4c6b, 0x4c34, 0x546e, 0x4267, 0x4537,
- 0x4240, 0x4957, 0x546f, 0x5470, 0x317b, 0x3c3a, 0x5471, 0x3050,
- 0x5472, 0x5473, 0x3162, 0x3471, 0x4660, 0x4a74, 0x5477, 0x4155,
- 0x5476, 0x3740, 0x4b5b, 0x5475, 0x4565, 0x5479, 0x5478, 0x547b,
- 0x547a, 0x317c, 0x547c, 0x3e29, 0x547e, 0x4325, 0x547d, 0x4a33,
- 0x3d77, 0x455b, 0x5521, 0x3925, 0x5522, 0x4721, 0x485e, 0x4c51,
- 0x4725, 0x552b, 0x3538, 0x4d45, 0x4c2f, 0x562c, 0x5523, 0x5526,
- 0x4245, 0x4b38, 0x454a, 0x5527, 0x4b65, 0x3a4a, 0x3e2a, 0x5528,
- 0x3b50, 0x3b4f, 0x3039, 0x3848, 0x402b, 0x3051, 0x552c, 0x552d,
- 0x552a, 0x3138, 0x342f, 0x5529, 0x4c45, 0x4931, 0x3028, 0x3079,
- 0x3b51, 0x3052, 0x3023, 0x5532, 0x5530, 0x4c3c, 0x5533, 0x5531,
- 0x552f, 0x3f31, 0x552e, 0x4a5a, 0x3864, 0x5537, 0x5538, 0x3e2b,
- 0x5534, 0x4f2c, 0x474c, 0x5536, 0x3a27, 0x5539, 0x4958, 0x553a,
- 0x5535, 0x4c3b, 0x475e, 0x553b, 0x4932, 0x553c, 0x5540, 0x553d,
- 0x3247, 0x553f, 0x3c3b, 0x553e, 0x3779, 0x554c, 0x5545, 0x5542,
- 0x4364, 0x5541, 0x5543, 0x5544, 0x5546, 0x5547, 0x3472, 0x5549,
- 0x5548, 0x554a, 0x3e6e, 0x554d, 0x445c, 0x3145, 0x554b, 0x554e,
- 0x554f, 0x5552, 0x5550, 0x5551, 0x3b52, 0x5553, 0x3926, 0x5554,
- 0x3b7a, 0x4238, 0x5555, 0x5556, 0x3b5a, 0x3927, 0x4c52, 0x3528,
- 0x3849, 0x5557, 0x3358, 0x5558, 0x4239, 0x5559, 0x5623, 0x555a,
- 0x555b, 0x555c, 0x555e, 0x555f, 0x5560, 0x4270, 0x3127, 0x3c69,
- 0x3042, 0x4157, 0x3430, 0x3c35, 0x3928, 0x4566, 0x3d21, 0x3431,
- 0x4368, 0x446a, 0x3038, 0x3539, 0x4a75, 0x3c42, 0x3552, 0x406b,
- 0x3c3c, 0x4d28, 0x5561, 0x355c, 0x3a4b, 0x3332, 0x3163, 0x3e2c,
- 0x3248, 0x5562, 0x4d46, 0x3d49, 0x3c64, 0x5563, 0x3473, 0x4652,
- 0x4c29, 0x5564, 0x5565, 0x4959, 0x5567, 0x3428, 0x3677, 0x5566,
- 0x3432, 0x3f32, 0x556b, 0x3b21, 0x3249, 0x556a, 0x5568, 0x556c,
- 0x5569, 0x472b, 0x5c4d, 0x3f33, 0x556d, 0x4e40, 0x556e, 0x5570,
- 0x437e, 0x556f, 0x4023, 0x3b7b, 0x4250, 0x3c77, 0x4975, 0x406c,
- 0x3c4d, 0x5571, 0x3e2d, 0x5572, 0x5573, 0x3053, 0x423a, 0x3f52,
- 0x5574, 0x4633, 0x3e2e, 0x3e2f, 0x5575, 0x406d, 0x3e30, 0x5576,
- 0x5577, 0x4c60, 0x5578, 0x3646, 0x3d22, 0x5579, 0x557a, 0x3c5c,
- 0x3f2c, 0x4674, 0x3f54, 0x4878, 0x4722, 0x3649, 0x557b, 0x356f,
- 0x557c, 0x367e, 0x464f, 0x3230, 0x3b53, 0x557d, 0x5622, 0x5621,
- 0x367d, 0x557e, 0x4538, 0x4230, 0x454b, 0x3c48, 0x4158, 0x4d7a,
- 0x5624, 0x5625, 0x4656, 0x3b33, 0x5627, 0x5628, 0x5629, 0x3474,
- 0x562a, 0x562b, 0x322c, 0x413b, 0x3464, 0x562d, 0x4c28, 0x4252,
- 0x3359, 0x562f, 0x5631, 0x345f, 0x562e, 0x5630, 0x5633, 0x5632,
- 0x5634, 0x5635, 0x463d, 0x362e, 0x3265, 0x5636, 0x563b, 0x5639,
- 0x4a77, 0x4a76, 0x4567, 0x5638, 0x3d54, 0x5637, 0x3f72, 0x563c,
- 0x3a6a, 0x5642, 0x5643, 0x563d, 0x3333, 0x563e, 0x5647, 0x5646,
- 0x5645, 0x5641, 0x5640, 0x5644, 0x4a78, 0x564b, 0x5648, 0x564a,
- 0x4d72, 0x5649, 0x563f, 0x3f73, 0x564c, 0x3a37, 0x564d, 0x564e,
- 0x5651, 0x5650, 0x564f, 0x4568, 0x563a, 0x5657, 0x5653, 0x5652,
- 0x5654, 0x5655, 0x5658, 0x4e66, 0x5659, 0x5656, 0x565a, 0x3460,
- 0x565b, 0x565d, 0x565c, 0x565e, 0x565f, 0x406e, 0x3d23, 0x3d64,
- 0x4163, 0x3929, 0x3a38, 0x392a, 0x3570, 0x5660, 0x3a39, 0x384a,
- 0x5661, 0x4c26, 0x4743, 0x5662, 0x392b, 0x342c, 0x4327, 0x3652,
- 0x3b54, 0x495b, 0x4841, 0x5663, 0x3475, 0x5666, 0x4421, 0x5665,
- 0x5664, 0x5667, 0x446b, 0x3f63, 0x3b55, 0x404a, 0x4253, 0x3522,
- 0x4422, 0x5668, 0x5669, 0x3e6f, 0x4b39, 0x566c, 0x566b, 0x566a,
- 0x497d, 0x5673, 0x4b5a, 0x566d, 0x566f, 0x4b6b, 0x566e, 0x5670,
- 0x4828, 0x5671, 0x4a3e, 0x5672, 0x3433, 0x4a3f, 0x472f, 0x5674,
- 0x5675, 0x392c, 0x3434, 0x5676, 0x3838, 0x4d44, 0x4d29, 0x3476,
- 0x5678, 0x4423, 0x392d, 0x3e31, 0x485f, 0x3e32, 0x3d78, 0x446c,
- 0x4a79, 0x4539, 0x392e, 0x495c, 0x5679, 0x4559, 0x3a42, 0x384b,
- 0x446d, 0x3043, 0x3d6e, 0x392f, 0x4d47, 0x567a, 0x567b, 0x4751,
- 0x567c, 0x4e77, 0x4f2d, 0x567e, 0x567d, 0x3347, 0x5721, 0x5724,
- 0x5725, 0x5723, 0x4940, 0x3e33, 0x5727, 0x5726, 0x5722, 0x5728,
- 0x5729, 0x572a, 0x572d, 0x572b, 0x572c, 0x572e, 0x3164, 0x446e,
- 0x572f, 0x377a, 0x3276, 0x4736, 0x5730, 0x467b, 0x4a5b, 0x5731,
- 0x4f2e, 0x5732, 0x4a40, 0x5735, 0x5021, 0x5031, 0x3c30, 0x4675,
- 0x5736, 0x355d, 0x4424, 0x307a, 0x5737, 0x4a26, 0x3930, 0x4350,
- 0x446f, 0x4c6f, 0x3839, 0x384c, 0x5738, 0x5739, 0x573f, 0x3c65,
- 0x4425, 0x362f, 0x573a, 0x492b, 0x4346, 0x573b, 0x573c, 0x3630,
- 0x573d, 0x573e, 0x5740, 0x4576, 0x5741, 0x5742, 0x5743, 0x5734,
- 0x5733, 0x5744, 0x3741, 0x4927, 0x3a4c, 0x4937, 0x4426, 0x494b,
- 0x5745, 0x3e34, 0x3146, 0x5746, 0x5747, 0x4c72, 0x4860, 0x574a,
- 0x317d, 0x402c, 0x5749, 0x5748, 0x3742, 0x4254, 0x574e, 0x574c,
- 0x574b, 0x4e27, 0x3865, 0x3d79, 0x574d, 0x454c, 0x3d3e, 0x4640,
- 0x5751, 0x5750, 0x574f, 0x5752, 0x3866, 0x5753, 0x497c, 0x3d5b,
- 0x5754, 0x4879, 0x4641, 0x4427, 0x4530, 0x5755, 0x352b, 0x3f34,
- 0x492c, 0x3477, 0x4726, 0x5756, 0x3b56, 0x4b3a, 0x4b3b, 0x317e,
- 0x575b, 0x4369, 0x5758, 0x3277, 0x582d, 0x575a, 0x4730, 0x5759,
- 0x5757, 0x397a, 0x575d, 0x5763, 0x5769, 0x5761, 0x455c, 0x5766,
- 0x495d, 0x5760, 0x5765, 0x4e67, 0x3b57, 0x4255, 0x575e, 0x355e,
- 0x5768, 0x402d, 0x3165, 0x5762, 0x3278, 0x5767, 0x3631, 0x5764,
- 0x576a, 0x576c, 0x5776, 0x5774, 0x5771, 0x5770, 0x4e78, 0x5772,
- 0x3632, 0x3931, 0x3d7a, 0x5779, 0x576b, 0x576f, 0x575f, 0x327a,
- 0x5773, 0x5775, 0x4351, 0x3a28, 0x3238, 0x576d, 0x5778, 0x5777,
- 0x3633, 0x4229, 0x3366, 0x3743, 0x576e, 0x577a, 0x577d, 0x5821,
- 0x3c3d, 0x5827, 0x4470, 0x577b, 0x5825, 0x3279, 0x5823, 0x5824,
- 0x577e, 0x5822, 0x3867, 0x4d2a, 0x3435, 0x3159, 0x5826, 0x473a,
- 0x302d, 0x4861, 0x575c, 0x582c, 0x5830, 0x4c65, 0x5829, 0x4569,
- 0x582e, 0x3e70, 0x582f, 0x4657, 0x4f47, 0x582b, 0x5831, 0x397b,
- 0x404b, 0x3054, 0x582a, 0x5828, 0x415a, 0x577c, 0x3b34, 0x4246,
- 0x583d, 0x415b, 0x5838, 0x5835, 0x5836, 0x3c66, 0x5839, 0x583c,
- 0x5837, 0x3d25, 0x583a, 0x5834, 0x4c7c, 0x4c7b, 0x583e, 0x583f,
- 0x3055, 0x5833, 0x3672, 0x3026, 0x3436, 0x583b, 0x5843, 0x5842,
- 0x5847, 0x5848, 0x5846, 0x5849, 0x5841, 0x5845, 0x584a, 0x584b,
- 0x5840, 0x3b7c, 0x5844, 0x4256, 0x3932, 0x5832, 0x3f35, 0x5858,
- 0x4a69, 0x584e, 0x584f, 0x5850, 0x5857, 0x5856, 0x4b7d, 0x3437,
- 0x5854, 0x3745, 0x3334, 0x5851, 0x4e38, 0x5853, 0x3056, 0x5855,
- 0x584c, 0x5852, 0x5859, 0x3744, 0x584d, 0x4d5d, 0x4d2b, 0x585c,
- 0x5860, 0x417e, 0x4e79, 0x5861, 0x585e, 0x585b, 0x585a, 0x585f,
- 0x4a30, 0x4634, 0x3746, 0x5862, 0x585d, 0x5863, 0x377b, 0x3231,
- 0x586b, 0x3438, 0x5869, 0x586a, 0x3a29, 0x5868, 0x5866, 0x5865,
- 0x586c, 0x5864, 0x586e, 0x327b, 0x5870, 0x586f, 0x4428, 0x5873,
- 0x5871, 0x5867, 0x377c, 0x5872, 0x5876, 0x5875, 0x5877, 0x5874,
- 0x5878, 0x5879, 0x587a, 0x4a6a, 0x587c, 0x587b, 0x3d3f, 0x402e,
- 0x3266, 0x327c, 0x587d, 0x303f, 0x404c, 0x587e, 0x6c43, 0x5921,
- 0x3761, 0x5922, 0x406f, 0x5923, 0x5924, 0x353a, 0x5925, 0x5926,
- 0x5927, 0x4257, 0x384d, 0x4c61, 0x4b3c, 0x3d6a, 0x5928, 0x4070,
- 0x6e3d, 0x4862, 0x3c6a, 0x3a4d, 0x5929, 0x4247, 0x4a27, 0x4271,
- 0x592c, 0x592a, 0x592d, 0x592b, 0x592e, 0x4a31, 0x3037, 0x495e,
- 0x4863, 0x592f, 0x5932, 0x3e35, 0x353b, 0x5930, 0x5937, 0x3e36,
- 0x5931, 0x4744, 0x4d5e, 0x5933, 0x5934, 0x5938, 0x456a, 0x5935,
- 0x3933, 0x405e, 0x5946, 0x4834, 0x4272, 0x4864, 0x5a2d, 0x4a7a,
- 0x4471, 0x4b75, 0x593b, 0x3221, 0x436a, 0x5944, 0x4334, 0x593e,
- 0x5945, 0x5940, 0x5947, 0x5943, 0x5942, 0x476f, 0x593c, 0x327d,
- 0x593a, 0x3571, 0x4273, 0x5936, 0x5939, 0x3934, 0x405b, 0x3e37,
- 0x5941, 0x4752, 0x3572, 0x3348, 0x3367, 0x3f21, 0x5949, 0x594e,
- 0x594a, 0x377d, 0x594f, 0x3b22, 0x3969, 0x3d26, 0x593d, 0x3b7d,
- 0x594c, 0x3b58, 0x594d, 0x3044, 0x5948, 0x4429, 0x3573, 0x3634,
- 0x594b, 0x3027, 0x3a43, 0x3f36, 0x4472, 0x4854, 0x5951, 0x415e,
- 0x422a, 0x3b2b, 0x5952, 0x5954, 0x5950, 0x4a61, 0x443d, 0x415c,
- 0x4a7b, 0x3c4e, 0x5960, 0x595f, 0x3f78, 0x377e, 0x5959, 0x3e39,
- 0x4668, 0x4731, 0x5957, 0x415d, 0x3c78, 0x595c, 0x3e38, 0x5956,
- 0x595b, 0x4753, 0x5955, 0x3721, 0x335d, 0x595d, 0x4e2b, 0x3a4e,
- 0x4335, 0x595a, 0x405c, 0x3935, 0x3f64, 0x3166, 0x413c, 0x5958,
- 0x3545, 0x3747, 0x444f, 0x595e, 0x415f, 0x5961, 0x5963, 0x4237,
- 0x5969, 0x5964, 0x5966, 0x4941, 0x4473, 0x5967, 0x4d2c, 0x4d48,
- 0x3439, 0x302e, 0x5965, 0x5962, 0x3478, 0x3167, 0x5968, 0x4d49,
- 0x596c, 0x423b, 0x5973, 0x596d, 0x596a, 0x5971, 0x5953, 0x596e,
- 0x5972, 0x4842, 0x456b, 0x596b, 0x596f, 0x3748, 0x3a71, 0x405d,
- 0x5977, 0x4526, 0x5974, 0x4b60, 0x5975, 0x5976, 0x4c4e, 0x4022,
- 0x3762, 0x597d, 0x3b35, 0x597a, 0x5979, 0x4732, 0x4635, 0x4531,
- 0x597b, 0x597c, 0x496f, 0x4745, 0x3b23, 0x4071, 0x4b50, 0x3349,
- 0x5a25, 0x597e, 0x4d4a, 0x5a27, 0x5a23, 0x5a24, 0x4160, 0x5a22,
- 0x593f, 0x5a26, 0x5a21, 0x5a2b, 0x5a2c, 0x4527, 0x5a2e, 0x3b24,
- 0x5a29, 0x353c, 0x5a2f, 0x5a28, 0x5a33, 0x5a32, 0x5a31, 0x5a34,
- 0x5a36, 0x3e71, 0x5a35, 0x5a39, 0x5a37, 0x5a38, 0x5970, 0x5a3b,
- 0x5a3a, 0x5978, 0x5a3c, 0x5a30, 0x3b59, 0x5a3d, 0x5a3e, 0x5a40,
- 0x5a3f, 0x5a41, 0x327e, 0x3936, 0x4a7c, 0x402f, 0x384e, 0x5a43,
- 0x5a46, 0x4952, 0x355f, 0x5a45, 0x5a44, 0x4754, 0x5a47, 0x3635,
- 0x5a49, 0x5a48, 0x343a, 0x3b36, 0x4658, 0x3749, 0x3f74, 0x5a4a,
- 0x4030, 0x4528, 0x495f, 0x5a4b, 0x5a4c, 0x5a4d, 0x4a38, 0x555d,
- 0x4046, 0x494c, 0x3a58, 0x4865, 0x4843, 0x454d, 0x4e41, 0x5a4f,
- 0x3c50, 0x5a50, 0x3036, 0x3654, 0x404d, 0x4960, 0x5a51, 0x3b42,
- 0x4347, 0x3b5b, 0x3f37, 0x5a52, 0x4a7d, 0x3177, 0x3b5c, 0x5a55,
- 0x5a53, 0x5a56, 0x4e39, 0x5a54, 0x407b, 0x5a57, 0x4232, 0x5a58,
- 0x347a, 0x5a5a, 0x5a59, 0x5a5b, 0x5a5c, 0x347b, 0x467c, 0x4336,
- 0x356c, 0x3b5d, 0x4161, 0x3d5c, 0x3030, 0x5a5d, 0x3222, 0x5a61,
- 0x3937, 0x5a60, 0x3a2b, 0x3e3a, 0x5a5f, 0x3e3b, 0x4c40, 0x3a2a,
- 0x3057, 0x404e, 0x5a66, 0x4031, 0x3147, 0x3d55, 0x4b66, 0x3a72,
- 0x3e3c, 0x4027, 0x5a65, 0x5a63, 0x5a64, 0x436b, 0x5b26, 0x5a6a,
- 0x3b7e, 0x3938, 0x5a68, 0x5a69, 0x3f38, 0x5a67, 0x3b2f, 0x5a6c,
- 0x5a6b, 0x5a70, 0x5a71, 0x5a6d, 0x3322, 0x5a6e, 0x5a6f, 0x4855,
- 0x4961, 0x374a, 0x5a72, 0x4032, 0x3e3d, 0x4352, 0x3647, 0x5a73,
- 0x5a77, 0x324b, 0x5a74, 0x5a76, 0x5a75, 0x3d6b, 0x4348, 0x3045,
- 0x5a78, 0x5a79, 0x442a, 0x4e71, 0x3b43, 0x4a6b, 0x4b3d, 0x5b22,
- 0x5a7b, 0x5a7e, 0x5a7d, 0x5a7a, 0x5b21, 0x465e, 0x5a7c, 0x5b23,
- 0x3d6c, 0x5b24, 0x4d4b, 0x4778, 0x5b25, 0x5b27, 0x5b28, 0x5b29,
- 0x364a, 0x3148, 0x3939, 0x5b2a, 0x5b2b, 0x3d71, 0x4162, 0x5258,
- 0x413e, 0x413d, 0x4258, 0x3a47, 0x5072, 0x376e, 0x4d2d, 0x4a7e,
- 0x497e, 0x5b2c, 0x3a73, 0x443f, 0x5b2d, 0x4f2f, 0x4b3e, 0x442b,
- 0x5b2e, 0x347c, 0x5b2f, 0x5b30, 0x4c5a, 0x4c24, 0x4b76, 0x4b5c,
- 0x3b25, 0x5b32, 0x3c6b, 0x4b51, 0x5b34, 0x5b37, 0x5b36, 0x3479,
- 0x3560, 0x5b33, 0x5b35, 0x5b38, 0x3f79, 0x4d7b, 0x3049, 0x3a60,
- 0x423c, 0x3c5d, 0x3e73, 0x5b3b, 0x454e, 0x5b39, 0x422b, 0x5b3a,
- 0x3e72, 0x4c5d, 0x5b3c, 0x5b3d, 0x4d68, 0x5b42, 0x393a, 0x4755,
- 0x5b3f, 0x456c, 0x5a5e, 0x5a62, 0x354f, 0x4747, 0x5b41, 0x3e3e,
- 0x4844, 0x5b47, 0x487a, 0x5b3e, 0x5b44, 0x5b43, 0x404f, 0x4b6d,
- 0x4e53, 0x4b67, 0x324c, 0x3b5e, 0x4f48, 0x5b46, 0x3f75, 0x5b45,
- 0x5b40, 0x384f, 0x5b4c, 0x5b4a, 0x324d, 0x5b48, 0x5b4e, 0x5b54,
- 0x4248, 0x4a41, 0x5b56, 0x4922, 0x5b55, 0x4770, 0x4b3f, 0x343b,
- 0x4077, 0x3d40, 0x4453, 0x4d2e, 0x5b51, 0x5b50, 0x5b52, 0x5b4f,
- 0x5b57, 0x5b4d, 0x5b4b, 0x5b53, 0x5b49, 0x436c, 0x4c78, 0x3c46,
- 0x3a74, 0x3a3a, 0x4b6f, 0x3341, 0x444e, 0x464a, 0x3149, 0x4072,
- 0x4034, 0x372a, 0x5b59, 0x393b, 0x337c, 0x5b5b, 0x3374, 0x5b61,
- 0x5b5e, 0x4073, 0x334b, 0x3a2c, 0x334a, 0x3a4f, 0x5b5c, 0x3765,
- 0x374b, 0x456d, 0x5b5a, 0x3046, 0x5b5d, 0x5b5f, 0x364d, 0x372c,
- 0x343c, 0x354b, 0x5b62, 0x3a79, 0x4b71, 0x3b37, 0x5b63, 0x4930,
- 0x5b6f, 0x3233, 0x5b64, 0x5b75, 0x5b65, 0x4e42, 0x5b6c, 0x475f,
- 0x5b74, 0x5b67, 0x3034, 0x5b69, 0x393c, 0x5b6b, 0x5b6a, 0x5b66,
- 0x5b71, 0x3e3f, 0x546d, 0x3868, 0x4d7c, 0x5b68, 0x4474, 0x3323,
- 0x3a2d, 0x5b60, 0x5b70, 0x3361, 0x5b6e, 0x5b72, 0x456e, 0x347e,
- 0x5c32, 0x4c49, 0x5b77, 0x347d, 0x5b7e, 0x4b40, 0x5c21, 0x5c23,
- 0x5c27, 0x5b79, 0x432a, 0x456f, 0x5c2b, 0x5b7c, 0x5c28, 0x5c22,
- 0x3f39, 0x5c2c, 0x4033, 0x5c2a, 0x343d, 0x4f50, 0x5b76, 0x5c26,
- 0x3058, 0x5b78, 0x4c3a, 0x5b7d, 0x3f22, 0x4447, 0x5b73, 0x5c25,
- 0x3f7a, 0x5c2f, 0x3371, 0x3821, 0x5c31, 0x5b7a, 0x5c30, 0x5c29,
- 0x5b7b, 0x5c2d, 0x5c2e, 0x5c3f, 0x464e, 0x5c24, 0x5c3b, 0x5c3d,
- 0x4458, 0x4d4c, 0x4976, 0x5c38, 0x424a, 0x5c3e, 0x413f, 0x5c35,
- 0x5c42, 0x5c41, 0x466f, 0x5c40, 0x466a, 0x5c44, 0x5c37, 0x3648,
- 0x5c3a, 0x3d5d, 0x4760, 0x5c3c, 0x364b, 0x5c34, 0x5c36, 0x5c33,
- 0x4f30, 0x335a, 0x5c39, 0x5c43, 0x3335, 0x3a67, 0x315d, 0x5c54,
- 0x4f31, 0x5c57, 0x3f3a, 0x5c56, 0x5c55, 0x5c52, 0x5c46, 0x5c63,
- 0x5c45, 0x5c58, 0x5c50, 0x5c4b, 0x5c48, 0x5c49, 0x5c51, 0x7422,
- 0x5c4e, 0x393d, 0x4448, 0x4164, 0x5c4c, 0x5c47, 0x5c4a, 0x4d4d,
- 0x4b6a, 0x5c4f, 0x5c59, 0x5c61, 0x5c5a, 0x5c67, 0x5c65, 0x5c60,
- 0x5c5f, 0x4450, 0x4165, 0x5c5d, 0x5c5b, 0x5c62, 0x5c68, 0x4875,
- 0x5c6e, 0x5c69, 0x5c6c, 0x5c66, 0x4374, 0x4938, 0x5c5c, 0x5c64,
- 0x3e40, 0x4c4f, 0x5c78, 0x5c6b, 0x3822, 0x3223, 0x335f, 0x5c53,
- 0x3e41, 0x5c70, 0x5c77, 0x3c79, 0x3372, 0x432e, 0x5c6d, 0x5c72,
- 0x5c76, 0x3636, 0x354c, 0x5c74, 0x3521, 0x464b, 0x5c73, 0x5c75,
- 0x5c6f, 0x5c71, 0x3360, 0x4349, 0x5c7c, 0x5c7a, 0x3869, 0x5c79,
- 0x5d21, 0x5b58, 0x5c7b, 0x5c7d, 0x5c7e, 0x5d2c, 0x5d28, 0x5b6d,
- 0x5d27, 0x5d26, 0x5d23, 0x5c6a, 0x5d25, 0x5d24, 0x5d2a, 0x4f26,
- 0x5d2d, 0x367b, 0x5d29, 0x5d2b, 0x4827, 0x5d2e, 0x5d32, 0x5d2f,
- 0x4d73, 0x5d30, 0x5c5e, 0x5d33, 0x5d34, 0x3135, 0x5d36, 0x3767,
- 0x3c21, 0x3655, 0x3224, 0x4d5f, 0x5d38, 0x5d37, 0x5d3a, 0x353d,
- 0x3656, 0x343e, 0x5d3d, 0x5d3c, 0x5d3e, 0x324e, 0x4337, 0x5d3f,
- 0x343f, 0x5d41, 0x5d40, 0x5d42, 0x5d43, 0x5d44, 0x3b5f, 0x4035,
- 0x3a21, 0x4970, 0x4a62, 0x4f44, 0x3b75, 0x3a50, 0x4e72, 0x5d45,
- 0x5d46, 0x3b60, 0x5d47, 0x5d48, 0x5d4a, 0x5d49, 0x4b58, 0x3d5e,
- 0x3c6c, 0x3b44, 0x5d4b, 0x5d4d, 0x3f23, 0x5d4c, 0x5d4e, 0x5d4f,
- 0x5d50, 0x5d51, 0x5d52, 0x5d54, 0x5d53, 0x5d55, 0x3225, 0x434a,
- 0x5d56, 0x3b26, 0x334c, 0x5d57, 0x4542, 0x544c, 0x3523, 0x5d58,
- 0x5d59, 0x4a6c, 0x4b68, 0x4647, 0x5d5a, 0x4866, 0x487b, 0x4c53,
- 0x5d5b, 0x5d5d, 0x5d5c, 0x5d5f, 0x5d5e, 0x5d61, 0x3b61, 0x4c31,
- 0x5d62, 0x5d63, 0x3524, 0x5d64, 0x5d66, 0x5d65, 0x3f65, 0x4939,
- 0x314a, 0x4845, 0x4475, 0x3d41, 0x3561, 0x4846, 0x3c2e, 0x5d68,
- 0x3440, 0x3178, 0x4672, 0x5d67, 0x393e, 0x4353, 0x5d69, 0x5d71,
- 0x5d6a, 0x4241, 0x3562, 0x5d72, 0x3768, 0x3525, 0x5d70, 0x5d6e,
- 0x5d6b, 0x4d60, 0x4440, 0x4659, 0x5d6c, 0x5d74, 0x5d73, 0x3723,
- 0x322d, 0x3a3b, 0x5d6d, 0x5d6f, 0x4b57, 0x4274, 0x4b77, 0x5d7c,
- 0x5d7d, 0x324f, 0x4a28, 0x4c7d, 0x5e21, 0x3c23, 0x3e42, 0x5d78,
- 0x5d7e, 0x3168, 0x3637, 0x5d75, 0x5d7a, 0x4074, 0x4771, 0x4867,
- 0x5d77, 0x4b21, 0x5d79, 0x5e24, 0x5e22, 0x5d7b, 0x4b22, 0x4748,
- 0x3563, 0x4525, 0x436d, 0x5e25, 0x5e23, 0x4259, 0x5d76, 0x314b,
- 0x4d4e, 0x5e30, 0x5e2f, 0x4076, 0x5e2c, 0x4d6c, 0x4636, 0x5e26,
- 0x4445, 0x314c, 0x393f, 0x5e29, 0x3d27, 0x5e2e, 0x5e2d, 0x5e28,
- 0x5e2b, 0x3368, 0x5e2a, 0x4749, 0x4e2e, 0x3e74, 0x4075, 0x5e36,
- 0x5e34, 0x494d, 0x5e31, 0x5e33, 0x313a, 0x3940, 0x4f32, 0x333d,
- 0x4962, 0x4d61, 0x3324, 0x3f3b, 0x5e35, 0x5e3a, 0x3e43, 0x4d30,
- 0x5e37, 0x5e32, 0x5e38, 0x4e5e, 0x4573, 0x4642, 0x3336, 0x3155,
- 0x5e3e, 0x5e41, 0x4e43, 0x4d64, 0x5e48, 0x5e42, 0x5e3f, 0x4e54,
- 0x5e45, 0x3d4a, 0x5e47, 0x5e4c, 0x4571, 0x5e4a, 0x5e44, 0x4338,
- 0x5e4b, 0x5e40, 0x5e46, 0x5e4d, 0x307c, 0x5e43, 0x5e4e, 0x3f3c,
- 0x3d5f, 0x4a25, 0x3a2e, 0x5e3b, 0x5e49, 0x453a, 0x4036, 0x3369,
- 0x3a51, 0x3e44, 0x5e3d, 0x3d42, 0x374c, 0x5e3c, 0x5e52, 0x3d6d,
- 0x383a, 0x5e61, 0x5e5b, 0x3574, 0x454f, 0x5e56, 0x5e5f, 0x302f,
- 0x3132, 0x3239, 0x5e58, 0x422c, 0x5e4f, 0x5e51, 0x3941, 0x5e62,
- 0x5e5d, 0x5e55, 0x5e5c, 0x4c2b, 0x5e5a, 0x5e5e, 0x3850, 0x3e45,
- 0x4339, 0x5e54, 0x4d2f, 0x5e57, 0x5e50, 0x4572, 0x5e53, 0x5e59,
- 0x4f51, 0x3c3e, 0x4b7e, 0x5e63, 0x482e, 0x5e6f, 0x383b, 0x3d60,
- 0x5e65, 0x4e2f, 0x3942, 0x5e72, 0x306e, 0x5e70, 0x5e64, 0x5e6a,
- 0x5e6c, 0x4d4f, 0x5e67, 0x452e, 0x5e69, 0x5e71, 0x5e6b, 0x4c47,
- 0x5e66, 0x3c22, 0x5e7e, 0x336a, 0x5e68, 0x5e6d, 0x5e6e, 0x426c,
- 0x425a, 0x5e76, 0x5e7c, 0x5e7a, 0x4529, 0x5f23, 0x5e77, 0x5e78,
- 0x5e60, 0x3579, 0x493a, 0x3c3f, 0x3977, 0x4f33, 0x5e74, 0x5f22,
- 0x3169, 0x4166, 0x4779, 0x3441, 0x4e7a, 0x4c21, 0x4452, 0x5e7b,
- 0x5e7d, 0x4132, 0x5f21, 0x5e79, 0x5e73, 0x3443, 0x3769, 0x5f2f,
- 0x5f2a, 0x4078, 0x3363, 0x3d61, 0x5f33, 0x5f2c, 0x442c, 0x5f29,
- 0x4459, 0x5f4c, 0x5f26, 0x5f25, 0x5f2e, 0x5f28, 0x5f27, 0x5f2d,
- 0x4021, 0x5f24, 0x5f30, 0x5f31, 0x3442, 0x5f36, 0x5f35, 0x5f37,
- 0x5f3a, 0x4543, 0x5f34, 0x5f38, 0x3763, 0x4279, 0x5f32, 0x473b,
- 0x5f39, 0x5f3e, 0x5f3c, 0x5f3f, 0x5f42, 0x5f3b, 0x396a, 0x4728,
- 0x5e39, 0x4d74, 0x5f3d, 0x5f41, 0x4275, 0x5f40, 0x5f2b, 0x6f69,
- 0x5f45, 0x5f49, 0x5f47, 0x5f43, 0x5f44, 0x5f48, 0x5f46, 0x494e,
- 0x5f4e, 0x5f4b, 0x5f4a, 0x5f4d, 0x4654, 0x5f4f, 0x4375, 0x426d,
- 0x4025, 0x5f50, 0x5f52, 0x5f51, 0x5e75, 0x5f53, 0x4667, 0x5f54,
- 0x3250, 0x4574, 0x3325, 0x3564, 0x3c5e, 0x3a52, 0x4f27, 0x3f66,
- 0x316a, 0x5f56, 0x5f55, 0x5f59, 0x433a, 0x5f5c, 0x5f57, 0x5f5b,
- 0x5f5a, 0x4540, 0x3059, 0x4e75, 0x5f5e, 0x3128, 0x5f60, 0x5f5f,
- 0x5f5d, 0x5f58, 0x4b23, 0x5f62, 0x5f61, 0x316b, 0x5f64, 0x4a32,
- 0x5f63, 0x4c35, 0x3e47, 0x4133, 0x3e46, 0x4e7b, 0x5f6a, 0x4079,
- 0x5f66, 0x5f6b, 0x316c, 0x5f69, 0x4761, 0x5f65, 0x5f68, 0x3e48,
- 0x4851, 0x5f6c, 0x3c51, 0x407a, 0x5f6f, 0x5f67, 0x3727, 0x5f6d,
- 0x4d50, 0x5f70, 0x7426, 0x3d4f, 0x5f71, 0x5f72, 0x472e, 0x5f74,
- 0x5f75, 0x4733, 0x4575, 0x5f77, 0x5f79, 0x4e55, 0x5f76, 0x5f78,
- 0x316d, 0x5f73, 0x535b, 0x5f7a, 0x4167, 0x3b38, 0x5f7c, 0x5f7b,
- 0x3f24, 0x5259, 0x5f7d, 0x6021, 0x5f6e, 0x5f7e, 0x6022, 0x477a,
- 0x6023, 0x6024, 0x6025, 0x6026, 0x445e, 0x6028, 0x6027, 0x6029,
- 0x602a, 0x3c5f, 0x4963, 0x4c6c, 0x602b, 0x602c, 0x4156, 0x3c24,
- 0x602d, 0x602e, 0x602f, 0x4a52, 0x4847, 0x6030, 0x4757, 0x442d,
- 0x6031, 0x3267, 0x356d, 0x4c46, 0x4c36, 0x3234, 0x4f34, 0x4b52,
- 0x4a2a, 0x4037, 0x6032, 0x4643, 0x3823, 0x6033, 0x3a54, 0x6035,
- 0x6034, 0x6036, 0x6037, 0x6038, 0x353e, 0x6039, 0x603a, 0x3824,
- 0x4848, 0x603c, 0x3e75, 0x603b, 0x3638, 0x603d, 0x603f, 0x603e,
- 0x6040, 0x3851, 0x6041, 0x3669, 0x4140, 0x397d, 0x6043, 0x6044,
- 0x6042, 0x3c6d, 0x4648, 0x3639, 0x6046, 0x432c, 0x6045, 0x4f35,
- 0x4762, 0x6049, 0x604b, 0x6048, 0x4c54, 0x604a, 0x604c, 0x4e44,
- 0x6050, 0x604f, 0x4376, 0x472d, 0x3825, 0x604e, 0x604d, 0x4d31,
- 0x4d32, 0x6051, 0x316e, 0x3976, 0x3b62, 0x6052, 0x6053, 0x6055,
- 0x3d43, 0x6057, 0x6056, 0x6058, 0x334d, 0x605a, 0x6059, 0x605c,
- 0x605b, 0x383c, 0x4e28, 0x364c, 0x3226, 0x366a, 0x3461, 0x4e68,
- 0x605e, 0x6060, 0x6061, 0x3251, 0x605d, 0x3b39, 0x4441, 0x605f,
- 0x6064, 0x3c6e, 0x6062, 0x373e, 0x4849, 0x6063, 0x607e, 0x6069,
- 0x383d, 0x3565, 0x6066, 0x4d7d, 0x4e30, 0x4276, 0x6068, 0x606a,
- 0x4e56, 0x3657, 0x487c, 0x474a, 0x606b, 0x606d, 0x6070, 0x606c,
- 0x606f, 0x386a, 0x314d, 0x6071, 0x3f70, 0x606e, 0x4e5c, 0x6074,
- 0x7424, 0x6072, 0x6075, 0x6067, 0x6073, 0x3a3c, 0x6076, 0x6077,
- 0x4d7e, 0x6078, 0x6079, 0x6065, 0x607a, 0x3444, 0x3c25, 0x607b,
- 0x607c, 0x607d, 0x313b, 0x6121, 0x493b, 0x6122, 0x3424, 0x6123,
- 0x6124, 0x6125, 0x6127, 0x6128, 0x6126, 0x4953, 0x612a, 0x6129,
- 0x612c, 0x612b, 0x612d, 0x612e, 0x6130, 0x612f, 0x3979, 0x6132,
- 0x6131, 0x3445, 0x3f53, 0x453c, 0x6133, 0x4038, 0x3b3a, 0x3179,
- 0x6134, 0x4d51, 0x4a63, 0x6135, 0x4544, 0x4d33, 0x3943, 0x3f3d,
- 0x434b, 0x5234, 0x442e, 0x3268, 0x6136, 0x6137, 0x613c, 0x613a,
- 0x6139, 0x5a42, 0x3326, 0x6138, 0x305a, 0x482a, 0x484a, 0x4e31,
- 0x613d, 0x613b, 0x435c, 0x4026, 0x482b, 0x492d, 0x613f, 0x4e2c,
- 0x374d, 0x6140, 0x613e, 0x4856, 0x6141, 0x6142, 0x305b, 0x3e76,
- 0x6147, 0x6144, 0x466d, 0x6143, 0x3526, 0x614a, 0x6145, 0x6146,
- 0x6149, 0x6148, 0x4925, 0x4142, 0x4141, 0x353f, 0x614b, 0x614c,
- 0x614d, 0x614f, 0x614e, 0x3156, 0x6157, 0x4868, 0x6151, 0x6153,
- 0x6155, 0x3f3e, 0x6156, 0x6154, 0x3c40, 0x6150, 0x6152, 0x4942,
- 0x3e49, 0x6159, 0x6158, 0x615a, 0x3c26, 0x3a2f, 0x4577, 0x615b,
- 0x444b, 0x615d, 0x4e21, 0x615c, 0x4169, 0x6162, 0x6164, 0x6165,
- 0x4354, 0x6163, 0x6160, 0x615e, 0x615f, 0x6161, 0x6168, 0x6166,
- 0x6167, 0x6169, 0x616b, 0x616c, 0x616d, 0x616e, 0x616a, 0x6170,
- 0x616f, 0x6171, 0x4e45, 0x6174, 0x6172, 0x6173, 0x3462, 0x4c7e,
- 0x4a4a, 0x6176, 0x6175, 0x6177, 0x6178, 0x617c, 0x6179, 0x617a,
- 0x617b, 0x617d, 0x617e, 0x6221, 0x6222, 0x6223, 0x482f, 0x4550,
- 0x6224, 0x4772, 0x4934, 0x6225, 0x6226, 0x452a, 0x3327, 0x3944,
- 0x6227, 0x6228, 0x6229, 0x3b29, 0x622b, 0x622a, 0x622c, 0x622d,
- 0x4869, 0x622e, 0x622f, 0x7369, 0x6230, 0x6231, 0x6232, 0x3b2e,
- 0x6233, 0x4756, 0x4b5f, 0x314e, 0x3157, 0x6234, 0x6236, 0x6235,
- 0x4570, 0x4039, 0x5d39, 0x6237, 0x4c41, 0x6238, 0x3446, 0x4857,
- 0x6239, 0x623a, 0x623b, 0x4c5c, 0x4c55, 0x443e, 0x416a, 0x623d,
- 0x3d62, 0x3e4a, 0x6240, 0x623f, 0x623e, 0x487d, 0x3447, 0x3829,
- 0x6246, 0x6243, 0x3f3f, 0x4c32, 0x6242, 0x6244, 0x6245, 0x6241,
- 0x6247, 0x6248, 0x442f, 0x3463, 0x4365, 0x6249, 0x624a, 0x624d,
- 0x3f67, 0x4644, 0x624e, 0x4b53, 0x624b, 0x624c, 0x6251, 0x6250,
- 0x624f, 0x6253, 0x6252, 0x6254, 0x6256, 0x6255, 0x4a4d, 0x3d56,
- 0x4e46, 0x6257, 0x4637, 0x6258, 0x6259, 0x625d, 0x625b, 0x625c,
- 0x625a, 0x625e, 0x625f, 0x6260, 0x6261, 0x4c37, 0x6262, 0x4c70,
- 0x6263, 0x434e, 0x476a, 0x366b, 0x433b, 0x6264, 0x363a, 0x4050,
- 0x6265, 0x3a3d, 0x6266, 0x6267, 0x3826, 0x3a55, 0x6269, 0x4556,
- 0x3a56, 0x354e, 0x4b24, 0x474b, 0x4557, 0x395c, 0x626b, 0x3e4b,
- 0x4e32, 0x3945, 0x3827, 0x4823, 0x626d, 0x626f, 0x386b, 0x626e,
- 0x4476, 0x6271, 0x3337, 0x626c, 0x486a, 0x3130, 0x3a6c, 0x4f52,
- 0x6270, 0x6272, 0x4a4b, 0x4059, 0x6274, 0x6275, 0x6273, 0x334e,
- 0x627b, 0x627a, 0x3c27, 0x627c, 0x6277, 0x627d, 0x6278, 0x4858,
- 0x6276, 0x6279, 0x6322, 0x6321, 0x4b61, 0x627e, 0x306b, 0x6324,
- 0x6323, 0x3e4c, 0x6325, 0x4143, 0x6327, 0x6326, 0x6328, 0x6268,
- 0x626a, 0x632a, 0x6329, 0x3c28, 0x4e69, 0x3c52, 0x632b, 0x3737,
- 0x3540, 0x3527, 0x3b63, 0x4d34, 0x6331, 0x6330, 0x4144, 0x632d,
- 0x632f, 0x3d4b, 0x3f40, 0x632e, 0x632c, 0x472a, 0x3e4d, 0x493c,
- 0x3a57, 0x4578, 0x6332, 0x6333, 0x6349, 0x3658, 0x4f3d, 0x4135,
- 0x6334, 0x3252, 0x4477, 0x4a21, 0x6335, 0x357a, 0x6336, 0x6338,
- 0x6339, 0x4729, 0x633a, 0x633b, 0x633c, 0x3659, 0x3253, 0x4645,
- 0x3d28, 0x3b64, 0x633d, 0x3d29, 0x324a, 0x4943, 0x633e, 0x486b,
- 0x4145, 0x6341, 0x6342, 0x4769, 0x3f41, 0x633f, 0x4361, 0x6340,
- 0x3e4e, 0x305c, 0x3529, 0x6343, 0x4478, 0x6344, 0x4047, 0x4c2d,
- 0x4923, 0x6345, 0x6346, 0x4355, 0x4e47, 0x6348, 0x6347, 0x3c6f,
- 0x634a, 0x3070, 0x634d, 0x634b, 0x3254, 0x374e, 0x634c, 0x3946,
- 0x3972, 0x4a66, 0x634e, 0x4b54, 0x6350, 0x4051, 0x314f, 0x323a,
- 0x302c, 0x634f, 0x6351, 0x6352, 0x3e77, 0x6353, 0x334f, 0x6355,
- 0x376a, 0x3566, 0x6356, 0x3675, 0x6357, 0x407c, 0x464d, 0x4060,
- 0x3a75, 0x6358, 0x4362, 0x416b, 0x635a, 0x635c, 0x6359, 0x635b,
- 0x3722, 0x635d, 0x3726, 0x3567, 0x4d52, 0x635f, 0x6360, 0x312e,
- 0x6363, 0x3376, 0x6362, 0x6361, 0x6365, 0x635e, 0x6366, 0x4e29,
- 0x6367, 0x6368, 0x5474, 0x636a, 0x6369, 0x636b, 0x636c, 0x4e35,
- 0x636d, 0x706f, 0x3e4f, 0x636e, 0x636f, 0x3d57, 0x4638, 0x6370,
- 0x4328, 0x6371, 0x433c, 0x6372, 0x3625, 0x513f, 0x435d, 0x3c33,
- 0x3448, 0x6373, 0x6422, 0x6376, 0x3568, 0x6375, 0x6424, 0x6374,
- 0x3e50, 0x6378, 0x6379, 0x452b, 0x637a, 0x335e, 0x3f5a, 0x4964,
- 0x637c, 0x4268, 0x6377, 0x637b, 0x637d, 0x3a7b, 0x6426, 0x492e,
- 0x4826, 0x4579, 0x365a, 0x6425, 0x6423, 0x4835, 0x637e, 0x435e,
- 0x457b, 0x457a, 0x3a76, 0x6438, 0x6428, 0x642a, 0x642d, 0x642e,
- 0x642b, 0x642c, 0x6429, 0x6427, 0x6421, 0x4a4f, 0x3255, 0x6435,
- 0x6432, 0x6437, 0x6436, 0x4773, 0x4c27, 0x3b3b, 0x6430, 0x6439,
- 0x6434, 0x6433, 0x642f, 0x6431, 0x3449, 0x433d, 0x407d, 0x4822,
- 0x643e, 0x4824, 0x4061, 0x643b, 0x484f, 0x643f, 0x4a53, 0x435b,
- 0x643a, 0x643c, 0x643d, 0x6440, 0x3c44, 0x4646, 0x6445, 0x6444,
- 0x6441, 0x4f36, 0x644a, 0x644e, 0x644b, 0x6447, 0x6448, 0x644d,
- 0x6442, 0x5255, 0x6449, 0x6443, 0x644c, 0x6452, 0x344a, 0x644f,
- 0x6450, 0x6451, 0x6454, 0x6453, 0x4876, 0x6455, 0x4e7c, 0x4a6d,
- 0x645a, 0x6457, 0x6456, 0x4052, 0x6459, 0x645b, 0x6458, 0x645f,
- 0x645c, 0x645d, 0x6446, 0x645e, 0x6460, 0x6461, 0x4a46, 0x6462,
- 0x4c62, 0x364e, 0x3729, 0x6463, 0x4a34, 0x3f68, 0x4c30, 0x6464,
- 0x4e33, 0x4774, 0x4146, 0x4734, 0x3d4d, 0x3040, 0x6469, 0x6467,
- 0x6465, 0x3421, 0x3e51, 0x646a, 0x6468, 0x6466, 0x646e, 0x646d,
- 0x646c, 0x646b, 0x646f, 0x6470, 0x403a, 0x6471, 0x6473, 0x6472,
- 0x3852, 0x4138, 0x6475, 0x457c, 0x6474, 0x6476, 0x4a35, 0x416c,
- 0x3947, 0x6477, 0x4e48, 0x6479, 0x647a, 0x647b, 0x647c, 0x3b65,
- 0x647d, 0x374f, 0x356a, 0x352a, 0x6521, 0x4c73, 0x3948, 0x647e,
- 0x6524, 0x4c66, 0x473c, 0x4933, 0x3d63, 0x6523, 0x3c53, 0x3949,
- 0x3b66, 0x3569, 0x4a36, 0x6522, 0x4147, 0x4b42, 0x3a77, 0x3b67,
- 0x445d, 0x6527, 0x4e5f, 0x3a59, 0x6528, 0x3f42, 0x652a, 0x3e52,
- 0x3a30, 0x6529, 0x3d2a, 0x383e, 0x4148, 0x6525, 0x652b, 0x6526,
- 0x3750, 0x652e, 0x6532, 0x376b, 0x652d, 0x6536, 0x394a, 0x4d6d,
- 0x303c, 0x6533, 0x356b, 0x6530, 0x6531, 0x457d, 0x652f, 0x652c,
- 0x3328, 0x4064, 0x3828, 0x6538, 0x6535, 0x6537, 0x6534, 0x3751,
- 0x4233, 0x6539, 0x416e, 0x6546, 0x6542, 0x653c, 0x6540, 0x3c7a,
- 0x305d, 0x653b, 0x6543, 0x6547, 0x394b, 0x4c56, 0x4456, 0x653d,
- 0x6545, 0x653a, 0x433e, 0x653f, 0x303d, 0x4c4a, 0x653e, 0x365b,
- 0x486c, 0x416d, 0x4e50, 0x3d6f, 0x656e, 0x6548, 0x407e, 0x6544,
- 0x6549, 0x654b, 0x4479, 0x654e, 0x654a, 0x4a54, 0x344b, 0x4c4b,
- 0x305e, 0x654d, 0x4e7d, 0x654c, 0x316f, 0x466c, 0x654f, 0x6556,
- 0x6550, 0x6557, 0x6553, 0x477b, 0x3c4a, 0x6555, 0x6552, 0x6558,
- 0x6551, 0x3d44, 0x4b25, 0x3d4c, 0x6554, 0x6560, 0x655c, 0x655f,
- 0x655d, 0x6561, 0x655b, 0x6541, 0x4053, 0x484b, 0x655e, 0x6559,
- 0x4121, 0x3752, 0x3d2b, 0x3f25, 0x4136, 0x6564, 0x6566, 0x6567,
- 0x6563, 0x6565, 0x655a, 0x6562, 0x656a, 0x6569, 0x4b7a, 0x372b,
- 0x6568, 0x656c, 0x656b, 0x656f, 0x6571, 0x3b3c, 0x656d, 0x6572,
- 0x6573, 0x6574, 0x657a, 0x453b, 0x6576, 0x6575, 0x6577, 0x6578,
- 0x6579, 0x657b, 0x657c, 0x344c, 0x657d, 0x657e, 0x6621, 0x6622,
- 0x6623, 0x6624, 0x6625, 0x6626, 0x6628, 0x6627, 0x6629, 0x662a,
- 0x662b, 0x662e, 0x662c, 0x662d, 0x3a61, 0x3753, 0x4356, 0x4833,
- 0x3d70, 0x474d, 0x486d, 0x662f, 0x586d, 0x6630, 0x6632, 0x4d65,
- 0x6631, 0x6634, 0x6633, 0x4d53, 0x6635, 0x487e, 0x6636, 0x6639,
- 0x6638, 0x6637, 0x663a, 0x3732, 0x4122, 0x3541, 0x663e, 0x663b,
- 0x663c, 0x663f, 0x6640, 0x663d, 0x3129, 0x3227, 0x6642, 0x6643,
- 0x6644, 0x4d62, 0x3d2c, 0x6646, 0x6645, 0x3f69, 0x6647, 0x6648,
- 0x6649, 0x3465, 0x344d, 0x664a, 0x664b, 0x4b5d, 0x4d63, 0x4d54,
- 0x4f37, 0x394d, 0x664e, 0x3c54, 0x664d, 0x664f, 0x3c29, 0x4251,
- 0x6650, 0x394c, 0x4c57, 0x6651, 0x6652, 0x6653, 0x6654, 0x6655,
- 0x3c2a, 0x4c6d, 0x6657, 0x433f, 0x6656, 0x6659, 0x6658, 0x665a,
- 0x403b, 0x665b, 0x665c, 0x4a39, 0x665d, 0x416f, 0x665e, 0x665f,
- 0x4e7e, 0x6662, 0x6661, 0x6660, 0x4430, 0x6663, 0x3f26, 0x6664,
- 0x6665, 0x4f38, 0x6666, 0x6667, 0x6669, 0x6668, 0x4825, 0x4679,
- 0x4f3e, 0x4829, 0x666b, 0x3e53, 0x492a, 0x666c, 0x666a, 0x344e,
- 0x3854, 0x3b68, 0x486e, 0x382a, 0x4b43, 0x666f, 0x666d, 0x394e,
- 0x394f, 0x3069, 0x3a68, 0x4759, 0x305f, 0x6674, 0x4340, 0x4758,
- 0x425b, 0x6676, 0x6672, 0x6675, 0x6670, 0x6673, 0x4b26, 0x3855,
- 0x307d, 0x6671, 0x6678, 0x6679, 0x4639, 0x363b, 0x6726, 0x473d,
- 0x3b69, 0x363c, 0x4048, 0x4f46, 0x4c2e, 0x6677, 0x4054, 0x3553,
- 0x667a, 0x667c, 0x667b, 0x667d, 0x4326, 0x473e, 0x4431, 0x6723,
- 0x6722, 0x667e, 0x3f55, 0x4965, 0x6725, 0x6724, 0x3950, 0x4f53,
- 0x6735, 0x6729, 0x672a, 0x3c70, 0x6728, 0x3978, 0x6727, 0x672b,
- 0x4432, 0x4a22, 0x4123, 0x425c, 0x672f, 0x6730, 0x672c, 0x672d,
- 0x672e, 0x3951, 0x6736, 0x6732, 0x4966, 0x4b6c, 0x4928, 0x6731,
- 0x6734, 0x6733, 0x4b44, 0x6737, 0x6738, 0x4137, 0x6739, 0x673b,
- 0x673f, 0x673c, 0x673a, 0x473f, 0x673d, 0x673e, 0x3232, 0x6745,
- 0x6740, 0x6741, 0x6742, 0x4221, 0x6744, 0x6743, 0x6746, 0x6747,
- 0x6748, 0x3f43, 0x3269, 0x6749, 0x4e57, 0x3c2b, 0x3d2d, 0x3b6a,
- 0x4357, 0x674a, 0x674b, 0x3131, 0x674c, 0x674d, 0x674e, 0x674f,
- 0x6750, 0x363d, 0x5a2a, 0x6751, 0x4065, 0x6752, 0x3c4b, 0x6753,
- 0x5030, 0x6754, 0x4a5e, 0x345c, 0x4124, 0x3d58, 0x4971, 0x3d2e,
- 0x6755, 0x3952, 0x6756, 0x484c, 0x6764, 0x6758, 0x4249, 0x4775,
- 0x383f, 0x6757, 0x4125, 0x6759, 0x447a, 0x675b, 0x675a, 0x675d,
- 0x675c, 0x675e, 0x6760, 0x675f, 0x344f, 0x6761, 0x6762, 0x6763,
- 0x3a31, 0x4e49, 0x6765, 0x3f27, 0x3170, 0x6766, 0x6767, 0x6768,
- 0x3072, 0x6769, 0x676a, 0x4967, 0x3c47, 0x676c, 0x3329, 0x3032,
- 0x676b, 0x676e, 0x474e, 0x3f44, 0x3256, 0x4b27, 0x375d, 0x365c,
- 0x676d, 0x326a, 0x3423, 0x3171, 0x6772, 0x4e6a, 0x425d, 0x4944,
- 0x677e, 0x3257, 0x677c, 0x677a, 0x6771, 0x676f, 0x6770, 0x3c63,
- 0x366c, 0x4377, 0x4651, 0x3151, 0x6774, 0x6773, 0x6779, 0x6775,
- 0x6778, 0x4c50, 0x6777, 0x3258, 0x337d, 0x677b, 0x677d, 0x3754,
- 0x6823, 0x682c, 0x682d, 0x302b, 0x6834, 0x3071, 0x682b, 0x682a,
- 0x6825, 0x6824, 0x6822, 0x6821, 0x4363, 0x427b, 0x6827, 0x6826,
- 0x6829, 0x4170, 0x3755, 0x3141, 0x6828, 0x3953, 0x4171, 0x683a,
- 0x683b, 0x3259, 0x322e, 0x6838, 0x682e, 0x6836, 0x683d, 0x6837,
- 0x6835, 0x6776, 0x6833, 0x682f, 0x3450, 0x6831, 0x683c, 0x6832,
- 0x683e, 0x6830, 0x477c, 0x4d69, 0x6839, 0x684f, 0x6847, 0x3f7b,
- 0x3546, 0x365d, 0x6842, 0x325b, 0x3e54, 0x6845, 0x3a5a, 0x4551,
- 0x684a, 0x4a6e, 0x6841, 0x325a, 0x3856, 0x4929, 0x684b, 0x683f,
- 0x6848, 0x6852, 0x6843, 0x6844, 0x463a, 0x6849, 0x6846, 0x4b28,
- 0x684c, 0x3060, 0x6840, 0x684e, 0x684d, 0x476b, 0x6854, 0x685f,
- 0x337e, 0x6862, 0x6850, 0x6855, 0x4d6e, 0x685e, 0x4d55, 0x4e2a,
- 0x4378, 0x336b, 0x4972, 0x6864, 0x4621, 0x3031, 0x685d, 0x6859,
- 0x4172, 0x6853, 0x685b, 0x6860, 0x472c, 0x302a, 0x6858, 0x6861,
- 0x4978, 0x685c, 0x6857, 0x3e55, 0x3d2f, 0x3c2c, 0x4c58, 0x4947,
- 0x6867, 0x6870, 0x685a, 0x3377, 0x3e78, 0x6865, 0x686a, 0x4173,
- 0x6866, 0x686d, 0x435f, 0x686e, 0x4d56, 0x6863, 0x3338, 0x6869,
- 0x686c, 0x4c2c, 0x686f, 0x6868, 0x686b, 0x4b29, 0x4f21, 0x6873,
- 0x687a, 0x6872, 0x3c43, 0x6851, 0x4a4e, 0x4c22, 0x6879, 0x6878,
- 0x6874, 0x6875, 0x3136, 0x6877, 0x6871, 0x4455, 0x6876, 0x307e,
- 0x4222, 0x4a43, 0x687b, 0x6921, 0x4859, 0x687e, 0x3e56, 0x3c49,
- 0x6923, 0x363e, 0x6924, 0x4979, 0x687d, 0x6856, 0x687c, 0x4f4f,
- 0x4622, 0x4973, 0x692b, 0x6931, 0x6932, 0x6925, 0x4776, 0x692f,
- 0x6927, 0x6929, 0x6933, 0x6928, 0x692c, 0x3172, 0x4665, 0x692d,
- 0x6930, 0x6926, 0x4126, 0x692a, 0x3b27, 0x3f45, 0x3730, 0x4c74,
- 0x4c79, 0x3d72, 0x6937, 0x6935, 0x4f4e, 0x6934, 0x4d75, 0x6936,
- 0x6938, 0x6939, 0x693c, 0x693a, 0x4623, 0x693b, 0x484d, 0x692e,
- 0x3d73, 0x693d, 0x6942, 0x4174, 0x6941, 0x6922, 0x6943, 0x4149,
- 0x693e, 0x6940, 0x693f, 0x5d31, 0x5d22, 0x6945, 0x6944, 0x4d76,
- 0x623c, 0x6946, 0x6947, 0x6948, 0x3857, 0x3554, 0x694a, 0x515d,
- 0x3575, 0x4e3a, 0x3673, 0x694b, 0x694c, 0x436e, 0x694d, 0x467a,
- 0x303a, 0x3263, 0x6952, 0x6953, 0x694e, 0x3b3d, 0x694f, 0x4742,
- 0x6950, 0x6951, 0x695b, 0x6955, 0x6958, 0x6954, 0x6956, 0x6957,
- 0x3c58, 0x6959, 0x4341, 0x3756, 0x3342, 0x695c, 0x333f, 0x6961,
- 0x695d, 0x6960, 0x483a, 0x695e, 0x695f, 0x4948, 0x485a, 0x6962,
- 0x427d, 0x696c, 0x6968, 0x326b, 0x6966, 0x4b2a, 0x6967, 0x6964,
- 0x6965, 0x696a, 0x696d, 0x696b, 0x6969, 0x6963, 0x4358, 0x6974,
- 0x4c2a, 0x6972, 0x6973, 0x696e, 0x6970, 0x6971, 0x696f, 0x4066,
- 0x4f39, 0x6978, 0x6979, 0x6a21, 0x3f2a, 0x697b, 0x697e, 0x6976,
- 0x6975, 0x6a22, 0x325c, 0x697c, 0x6a23, 0x697d, 0x697a, 0x4433,
- 0x6977, 0x4768, 0x6a27, 0x4d3b, 0x6a26, 0x6a25, 0x6a2e, 0x6a28,
- 0x6a30, 0x4d66, 0x6a33, 0x6a2a, 0x6a2b, 0x6a2f, 0x6a32, 0x6a31,
- 0x6a29, 0x6a2c, 0x6a3d, 0x6a36, 0x6a34, 0x6a35, 0x6a3a, 0x6a3b,
- 0x332a, 0x3542, 0x6a39, 0x6a24, 0x6a38, 0x6a3c, 0x6a37, 0x6a3e,
- 0x6a40, 0x6a3f, 0x6a42, 0x6a41, 0x695a, 0x6a46, 0x6a43, 0x6a44,
- 0x6a45, 0x6a47, 0x376c, 0x6a49, 0x6a48, 0x3d30, 0x3954, 0x5e27,
- 0x6a4a, 0x3d51, 0x3339, 0x6a4b, 0x3152, 0x3e57, 0x6a4c, 0x3955,
- 0x6a4d, 0x3061, 0x493d, 0x6a4e, 0x3f6a, 0x6a55, 0x6a52, 0x436f,
- 0x6a53, 0x6a50, 0x365e, 0x6a4f, 0x6a56, 0x3736, 0x425e, 0x6a5c,
- 0x6a58, 0x4235, 0x6a57, 0x6a5a, 0x6a51, 0x6a5b, 0x6a5d, 0x486f,
- 0x6a59, 0x6a5e, 0x6a60, 0x3853, 0x6a54, 0x3041, 0x6a5f, 0x3a5b,
- 0x4e76, 0x6a61, 0x6a62, 0x4175, 0x4e22, 0x6a63, 0x4d35, 0x6a64,
- 0x6a65, 0x4a64, 0x6a66, 0x3a40, 0x4e23, 0x6a6b, 0x6a6c, 0x3e58,
- 0x6a6a, 0x4d67, 0x6a67, 0x6a69, 0x403d, 0x3f7e, 0x6a68, 0x6a6d,
- 0x4a23, 0x6a6f, 0x6a6e, 0x336c, 0x4b2b, 0x6a70, 0x6a7c, 0x6a72,
- 0x6a73, 0x6a74, 0x6a75, 0x6a79, 0x6a7a, 0x6a78, 0x6a76, 0x6a71,
- 0x6a77, 0x6a7b, 0x7037, 0x3228, 0x6a7e, 0x365f, 0x6a7d, 0x6b22,
- 0x6b21, 0x6b24, 0x6b23, 0x6b25, 0x3d31, 0x6b26, 0x6b27, 0x6b28,
- 0x403e, 0x4d57, 0x6b29, 0x4a24, 0x4746, 0x6b2a, 0x6b2b, 0x382b,
- 0x352c, 0x6b2c, 0x3b6b, 0x4741, 0x6b2d, 0x3350, 0x6b2e, 0x6b30,
- 0x4d77, 0x6b2f, 0x3f46, 0x6b31, 0x6b32, 0x6b33, 0x3451, 0x6b34,
- 0x6b35, 0x6b36, 0x6b37, 0x3351, 0x6b38, 0x6b39, 0x6b3a, 0x3272,
- 0x3f28, 0x6b3b, 0x6b3c, 0x6b3d, 0x3840, 0x447b, 0x6b3e, 0x3757,
- 0x3f56, 0x6b41, 0x4624, 0x6b40, 0x3731, 0x6b3f, 0x4277, 0x352d,
- 0x6b42, 0x6b43, 0x3e59, 0x376d, 0x6b44, 0x4b2c, 0x405f, 0x3576,
- 0x4c75, 0x414a, 0x6b45, 0x3f47, 0x4370, 0x3e5a, 0x6b46, 0x6b49,
- 0x6b4a, 0x3a3e, 0x4242, 0x6b48, 0x3e5b, 0x493e, 0x6b47, 0x3b6c,
- 0x3153, 0x6b4e, 0x3758, 0x3b6e, 0x3b6d, 0x4f4d, 0x6b4d, 0x6b4c,
- 0x4127, 0x354d, 0x4f43, 0x333a, 0x3e5c, 0x6b4b, 0x6b50, 0x6b51,
- 0x6b4f, 0x3858, 0x4d40, 0x3b6f, 0x4727, 0x6b54, 0x4040, 0x4342,
- 0x4d36, 0x6b57, 0x386c, 0x403f, 0x6b53, 0x6b58, 0x386d, 0x6b55,
- 0x6b56, 0x6b52, 0x4062, 0x4649, 0x432f, 0x325d, 0x4870, 0x3543,
- 0x4434, 0x6b5b, 0x6b59, 0x434c, 0x4041, 0x3452, 0x6b5a, 0x3f5b,
- 0x4e4a, 0x4f40, 0x6b5c, 0x6b67, 0x4435, 0x6b66, 0x6b63, 0x6b6b,
- 0x6b64, 0x6b60, 0x447c, 0x6b5f, 0x6b5d, 0x4d21, 0x3b70, 0x6b61,
- 0x6b5e, 0x6b65, 0x3d74, 0x3841, 0x427a, 0x4b45, 0x315a, 0x3062,
- 0x4625, 0x6b69, 0x6b68, 0x4666, 0x6b6d, 0x6b62, 0x6b6c, 0x6b6e,
- 0x382c, 0x6b6a, 0x3956, 0x3c55, 0x6b6f, 0x4d58, 0x6b72, 0x6b75,
- 0x6b73, 0x4935, 0x6b70, 0x3660, 0x6b74, 0x6b76, 0x6b7a, 0x6b77,
- 0x6b79, 0x6b78, 0x6b7b, 0x3c31, 0x6b7d, 0x6b7c, 0x4968, 0x6c21,
- 0x3759, 0x6b7e, 0x6c22, 0x6c23, 0x3544, 0x6641, 0x3e79, 0x6c24,
- 0x386e, 0x6c25, 0x6c26, 0x3b3e, 0x5a4e, 0x6c27, 0x6c28, 0x3d32,
- 0x6c29, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x432b, 0x6c2e, 0x6c30,
- 0x6c2f, 0x4626, 0x6c31, 0x4b2d, 0x6c32, 0x6c33, 0x6c34, 0x6c35,
- 0x465a, 0x3e5d, 0x6c36, 0x396b, 0x502e, 0x6c37, 0x6c38, 0x493f,
- 0x6c39, 0x6c41, 0x6c3a, 0x6c3c, 0x6c3b, 0x6c3d, 0x4b46, 0x6c3e,
- 0x6c3f, 0x6c40, 0x6c42, 0x332d, 0x4467, 0x4969, 0x3a62, 0x3957,
- 0x494f, 0x325f, 0x484e, 0x6c45, 0x3453, 0x4055, 0x6c44, 0x6c49,
- 0x4379, 0x4c63, 0x6c47, 0x6c48, 0x352e, 0x6c4a, 0x4763, 0x425f,
- 0x4871, 0x453d, 0x6c46, 0x4b47, 0x326c, 0x6c4c, 0x4f28, 0x4442,
- 0x4f45, 0x3b71, 0x6c4b, 0x4231, 0x6c5c, 0x4128, 0x4678, 0x4950,
- 0x6c4f, 0x3b3f, 0x3b72, 0x3e5e, 0x4765, 0x382d, 0x6c4e, 0x6c4d,
- 0x496a, 0x3c41, 0x4552, 0x6c51, 0x6c52, 0x3958, 0x6c50, 0x6c53,
- 0x6c54, 0x6c56, 0x4223, 0x6c55, 0x3466, 0x6c58, 0x6c57, 0x6c59,
- 0x6c5b, 0x6c5d, 0x6c5e, 0x4056, 0x3c4f, 0x6c5f, 0x3352, 0x6c60,
- 0x4176, 0x6c61, 0x6c62, 0x496b, 0x352f, 0x6c63, 0x4436, 0x315b,
- 0x6c64, 0x3c71, 0x3f76, 0x422d, 0x6c67, 0x6c66, 0x6c65, 0x6c6d,
- 0x6c6b, 0x6c68, 0x6c6a, 0x6c69, 0x6c6c, 0x3577, 0x6c70, 0x4057,
- 0x6c71, 0x3859, 0x6c6e, 0x6c6f, 0x4f29, 0x4437, 0x4129, 0x6c72,
- 0x6c75, 0x6c73, 0x6c74, 0x4d59, 0x4627, 0x6c78, 0x6c76, 0x6c77,
- 0x6c79, 0x6d29, 0x6c7c, 0x6c7d, 0x6c7b, 0x6c7a, 0x447d, 0x6d21,
- 0x6d25, 0x6d22, 0x6c7e, 0x6d23, 0x6d24, 0x6d2b, 0x6d26, 0x4058,
- 0x6d28, 0x6d2a, 0x6d27, 0x6d2d, 0x3d33, 0x6d2c, 0x6d2e, 0x6d2f,
- 0x6d32, 0x6d31, 0x6d30, 0x6d34, 0x6d33, 0x4c76, 0x6d36, 0x6d35,
- 0x6d37, 0x6d38, 0x6d3a, 0x6d39, 0x3f48, 0x6d3b, 0x366d, 0x6d3c,
- 0x6d3e, 0x6d3f, 0x6d40, 0x6d3d, 0x6d41, 0x3c56, 0x6d42, 0x3530,
- 0x3733, 0x382e, 0x6d43, 0x4670, 0x453e, 0x6d44, 0x6d47, 0x3c34,
- 0x6d46, 0x6d45, 0x375a, 0x6d48, 0x3353, 0x6d4a, 0x3a5c, 0x6d49,
- 0x6d52, 0x6d4c, 0x6d4e, 0x4a65, 0x6d4b, 0x6d4d, 0x6d51, 0x6d4f,
- 0x3531, 0x6d50, 0x6d53, 0x475a, 0x4e58, 0x3d34, 0x6d54, 0x4d22,
- 0x6d56, 0x6d55, 0x6d59, 0x4d41, 0x6d58, 0x336d, 0x6d57, 0x6d5c,
- 0x6d5b, 0x6d5a, 0x4532, 0x6d5d, 0x6d5e, 0x6d5f, 0x396c, 0x3725,
- 0x6d60, 0x6d61, 0x6d62, 0x3f49, 0x6d63, 0x3c2d, 0x6d64, 0x6d65,
- 0x5221, 0x517e, 0x6d66, 0x6570, 0x6d67, 0x4324, 0x3f2b, 0x4740,
- 0x6d68, 0x4a55, 0x4454, 0x397e, 0x4329, 0x312a, 0x4b78, 0x3f57,
- 0x375e, 0x3661, 0x4a56, 0x6d69, 0x6d6b, 0x6d6a, 0x3260, 0x4676,
- 0x6d6c, 0x4777, 0x4533, 0x6d6d, 0x3d52, 0x6d6f, 0x4c42, 0x6d7e,
- 0x6d71, 0x6d72, 0x4449, 0x4260, 0x4177, 0x4628, 0x6d70, 0x3555,
- 0x6d79, 0x6d76, 0x6e25, 0x4629, 0x4360, 0x6d73, 0x447e, 0x4553,
- 0x6d74, 0x6d78, 0x3f60, 0x4767, 0x444c, 0x4042, 0x6d77, 0x422e,
- 0x4224, 0x6d75, 0x3029, 0x4f22, 0x6d7a, 0x4261, 0x3d35, 0x3f4a,
- 0x6d7c, 0x6d7b, 0x306f, 0x6d7d, 0x492f, 0x6e27, 0x465b, 0x3f6b,
- 0x4359, 0x3678, 0x6e26, 0x4d37, 0x313f, 0x4a57, 0x3261, 0x6e21,
- 0x6e22, 0x6e23, 0x6e24, 0x463b, 0x4323, 0x3063, 0x6e28, 0x6e29,
- 0x7423, 0x423d, 0x6e2a, 0x3173, 0x414c, 0x382f, 0x4d5a, 0x6e2b,
- 0x452c, 0x4178, 0x3c57, 0x6e2c, 0x6e2f, 0x3d65, 0x6e2d, 0x412b,
- 0x412a, 0x3064, 0x4e4b, 0x6e31, 0x4872, 0x6e33, 0x6e32, 0x6e30,
- 0x6364, 0x3454, 0x6d6e, 0x6e35, 0x6e34, 0x6e36, 0x4d38, 0x4661,
- 0x4b2e, 0x6e37, 0x3c59, 0x6e38, 0x6e39, 0x6e3a, 0x4521, 0x306a,
- 0x3959, 0x4f3a, 0x6e3e, 0x3734, 0x6e3b, 0x6e3c, 0x4974, 0x3354,
- 0x4d39, 0x363f, 0x4554, 0x6e3f, 0x6e40, 0x6e41, 0x4522, 0x6e43,
- 0x6e42, 0x4653, 0x6e44, 0x3d36, 0x3c60, 0x475b, 0x4371, 0x3c72,
- 0x3f6c, 0x6e45, 0x6e46, 0x3f5d, 0x6e47, 0x6e48, 0x6e49, 0x4d6f,
- 0x3d37, 0x6e4b, 0x6e4a, 0x395a, 0x3973, 0x3b40, 0x6e4e, 0x3d66,
- 0x6e4d, 0x6e4c, 0x4269, 0x386f, 0x4043, 0x4830, 0x3d39, 0x6e4f,
- 0x3e5f, 0x6e52, 0x6e50, 0x6e51, 0x6e54, 0x6e53, 0x3e7a, 0x6e55,
- 0x6e56, 0x6e57, 0x4850, 0x3a53, 0x3c61, 0x6e58, 0x6e59, 0x4e24,
- 0x3d45, 0x4c6e, 0x4e4c, 0x6e5a, 0x3662, 0x6e5b, 0x4523, 0x6e5e,
- 0x3378, 0x3f4b, 0x6e5c, 0x6e5d, 0x4460, 0x4b55, 0x367c, 0x6e60,
- 0x6e61, 0x6e5f, 0x6e63, 0x465f, 0x3343, 0x6e67, 0x6e64, 0x6e66,
- 0x6e62, 0x6f4f, 0x6e65, 0x4e6b, 0x385a, 0x6e6f, 0x4534, 0x6e6a,
- 0x6e6d, 0x6e6b, 0x6e70, 0x6e71, 0x6e69, 0x6e76, 0x3174, 0x6e68,
- 0x482d, 0x6e6c, 0x3e60, 0x395b, 0x4b48, 0x3664, 0x3d46, 0x463c,
- 0x412d, 0x6e74, 0x6e6e, 0x6e73, 0x4c43, 0x4438, 0x6e75, 0x6e72,
- 0x412c, 0x6e79, 0x6e78, 0x6e77, 0x4b2f, 0x3d7b, 0x6e7a, 0x4a5f,
- 0x3154, 0x4946, 0x4372, 0x3578, 0x6e7c, 0x395d, 0x3b2c, 0x6e7b,
- 0x3f6d, 0x3f6e, 0x6f21, 0x6f23, 0x3e7b, 0x6f22, 0x6f24, 0x3653,
- 0x4945, 0x3c62, 0x4f23, 0x6e7e, 0x3a78, 0x4f3f, 0x6f26, 0x6f25,
- 0x6f27, 0x6e7d, 0x4669, 0x4555, 0x4457, 0x6f2c, 0x4343, 0x6f28,
- 0x6f29, 0x372d, 0x6f2b, 0x3830, 0x6f2a, 0x3e61, 0x3379, 0x6f30,
- 0x3a3f, 0x4179, 0x444a, 0x333b, 0x6f2e, 0x6f2f, 0x4443, 0x6f2d,
- 0x6f31, 0x6f37, 0x6f3a, 0x6f39, 0x452d, 0x6f32, 0x6f33, 0x6f36,
- 0x6f38, 0x3640, 0x6f3b, 0x6f35, 0x6f34, 0x6f3f, 0x6f40, 0x6f41,
- 0x6f3e, 0x6f3d, 0x3e62, 0x462a, 0x6f3c, 0x6f45, 0x6f43, 0x6f44,
- 0x6f42, 0x4278, 0x6f46, 0x6f47, 0x6f49, 0x3455, 0x6f48, 0x4c7a,
- 0x6f54, 0x6f4a, 0x6f4d, 0x6f4b, 0x6f4c, 0x6f4e, 0x6f50, 0x6f51,
- 0x6f52, 0x6f55, 0x6f53, 0x6f56, 0x6f58, 0x6f57, 0x4439, 0x4c67,
- 0x6f59, 0x412e, 0x6f5a, 0x4a44, 0x6f5b, 0x332b, 0x313c, 0x3457,
- 0x3456, 0x6f5c, 0x6f5d, 0x6f5e, 0x6f5f, 0x6f60, 0x3458, 0x3355,
- 0x395e, 0x4836, 0x6f62, 0x6f61, 0x6f63, 0x315c, 0x6f66, 0x6f65,
- 0x6f64, 0x6f67, 0x6f6a, 0x3047, 0x6f68, 0x6f6c, 0x6f6b, 0x6f6e,
- 0x6f6d, 0x6f6f, 0x462e, 0x6f70, 0x6f71, 0x6f73, 0x6f72, 0x496c,
- 0x6f74, 0x6f75, 0x3a65, 0x6f76, 0x6f77, 0x4b49, 0x414b, 0x3024,
- 0x424b, 0x6f78, 0x496d, 0x6f7b, 0x6f79, 0x395f, 0x6f7a, 0x3842,
- 0x4a45, 0x6f7d, 0x7021, 0x6f7e, 0x7022, 0x3121, 0x3f58, 0x3d7c,
- 0x3459, 0x7023, 0x4766, 0x7025, 0x3122, 0x7024, 0x4444, 0x4e4d,
- 0x462b, 0x6f7c, 0x4e26, 0x3831, 0x4d5b, 0x3679, 0x4e34, 0x3728,
- 0x4262, 0x6721, 0x7026, 0x332c, 0x3f6f, 0x3356, 0x7028, 0x7029,
- 0x7027, 0x3764, 0x3a5d, 0x3e63, 0x3123, 0x4e59, 0x702b, 0x6e2e,
- 0x702a, 0x702e, 0x702c, 0x702d, 0x702f, 0x7030, 0x4e6c, 0x7031,
- 0x7032, 0x4049, 0x483b, 0x3f7d, 0x3467, 0x4d3a, 0x326d, 0x3d38,
- 0x385b, 0x7035, 0x7034, 0x3b73, 0x7036, 0x7033, 0x3b28, 0x703a,
- 0x6a2d, 0x5256, 0x3f77, 0x7038, 0x4e25, 0x4671, 0x312b, 0x4063,
- 0x3c36, 0x4a37, 0x3140, 0x4e6d, 0x4d6b, 0x703b, 0x4545, 0x3c7b,
- 0x703c, 0x703d, 0x3f4c, 0x703e, 0x4e6e, 0x7039, 0x7040, 0x7042,
- 0x7041, 0x703f, 0x7043, 0x7044, 0x417a, 0x3262, 0x7045, 0x4c38,
- 0x7046, 0x7047, 0x4f2a, 0x5b31, 0x7048, 0x7049, 0x704a, 0x704e,
- 0x704b, 0x704c, 0x704d, 0x704f, 0x4044, 0x4c77, 0x4045, 0x7050,
- 0x4873, 0x7051, 0x7353, 0x4c4c, 0x7052, 0x7053, 0x7054, 0x3357,
- 0x7056, 0x3f59, 0x7057, 0x3724, 0x7058, 0x705c, 0x705a, 0x705b,
- 0x3373, 0x7059, 0x705d, 0x705e, 0x3048, 0x705f, 0x7060, 0x3e64,
- 0x7061, 0x3547, 0x7064, 0x7063, 0x7062, 0x6b71, 0x4a5c, 0x7065,
- 0x7066, 0x7067, 0x7068, 0x7069, 0x706a, 0x345a, 0x706b, 0x706c,
- 0x4723, 0x706e, 0x323b, 0x7071, 0x7070, 0x3124, 0x3641, 0x4a47,
- 0x443a, 0x3a22, 0x3960, 0x3d67, 0x3f5c, 0x7073, 0x7072, 0x4d42,
- 0x3468, 0x4852, 0x465c, 0x3f7c, 0x4e4e, 0x375b, 0x7076, 0x7075,
- 0x4b4b, 0x462c, 0x3150, 0x7077, 0x7074, 0x4951, 0x4d6a, 0x7078,
- 0x7079, 0x707b, 0x426a, 0x335b, 0x335c, 0x707a, 0x3469, 0x3832,
- 0x346a, 0x453f, 0x4e60, 0x385c, 0x707c, 0x707d, 0x707e, 0x7121,
- 0x7123, 0x7122, 0x4977, 0x7124, 0x7125, 0x7126, 0x7127, 0x7129,
- 0x7128, 0x712a, 0x4874, 0x664c, 0x3f29, 0x3532, 0x712b, 0x712c,
- 0x522c, 0x5d3b, 0x4853, 0x307b, 0x303b, 0x3b74, 0x4b30, 0x3e7e,
- 0x712d, 0x4c5f, 0x712e, 0x4d5c, 0x3142, 0x3b41, 0x712f, 0x326e,
- 0x7130, 0x7131, 0x7133, 0x7134, 0x7136, 0x7132, 0x7135, 0x345b,
- 0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713d, 0x713c, 0x713f,
- 0x7142, 0x713e, 0x7140, 0x7141, 0x7143, 0x3642, 0x3c73, 0x7144,
- 0x7145, 0x3961, 0x7146, 0x333e, 0x474f, 0x7147, 0x7148, 0x435a,
- 0x466b, 0x7149, 0x477d, 0x424c, 0x3158, 0x366e, 0x366f, 0x4373,
- 0x714e, 0x3670, 0x326f, 0x714d, 0x714b, 0x714c, 0x714a, 0x7158,
- 0x714f, 0x7150, 0x7151, 0x7152, 0x7154, 0x7153, 0x3d59, 0x7155,
- 0x7157, 0x3533, 0x7156, 0x417b, 0x3833, 0x7159, 0x424d, 0x715a,
- 0x462d, 0x715b, 0x7160, 0x715e, 0x715d, 0x715f, 0x715c, 0x7162,
- 0x7161, 0x7164, 0x3643, 0x7163, 0x7165, 0x7166, 0x7168, 0x7167,
- 0x7169, 0x716b, 0x716a, 0x397c, 0x716c, 0x716d, 0x333c, 0x716e,
- 0x716f, 0x3f71, 0x7170, 0x7171, 0x7172, 0x7173, 0x3962, 0x7174,
- 0x7175, 0x7176, 0x7177, 0x7178, 0x4831, 0x717a, 0x4926, 0x717b,
- 0x7179, 0x717d, 0x717c, 0x717e, 0x7221, 0x7222, 0x7223, 0x7224,
- 0x7225, 0x7226, 0x7227, 0x7228, 0x7229, 0x722a, 0x722b, 0x722c,
- 0x722d, 0x722e, 0x5d35, 0x722f, 0x6478, 0x3534, 0x3321, 0x3a32,
- 0x7231, 0x7230, 0x4c25, 0x7233, 0x7234, 0x7232, 0x7235, 0x4b62,
- 0x7236, 0x357b, 0x4f25, 0x7237, 0x7239, 0x303e, 0x723a, 0x4a2b,
- 0x7238, 0x723b, 0x723c, 0x723d, 0x723e, 0x723f, 0x4b6e, 0x3b2d,
- 0x3a7a, 0x412f, 0x7240, 0x7243, 0x7241, 0x7244, 0x3871, 0x7242,
- 0x7245, 0x7246, 0x7247, 0x724b, 0x3b2a, 0x4264, 0x724c, 0x7249,
- 0x7248, 0x724a, 0x375f, 0x7250, 0x724f, 0x724e, 0x3033, 0x725a,
- 0x7256, 0x7257, 0x7253, 0x7259, 0x7255, 0x3362, 0x4f4c, 0x7258,
- 0x7254, 0x7252, 0x7251, 0x725c, 0x725f, 0x725e, 0x725d, 0x4949,
- 0x725b, 0x3073, 0x7260, 0x7262, 0x336f, 0x724d, 0x3137, 0x7264,
- 0x7263, 0x7261, 0x432d, 0x4b70, 0x4e5a, 0x7265, 0x7266, 0x7267,
- 0x7268, 0x7269, 0x443b, 0x726a, 0x4837, 0x726f, 0x726b, 0x726c,
- 0x4b31, 0x4c44, 0x4650, 0x7270, 0x7271, 0x463e, 0x726e, 0x726d,
- 0x322a, 0x7279, 0x7278, 0x3175, 0x7276, 0x7275, 0x7273, 0x337b,
- 0x7272, 0x3c32, 0x3229, 0x3963, 0x727c, 0x727b, 0x727a, 0x7277,
- 0x727d, 0x727e, 0x7325, 0x7324, 0x7326, 0x312d, 0x7321, 0x7322,
- 0x3974, 0x4c39, 0x7323, 0x4b32, 0x732b, 0x7327, 0x732c, 0x7329,
- 0x7328, 0x375c, 0x732d, 0x732e, 0x732f, 0x732a, 0x7274, 0x7330,
- 0x4461, 0x7334, 0x7335, 0x7333, 0x7332, 0x7338, 0x7331, 0x7336,
- 0x7337, 0x733a, 0x7339, 0x733c, 0x733d, 0x733e, 0x4f49, 0x733b,
- 0x426b, 0x3a6d, 0x733f, 0x7340, 0x7341, 0x7342, 0x7343, 0x3834,
- 0x7344, 0x7345, 0x3c2f, 0x7346, 0x7347, 0x7348, 0x7349, 0x734c,
- 0x734a, 0x4f3c, 0x734b, 0x4e6f, 0x734d, 0x4e5b, 0x734e, 0x477e,
- 0x734f, 0x7351, 0x7352, 0x7350, 0x396d, 0x4c4d, 0x4b63, 0x5677,
- 0x5d60, 0x4b7b, 0x322b, 0x7354, 0x3550, 0x7355, 0x7356, 0x7357,
- 0x3975, 0x7358, 0x6054, 0x4c5b, 0x4263, 0x7359, 0x735b, 0x735a,
- 0x735c, 0x735d, 0x735e, 0x735f, 0x7360, 0x7361, 0x7362, 0x7363,
- 0x7364, 0x7365, 0x7366, 0x7367, 0x7368, 0x4524, 0x385d, 0x736a,
- 0x414d, 0x736b, 0x736c, 0x4921, 0x736d, 0x736e, 0x6337, 0x6c5a,
- 0x706d, 0x736f, 0x7370, 0x7372, 0x7373, 0x7374, 0x4e70, 0x7371,
- 0x7375, 0x7376, 0x7378, 0x7377, 0x737a, 0x737b, 0x7379, 0x4e36,
- 0x737c, 0x737d, 0x6354, 0x737e, 0x212a, 0x2174, 0x2170, 0x2173,
- 0x2175, 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x2125, 0x213f,
- 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337,
- 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129,
- 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347,
- 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f,
- 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357,
- 0x2358, 0x2359, 0x235a, 0x214e, 0x214f, 0x2130, 0x2132, 0x212e,
- 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368,
- 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370,
- 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378,
- 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2131, 0x216f,
-};
-
-static const Summary16 jisx0208_uni2indx_page00[16] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x1000 }, { 1, 0x0000 }, { 1, 0x0000 },
- { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x118c }, { 6, 0x0053 },
- { 10, 0x0000 }, { 10, 0x0080 }, { 11, 0x0000 }, { 11, 0x0080 },
-};
-static const Summary16 jisx0208_uni2indx_page03[22] = {
- /* 0x0300 */
- { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 },
- { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 },
- { 12, 0x0000 }, { 12, 0xfffe }, { 27, 0x03fb }, { 36, 0xfffe },
- { 51, 0x03fb }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 },
- /* 0x0400 */
- { 60, 0x0002 }, { 61, 0xffff }, { 77, 0xffff }, { 93, 0xffff },
- { 109, 0xffff }, { 125, 0x0002 },
-};
-static const Summary16 jisx0208_uni2indx_page20[50] = {
- /* 0x2000 */
- { 126, 0x0000 }, { 126, 0x3361 }, { 133, 0x0063 }, { 137, 0x080d },
- { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x0000 },
- { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x0000 },
- { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x0000 },
- /* 0x2100 */
- { 141, 0x0008 }, { 142, 0x0000 }, { 142, 0x0800 }, { 143, 0x0000 },
- { 143, 0x0000 }, { 143, 0x0000 }, { 143, 0x0000 }, { 143, 0x0000 },
- { 143, 0x0000 }, { 143, 0x000f }, { 147, 0x0000 }, { 147, 0x0000 },
- { 147, 0x0000 }, { 147, 0x0014 }, { 149, 0x0000 }, { 149, 0x0000 },
- /* 0x2200 */
- { 149, 0x098d }, { 155, 0x6404 }, { 159, 0x1f81 }, { 166, 0x2030 },
- { 169, 0x0000 }, { 169, 0x0004 }, { 170, 0x0cc3 }, { 176, 0x0000 },
- { 176, 0x00cc }, { 180, 0x0000 }, { 180, 0x0020 }, { 181, 0x0000 },
- { 181, 0x0000 }, { 181, 0x0000 }, { 181, 0x0000 }, { 181, 0x0000 },
- /* 0x2300 */
- { 181, 0x0000 }, { 181, 0x0004 },
-};
-static const Summary16 jisx0208_uni2indx_page25[23] = {
- /* 0x2500 */
- { 182, 0x900f }, { 188, 0x3999 }, { 196, 0x9939 }, { 204, 0x9999 },
- { 212, 0x0804 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 },
- { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0003 }, { 216, 0x300c },
- { 220, 0xc8c0 }, { 225, 0x0000 }, { 225, 0x8000 }, { 226, 0x0000 },
- /* 0x2600 */
- { 226, 0x0060 }, { 228, 0x0000 }, { 228, 0x0000 }, { 228, 0x0000 },
- { 228, 0x0005 }, { 230, 0x0000 }, { 230, 0xa400 },
-};
-static const Summary16 jisx0208_uni2indx_page30[16] = {
- /* 0x3000 */
- { 233, 0xffef }, { 248, 0x103f }, { 255, 0x0000 }, { 255, 0x0000 },
- { 255, 0xfffe }, { 270, 0xffff }, { 286, 0xffff }, { 302, 0xffff },
- { 318, 0xffff }, { 334, 0x780f }, { 342, 0xfffe }, { 357, 0xffff },
- { 373, 0xffff }, { 389, 0xffff }, { 405, 0xffff }, { 421, 0x787f },
-};
-static const Summary16 jisx0208_uni2indx_page4e[1307] = {
- /* 0x4e00 */
- { 432, 0x6f8b }, { 442, 0x43f3 }, { 451, 0x2442 }, { 455, 0x9b46 },
- { 463, 0xe82c }, { 470, 0xe3e0 }, { 478, 0x0004 }, { 479, 0x400a },
- { 482, 0x5f65 }, { 492, 0xdb36 }, { 502, 0x7977 }, { 513, 0x0449 },
- { 517, 0xecd7 }, { 528, 0xe3f0 }, { 537, 0x6038 }, { 542, 0x08c5 },
- /* 0x4f00 */
- { 547, 0xe602 }, { 553, 0x3403 }, { 558, 0x8000 }, { 559, 0x3551 },
- { 566, 0xe0c8 }, { 572, 0x7eab }, { 583, 0x8200 }, { 585, 0x9869 },
- { 592, 0xa948 }, { 598, 0x2942 }, { 603, 0xe803 }, { 609, 0x8060 },
- { 612, 0x441c }, { 617, 0xad93 }, { 626, 0xc03a }, { 632, 0x4568 },
- /* 0x5000 */
- { 638, 0xaa60 }, { 644, 0x8656 }, { 651, 0x3f7a }, { 662, 0x0240 },
- { 664, 0x8388 }, { 669, 0x1461 }, { 674, 0x1020 }, { 676, 0x2174 },
- { 682, 0x2021 }, { 685, 0x0702 }, { 689, 0x3000 }, { 691, 0x40bc },
- { 697, 0xa624 }, { 703, 0x4462 }, { 708, 0x60a8 }, { 713, 0x0a20 },
- /* 0x5100 */
- { 716, 0x0217 }, { 721, 0x8574 }, { 728, 0x0402 }, { 730, 0x9c84 },
- { 736, 0x7bfb }, { 749, 0x1415 }, { 754, 0x7f24 }, { 763, 0x11e2 },
- { 769, 0xb665 }, { 778, 0x02ef }, { 786, 0x1f75 }, { 796, 0x20ff },
- { 805, 0x3a70 }, { 812, 0x3840 }, { 816, 0x26c3 }, { 823, 0x6763 },
- /* 0x5200 */
- { 832, 0x4dd9 }, { 841, 0x2092 }, { 845, 0x46b0 }, { 851, 0x0fc9 },
- { 859, 0xbc98 }, { 867, 0x4850 }, { 871, 0x8638 }, { 877, 0xa03f },
- { 885, 0x2388 }, { 890, 0x8816 }, { 895, 0x3e09 }, { 902, 0x5232 },
- { 908, 0x22aa }, { 914, 0xe3a4 }, { 922, 0x00dd }, { 928, 0xc72c },
- /* 0x5300 */
- { 936, 0xa166 }, { 943, 0x26e1 }, { 950, 0x840b }, { 955, 0x8f0a },
- { 962, 0x27eb }, { 972, 0x559e }, { 981, 0xc241 }, { 986, 0x89bb },
- { 995, 0x0014 }, { 997, 0x8540 }, { 1001, 0x6361 }, { 1008, 0x0849 },
- { 1012, 0x7f0c }, { 1021, 0x8ad0 }, { 1027, 0xff3e }, { 1040, 0x05cf },
- /* 0x5400 */
- { 1048, 0xff1a }, { 1059, 0xa803 }, { 1064, 0x7a41 }, { 1071, 0x7b40 },
- { 1078, 0x4745 }, { 1085, 0x8002 }, { 1087, 0x0500 }, { 1089, 0x38eb },
- { 1098, 0xd851 }, { 1105, 0x0005 }, { 1107, 0x9934 }, { 1114, 0x710c },
- { 1120, 0x0397 }, { 1127, 0x0100 }, { 1128, 0x6366 }, { 1136, 0x2404 },
- /* 0x5500 */
- { 1139, 0x80d0 }, { 1143, 0x0051 }, { 1146, 0xc000 }, { 1148, 0x430a },
- { 1153, 0x9071 }, { 1159, 0x30c8 }, { 1164, 0x0008 }, { 1165, 0x5800 },
- { 1168, 0x0e99 }, { 1175, 0xf700 }, { 1182, 0x5f80 }, { 1189, 0x0041 },
- { 1191, 0x00b0 }, { 1194, 0x9410 }, { 1198, 0x0018 }, { 1200, 0x6280 },
- /* 0x5600 */
- { 1204, 0x0240 }, { 1206, 0x09d0 }, { 1211, 0x8200 }, { 1213, 0x0156 },
- { 1218, 0x5004 }, { 1221, 0x0801 }, { 1223, 0x1d10 }, { 1228, 0x0510 },
- { 1231, 0x84c1 }, { 1236, 0x0010 }, { 1237, 0x4025 }, { 1241, 0x1050 },
- { 1244, 0x410f }, { 1250, 0x4d8a }, { 1257, 0x4009 }, { 1260, 0xa60d },
- /* 0x5700 */
- { 1267, 0xab19 }, { 1275, 0x914c }, { 1281, 0x21c0 }, { 1285, 0x0981 },
- { 1289, 0xc485 }, { 1295, 0x0003 }, { 1297, 0x0652 }, { 1302, 0x8000 },
- { 1303, 0x0b04 }, { 1307, 0x0008 }, { 1308, 0x041d }, { 1313, 0x0009 },
- { 1315, 0x4849 }, { 1320, 0x905c }, { 1326, 0x0009 }, { 1328, 0x1690 },
- /* 0x5800 */
- { 1333, 0x0c65 }, { 1339, 0x2220 }, { 1342, 0x8412 }, { 1346, 0x2433 },
- { 1352, 0x0c03 }, { 1356, 0x4796 }, { 1364, 0x0a04 }, { 1367, 0x4225 },
- { 1372, 0x0028 }, { 1374, 0x9088 }, { 1378, 0x4900 }, { 1381, 0x4f08 },
- { 1387, 0x14a2 }, { 1392, 0xd3aa }, { 1401, 0xd830 }, { 1407, 0x3e87 },
- /* 0x5900 */
- { 1416, 0x8604 }, { 1420, 0x1f61 }, { 1428, 0x7ea4 }, { 1437, 0x4186 },
- { 1442, 0xc390 }, { 1448, 0x05b3 }, { 1455, 0x57a5 }, { 1464, 0x2118 },
- { 1468, 0x241e }, { 1474, 0x2a48 }, { 1479, 0x1128 }, { 1483, 0x4a04 },
- { 1487, 0x0a40 }, { 1490, 0x161b }, { 1497, 0x0d60 }, { 1502, 0x8840 },
- /* 0x5a00 */
- { 1505, 0x020a }, { 1508, 0x9502 }, { 1513, 0x8221 }, { 1517, 0x1060 },
- { 1520, 0x0243 }, { 1524, 0x0400 }, { 1525, 0x1444 }, { 1529, 0x8000 },
- { 1530, 0x0000 }, { 1530, 0x0c04 }, { 1533, 0x0000 }, { 1533, 0x7000 },
- { 1536, 0x1a06 }, { 1541, 0x00c1 }, { 1544, 0x024a }, { 1548, 0x0c00 },
- /* 0x5b00 */
- { 1550, 0x1a00 }, { 1553, 0x0040 }, { 1554, 0x1404 }, { 1557, 0x4045 },
- { 1561, 0x0029 }, { 1564, 0xbdb3 }, { 1575, 0x0a78 }, { 1581, 0x052b },
- { 1587, 0xbba9 }, { 1597, 0xbfa0 }, { 1606, 0x407c }, { 1612, 0x8379 },
- { 1620, 0x12fc }, { 1628, 0xe81d }, { 1636, 0x4bf6 }, { 1646, 0xc569 },
- /* 0x5c00 */
- { 1654, 0xeff6 }, { 1667, 0x044a }, { 1671, 0x2115 }, { 1676, 0xff02 },
- { 1685, 0xed63 }, { 1695, 0x402b }, { 1700, 0xd033 }, { 1707, 0x0242 },
- { 1710, 0x1000 }, { 1711, 0x0013 }, { 1714, 0x1b02 }, { 1719, 0x59ca },
- { 1727, 0x00a0 }, { 1729, 0x0200 }, { 1730, 0xa703 }, { 1737, 0x2c41 },
- /* 0x5d00 */
- { 1742, 0x4880 }, { 1745, 0x8ff2 }, { 1755, 0x0204 }, { 1757, 0x0000 },
- { 1757, 0x5800 }, { 1760, 0x1005 }, { 1763, 0x9200 }, { 1766, 0x0048 },
- { 1768, 0x1894 }, { 1773, 0x2001 }, { 1775, 0x5004 }, { 1778, 0x3480 },
- { 1782, 0x3200 }, { 1785, 0x684c }, { 1791, 0x49ea }, { 1799, 0x68be },
- /* 0x5e00 */
- { 1808, 0x184c }, { 1813, 0x2e42 }, { 1819, 0xa820 }, { 1823, 0x21c9 },
- { 1829, 0x50b9 }, { 1836, 0x80b0 }, { 1840, 0x001e }, { 1844, 0xff7c },
- { 1857, 0x849a }, { 1863, 0x14e0 }, { 1868, 0x28c1 }, { 1873, 0x01e0 },
- { 1877, 0x870e }, { 1884, 0xac49 }, { 1891, 0x130f }, { 1898, 0xdddb },
- /* 0x5f00 */
- { 1910, 0xbe1a }, { 1919, 0x89fb }, { 1929, 0xa2e0 }, { 1935, 0x51a2 },
- { 1941, 0x5502 }, { 1946, 0x32ca }, { 1953, 0x3e46 }, { 1961, 0x928b },
- { 1968, 0x1dbf }, { 1979, 0x438f }, { 1987, 0x6703 }, { 1994, 0x3218 },
- { 1999, 0x3028 }, { 2003, 0x33c0 }, { 2009, 0x0811 }, { 2012, 0xa923 },
- /* 0x6000 */
- { 2019, 0xc000 }, { 2021, 0x3a65 }, { 2029, 0x8fe3 }, { 2039, 0x0402 },
- { 2041, 0x2c4e }, { 2048, 0x8625 }, { 2054, 0xbf3d }, { 2066, 0x00a1 },
- { 2069, 0x3a1a }, { 2076, 0x8cd4 }, { 2083, 0x06c9 }, { 2089, 0x317c },
- { 2097, 0x00e0 }, { 2100, 0x950a }, { 2106, 0x018b }, { 2111, 0x0edb },
- /* 0x6100 */
- { 2120, 0xe34b }, { 2129, 0x8c20 }, { 2133, 0x1182 }, { 2137, 0xf010 },
- { 2142, 0x7d94 }, { 2151, 0xa728 }, { 2158, 0xc9ac }, { 2166, 0x40fb },
- { 2174, 0x4484 }, { 2178, 0x0653 }, { 2184, 0x5a90 }, { 2190, 0x4444 },
- { 2194, 0x3fc8 }, { 2203, 0x0001 }, { 2204, 0x0048 }, { 2206, 0xf5d4 },
- /* 0x6200 */
- { 2216, 0x7701 }, { 2223, 0xec57 }, { 2233, 0xc442 }, { 2238, 0x891d },
- { 2245, 0x6b83 }, { 2253, 0x4928 }, { 2258, 0x4109 }, { 2262, 0xd242 },
- { 2268, 0x061d }, { 2274, 0x59fe }, { 2285, 0x1800 }, { 2287, 0x3a22 },
- { 2293, 0xb7e4 }, { 2303, 0x3b9f }, { 2314, 0xf003 }, { 2320, 0xc0ea },
- /* 0x6300 */
- { 2327, 0x1386 }, { 2333, 0x8202 }, { 2336, 0x8980 }, { 2340, 0xe400 },
- { 2344, 0xb200 }, { 2348, 0x10a1 }, { 2352, 0x4b80 }, { 2357, 0x0cc4 },
- { 2362, 0xd309 }, { 2369, 0x8944 }, { 2374, 0x1faf }, { 2385, 0x4834 },
- { 2390, 0x8259 }, { 2396, 0x0c45 }, { 2401, 0x420a }, { 2405, 0x0450 },
- /* 0x6400 */
- { 2408, 0xa040 }, { 2411, 0x10c8 }, { 2415, 0x3140 }, { 2419, 0x4450 },
- { 2423, 0x4004 }, { 2425, 0x0100 }, { 2426, 0x8280 }, { 2429, 0x0540 },
- { 2432, 0x0108 }, { 2434, 0x442c }, { 2439, 0x6a30 }, { 2445, 0x1a05 },
- { 2450, 0x20a6 }, { 2455, 0x0514 }, { 2459, 0x90cf }, { 2467, 0x6456 },
- /* 0x6500 */
- { 2474, 0x0021 }, { 2476, 0x3100 }, { 2479, 0x9c18 }, { 2485, 0xcbf0 },
- { 2494, 0xa120 }, { 2498, 0x63e2 }, { 2506, 0x104c }, { 2510, 0x01b5 },
- { 2516, 0x538c }, { 2523, 0x9a83 }, { 2530, 0xb8b2 }, { 2538, 0x3281 },
- { 2543, 0x987a }, { 2551, 0x0a84 }, { 2555, 0x33e7 }, { 2565, 0x0c02 },
- /* 0x6600 */
- { 2568, 0xd4cc }, { 2576, 0x9018 }, { 2580, 0xa1a1 }, { 2586, 0x9070 },
- { 2591, 0x8a1e }, { 2598, 0xe004 }, { 2602, 0xc3d4 }, { 2610, 0x0451 },
- { 2614, 0x439a }, { 2621, 0x21c2 }, { 2626, 0x4844 }, { 2630, 0x5310 },
- { 2635, 0x0292 }, { 2639, 0x3640 }, { 2644, 0x0241 }, { 2647, 0xf3bd },
- /* 0x6700 */
- { 2659, 0xab09 }, { 2666, 0xe8f0 }, { 2674, 0x7dc0 }, { 2682, 0xa5d2 },
- { 2690, 0xc242 }, { 2695, 0xd24b }, { 2703, 0xa43f }, { 2712, 0xd0af },
- { 2721, 0x1aa0 }, { 2726, 0x34a1 }, { 2732, 0x8247 }, { 2738, 0x03d8 },
- { 2744, 0xc452 }, { 2750, 0x651b }, { 2758, 0xd294 }, { 2765, 0xc83a },
- /* 0x6800 */
- { 2772, 0x001c }, { 2775, 0x40c8 }, { 2779, 0x0e06 }, { 2784, 0x3314 },
- { 2790, 0x614f }, { 2798, 0xb21b }, { 2806, 0x0088 }, { 2808, 0xc0d0 },
- { 2813, 0xa02a }, { 2818, 0xa898 }, { 2824, 0xa1c5 }, { 2831, 0x166b },
- { 2839, 0x2e50 }, { 2845, 0x85b4 }, { 2852, 0xc08b }, { 2858, 0x0604 },
- /* 0x6900 */
- { 2861, 0xf933 }, { 2871, 0x1e04 }, { 2876, 0x056e }, { 2883, 0xa251 },
- { 2889, 0x0400 }, { 2890, 0x7638 }, { 2898, 0xec07 }, { 2906, 0x73b8 },
- { 2915, 0x4406 }, { 2919, 0x1832 }, { 2924, 0x4081 }, { 2927, 0xc816 },
- { 2933, 0x7c8a }, { 2941, 0x6309 }, { 2947, 0x2980 }, { 2951, 0xaa04 },
- /* 0x6a00 */
- { 2956, 0x1c24 }, { 2961, 0xca9c }, { 2969, 0x4e0e }, { 2976, 0x2760 },
- { 2982, 0x0990 }, { 2986, 0x8300 }, { 2989, 0x0046 }, { 2992, 0x8104 },
- { 2995, 0x6011 }, { 2999, 0x1081 }, { 3002, 0x540d }, { 3008, 0x0908 },
- { 3011, 0x000e }, { 3014, 0xcc0a }, { 3020, 0x0500 }, { 3022, 0x0c00 },
- /* 0x6b00 */
- { 3024, 0x0430 }, { 3027, 0xa044 }, { 3031, 0x008b }, { 3035, 0x6784 },
- { 3042, 0x5288 }, { 3047, 0x8a19 }, { 3053, 0x865e }, { 3061, 0x8b18 },
- { 3067, 0x2e59 }, { 3075, 0x4160 }, { 3079, 0x8c10 }, { 3083, 0x9cbe },
- { 3093, 0x6861 }, { 3099, 0x891c }, { 3105, 0x9800 }, { 3108, 0x0008 },
- /* 0x6c00 */
- { 3109, 0x8100 }, { 3111, 0x089a }, { 3116, 0x0018 }, { 3118, 0x4190 },
- { 3122, 0x4007 }, { 3126, 0xe4a1 }, { 3133, 0x0505 }, { 3137, 0x640d },
- { 3143, 0x310e }, { 3149, 0x0e4d }, { 3156, 0x4806 }, { 3160, 0xff0a },
- { 3170, 0x1632 }, { 3176, 0x2aa8 }, { 3182, 0x852e }, { 3189, 0x000b },
- /* 0x6d00 */
- { 3192, 0x1800 }, { 3194, 0xca84 }, { 3200, 0x0e20 }, { 3204, 0x696c },
- { 3212, 0x0032 }, { 3215, 0x1600 }, { 3218, 0x5658 }, { 3225, 0x0390 },
- { 3229, 0x5120 }, { 3233, 0x1a28 }, { 3238, 0x8000 }, { 3239, 0x1124 },
- { 3243, 0x18e1 }, { 3249, 0x4326 }, { 3255, 0x5d52 }, { 3263, 0x0eaa },
- /* 0x6e00 */
- { 3270, 0x0fa0 }, { 3276, 0xae28 }, { 3283, 0xfa7b }, { 3295, 0x4500 },
- { 3298, 0x6408 }, { 3302, 0x8940 }, { 3306, 0xc880 }, { 3310, 0xc044 },
- { 3314, 0x9005 }, { 3318, 0xb141 }, { 3324, 0x8424 }, { 3328, 0x24c4 },
- { 3333, 0x1a34 }, { 3339, 0x603a }, { 3345, 0x9000 }, { 3347, 0xc194 },
- /* 0x6f00 */
- { 3353, 0x8246 }, { 3358, 0x003a }, { 3362, 0x180d }, { 3367, 0xc106 },
- { 3372, 0x0022 }, { 3374, 0x9910 }, { 3379, 0xe050 }, { 3384, 0x1511 },
- { 3389, 0x4057 }, { 3395, 0x0082 }, { 3397, 0x041a }, { 3401, 0x020a },
- { 3404, 0x004f }, { 3409, 0x8930 }, { 3414, 0xd813 }, { 3421, 0x444a },
- /* 0x7000 */
- { 3426, 0x8a02 }, { 3430, 0xed22 }, { 3438, 0x10c0 }, { 3441, 0x4005 },
- { 3444, 0x1000 }, { 3445, 0x0102 }, { 3447, 0x8808 }, { 3450, 0x3101 },
- { 3454, 0x4600 }, { 3457, 0x0204 }, { 3459, 0xf000 }, { 3463, 0x0708 },
- { 3467, 0x8900 }, { 3470, 0xa200 }, { 3473, 0x0000 }, { 3473, 0x2202 },
- /* 0x7100 */
- { 3476, 0x0200 }, { 3477, 0x1610 }, { 3481, 0x0042 }, { 3483, 0x1040 },
- { 3485, 0x5200 }, { 3488, 0x0260 }, { 3491, 0x52f4 }, { 3499, 0x2000 },
- { 3500, 0x8510 }, { 3504, 0x8230 }, { 3508, 0x1100 }, { 3510, 0x4202 },
- { 3513, 0x4308 }, { 3517, 0x80b5 }, { 3523, 0x70e1 }, { 3530, 0x9a20 },
- /* 0x7200 */
- { 3535, 0x2040 }, { 3537, 0x0801 }, { 3539, 0x3500 }, { 3543, 0xfc65 },
- { 3553, 0x19c1 }, { 3559, 0xab04 }, { 3565, 0x0286 }, { 3569, 0x6214 },
- { 3574, 0x0087 }, { 3578, 0x0044 }, { 3580, 0x9085 }, { 3585, 0x0244 },
- { 3588, 0x405c }, { 3593, 0x0a85 }, { 3598, 0x3207 }, { 3604, 0x3380 },
- /* 0x7300 */
- { 3609, 0x0400 }, { 3610, 0xb8c0 }, { 3616, 0xce20 }, { 3622, 0xc0d0 },
- { 3627, 0xc030 }, { 3631, 0x0080 }, { 3632, 0x0508 }, { 3635, 0x0d25 },
- { 3641, 0x0a90 }, { 3645, 0x0040 }, { 3646, 0x0200 }, { 3647, 0x080c },
- { 3650, 0x6505 }, { 3656, 0x4000 }, { 3657, 0x6421 }, { 3662, 0x4102 },
- /* 0x7400 */
- { 3665, 0x0268 }, { 3669, 0x0000 }, { 3669, 0x0024 }, { 3671, 0x847c },
- { 3678, 0x0002 }, { 3679, 0xde20 }, { 3686, 0x8619 }, { 3692, 0x4049 },
- { 3696, 0x0808 }, { 3698, 0x4000 }, { 3699, 0x0084 }, { 3701, 0x2001 },
- { 3703, 0x8400 }, { 3705, 0x1010 }, { 3707, 0x42cd }, { 3714, 0x01c7 },
- /* 0x7500 */
- { 3720, 0x7038 }, { 3726, 0xd52a }, { 3734, 0x1968 }, { 3740, 0x1d8f },
- { 3749, 0xbe50 }, { 3757, 0x3e12 }, { 3764, 0x2ef5 }, { 3774, 0x81d9 },
- { 3781, 0xcec4 }, { 3789, 0x2412 }, { 3793, 0x0828 }, { 3796, 0x732e },
- { 3805, 0x24ac }, { 3811, 0x4b34 }, { 3818, 0x020c }, { 3821, 0xd41d },
- /* 0x7600 */
- { 3829, 0x2a02 }, { 3833, 0x8000 }, { 3834, 0x0097 }, { 3839, 0x0811 },
- { 3842, 0x11c4 }, { 3847, 0x1144 }, { 3851, 0x1786 }, { 3858, 0x7d45 },
- { 3867, 0x49d9 }, { 3875, 0x0649 }, { 3880, 0x4000 }, { 3881, 0x8791 },
- { 3888, 0x254c }, { 3894, 0xd8c4 }, { 3901, 0x44ba }, { 3908, 0x4914 },
- /* 0x7700 */
- { 3913, 0x1b92 }, { 3920, 0xc800 }, { 3923, 0x0271 }, { 3928, 0x1580 },
- { 3932, 0x0081 }, { 3934, 0x0c00 }, { 3936, 0x096a }, { 3942, 0xc200 },
- { 3945, 0x4800 }, { 3947, 0x4002 }, { 3949, 0x3021 }, { 3953, 0xba49 },
- { 3961, 0x2080 }, { 3963, 0x1c80 }, { 3967, 0xe2ac }, { 3975, 0x1008 },
- /* 0x7800 */
- { 3977, 0x1004 }, { 3979, 0x0034 }, { 3982, 0x00e1 }, { 3986, 0x8414 },
- { 3990, 0x0020 }, { 3991, 0x2000 }, { 3992, 0x9800 }, { 3995, 0x1014 },
- { 3998, 0x70c2 }, { 4004, 0x04aa }, { 4009, 0x8688 }, { 4014, 0x5420 },
- { 4018, 0x0c62 }, { 4023, 0x0413 }, { 4027, 0x9180 }, { 4031, 0x2010 },
- /* 0x7900 */
- { 4033, 0x4082 }, { 4036, 0x0206 }, { 4039, 0x1c40 }, { 4043, 0x5400 },
- { 4046, 0x0383 }, { 4051, 0xe4e9 }, { 4060, 0x2125 }, { 4065, 0x8480 },
- { 4068, 0xe433 }, { 4076, 0x2000 }, { 4077, 0x44c0 }, { 4081, 0xe609 },
- { 4088, 0x0a03 }, { 4092, 0x8126 }, { 4097, 0x12da }, { 4104, 0x0801 },
- /* 0x7a00 */
- { 4106, 0x6901 }, { 4111, 0x9790 }, { 4118, 0x4001 }, { 4120, 0xf886 },
- { 4128, 0xe24d }, { 4136, 0x0081 }, { 4138, 0x0a0e }, { 4143, 0xa651 },
- { 4150, 0x011a }, { 4154, 0x81ec }, { 4161, 0xc600 }, { 4165, 0x8441 },
- { 4169, 0xadb8 }, { 4178, 0xb62c }, { 4186, 0xa46f }, { 4195, 0x8741 },
- /* 0x7b00 */
- { 4201, 0x8d54 }, { 4208, 0x4b02 }, { 4213, 0x1161 }, { 4218, 0x0268 },
- { 4222, 0xbb60 }, { 4230, 0x2057 }, { 4236, 0x50a0 }, { 4240, 0x0433 },
- { 4245, 0xa8c0 }, { 4250, 0xb7b4 }, { 4260, 0x2402 }, { 4263, 0x0112 },
- { 4266, 0x9ad3 }, { 4275, 0x2000 }, { 4276, 0x2271 }, { 4282, 0x00c8 },
- /* 0x7c00 */
- { 4285, 0x2081 }, { 4288, 0x809e }, { 4294, 0x0c8a }, { 4299, 0xe180 },
- { 4304, 0xb009 }, { 4309, 0x8151 }, { 4314, 0x1031 }, { 4318, 0x4028 },
- { 4321, 0x2a0e }, { 4327, 0x89a5 }, { 4334, 0x69b6 }, { 4343, 0x620e },
- { 4349, 0x4425 }, { 4354, 0xd144 }, { 4360, 0x8085 }, { 4364, 0x4d54 },
- /* 0x7d00 */
- { 4371, 0x2c75 }, { 4379, 0x1fb1 }, { 4388, 0xd807 }, { 4395, 0x862d },
- { 4402, 0xd87c }, { 4411, 0x4841 }, { 4415, 0x414e }, { 4421, 0x226e },
- { 4428, 0x8200 }, { 4430, 0x9e08 }, { 4436, 0xf80c }, { 4443, 0xed37 },
- { 4454, 0x8c80 }, { 4458, 0x7526 }, { 4466, 0x9313 }, { 4473, 0x0814 },
- /* 0x7e00 */
- { 4476, 0x0e32 }, { 4482, 0xc804 }, { 4486, 0x484e }, { 4492, 0x6ea6 },
- { 4501, 0x2c4a }, { 4507, 0x6670 }, { 4514, 0x26c0 }, { 4519, 0xba01 },
- { 4525, 0xd30c }, { 4532, 0x185d }, { 4539, 0x0000 }, { 4539, 0x0000 },
- { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0000 },
- /* 0x7f00 */
- { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0000 }, { 4539, 0x0540 },
- { 4542, 0x7020 }, { 4546, 0x8133 }, { 4552, 0x4f81 }, { 4559, 0x03a5 },
- { 4565, 0x55ec }, { 4574, 0x6410 }, { 4578, 0xc318 }, { 4584, 0x2344 },
- { 4589, 0x1462 }, { 4594, 0x0034 }, { 4597, 0x0a43 }, { 4602, 0x1a09 },
- /* 0x8000 */
- { 4607, 0x187b }, { 4615, 0x13a5 }, { 4622, 0x0102 }, { 4624, 0xa848 },
- { 4629, 0x0440 }, { 4631, 0xc544 }, { 4637, 0x8106 }, { 4641, 0xe2dd },
- { 4651, 0x1af0 }, { 4658, 0x2d48 }, { 4664, 0xb626 }, { 4672, 0x0416 },
- { 4676, 0x5058 }, { 4681, 0x6e40 }, { 4687, 0x8032 }, { 4691, 0x3112 },
- /* 0x8100 */
- { 4696, 0x07e4 }, { 4703, 0x0c00 }, { 4705, 0x8208 }, { 4708, 0x420a },
- { 4712, 0x4840 }, { 4715, 0x803b }, { 4721, 0x4860 }, { 4725, 0x8713 },
- { 4732, 0x850d }, { 4738, 0x3428 }, { 4743, 0x0319 }, { 4748, 0xe529 },
- { 4756, 0x2345 }, { 4762, 0x870a }, { 4768, 0x25a9 }, { 4775, 0x5c18 },
- /* 0x8200 */
- { 4781, 0x77a6 }, { 4791, 0xd9c5 }, { 4800, 0x5e00 }, { 4805, 0x03e8 },
- { 4811, 0x0081 }, { 4813, 0xa700 }, { 4818, 0xcd54 }, { 4826, 0x41c6 },
- { 4832, 0x2800 }, { 4834, 0xa204 }, { 4838, 0xb860 }, { 4844, 0x2b0a },
- { 4850, 0x0020 }, { 4851, 0xda9e }, { 4861, 0x08ea }, { 4867, 0x0e1a },
- /* 0x8300 */
- { 4873, 0x427c }, { 4880, 0x11c0 }, { 4884, 0x8908 }, { 4888, 0x0376 },
- { 4895, 0x8621 }, { 4900, 0x0105 }, { 4903, 0x0000 }, { 4903, 0x18a8 },
- { 4908, 0x46a0 }, { 4913, 0xc448 }, { 4918, 0x0d05 }, { 4923, 0x2022 },
- { 4926, 0x5422 }, { 4931, 0x9148 }, { 4936, 0x8a01 }, { 4940, 0x2897 },
- /* 0x8400 */
- { 4947, 0x7898 }, { 4954, 0x0008 }, { 4955, 0x1605 }, { 4960, 0x3122 },
- { 4965, 0x4240 }, { 4968, 0x0880 }, { 4970, 0xfa4e }, { 4980, 0x06a2 },
- { 4985, 0x0814 }, { 4988, 0x9211 }, { 4993, 0x2002 }, { 4995, 0x9b04 },
- { 5001, 0x2e52 }, { 5008, 0x0643 }, { 5013, 0x5000 }, { 5015, 0x9010 },
- /* 0x8500 */
- { 5018, 0x0041 }, { 5020, 0x85ba }, { 5028, 0x3042 }, { 5032, 0x2020 },
- { 5034, 0x4f0b }, { 5042, 0x05a0 }, { 5046, 0x2708 }, { 5051, 0x4080 },
- { 5053, 0x0591 }, { 5058, 0x1a93 }, { 5065, 0xdf50 }, { 5074, 0x0600 },
- { 5076, 0xa202 }, { 5080, 0x3021 }, { 5084, 0x0630 }, { 5088, 0x4e80 },
- /* 0x8600 */
- { 5093, 0x0cc4 }, { 5098, 0x04c8 }, { 5102, 0xa004 }, { 5105, 0x8001 },
- { 5107, 0x6000 }, { 5109, 0xd431 }, { 5116, 0x0880 }, { 5118, 0x0a02 },
- { 5121, 0x1c00 }, { 5124, 0x0028 }, { 5126, 0x8e18 }, { 5132, 0x0041 },
- { 5134, 0x6ad0 }, { 5141, 0xca10 }, { 5146, 0xf210 }, { 5152, 0x4b00 },
- /* 0x8700 */
- { 5156, 0x274d }, { 5164, 0x1506 }, { 5169, 0x0220 }, { 5171, 0x8890 },
- { 5175, 0x5a00 }, { 5179, 0x82a8 }, { 5184, 0x4549 }, { 5190, 0x8150 },
- { 5194, 0x2004 }, { 5196, 0x8000 }, { 5197, 0x8804 }, { 5200, 0x2c08 },
- { 5204, 0x08d1 }, { 5209, 0x0005 }, { 5211, 0x8001 }, { 5213, 0x4ac4 },
- /* 0x8800 */
- { 5219, 0xe020 }, { 5223, 0x0062 }, { 5226, 0x008e }, { 5230, 0x0a42 },
- { 5234, 0x3055 }, { 5240, 0x6a8c }, { 5247, 0x090e }, { 5252, 0xe0a5 },
- { 5259, 0x2906 }, { 5264, 0x42c4 }, { 5269, 0x4814 }, { 5273, 0x80b3 },
- { 5279, 0x803e }, { 5285, 0xb330 }, { 5292, 0x0102 }, { 5294, 0x731c },
- /* 0x8900 */
- { 5302, 0x1494 }, { 5307, 0x600d }, { 5312, 0x0c20 }, { 5315, 0x0940 },
- { 5318, 0x301a }, { 5323, 0xc040 }, { 5326, 0xa451 }, { 5332, 0xc094 },
- { 5337, 0x8dca }, { 5345, 0x05c8 }, { 5350, 0x96c2 }, { 5357, 0xa40c },
- { 5362, 0x0001 }, { 5363, 0x3404 }, { 5367, 0x00c8 }, { 5370, 0x0110 },
- /* 0x8a00 */
- { 5372, 0x550d }, { 5379, 0xa9c9 }, { 5387, 0x2428 }, { 5391, 0x1c5a },
- { 5398, 0x0142 }, { 5401, 0x4837 }, { 5408, 0x7a4d }, { 5417, 0x100f },
- { 5422, 0x32b4 }, { 5429, 0x452a }, { 5435, 0x317b }, { 5444, 0x9205 },
- { 5449, 0xb894 }, { 5456, 0x5c44 }, { 5462, 0x68d7 }, { 5471, 0x458a },
- /* 0x8b00 */
- { 5477, 0x5097 }, { 5484, 0x2ed1 }, { 5492, 0x1943 }, { 5498, 0x4208 },
- { 5501, 0xd202 }, { 5506, 0x9d40 }, { 5512, 0x9840 }, { 5516, 0x2097 },
- { 5522, 0x5409 }, { 5527, 0x064d }, { 5533, 0x0000 }, { 5533, 0x0000 },
- { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x0000 },
- /* 0x8c00 */
- { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x0000 }, { 5533, 0x8480 },
- { 5536, 0x5542 }, { 5542, 0x0421 }, { 5545, 0x1c06 }, { 5550, 0x1700 },
- { 5554, 0x7624 }, { 5561, 0x6110 }, { 5565, 0xff87 }, { 5577, 0xb9dd },
- { 5588, 0x659f }, { 5598, 0x5c0a }, { 5604, 0x245d }, { 5611, 0x3c00 },
- /* 0x8d00 */
- { 5615, 0xadb0 }, { 5623, 0x0059 }, { 5627, 0x0000 }, { 5627, 0x0000 },
- { 5627, 0x0000 }, { 5627, 0x0000 }, { 5627, 0x28d0 }, { 5632, 0x009b },
- { 5637, 0x0422 }, { 5640, 0x0200 }, { 5641, 0x0108 }, { 5643, 0x4408 },
- { 5646, 0x9804 }, { 5650, 0xac40 }, { 5655, 0x8d0a }, { 5661, 0x9028 },
- /* 0x8e00 */
- { 5665, 0x8700 }, { 5669, 0xe001 }, { 5673, 0x0400 }, { 5674, 0x0031 },
- { 5677, 0x1794 }, { 5684, 0x8221 }, { 5688, 0x0019 }, { 5691, 0x1054 },
- { 5695, 0x2cb2 }, { 5702, 0x021a }, { 5706, 0x9c02 }, { 5711, 0x4003 },
- { 5714, 0x3d60 }, { 5721, 0x8804 }, { 5724, 0x080c }, { 5727, 0x7900 },
- /* 0x8f00 */
- { 5732, 0x1628 }, { 5737, 0xba3c }, { 5746, 0x8640 }, { 5750, 0xcb08 },
- { 5756, 0x7274 }, { 5764, 0x9080 }, { 5767, 0x001e }, { 5771, 0x0000 },
- { 5771, 0x0000 }, { 5771, 0xd800 }, { 5775, 0xe188 }, { 5781, 0x9c87 },
- { 5789, 0x4034 }, { 5793, 0x0412 }, { 5796, 0xae64 }, { 5804, 0x2791 },
- /* 0x9000 */
- { 5811, 0xe86b }, { 5820, 0xe6fb }, { 5832, 0x408f }, { 5838, 0x5366 },
- { 5846, 0xeea6 }, { 5856, 0x537f }, { 5867, 0xe32b }, { 5876, 0xb5e4 },
- { 5885, 0x869f }, { 5894, 0x0002 }, { 5895, 0x8548 }, { 5900, 0x0122 },
- { 5903, 0x4402 }, { 5906, 0x0800 }, { 5907, 0x2116 }, { 5912, 0x20a0 },
- /* 0x9100 */
- { 5915, 0x0004 }, { 5916, 0x0204 }, { 5918, 0x2000 }, { 5919, 0x0005 },
- { 5921, 0x7e00 }, { 5927, 0x0154 }, { 5931, 0x162c }, { 5937, 0x01ac },
- { 5942, 0x2a84 }, { 5947, 0x1085 }, { 5951, 0x8c14 }, { 5956, 0x0530 },
- { 5960, 0xfbc3 }, { 5971, 0xb943 }, { 5979, 0x00ca }, { 5983, 0x9060 },
- /* 0x9200 */
- { 5987, 0x6000 }, { 5989, 0x4032 }, { 5993, 0x1200 }, { 5995, 0x8090 },
- { 5998, 0x0b30 }, { 6003, 0x4c81 }, { 6008, 0x0054 }, { 6011, 0x4002 },
- { 6013, 0x0029 }, { 6016, 0x1d6a }, { 6024, 0x2000 }, { 6025, 0x0280 },
- { 6027, 0x8000 }, { 6028, 0x0004 }, { 6029, 0x2610 }, { 6033, 0x150c },
- /* 0x9300 */
- { 6038, 0x8040 }, { 6040, 0x0701 }, { 6044, 0xd94d }, { 6053, 0x0c24 },
- { 6057, 0x2810 }, { 6060, 0x1850 }, { 6064, 0x5001 }, { 6067, 0x5020 },
- { 6070, 0x1000 }, { 6071, 0x04d0 }, { 6075, 0x7080 }, { 6079, 0x0201 },
- { 6081, 0x0108 }, { 6083, 0x21c3 }, { 6089, 0x0132 }, { 6093, 0x0000 },
- /* 0x9400 */
- { 6093, 0x0088 }, { 6095, 0x0719 }, { 6101, 0x0802 }, { 6103, 0x0560 },
- { 6107, 0x0012 }, { 6109, 0x4c0e }, { 6115, 0x0405 }, { 6118, 0xf0a1 },
- { 6125, 0x0002 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 },
- { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 },
- /* 0x9500 */
- { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 },
- { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0000 }, { 6126, 0x0080 },
- { 6127, 0x8e8d }, { 6135, 0x035a }, { 6141, 0x21bd }, { 6149, 0x5a04 },
- { 6154, 0x3488 }, { 6159, 0x1170 }, { 6164, 0x0026 }, { 6167, 0x0000 },
- /* 0x9600 */
- { 6167, 0x0000 }, { 6167, 0x1000 }, { 6168, 0xc502 }, { 6173, 0x8804 },
- { 6176, 0xb815 }, { 6183, 0xf801 }, { 6189, 0x147c }, { 6196, 0x25ed },
- { 6205, 0xed60 }, { 6213, 0x1bb0 }, { 6220, 0x0589 }, { 6225, 0x1bd7 },
- { 6235, 0x7af3 }, { 6246, 0x1a62 }, { 6252, 0x0d0c }, { 6257, 0x0ac5 },
- /* 0x9700 */
- { 6263, 0xe5d1 }, { 6272, 0x524a }, { 6278, 0x0490 }, { 6281, 0x6305 },
- { 6287, 0x0354 }, { 6292, 0x5244 }, { 6297, 0x2b57 }, { 6306, 0x1612 },
- { 6311, 0xa872 }, { 6318, 0x1101 }, { 6321, 0x2949 }, { 6327, 0x0018 },
- { 6329, 0x0948 }, { 6333, 0x1008 }, { 6335, 0x6000 }, { 6337, 0x886c },
- /* 0x9800 */
- { 6343, 0x916e }, { 6351, 0x058f }, { 6358, 0x3012 }, { 6362, 0x3990 },
- { 6368, 0xf840 }, { 6374, 0x4930 }, { 6379, 0x8880 }, { 6382, 0x001b },
- { 6386, 0x0000 }, { 6386, 0x0000 }, { 6386, 0x8500 }, { 6389, 0x0042 },
- { 6391, 0x0058 }, { 6394, 0x9800 }, { 6397, 0xea04 }, { 6403, 0x7014 },
- /* 0x9900 */
- { 6408, 0x1628 }, { 6413, 0x611d }, { 6420, 0x5113 }, { 6426, 0x6000 },
- { 6428, 0x1a24 }, { 6433, 0x00a7 }, { 6438, 0x0000 }, { 6438, 0x0000 },
- { 6438, 0x0000 }, { 6438, 0x03c0 }, { 6442, 0x7120 }, { 6447, 0x1018 },
- { 6450, 0x0172 }, { 6455, 0xa927 }, { 6463, 0x6004 }, { 6466, 0x8906 },
- /* 0x9a00 */
- { 6471, 0xc022 }, { 6475, 0x020c }, { 6478, 0x0900 }, { 6480, 0x4081 },
- { 6483, 0x202d }, { 6488, 0x8ca0 }, { 6493, 0x0e34 }, { 6499, 0x0000 },
- { 6499, 0x0000 }, { 6499, 0x0000 }, { 6499, 0x2100 }, { 6501, 0x1101 },
- { 6504, 0x8011 }, { 6507, 0xc11a }, { 6513, 0xec4c }, { 6521, 0x0892 },
- /* 0x9b00 */
- { 6525, 0x0040 }, { 6526, 0x8500 }, { 6529, 0xc7ac }, { 6538, 0x1806 },
- { 6542, 0xe03e }, { 6550, 0x0512 }, { 6554, 0x8000 }, { 6555, 0x0010 },
- { 6556, 0x4008 }, { 6558, 0x80ce }, { 6564, 0x6d01 }, { 6570, 0x0210 },
- { 6572, 0x8641 }, { 6577, 0x0856 }, { 6582, 0x011e }, { 6587, 0x0027 },
- /* 0x9c00 */
- { 6591, 0x3750 }, { 6598, 0x083d }, { 6604, 0xe032 }, { 6610, 0x4e05 },
- { 6616, 0x01c0 }, { 6619, 0x0484 }, { 6622, 0x0081 }, { 6624, 0x0140 },
- { 6626, 0x0000 }, { 6626, 0x0000 }, { 6626, 0x0000 }, { 6626, 0x0000 },
- { 6626, 0x0000 }, { 6626, 0x0000 }, { 6626, 0x1aa0 }, { 6631, 0x0059 },
- /* 0x9d00 */
- { 6635, 0x43c8 }, { 6641, 0x8824 }, { 6645, 0x1d48 }, { 6651, 0xc800 },
- { 6654, 0x0152 }, { 6658, 0x7203 }, { 6664, 0x9013 }, { 6669, 0x0404 },
- { 6671, 0x8280 }, { 6674, 0x0400 }, { 6675, 0x8a10 }, { 6679, 0x0d14 },
- { 6684, 0x8056 }, { 6689, 0x0208 }, { 6691, 0xa040 }, { 6694, 0x2704 },
- /* 0x9e00 */
- { 6699, 0x0000 }, { 6699, 0x4c00 }, { 6702, 0x0000 }, { 6702, 0x0000 },
- { 6702, 0x0000 }, { 6702, 0x0000 }, { 6702, 0x0000 }, { 6702, 0xa320 },
- { 6707, 0x1902 }, { 6711, 0xa0ae }, { 6718, 0x2660 }, { 6723, 0xdf00 },
- { 6730, 0xf010 }, { 6735, 0x7b15 }, { 6744, 0x8121 }, { 6748, 0x3ad0 },
- /* 0x9f00 */
- { 6755, 0x4180 }, { 6758, 0x0028 }, { 6760, 0x1003 }, { 6763, 0x4800 },
- { 6765, 0xcc00 }, { 6769, 0x8014 }, { 6772, 0x14cf }, { 6780, 0x00c4 },
- { 6783, 0x2000 }, { 6784, 0x3020 }, { 6787, 0x0001 },
-};
-static const Summary16 jisx0208_uni2indx_pageff[15] = {
- /* 0xff00 */
- { 6788, 0xdf7a }, { 6800, 0xffff }, { 6816, 0xffff }, { 6832, 0xefff },
- { 6847, 0xffff }, { 6863, 0x3fff }, { 6877, 0x0000 }, { 6877, 0x0000 },
- { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 },
- { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0028 },
-};
-
-static int
-jisx0208_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- const Summary16 *summary = NULL;
- if (wc < 0x0100)
- summary = &jisx0208_uni2indx_page00[(wc>>4)];
- else if (wc >= 0x0300 && wc < 0x0460)
- summary = &jisx0208_uni2indx_page03[(wc>>4)-0x030];
- else if (wc >= 0x2000 && wc < 0x2320)
- summary = &jisx0208_uni2indx_page20[(wc>>4)-0x200];
- else if (wc >= 0x2500 && wc < 0x2670)
- summary = &jisx0208_uni2indx_page25[(wc>>4)-0x250];
- else if (wc >= 0x3000 && wc < 0x3100)
- summary = &jisx0208_uni2indx_page30[(wc>>4)-0x300];
- else if (wc >= 0x4e00 && wc < 0x9fb0)
- summary = &jisx0208_uni2indx_page4e[(wc>>4)-0x4e0];
- else if (wc >= 0xff00 && wc < 0xfff0)
- summary = &jisx0208_uni2indx_pageff[(wc>>4)-0xff0];
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- unsigned short c;
- /* Keep in `used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add `summary->indx' and the number of bits set in `used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- c = jisx0208_2charset[summary->indx + used];
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/jisx0212.h b/nx-X11/lib/X11/lcUniConv/jisx0212.h
deleted file mode 100644
index 05cca5203..000000000
--- a/nx-X11/lib/X11/lcUniConv/jisx0212.h
+++ /dev/null
@@ -1,2163 +0,0 @@
-
-/*
- * JISX0212.1990-0
- */
-
-static const unsigned short jisx0212_2uni_page22[81] = {
- /* 0x22 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x02d8, 0x02c7,
- 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, 0x007e, 0x0384,
- 0x0385, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0x00a1, 0x00a6, 0x00bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0x00ba, 0x00aa, 0x00a9, 0x00ae, 0x2122, 0x00a4,
- 0x2116,
-};
-static const unsigned short jisx0212_2uni_page26[188] = {
- /* 0x26 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0xfffd, 0x038c, 0xfffd,
- 0x038e, 0x03ab, 0xfffd, 0x038f, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03c2,
- 0x03cd, 0x03cb, 0x03b0, 0x03ce, 0xfffd, 0xfffd,
- /* 0x27 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408,
- 0x0409, 0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458,
- 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f,
-};
-static const unsigned short jisx0212_2uni_page29[275] = {
- /* 0x29 */
- 0x00c6, 0x0110, 0xfffd, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x0141,
- 0x013f, 0xfffd, 0x014a, 0x00d8, 0x0152, 0xfffd, 0x0166, 0x00de,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0142,
- 0x0140, 0x0149, 0x014b, 0x00f8, 0x0153, 0x00df, 0x0167, 0x00fe,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x2a */
- 0x00c1, 0x00c0, 0x00c4, 0x00c2, 0x0102, 0x01cd, 0x0100, 0x0104,
- 0x00c5, 0x00c3, 0x0106, 0x0108, 0x010c, 0x00c7, 0x010a, 0x010e,
- 0x00c9, 0x00c8, 0x00cb, 0x00ca, 0x011a, 0x0116, 0x0112, 0x0118,
- 0xfffd, 0x011c, 0x011e, 0x0122, 0x0120, 0x0124, 0x00cd, 0x00cc,
- 0x00cf, 0x00ce, 0x01cf, 0x0130, 0x012a, 0x012e, 0x0128, 0x0134,
- 0x0136, 0x0139, 0x013d, 0x013b, 0x0143, 0x0147, 0x0145, 0x00d1,
- 0x00d3, 0x00d2, 0x00d6, 0x00d4, 0x01d1, 0x0150, 0x014c, 0x00d5,
- 0x0154, 0x0158, 0x0156, 0x015a, 0x015c, 0x0160, 0x015e, 0x0164,
- 0x0162, 0x00da, 0x00d9, 0x00dc, 0x00db, 0x016c, 0x01d3, 0x0170,
- 0x016a, 0x0172, 0x016e, 0x0168, 0x01d7, 0x01db, 0x01d9, 0x01d5,
- 0x0174, 0x00dd, 0x0178, 0x0176, 0x0179, 0x017d, 0x017b, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x2b */
- 0x00e1, 0x00e0, 0x00e4, 0x00e2, 0x0103, 0x01ce, 0x0101, 0x0105,
- 0x00e5, 0x00e3, 0x0107, 0x0109, 0x010d, 0x00e7, 0x010b, 0x010f,
- 0x00e9, 0x00e8, 0x00eb, 0x00ea, 0x011b, 0x0117, 0x0113, 0x0119,
- 0x01f5, 0x011d, 0x011f, 0xfffd, 0x0121, 0x0125, 0x00ed, 0x00ec,
- 0x00ef, 0x00ee, 0x01d0, 0xfffd, 0x012b, 0x012f, 0x0129, 0x0135,
- 0x0137, 0x013a, 0x013e, 0x013c, 0x0144, 0x0148, 0x0146, 0x00f1,
- 0x00f3, 0x00f2, 0x00f6, 0x00f4, 0x01d2, 0x0151, 0x014d, 0x00f5,
- 0x0155, 0x0159, 0x0157, 0x015b, 0x015d, 0x0161, 0x015f, 0x0165,
- 0x0163, 0x00fa, 0x00f9, 0x00fc, 0x00fb, 0x016d, 0x01d4, 0x0171,
- 0x016b, 0x0173, 0x016f, 0x0169, 0x01d8, 0x01dc, 0x01da, 0x01d6,
- 0x0175, 0x00fd, 0x00ff, 0x0177, 0x017a, 0x017e, 0x017c,
-};
-static const unsigned short jisx0212_2uni_page30[5801] = {
- /* 0x30 */
- 0x4e02, 0x4e04, 0x4e05, 0x4e0c, 0x4e12, 0x4e1f, 0x4e23, 0x4e24,
- 0x4e28, 0x4e2b, 0x4e2e, 0x4e2f, 0x4e30, 0x4e35, 0x4e40, 0x4e41,
- 0x4e44, 0x4e47, 0x4e51, 0x4e5a, 0x4e5c, 0x4e63, 0x4e68, 0x4e69,
- 0x4e74, 0x4e75, 0x4e79, 0x4e7f, 0x4e8d, 0x4e96, 0x4e97, 0x4e9d,
- 0x4eaf, 0x4eb9, 0x4ec3, 0x4ed0, 0x4eda, 0x4edb, 0x4ee0, 0x4ee1,
- 0x4ee2, 0x4ee8, 0x4eef, 0x4ef1, 0x4ef3, 0x4ef5, 0x4efd, 0x4efe,
- 0x4eff, 0x4f00, 0x4f02, 0x4f03, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12,
- 0x4f15, 0x4f16, 0x4f17, 0x4f19, 0x4f2e, 0x4f31, 0x4f60, 0x4f33,
- 0x4f35, 0x4f37, 0x4f39, 0x4f3b, 0x4f3e, 0x4f40, 0x4f42, 0x4f48,
- 0x4f49, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, 0x4f58, 0x4f5f,
- 0x4f63, 0x4f6a, 0x4f6c, 0x4f6e, 0x4f71, 0x4f77, 0x4f78, 0x4f79,
- 0x4f7a, 0x4f7d, 0x4f7e, 0x4f81, 0x4f82, 0x4f84,
- /* 0x31 */
- 0x4f85, 0x4f89, 0x4f8a, 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93,
- 0x4f94, 0x4f97, 0x4f99, 0x4f9a, 0x4f9e, 0x4f9f, 0x4fb2, 0x4fb7,
- 0x4fb9, 0x4fbb, 0x4fbc, 0x4fbd, 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc5,
- 0x4fc6, 0x4fc8, 0x4fc9, 0x4fcb, 0x4fcc, 0x4fcd, 0x4fcf, 0x4fd2,
- 0x4fdc, 0x4fe0, 0x4fe2, 0x4ff0, 0x4ff2, 0x4ffc, 0x4ffd, 0x4fff,
- 0x5000, 0x5001, 0x5004, 0x5007, 0x500a, 0x500c, 0x500e, 0x5010,
- 0x5013, 0x5017, 0x5018, 0x501b, 0x501c, 0x501d, 0x501e, 0x5022,
- 0x5027, 0x502e, 0x5030, 0x5032, 0x5033, 0x5035, 0x5040, 0x5041,
- 0x5042, 0x5045, 0x5046, 0x504a, 0x504c, 0x504e, 0x5051, 0x5052,
- 0x5053, 0x5057, 0x5059, 0x505f, 0x5060, 0x5062, 0x5063, 0x5066,
- 0x5067, 0x506a, 0x506d, 0x5070, 0x5071, 0x503b, 0x5081, 0x5083,
- 0x5084, 0x5086, 0x508a, 0x508e, 0x508f, 0x5090,
- /* 0x32 */
- 0x5092, 0x5093, 0x5094, 0x5096, 0x509b, 0x509c, 0x509e, 0x509f,
- 0x50a0, 0x50a1, 0x50a2, 0x50aa, 0x50af, 0x50b0, 0x50b9, 0x50ba,
- 0x50bd, 0x50c0, 0x50c3, 0x50c4, 0x50c7, 0x50cc, 0x50ce, 0x50d0,
- 0x50d3, 0x50d4, 0x50d8, 0x50dc, 0x50dd, 0x50df, 0x50e2, 0x50e4,
- 0x50e6, 0x50e8, 0x50e9, 0x50ef, 0x50f1, 0x50f6, 0x50fa, 0x50fe,
- 0x5103, 0x5106, 0x5107, 0x5108, 0x510b, 0x510c, 0x510d, 0x510e,
- 0x50f2, 0x5110, 0x5117, 0x5119, 0x511b, 0x511c, 0x511d, 0x511e,
- 0x5123, 0x5127, 0x5128, 0x512c, 0x512d, 0x512f, 0x5131, 0x5133,
- 0x5134, 0x5135, 0x5138, 0x5139, 0x5142, 0x514a, 0x514f, 0x5153,
- 0x5155, 0x5157, 0x5158, 0x515f, 0x5164, 0x5166, 0x517e, 0x5183,
- 0x5184, 0x518b, 0x518e, 0x5198, 0x519d, 0x51a1, 0x51a3, 0x51ad,
- 0x51b8, 0x51ba, 0x51bc, 0x51be, 0x51bf, 0x51c2,
- /* 0x33 */
- 0x51c8, 0x51cf, 0x51d1, 0x51d2, 0x51d3, 0x51d5, 0x51d8, 0x51de,
- 0x51e2, 0x51e5, 0x51ee, 0x51f2, 0x51f3, 0x51f4, 0x51f7, 0x5201,
- 0x5202, 0x5205, 0x5212, 0x5213, 0x5215, 0x5216, 0x5218, 0x5222,
- 0x5228, 0x5231, 0x5232, 0x5235, 0x523c, 0x5245, 0x5249, 0x5255,
- 0x5257, 0x5258, 0x525a, 0x525c, 0x525f, 0x5260, 0x5261, 0x5266,
- 0x526e, 0x5277, 0x5278, 0x5279, 0x5280, 0x5282, 0x5285, 0x528a,
- 0x528c, 0x5293, 0x5295, 0x5296, 0x5297, 0x5298, 0x529a, 0x529c,
- 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52af, 0x52b0, 0x52b6, 0x52b7,
- 0x52b8, 0x52ba, 0x52bb, 0x52bd, 0x52c0, 0x52c4, 0x52c6, 0x52c8,
- 0x52cc, 0x52cf, 0x52d1, 0x52d4, 0x52d6, 0x52db, 0x52dc, 0x52e1,
- 0x52e5, 0x52e8, 0x52e9, 0x52ea, 0x52ec, 0x52f0, 0x52f1, 0x52f4,
- 0x52f6, 0x52f7, 0x5300, 0x5303, 0x530a, 0x530b,
- /* 0x34 */
- 0x530c, 0x5311, 0x5313, 0x5318, 0x531b, 0x531c, 0x531e, 0x531f,
- 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, 0x532c, 0x532d, 0x5330,
- 0x5332, 0x5335, 0x533c, 0x533d, 0x533e, 0x5342, 0x534c, 0x534b,
- 0x5359, 0x535b, 0x5361, 0x5363, 0x5365, 0x536c, 0x536d, 0x5372,
- 0x5379, 0x537e, 0x5383, 0x5387, 0x5388, 0x538e, 0x5393, 0x5394,
- 0x5399, 0x539d, 0x53a1, 0x53a4, 0x53aa, 0x53ab, 0x53af, 0x53b2,
- 0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53ba, 0x53bd, 0x53c0, 0x53c5,
- 0x53cf, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dd, 0x53de, 0x53e0,
- 0x53e6, 0x53e7, 0x53f5, 0x5402, 0x5413, 0x541a, 0x5421, 0x5427,
- 0x5428, 0x542a, 0x542f, 0x5431, 0x5434, 0x5435, 0x5443, 0x5444,
- 0x5447, 0x544d, 0x544f, 0x545e, 0x5462, 0x5464, 0x5466, 0x5467,
- 0x5469, 0x546b, 0x546d, 0x546e, 0x5474, 0x547f,
- /* 0x35 */
- 0x5481, 0x5483, 0x5485, 0x5488, 0x5489, 0x548d, 0x5491, 0x5495,
- 0x5496, 0x549c, 0x549f, 0x54a1, 0x54a6, 0x54a7, 0x54a9, 0x54aa,
- 0x54ad, 0x54ae, 0x54b1, 0x54b7, 0x54b9, 0x54ba, 0x54bb, 0x54bf,
- 0x54c6, 0x54ca, 0x54cd, 0x54ce, 0x54e0, 0x54ea, 0x54ec, 0x54ef,
- 0x54f6, 0x54fc, 0x54fe, 0x54ff, 0x5500, 0x5501, 0x5505, 0x5508,
- 0x5509, 0x550c, 0x550d, 0x550e, 0x5515, 0x552a, 0x552b, 0x5532,
- 0x5535, 0x5536, 0x553b, 0x553c, 0x553d, 0x5541, 0x5547, 0x5549,
- 0x554a, 0x554d, 0x5550, 0x5551, 0x5558, 0x555a, 0x555b, 0x555e,
- 0x5560, 0x5561, 0x5564, 0x5566, 0x557f, 0x5581, 0x5582, 0x5586,
- 0x5588, 0x558e, 0x558f, 0x5591, 0x5592, 0x5593, 0x5594, 0x5597,
- 0x55a3, 0x55a4, 0x55ad, 0x55b2, 0x55bf, 0x55c1, 0x55c3, 0x55c6,
- 0x55c9, 0x55cb, 0x55cc, 0x55ce, 0x55d1, 0x55d2,
- /* 0x36 */
- 0x55d3, 0x55d7, 0x55d8, 0x55db, 0x55de, 0x55e2, 0x55e9, 0x55f6,
- 0x55ff, 0x5605, 0x5608, 0x560a, 0x560d, 0x560e, 0x560f, 0x5610,
- 0x5611, 0x5612, 0x5619, 0x562c, 0x5630, 0x5633, 0x5635, 0x5637,
- 0x5639, 0x563b, 0x563c, 0x563d, 0x563f, 0x5640, 0x5641, 0x5643,
- 0x5644, 0x5646, 0x5649, 0x564b, 0x564d, 0x564f, 0x5654, 0x565e,
- 0x5660, 0x5661, 0x5662, 0x5663, 0x5666, 0x5669, 0x566d, 0x566f,
- 0x5671, 0x5672, 0x5675, 0x5684, 0x5685, 0x5688, 0x568b, 0x568c,
- 0x5695, 0x5699, 0x569a, 0x569d, 0x569e, 0x569f, 0x56a6, 0x56a7,
- 0x56a8, 0x56a9, 0x56ab, 0x56ac, 0x56ad, 0x56b1, 0x56b3, 0x56b7,
- 0x56be, 0x56c5, 0x56c9, 0x56ca, 0x56cb, 0x56cf, 0x56d0, 0x56cc,
- 0x56cd, 0x56d9, 0x56dc, 0x56dd, 0x56df, 0x56e1, 0x56e4, 0x56e5,
- 0x56e6, 0x56e7, 0x56e8, 0x56f1, 0x56eb, 0x56ed,
- /* 0x37 */
- 0x56f6, 0x56f7, 0x5701, 0x5702, 0x5707, 0x570a, 0x570c, 0x5711,
- 0x5715, 0x571a, 0x571b, 0x571d, 0x5720, 0x5722, 0x5723, 0x5724,
- 0x5725, 0x5729, 0x572a, 0x572c, 0x572e, 0x572f, 0x5733, 0x5734,
- 0x573d, 0x573e, 0x573f, 0x5745, 0x5746, 0x574c, 0x574d, 0x5752,
- 0x5762, 0x5765, 0x5767, 0x5768, 0x576b, 0x576d, 0x576e, 0x576f,
- 0x5770, 0x5771, 0x5773, 0x5774, 0x5775, 0x5777, 0x5779, 0x577a,
- 0x577b, 0x577c, 0x577e, 0x5781, 0x5783, 0x578c, 0x5794, 0x5797,
- 0x5799, 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a1, 0x5795,
- 0x57a7, 0x57a8, 0x57a9, 0x57ac, 0x57b8, 0x57bd, 0x57c7, 0x57c8,
- 0x57cc, 0x57cf, 0x57d5, 0x57dd, 0x57de, 0x57e4, 0x57e6, 0x57e7,
- 0x57e9, 0x57ed, 0x57f0, 0x57f5, 0x57f6, 0x57f8, 0x57fd, 0x57fe,
- 0x57ff, 0x5803, 0x5804, 0x5808, 0x5809, 0x57e1,
- /* 0x38 */
- 0x580c, 0x580d, 0x581b, 0x581e, 0x581f, 0x5820, 0x5826, 0x5827,
- 0x582d, 0x5832, 0x5839, 0x583f, 0x5849, 0x584c, 0x584d, 0x584f,
- 0x5850, 0x5855, 0x585f, 0x5861, 0x5864, 0x5867, 0x5868, 0x5878,
- 0x587c, 0x587f, 0x5880, 0x5881, 0x5887, 0x5888, 0x5889, 0x588a,
- 0x588c, 0x588d, 0x588f, 0x5890, 0x5894, 0x5896, 0x589d, 0x58a0,
- 0x58a1, 0x58a2, 0x58a6, 0x58a9, 0x58b1, 0x58b2, 0x58c4, 0x58bc,
- 0x58c2, 0x58c8, 0x58cd, 0x58ce, 0x58d0, 0x58d2, 0x58d4, 0x58d6,
- 0x58da, 0x58dd, 0x58e1, 0x58e2, 0x58e9, 0x58f3, 0x5905, 0x5906,
- 0x590b, 0x590c, 0x5912, 0x5913, 0x5914, 0x8641, 0x591d, 0x5921,
- 0x5923, 0x5924, 0x5928, 0x592f, 0x5930, 0x5933, 0x5935, 0x5936,
- 0x593f, 0x5943, 0x5946, 0x5952, 0x5953, 0x5959, 0x595b, 0x595d,
- 0x595e, 0x595f, 0x5961, 0x5963, 0x596b, 0x596d,
- /* 0x39 */
- 0x596f, 0x5972, 0x5975, 0x5976, 0x5979, 0x597b, 0x597c, 0x598b,
- 0x598c, 0x598e, 0x5992, 0x5995, 0x5997, 0x599f, 0x59a4, 0x59a7,
- 0x59ad, 0x59ae, 0x59af, 0x59b0, 0x59b3, 0x59b7, 0x59ba, 0x59bc,
- 0x59c1, 0x59c3, 0x59c4, 0x59c8, 0x59ca, 0x59cd, 0x59d2, 0x59dd,
- 0x59de, 0x59df, 0x59e3, 0x59e4, 0x59e7, 0x59ee, 0x59ef, 0x59f1,
- 0x59f2, 0x59f4, 0x59f7, 0x5a00, 0x5a04, 0x5a0c, 0x5a0d, 0x5a0e,
- 0x5a12, 0x5a13, 0x5a1e, 0x5a23, 0x5a24, 0x5a27, 0x5a28, 0x5a2a,
- 0x5a2d, 0x5a30, 0x5a44, 0x5a45, 0x5a47, 0x5a48, 0x5a4c, 0x5a50,
- 0x5a55, 0x5a5e, 0x5a63, 0x5a65, 0x5a67, 0x5a6d, 0x5a77, 0x5a7a,
- 0x5a7b, 0x5a7e, 0x5a8b, 0x5a90, 0x5a93, 0x5a96, 0x5a99, 0x5a9c,
- 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa2, 0x5aa7, 0x5aac, 0x5ab1, 0x5ab2,
- 0x5ab3, 0x5ab5, 0x5ab8, 0x5aba, 0x5abb, 0x5abf,
- /* 0x3a */
- 0x5ac4, 0x5ac6, 0x5ac8, 0x5acf, 0x5ada, 0x5adc, 0x5ae0, 0x5ae5,
- 0x5aea, 0x5aee, 0x5af5, 0x5af6, 0x5afd, 0x5b00, 0x5b01, 0x5b08,
- 0x5b17, 0x5b34, 0x5b19, 0x5b1b, 0x5b1d, 0x5b21, 0x5b25, 0x5b2d,
- 0x5b38, 0x5b41, 0x5b4b, 0x5b4c, 0x5b52, 0x5b56, 0x5b5e, 0x5b68,
- 0x5b6e, 0x5b6f, 0x5b7c, 0x5b7d, 0x5b7e, 0x5b7f, 0x5b81, 0x5b84,
- 0x5b86, 0x5b8a, 0x5b8e, 0x5b90, 0x5b91, 0x5b93, 0x5b94, 0x5b96,
- 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5baf, 0x5bb1, 0x5bb2, 0x5bb7,
- 0x5bba, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bcd, 0x5bcf, 0x5bd6, 0x5bd7,
- 0x5bd8, 0x5bd9, 0x5bda, 0x5be0, 0x5bef, 0x5bf1, 0x5bf4, 0x5bfd,
- 0x5c0c, 0x5c17, 0x5c1e, 0x5c1f, 0x5c23, 0x5c26, 0x5c29, 0x5c2b,
- 0x5c2c, 0x5c2e, 0x5c30, 0x5c32, 0x5c35, 0x5c36, 0x5c59, 0x5c5a,
- 0x5c5c, 0x5c62, 0x5c63, 0x5c67, 0x5c68, 0x5c69,
- /* 0x3b */
- 0x5c6d, 0x5c70, 0x5c74, 0x5c75, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d,
- 0x5c87, 0x5c88, 0x5c8a, 0x5c8f, 0x5c92, 0x5c9d, 0x5c9f, 0x5ca0,
- 0x5ca2, 0x5ca3, 0x5ca6, 0x5caa, 0x5cb2, 0x5cb4, 0x5cb5, 0x5cba,
- 0x5cc9, 0x5ccb, 0x5cd2, 0x5cdd, 0x5cd7, 0x5cee, 0x5cf1, 0x5cf2,
- 0x5cf4, 0x5d01, 0x5d06, 0x5d0d, 0x5d12, 0x5d2b, 0x5d23, 0x5d24,
- 0x5d26, 0x5d27, 0x5d31, 0x5d34, 0x5d39, 0x5d3d, 0x5d3f, 0x5d42,
- 0x5d43, 0x5d46, 0x5d48, 0x5d55, 0x5d51, 0x5d59, 0x5d4a, 0x5d5f,
- 0x5d60, 0x5d61, 0x5d62, 0x5d64, 0x5d6a, 0x5d6d, 0x5d70, 0x5d79,
- 0x5d7a, 0x5d7e, 0x5d7f, 0x5d81, 0x5d83, 0x5d88, 0x5d8a, 0x5d92,
- 0x5d93, 0x5d94, 0x5d95, 0x5d99, 0x5d9b, 0x5d9f, 0x5da0, 0x5da7,
- 0x5dab, 0x5db0, 0x5db4, 0x5db8, 0x5db9, 0x5dc3, 0x5dc7, 0x5dcb,
- 0x5dd0, 0x5dce, 0x5dd8, 0x5dd9, 0x5de0, 0x5de4,
- /* 0x3c */
- 0x5de9, 0x5df8, 0x5df9, 0x5e00, 0x5e07, 0x5e0d, 0x5e12, 0x5e14,
- 0x5e15, 0x5e18, 0x5e1f, 0x5e20, 0x5e2e, 0x5e28, 0x5e32, 0x5e35,
- 0x5e3e, 0x5e4b, 0x5e50, 0x5e49, 0x5e51, 0x5e56, 0x5e58, 0x5e5b,
- 0x5e5c, 0x5e5e, 0x5e68, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e,
- 0x5e70, 0x5e80, 0x5e8b, 0x5e8e, 0x5ea2, 0x5ea4, 0x5ea5, 0x5ea8,
- 0x5eaa, 0x5eac, 0x5eb1, 0x5eb3, 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec6,
- 0x5ecc, 0x5ecb, 0x5ece, 0x5ed1, 0x5ed2, 0x5ed4, 0x5ed5, 0x5edc,
- 0x5ede, 0x5ee5, 0x5eeb, 0x5f02, 0x5f06, 0x5f07, 0x5f08, 0x5f0e,
- 0x5f19, 0x5f1c, 0x5f1d, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28,
- 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f34, 0x5f36, 0x5f3b, 0x5f3d,
- 0x5f3f, 0x5f40, 0x5f44, 0x5f45, 0x5f47, 0x5f4d, 0x5f50, 0x5f54,
- 0x5f58, 0x5f5b, 0x5f60, 0x5f63, 0x5f64, 0x5f67,
- /* 0x3d */
- 0x5f6f, 0x5f72, 0x5f74, 0x5f75, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e,
- 0x5f89, 0x5f8d, 0x5f8f, 0x5f96, 0x5f9c, 0x5f9d, 0x5fa2, 0x5fa7,
- 0x5fab, 0x5fa4, 0x5fac, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb8, 0x5fc4,
- 0x5fc7, 0x5fc8, 0x5fc9, 0x5fcb, 0x5fd0, 0x5fd1, 0x5fd2, 0x5fd3,
- 0x5fd4, 0x5fde, 0x5fe1, 0x5fe2, 0x5fe8, 0x5fe9, 0x5fea, 0x5fec,
- 0x5fed, 0x5fee, 0x5fef, 0x5ff2, 0x5ff3, 0x5ff6, 0x5ffa, 0x5ffc,
- 0x6007, 0x600a, 0x600d, 0x6013, 0x6014, 0x6017, 0x6018, 0x601a,
- 0x601f, 0x6024, 0x602d, 0x6033, 0x6035, 0x6040, 0x6047, 0x6048,
- 0x6049, 0x604c, 0x6051, 0x6054, 0x6056, 0x6057, 0x605d, 0x6061,
- 0x6067, 0x6071, 0x607e, 0x607f, 0x6082, 0x6086, 0x6088, 0x608a,
- 0x608e, 0x6091, 0x6093, 0x6095, 0x6098, 0x609d, 0x609e, 0x60a2,
- 0x60a4, 0x60a5, 0x60a8, 0x60b0, 0x60b1, 0x60b7,
- /* 0x3e */
- 0x60bb, 0x60be, 0x60c2, 0x60c4, 0x60c8, 0x60c9, 0x60ca, 0x60cb,
- 0x60ce, 0x60cf, 0x60d4, 0x60d5, 0x60d9, 0x60db, 0x60dd, 0x60de,
- 0x60e2, 0x60e5, 0x60f2, 0x60f5, 0x60f8, 0x60fc, 0x60fd, 0x6102,
- 0x6107, 0x610a, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114,
- 0x6116, 0x6117, 0x6119, 0x611c, 0x611e, 0x6122, 0x612a, 0x612b,
- 0x6130, 0x6131, 0x6135, 0x6136, 0x6137, 0x6139, 0x6141, 0x6145,
- 0x6146, 0x6149, 0x615e, 0x6160, 0x616c, 0x6172, 0x6178, 0x617b,
- 0x617c, 0x617f, 0x6180, 0x6181, 0x6183, 0x6184, 0x618b, 0x618d,
- 0x6192, 0x6193, 0x6197, 0x6198, 0x619c, 0x619d, 0x619f, 0x61a0,
- 0x61a5, 0x61a8, 0x61aa, 0x61ad, 0x61b8, 0x61b9, 0x61bc, 0x61c0,
- 0x61c1, 0x61c2, 0x61ce, 0x61cf, 0x61d5, 0x61dc, 0x61dd, 0x61de,
- 0x61df, 0x61e1, 0x61e2, 0x61e7, 0x61e9, 0x61e5,
- /* 0x3f */
- 0x61ec, 0x61ed, 0x61ef, 0x6201, 0x6203, 0x6204, 0x6207, 0x6213,
- 0x6215, 0x621c, 0x6220, 0x6222, 0x6223, 0x6227, 0x6229, 0x622b,
- 0x6239, 0x623d, 0x6242, 0x6243, 0x6244, 0x6246, 0x624c, 0x6250,
- 0x6251, 0x6252, 0x6254, 0x6256, 0x625a, 0x625c, 0x6264, 0x626d,
- 0x626f, 0x6273, 0x627a, 0x627d, 0x628d, 0x628e, 0x628f, 0x6290,
- 0x62a6, 0x62a8, 0x62b3, 0x62b6, 0x62b7, 0x62ba, 0x62be, 0x62bf,
- 0x62c4, 0x62ce, 0x62d5, 0x62d6, 0x62da, 0x62ea, 0x62f2, 0x62f4,
- 0x62fc, 0x62fd, 0x6303, 0x6304, 0x630a, 0x630b, 0x630d, 0x6310,
- 0x6313, 0x6316, 0x6318, 0x6329, 0x632a, 0x632d, 0x6335, 0x6336,
- 0x6339, 0x633c, 0x6341, 0x6342, 0x6343, 0x6344, 0x6346, 0x634a,
- 0x634b, 0x634e, 0x6352, 0x6353, 0x6354, 0x6358, 0x635b, 0x6365,
- 0x6366, 0x636c, 0x636d, 0x6371, 0x6374, 0x6375,
- /* 0x40 */
- 0x6378, 0x637c, 0x637d, 0x637f, 0x6382, 0x6384, 0x6387, 0x638a,
- 0x6390, 0x6394, 0x6395, 0x6399, 0x639a, 0x639e, 0x63a4, 0x63a6,
- 0x63ad, 0x63ae, 0x63af, 0x63bd, 0x63c1, 0x63c5, 0x63c8, 0x63ce,
- 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63dc, 0x63e0, 0x63e5, 0x63ea,
- 0x63ec, 0x63f2, 0x63f3, 0x63f5, 0x63f8, 0x63f9, 0x6409, 0x640a,
- 0x6410, 0x6412, 0x6414, 0x6418, 0x641e, 0x6420, 0x6422, 0x6424,
- 0x6425, 0x6429, 0x642a, 0x642f, 0x6430, 0x6435, 0x643d, 0x643f,
- 0x644b, 0x644f, 0x6451, 0x6452, 0x6453, 0x6454, 0x645a, 0x645b,
- 0x645c, 0x645d, 0x645f, 0x6460, 0x6461, 0x6463, 0x646d, 0x6473,
- 0x6474, 0x647b, 0x647d, 0x6485, 0x6487, 0x648f, 0x6490, 0x6491,
- 0x6498, 0x6499, 0x649b, 0x649d, 0x649f, 0x64a1, 0x64a3, 0x64a6,
- 0x64a8, 0x64ac, 0x64b3, 0x64bd, 0x64be, 0x64bf,
- /* 0x41 */
- 0x64c4, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64ce, 0x64d0, 0x64d1,
- 0x64d5, 0x64d7, 0x64e4, 0x64e5, 0x64e9, 0x64ea, 0x64ed, 0x64f0,
- 0x64f5, 0x64f7, 0x64fb, 0x64ff, 0x6501, 0x6504, 0x6508, 0x6509,
- 0x650a, 0x650f, 0x6513, 0x6514, 0x6516, 0x6519, 0x651b, 0x651e,
- 0x651f, 0x6522, 0x6526, 0x6529, 0x652e, 0x6531, 0x653a, 0x653c,
- 0x653d, 0x6543, 0x6547, 0x6549, 0x6550, 0x6552, 0x6554, 0x655f,
- 0x6560, 0x6567, 0x656b, 0x657a, 0x657d, 0x6581, 0x6585, 0x658a,
- 0x6592, 0x6595, 0x6598, 0x659d, 0x65a0, 0x65a3, 0x65a6, 0x65ae,
- 0x65b2, 0x65b3, 0x65b4, 0x65bf, 0x65c2, 0x65c8, 0x65c9, 0x65ce,
- 0x65d0, 0x65d4, 0x65d6, 0x65d8, 0x65df, 0x65f0, 0x65f2, 0x65f4,
- 0x65f5, 0x65f9, 0x65fe, 0x65ff, 0x6600, 0x6604, 0x6608, 0x6609,
- 0x660d, 0x6611, 0x6612, 0x6615, 0x6616, 0x661d,
- /* 0x42 */
- 0x661e, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662a,
- 0x662b, 0x662c, 0x662e, 0x6630, 0x6631, 0x6633, 0x6639, 0x6637,
- 0x6640, 0x6645, 0x6646, 0x664a, 0x664c, 0x6651, 0x664e, 0x6657,
- 0x6658, 0x6659, 0x665b, 0x665c, 0x6660, 0x6661, 0x66fb, 0x666a,
- 0x666b, 0x666c, 0x667e, 0x6673, 0x6675, 0x667f, 0x6677, 0x6678,
- 0x6679, 0x667b, 0x6680, 0x667c, 0x668b, 0x668c, 0x668d, 0x6690,
- 0x6692, 0x6699, 0x669a, 0x669b, 0x669c, 0x669f, 0x66a0, 0x66a4,
- 0x66ad, 0x66b1, 0x66b2, 0x66b5, 0x66bb, 0x66bf, 0x66c0, 0x66c2,
- 0x66c3, 0x66c8, 0x66cc, 0x66ce, 0x66cf, 0x66d4, 0x66db, 0x66df,
- 0x66e8, 0x66eb, 0x66ec, 0x66ee, 0x66fa, 0x6705, 0x6707, 0x670e,
- 0x6713, 0x6719, 0x671c, 0x6720, 0x6722, 0x6733, 0x673e, 0x6745,
- 0x6747, 0x6748, 0x674c, 0x6754, 0x6755, 0x675d,
- /* 0x43 */
- 0x6766, 0x676c, 0x676e, 0x6774, 0x6776, 0x677b, 0x6781, 0x6784,
- 0x678e, 0x678f, 0x6791, 0x6793, 0x6796, 0x6798, 0x6799, 0x679b,
- 0x67b0, 0x67b1, 0x67b2, 0x67b5, 0x67bb, 0x67bc, 0x67bd, 0x67f9,
- 0x67c0, 0x67c2, 0x67c3, 0x67c5, 0x67c8, 0x67c9, 0x67d2, 0x67d7,
- 0x67d9, 0x67dc, 0x67e1, 0x67e6, 0x67f0, 0x67f2, 0x67f6, 0x67f7,
- 0x6852, 0x6814, 0x6819, 0x681d, 0x681f, 0x6828, 0x6827, 0x682c,
- 0x682d, 0x682f, 0x6830, 0x6831, 0x6833, 0x683b, 0x683f, 0x6844,
- 0x6845, 0x684a, 0x684c, 0x6855, 0x6857, 0x6858, 0x685b, 0x686b,
- 0x686e, 0x686f, 0x6870, 0x6871, 0x6872, 0x6875, 0x6879, 0x687a,
- 0x687b, 0x687c, 0x6882, 0x6884, 0x6886, 0x6888, 0x6896, 0x6898,
- 0x689a, 0x689c, 0x68a1, 0x68a3, 0x68a5, 0x68a9, 0x68aa, 0x68ae,
- 0x68b2, 0x68bb, 0x68c5, 0x68c8, 0x68cc, 0x68cf,
- /* 0x44 */
- 0x68d0, 0x68d1, 0x68d3, 0x68d6, 0x68d9, 0x68dc, 0x68dd, 0x68e5,
- 0x68e8, 0x68ea, 0x68eb, 0x68ec, 0x68ed, 0x68f0, 0x68f1, 0x68f5,
- 0x68f6, 0x68fb, 0x68fc, 0x68fd, 0x6906, 0x6909, 0x690a, 0x6910,
- 0x6911, 0x6913, 0x6916, 0x6917, 0x6931, 0x6933, 0x6935, 0x6938,
- 0x693b, 0x6942, 0x6945, 0x6949, 0x694e, 0x6957, 0x695b, 0x6963,
- 0x6964, 0x6965, 0x6966, 0x6968, 0x6969, 0x696c, 0x6970, 0x6971,
- 0x6972, 0x697a, 0x697b, 0x697f, 0x6980, 0x698d, 0x6992, 0x6996,
- 0x6998, 0x69a1, 0x69a5, 0x69a6, 0x69a8, 0x69ab, 0x69ad, 0x69af,
- 0x69b7, 0x69b8, 0x69ba, 0x69bc, 0x69c5, 0x69c8, 0x69d1, 0x69d6,
- 0x69d7, 0x69e2, 0x69e5, 0x69ee, 0x69ef, 0x69f1, 0x69f3, 0x69f5,
- 0x69fe, 0x6a00, 0x6a01, 0x6a03, 0x6a0f, 0x6a11, 0x6a15, 0x6a1a,
- 0x6a1d, 0x6a20, 0x6a24, 0x6a28, 0x6a30, 0x6a32,
- /* 0x45 */
- 0x6a34, 0x6a37, 0x6a3b, 0x6a3e, 0x6a3f, 0x6a45, 0x6a46, 0x6a49,
- 0x6a4a, 0x6a4e, 0x6a50, 0x6a51, 0x6a52, 0x6a55, 0x6a56, 0x6a5b,
- 0x6a64, 0x6a67, 0x6a6a, 0x6a71, 0x6a73, 0x6a7e, 0x6a81, 0x6a83,
- 0x6a86, 0x6a87, 0x6a89, 0x6a8b, 0x6a91, 0x6a9b, 0x6a9d, 0x6a9e,
- 0x6a9f, 0x6aa5, 0x6aab, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab4, 0x6abd,
- 0x6abe, 0x6abf, 0x6ac6, 0x6ac9, 0x6ac8, 0x6acc, 0x6ad0, 0x6ad4,
- 0x6ad5, 0x6ad6, 0x6adc, 0x6add, 0x6ae4, 0x6ae7, 0x6aec, 0x6af0,
- 0x6af1, 0x6af2, 0x6afc, 0x6afd, 0x6b02, 0x6b03, 0x6b06, 0x6b07,
- 0x6b09, 0x6b0f, 0x6b10, 0x6b11, 0x6b17, 0x6b1b, 0x6b1e, 0x6b24,
- 0x6b28, 0x6b2b, 0x6b2c, 0x6b2f, 0x6b35, 0x6b36, 0x6b3b, 0x6b3f,
- 0x6b46, 0x6b4a, 0x6b4d, 0x6b52, 0x6b56, 0x6b58, 0x6b5d, 0x6b60,
- 0x6b67, 0x6b6b, 0x6b6e, 0x6b70, 0x6b75, 0x6b7d,
- /* 0x46 */
- 0x6b7e, 0x6b82, 0x6b85, 0x6b97, 0x6b9b, 0x6b9f, 0x6ba0, 0x6ba2,
- 0x6ba3, 0x6ba8, 0x6ba9, 0x6bac, 0x6bad, 0x6bae, 0x6bb0, 0x6bb8,
- 0x6bb9, 0x6bbd, 0x6bbe, 0x6bc3, 0x6bc4, 0x6bc9, 0x6bcc, 0x6bd6,
- 0x6bda, 0x6be1, 0x6be3, 0x6be6, 0x6be7, 0x6bee, 0x6bf1, 0x6bf7,
- 0x6bf9, 0x6bff, 0x6c02, 0x6c04, 0x6c05, 0x6c09, 0x6c0d, 0x6c0e,
- 0x6c10, 0x6c12, 0x6c19, 0x6c1f, 0x6c26, 0x6c27, 0x6c28, 0x6c2c,
- 0x6c2e, 0x6c33, 0x6c35, 0x6c36, 0x6c3a, 0x6c3b, 0x6c3f, 0x6c4a,
- 0x6c4b, 0x6c4d, 0x6c4f, 0x6c52, 0x6c54, 0x6c59, 0x6c5b, 0x6c5c,
- 0x6c6b, 0x6c6d, 0x6c6f, 0x6c74, 0x6c76, 0x6c78, 0x6c79, 0x6c7b,
- 0x6c85, 0x6c86, 0x6c87, 0x6c89, 0x6c94, 0x6c95, 0x6c97, 0x6c98,
- 0x6c9c, 0x6c9f, 0x6cb0, 0x6cb2, 0x6cb4, 0x6cc2, 0x6cc6, 0x6ccd,
- 0x6ccf, 0x6cd0, 0x6cd1, 0x6cd2, 0x6cd4, 0x6cd6,
- /* 0x47 */
- 0x6cda, 0x6cdc, 0x6ce0, 0x6ce7, 0x6ce9, 0x6ceb, 0x6cec, 0x6cee,
- 0x6cf2, 0x6cf4, 0x6d04, 0x6d07, 0x6d0a, 0x6d0e, 0x6d0f, 0x6d11,
- 0x6d13, 0x6d1a, 0x6d26, 0x6d27, 0x6d28, 0x6c67, 0x6d2e, 0x6d2f,
- 0x6d31, 0x6d39, 0x6d3c, 0x6d3f, 0x6d57, 0x6d5e, 0x6d5f, 0x6d61,
- 0x6d65, 0x6d67, 0x6d6f, 0x6d70, 0x6d7c, 0x6d82, 0x6d87, 0x6d91,
- 0x6d92, 0x6d94, 0x6d96, 0x6d97, 0x6d98, 0x6daa, 0x6dac, 0x6db4,
- 0x6db7, 0x6db9, 0x6dbd, 0x6dbf, 0x6dc4, 0x6dc8, 0x6dca, 0x6dce,
- 0x6dcf, 0x6dd6, 0x6ddb, 0x6ddd, 0x6ddf, 0x6de0, 0x6de2, 0x6de5,
- 0x6de9, 0x6def, 0x6df0, 0x6df4, 0x6df6, 0x6dfc, 0x6e00, 0x6e04,
- 0x6e1e, 0x6e22, 0x6e27, 0x6e32, 0x6e36, 0x6e39, 0x6e3b, 0x6e3c,
- 0x6e44, 0x6e45, 0x6e48, 0x6e49, 0x6e4b, 0x6e4f, 0x6e51, 0x6e52,
- 0x6e53, 0x6e54, 0x6e57, 0x6e5c, 0x6e5d, 0x6e5e,
- /* 0x48 */
- 0x6e62, 0x6e63, 0x6e68, 0x6e73, 0x6e7b, 0x6e7d, 0x6e8d, 0x6e93,
- 0x6e99, 0x6ea0, 0x6ea7, 0x6ead, 0x6eae, 0x6eb1, 0x6eb3, 0x6ebb,
- 0x6ebf, 0x6ec0, 0x6ec1, 0x6ec3, 0x6ec7, 0x6ec8, 0x6eca, 0x6ecd,
- 0x6ece, 0x6ecf, 0x6eeb, 0x6eed, 0x6eee, 0x6ef9, 0x6efb, 0x6efd,
- 0x6f04, 0x6f08, 0x6f0a, 0x6f0c, 0x6f0d, 0x6f16, 0x6f18, 0x6f1a,
- 0x6f1b, 0x6f26, 0x6f29, 0x6f2a, 0x6f2f, 0x6f30, 0x6f33, 0x6f36,
- 0x6f3b, 0x6f3c, 0x6f2d, 0x6f4f, 0x6f51, 0x6f52, 0x6f53, 0x6f57,
- 0x6f59, 0x6f5a, 0x6f5d, 0x6f5e, 0x6f61, 0x6f62, 0x6f68, 0x6f6c,
- 0x6f7d, 0x6f7e, 0x6f83, 0x6f87, 0x6f88, 0x6f8b, 0x6f8c, 0x6f8d,
- 0x6f90, 0x6f92, 0x6f93, 0x6f94, 0x6f96, 0x6f9a, 0x6f9f, 0x6fa0,
- 0x6fa5, 0x6fa6, 0x6fa7, 0x6fa8, 0x6fae, 0x6faf, 0x6fb0, 0x6fb5,
- 0x6fb6, 0x6fbc, 0x6fc5, 0x6fc7, 0x6fc8, 0x6fca,
- /* 0x49 */
- 0x6fda, 0x6fde, 0x6fe8, 0x6fe9, 0x6ff0, 0x6ff5, 0x6ff9, 0x6ffc,
- 0x6ffd, 0x7000, 0x7005, 0x7006, 0x7007, 0x700d, 0x7017, 0x7020,
- 0x7023, 0x702f, 0x7034, 0x7037, 0x7039, 0x703c, 0x7043, 0x7044,
- 0x7048, 0x7049, 0x704a, 0x704b, 0x7054, 0x7055, 0x705d, 0x705e,
- 0x704e, 0x7064, 0x7065, 0x706c, 0x706e, 0x7075, 0x7076, 0x707e,
- 0x7081, 0x7085, 0x7086, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098,
- 0x709b, 0x70a4, 0x70ab, 0x70b0, 0x70b1, 0x70b4, 0x70b7, 0x70ca,
- 0x70d1, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d8, 0x70dc, 0x70e4,
- 0x70fa, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x710b, 0x710c,
- 0x710f, 0x711e, 0x7120, 0x712b, 0x712d, 0x712f, 0x7130, 0x7131,
- 0x7138, 0x7141, 0x7145, 0x7146, 0x7147, 0x714a, 0x714b, 0x7150,
- 0x7152, 0x7157, 0x715a, 0x715c, 0x715e, 0x7160,
- /* 0x4a */
- 0x7168, 0x7179, 0x7180, 0x7185, 0x7187, 0x718c, 0x7192, 0x719a,
- 0x719b, 0x71a0, 0x71a2, 0x71af, 0x71b0, 0x71b2, 0x71b3, 0x71ba,
- 0x71bf, 0x71c0, 0x71c1, 0x71c4, 0x71cb, 0x71cc, 0x71d3, 0x71d6,
- 0x71d9, 0x71da, 0x71dc, 0x71f8, 0x71fe, 0x7200, 0x7207, 0x7208,
- 0x7209, 0x7213, 0x7217, 0x721a, 0x721d, 0x721f, 0x7224, 0x722b,
- 0x722f, 0x7234, 0x7238, 0x7239, 0x7241, 0x7242, 0x7243, 0x7245,
- 0x724e, 0x724f, 0x7250, 0x7253, 0x7255, 0x7256, 0x725a, 0x725c,
- 0x725e, 0x7260, 0x7263, 0x7268, 0x726b, 0x726e, 0x726f, 0x7271,
- 0x7277, 0x7278, 0x727b, 0x727c, 0x727f, 0x7284, 0x7289, 0x728d,
- 0x728e, 0x7293, 0x729b, 0x72a8, 0x72ad, 0x72ae, 0x72b1, 0x72b4,
- 0x72be, 0x72c1, 0x72c7, 0x72c9, 0x72cc, 0x72d5, 0x72d6, 0x72d8,
- 0x72df, 0x72e5, 0x72f3, 0x72f4, 0x72fa, 0x72fb,
- /* 0x4b */
- 0x72fe, 0x7302, 0x7304, 0x7305, 0x7307, 0x730b, 0x730d, 0x7312,
- 0x7313, 0x7318, 0x7319, 0x731e, 0x7322, 0x7324, 0x7327, 0x7328,
- 0x732c, 0x7331, 0x7332, 0x7335, 0x733a, 0x733b, 0x733d, 0x7343,
- 0x734d, 0x7350, 0x7352, 0x7356, 0x7358, 0x735d, 0x735e, 0x735f,
- 0x7360, 0x7366, 0x7367, 0x7369, 0x736b, 0x736c, 0x736e, 0x736f,
- 0x7371, 0x7377, 0x7379, 0x737c, 0x7380, 0x7381, 0x7383, 0x7385,
- 0x7386, 0x738e, 0x7390, 0x7393, 0x7395, 0x7397, 0x7398, 0x739c,
- 0x739e, 0x739f, 0x73a0, 0x73a2, 0x73a5, 0x73a6, 0x73aa, 0x73ab,
- 0x73ad, 0x73b5, 0x73b7, 0x73b9, 0x73bc, 0x73bd, 0x73bf, 0x73c5,
- 0x73c6, 0x73c9, 0x73cb, 0x73cc, 0x73cf, 0x73d2, 0x73d3, 0x73d6,
- 0x73d9, 0x73dd, 0x73e1, 0x73e3, 0x73e6, 0x73e7, 0x73e9, 0x73f4,
- 0x73f5, 0x73f7, 0x73f9, 0x73fa, 0x73fb, 0x73fd,
- /* 0x4c */
- 0x73ff, 0x7400, 0x7401, 0x7404, 0x7407, 0x740a, 0x7411, 0x741a,
- 0x741b, 0x7424, 0x7426, 0x7428, 0x7429, 0x742a, 0x742b, 0x742c,
- 0x742d, 0x742e, 0x742f, 0x7430, 0x7431, 0x7439, 0x7440, 0x7443,
- 0x7444, 0x7446, 0x7447, 0x744b, 0x744d, 0x7451, 0x7452, 0x7457,
- 0x745d, 0x7462, 0x7466, 0x7467, 0x7468, 0x746b, 0x746d, 0x746e,
- 0x7471, 0x7472, 0x7480, 0x7481, 0x7485, 0x7486, 0x7487, 0x7489,
- 0x748f, 0x7490, 0x7491, 0x7492, 0x7498, 0x7499, 0x749a, 0x749c,
- 0x749f, 0x74a0, 0x74a1, 0x74a3, 0x74a6, 0x74a8, 0x74a9, 0x74aa,
- 0x74ab, 0x74ae, 0x74af, 0x74b1, 0x74b2, 0x74b5, 0x74b9, 0x74bb,
- 0x74bf, 0x74c8, 0x74c9, 0x74cc, 0x74d0, 0x74d3, 0x74d8, 0x74da,
- 0x74db, 0x74de, 0x74df, 0x74e4, 0x74e8, 0x74ea, 0x74eb, 0x74ef,
- 0x74f4, 0x74fa, 0x74fb, 0x74fc, 0x74ff, 0x7506,
- /* 0x4d */
- 0x7512, 0x7516, 0x7517, 0x7520, 0x7521, 0x7524, 0x7527, 0x7529,
- 0x752a, 0x752f, 0x7536, 0x7539, 0x753d, 0x753e, 0x753f, 0x7540,
- 0x7543, 0x7547, 0x7548, 0x754e, 0x7550, 0x7552, 0x7557, 0x755e,
- 0x755f, 0x7561, 0x756f, 0x7571, 0x7579, 0x757a, 0x757b, 0x757c,
- 0x757d, 0x757e, 0x7581, 0x7585, 0x7590, 0x7592, 0x7593, 0x7595,
- 0x7599, 0x759c, 0x75a2, 0x75a4, 0x75b4, 0x75ba, 0x75bf, 0x75c0,
- 0x75c1, 0x75c4, 0x75c6, 0x75cc, 0x75ce, 0x75cf, 0x75d7, 0x75dc,
- 0x75df, 0x75e0, 0x75e1, 0x75e4, 0x75e7, 0x75ec, 0x75ee, 0x75ef,
- 0x75f1, 0x75f9, 0x7600, 0x7602, 0x7603, 0x7604, 0x7607, 0x7608,
- 0x760a, 0x760c, 0x760f, 0x7612, 0x7613, 0x7615, 0x7616, 0x7619,
- 0x761b, 0x761c, 0x761d, 0x761e, 0x7623, 0x7625, 0x7626, 0x7629,
- 0x762d, 0x7632, 0x7633, 0x7635, 0x7638, 0x7639,
- /* 0x4e */
- 0x763a, 0x763c, 0x764a, 0x7640, 0x7641, 0x7643, 0x7644, 0x7645,
- 0x7649, 0x764b, 0x7655, 0x7659, 0x765f, 0x7664, 0x7665, 0x766d,
- 0x766e, 0x766f, 0x7671, 0x7674, 0x7681, 0x7685, 0x768c, 0x768d,
- 0x7695, 0x769b, 0x769c, 0x769d, 0x769f, 0x76a0, 0x76a2, 0x76a3,
- 0x76a4, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76aa, 0x76ad, 0x76bd,
- 0x76c1, 0x76c5, 0x76c9, 0x76cb, 0x76cc, 0x76ce, 0x76d4, 0x76d9,
- 0x76e0, 0x76e6, 0x76e8, 0x76ec, 0x76f0, 0x76f1, 0x76f6, 0x76f9,
- 0x76fc, 0x7700, 0x7706, 0x770a, 0x770e, 0x7712, 0x7714, 0x7715,
- 0x7717, 0x7719, 0x771a, 0x771c, 0x7722, 0x7728, 0x772d, 0x772e,
- 0x772f, 0x7734, 0x7735, 0x7736, 0x7739, 0x773d, 0x773e, 0x7742,
- 0x7745, 0x7746, 0x774a, 0x774d, 0x774e, 0x774f, 0x7752, 0x7756,
- 0x7757, 0x775c, 0x775e, 0x775f, 0x7760, 0x7762,
- /* 0x4f */
- 0x7764, 0x7767, 0x776a, 0x776c, 0x7770, 0x7772, 0x7773, 0x7774,
- 0x777a, 0x777d, 0x7780, 0x7784, 0x778c, 0x778d, 0x7794, 0x7795,
- 0x7796, 0x779a, 0x779f, 0x77a2, 0x77a7, 0x77aa, 0x77ae, 0x77af,
- 0x77b1, 0x77b5, 0x77be, 0x77c3, 0x77c9, 0x77d1, 0x77d2, 0x77d5,
- 0x77d9, 0x77de, 0x77df, 0x77e0, 0x77e4, 0x77e6, 0x77ea, 0x77ec,
- 0x77f0, 0x77f1, 0x77f4, 0x77f8, 0x77fb, 0x7805, 0x7806, 0x7809,
- 0x780d, 0x780e, 0x7811, 0x781d, 0x7821, 0x7822, 0x7823, 0x782d,
- 0x782e, 0x7830, 0x7835, 0x7837, 0x7843, 0x7844, 0x7847, 0x7848,
- 0x784c, 0x784e, 0x7852, 0x785c, 0x785e, 0x7860, 0x7861, 0x7863,
- 0x7864, 0x7868, 0x786a, 0x786e, 0x787a, 0x787e, 0x788a, 0x788f,
- 0x7894, 0x7898, 0x78a1, 0x789d, 0x789e, 0x789f, 0x78a4, 0x78a8,
- 0x78ac, 0x78ad, 0x78b0, 0x78b1, 0x78b2, 0x78b3,
- /* 0x50 */
- 0x78bb, 0x78bd, 0x78bf, 0x78c7, 0x78c8, 0x78c9, 0x78cc, 0x78ce,
- 0x78d2, 0x78d3, 0x78d5, 0x78d6, 0x78e4, 0x78db, 0x78df, 0x78e0,
- 0x78e1, 0x78e6, 0x78ea, 0x78f2, 0x78f3, 0x7900, 0x78f6, 0x78f7,
- 0x78fa, 0x78fb, 0x78ff, 0x7906, 0x790c, 0x7910, 0x791a, 0x791c,
- 0x791e, 0x791f, 0x7920, 0x7925, 0x7927, 0x7929, 0x792d, 0x7931,
- 0x7934, 0x7935, 0x793b, 0x793d, 0x793f, 0x7944, 0x7945, 0x7946,
- 0x794a, 0x794b, 0x794f, 0x7951, 0x7954, 0x7958, 0x795b, 0x795c,
- 0x7967, 0x7969, 0x796b, 0x7972, 0x7979, 0x797b, 0x797c, 0x797e,
- 0x798b, 0x798c, 0x7991, 0x7993, 0x7994, 0x7995, 0x7996, 0x7998,
- 0x799b, 0x799c, 0x79a1, 0x79a8, 0x79a9, 0x79ab, 0x79af, 0x79b1,
- 0x79b4, 0x79b8, 0x79bb, 0x79c2, 0x79c4, 0x79c7, 0x79c8, 0x79ca,
- 0x79cf, 0x79d4, 0x79d6, 0x79da, 0x79dd, 0x79de,
- /* 0x51 */
- 0x79e0, 0x79e2, 0x79e5, 0x79ea, 0x79eb, 0x79ed, 0x79f1, 0x79f8,
- 0x79fc, 0x7a02, 0x7a03, 0x7a07, 0x7a09, 0x7a0a, 0x7a0c, 0x7a11,
- 0x7a15, 0x7a1b, 0x7a1e, 0x7a21, 0x7a27, 0x7a2b, 0x7a2d, 0x7a2f,
- 0x7a30, 0x7a34, 0x7a35, 0x7a38, 0x7a39, 0x7a3a, 0x7a44, 0x7a45,
- 0x7a47, 0x7a48, 0x7a4c, 0x7a55, 0x7a56, 0x7a59, 0x7a5c, 0x7a5d,
- 0x7a5f, 0x7a60, 0x7a65, 0x7a67, 0x7a6a, 0x7a6d, 0x7a75, 0x7a78,
- 0x7a7e, 0x7a80, 0x7a82, 0x7a85, 0x7a86, 0x7a8a, 0x7a8b, 0x7a90,
- 0x7a91, 0x7a94, 0x7a9e, 0x7aa0, 0x7aa3, 0x7aac, 0x7ab3, 0x7ab5,
- 0x7ab9, 0x7abb, 0x7abc, 0x7ac6, 0x7ac9, 0x7acc, 0x7ace, 0x7ad1,
- 0x7adb, 0x7ae8, 0x7ae9, 0x7aeb, 0x7aec, 0x7af1, 0x7af4, 0x7afb,
- 0x7afd, 0x7afe, 0x7b07, 0x7b14, 0x7b1f, 0x7b23, 0x7b27, 0x7b29,
- 0x7b2a, 0x7b2b, 0x7b2d, 0x7b2e, 0x7b2f, 0x7b30,
- /* 0x52 */
- 0x7b31, 0x7b34, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b47, 0x7b4e,
- 0x7b55, 0x7b60, 0x7b64, 0x7b66, 0x7b69, 0x7b6a, 0x7b6d, 0x7b6f,
- 0x7b72, 0x7b73, 0x7b77, 0x7b84, 0x7b89, 0x7b8e, 0x7b90, 0x7b91,
- 0x7b96, 0x7b9b, 0x7b9e, 0x7ba0, 0x7ba5, 0x7bac, 0x7baf, 0x7bb0,
- 0x7bb2, 0x7bb5, 0x7bb6, 0x7bba, 0x7bbb, 0x7bbc, 0x7bbd, 0x7bc2,
- 0x7bc5, 0x7bc8, 0x7bca, 0x7bd4, 0x7bd6, 0x7bd7, 0x7bd9, 0x7bda,
- 0x7bdb, 0x7be8, 0x7bea, 0x7bf2, 0x7bf4, 0x7bf5, 0x7bf8, 0x7bf9,
- 0x7bfa, 0x7bfc, 0x7bfe, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c06,
- 0x7c09, 0x7c0b, 0x7c0c, 0x7c0e, 0x7c0f, 0x7c19, 0x7c1b, 0x7c20,
- 0x7c25, 0x7c26, 0x7c28, 0x7c2c, 0x7c31, 0x7c33, 0x7c34, 0x7c36,
- 0x7c39, 0x7c3a, 0x7c46, 0x7c4a, 0x7c55, 0x7c51, 0x7c52, 0x7c53,
- 0x7c59, 0x7c5a, 0x7c5b, 0x7c5c, 0x7c5d, 0x7c5e,
- /* 0x53 */
- 0x7c61, 0x7c63, 0x7c67, 0x7c69, 0x7c6d, 0x7c6e, 0x7c70, 0x7c72,
- 0x7c79, 0x7c7c, 0x7c7d, 0x7c86, 0x7c87, 0x7c8f, 0x7c94, 0x7c9e,
- 0x7ca0, 0x7ca6, 0x7cb0, 0x7cb6, 0x7cb7, 0x7cba, 0x7cbb, 0x7cbc,
- 0x7cbf, 0x7cc4, 0x7cc7, 0x7cc8, 0x7cc9, 0x7ccd, 0x7ccf, 0x7cd3,
- 0x7cd4, 0x7cd5, 0x7cd7, 0x7cd9, 0x7cda, 0x7cdd, 0x7ce6, 0x7ce9,
- 0x7ceb, 0x7cf5, 0x7d03, 0x7d07, 0x7d08, 0x7d09, 0x7d0f, 0x7d11,
- 0x7d12, 0x7d13, 0x7d16, 0x7d1d, 0x7d1e, 0x7d23, 0x7d26, 0x7d2a,
- 0x7d2d, 0x7d31, 0x7d3c, 0x7d3d, 0x7d3e, 0x7d40, 0x7d41, 0x7d47,
- 0x7d48, 0x7d4d, 0x7d51, 0x7d53, 0x7d57, 0x7d59, 0x7d5a, 0x7d5c,
- 0x7d5d, 0x7d65, 0x7d67, 0x7d6a, 0x7d70, 0x7d78, 0x7d7a, 0x7d7b,
- 0x7d7f, 0x7d81, 0x7d82, 0x7d83, 0x7d85, 0x7d86, 0x7d88, 0x7d8b,
- 0x7d8c, 0x7d8d, 0x7d91, 0x7d96, 0x7d97, 0x7d9d,
- /* 0x54 */
- 0x7d9e, 0x7da6, 0x7da7, 0x7daa, 0x7db3, 0x7db6, 0x7db7, 0x7db9,
- 0x7dc2, 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dcc, 0x7dcd, 0x7dce,
- 0x7dd7, 0x7dd9, 0x7e00, 0x7de2, 0x7de5, 0x7de6, 0x7dea, 0x7deb,
- 0x7ded, 0x7df1, 0x7df5, 0x7df6, 0x7df9, 0x7dfa, 0x7e08, 0x7e10,
- 0x7e11, 0x7e15, 0x7e17, 0x7e1c, 0x7e1d, 0x7e20, 0x7e27, 0x7e28,
- 0x7e2c, 0x7e2d, 0x7e2f, 0x7e33, 0x7e36, 0x7e3f, 0x7e44, 0x7e45,
- 0x7e47, 0x7e4e, 0x7e50, 0x7e52, 0x7e58, 0x7e5f, 0x7e61, 0x7e62,
- 0x7e65, 0x7e6b, 0x7e6e, 0x7e6f, 0x7e73, 0x7e78, 0x7e7e, 0x7e81,
- 0x7e86, 0x7e87, 0x7e8a, 0x7e8d, 0x7e91, 0x7e95, 0x7e98, 0x7e9a,
- 0x7e9d, 0x7e9e, 0x7f3c, 0x7f3b, 0x7f3d, 0x7f3e, 0x7f3f, 0x7f43,
- 0x7f44, 0x7f47, 0x7f4f, 0x7f52, 0x7f53, 0x7f5b, 0x7f5c, 0x7f5d,
- 0x7f61, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f6d,
- /* 0x55 */
- 0x7f71, 0x7f7d, 0x7f7e, 0x7f7f, 0x7f80, 0x7f8b, 0x7f8d, 0x7f8f,
- 0x7f90, 0x7f91, 0x7f96, 0x7f97, 0x7f9c, 0x7fa1, 0x7fa2, 0x7fa6,
- 0x7faa, 0x7fad, 0x7fb4, 0x7fbc, 0x7fbf, 0x7fc0, 0x7fc3, 0x7fc8,
- 0x7fce, 0x7fcf, 0x7fdb, 0x7fdf, 0x7fe3, 0x7fe5, 0x7fe8, 0x7fec,
- 0x7fee, 0x7fef, 0x7ff2, 0x7ffa, 0x7ffd, 0x7ffe, 0x7fff, 0x8007,
- 0x8008, 0x800a, 0x800d, 0x800e, 0x800f, 0x8011, 0x8013, 0x8014,
- 0x8016, 0x801d, 0x801e, 0x801f, 0x8020, 0x8024, 0x8026, 0x802c,
- 0x802e, 0x8030, 0x8034, 0x8035, 0x8037, 0x8039, 0x803a, 0x803c,
- 0x803e, 0x8040, 0x8044, 0x8060, 0x8064, 0x8066, 0x806d, 0x8071,
- 0x8075, 0x8081, 0x8088, 0x808e, 0x809c, 0x809e, 0x80a6, 0x80a7,
- 0x80ab, 0x80b8, 0x80b9, 0x80c8, 0x80cd, 0x80cf, 0x80d2, 0x80d4,
- 0x80d5, 0x80d7, 0x80d8, 0x80e0, 0x80ed, 0x80ee,
- /* 0x56 */
- 0x80f0, 0x80f2, 0x80f3, 0x80f6, 0x80f9, 0x80fa, 0x80fe, 0x8103,
- 0x810b, 0x8116, 0x8117, 0x8118, 0x811c, 0x811e, 0x8120, 0x8124,
- 0x8127, 0x812c, 0x8130, 0x8135, 0x813a, 0x813c, 0x8145, 0x8147,
- 0x814a, 0x814c, 0x8152, 0x8157, 0x8160, 0x8161, 0x8167, 0x8168,
- 0x8169, 0x816d, 0x816f, 0x8177, 0x8181, 0x8190, 0x8184, 0x8185,
- 0x8186, 0x818b, 0x818e, 0x8196, 0x8198, 0x819b, 0x819e, 0x81a2,
- 0x81ae, 0x81b2, 0x81b4, 0x81bb, 0x81cb, 0x81c3, 0x81c5, 0x81ca,
- 0x81ce, 0x81cf, 0x81d5, 0x81d7, 0x81db, 0x81dd, 0x81de, 0x81e1,
- 0x81e4, 0x81eb, 0x81ec, 0x81f0, 0x81f1, 0x81f2, 0x81f5, 0x81f6,
- 0x81f8, 0x81f9, 0x81fd, 0x81ff, 0x8200, 0x8203, 0x820f, 0x8213,
- 0x8214, 0x8219, 0x821a, 0x821d, 0x8221, 0x8222, 0x8228, 0x8232,
- 0x8234, 0x823a, 0x8243, 0x8244, 0x8245, 0x8246,
- /* 0x57 */
- 0x824b, 0x824e, 0x824f, 0x8251, 0x8256, 0x825c, 0x8260, 0x8263,
- 0x8267, 0x826d, 0x8274, 0x827b, 0x827d, 0x827f, 0x8280, 0x8281,
- 0x8283, 0x8284, 0x8287, 0x8289, 0x828a, 0x828e, 0x8291, 0x8294,
- 0x8296, 0x8298, 0x829a, 0x829b, 0x82a0, 0x82a1, 0x82a3, 0x82a4,
- 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ae, 0x82b0, 0x82b2, 0x82b4,
- 0x82b7, 0x82ba, 0x82bc, 0x82be, 0x82bf, 0x82c6, 0x82d0, 0x82d5,
- 0x82da, 0x82e0, 0x82e2, 0x82e4, 0x82e8, 0x82ea, 0x82ed, 0x82ef,
- 0x82f6, 0x82f7, 0x82fd, 0x82fe, 0x8300, 0x8301, 0x8307, 0x8308,
- 0x830a, 0x830b, 0x8354, 0x831b, 0x831d, 0x831e, 0x831f, 0x8321,
- 0x8322, 0x832c, 0x832d, 0x832e, 0x8330, 0x8333, 0x8337, 0x833a,
- 0x833c, 0x833d, 0x8342, 0x8343, 0x8344, 0x8347, 0x834d, 0x834e,
- 0x8351, 0x8355, 0x8356, 0x8357, 0x8370, 0x8378,
- /* 0x58 */
- 0x837d, 0x837f, 0x8380, 0x8382, 0x8384, 0x8386, 0x838d, 0x8392,
- 0x8394, 0x8395, 0x8398, 0x8399, 0x839b, 0x839c, 0x839d, 0x83a6,
- 0x83a7, 0x83a9, 0x83ac, 0x83be, 0x83bf, 0x83c0, 0x83c7, 0x83c9,
- 0x83cf, 0x83d0, 0x83d1, 0x83d4, 0x83dd, 0x8353, 0x83e8, 0x83ea,
- 0x83f6, 0x83f8, 0x83f9, 0x83fc, 0x8401, 0x8406, 0x840a, 0x840f,
- 0x8411, 0x8415, 0x8419, 0x83ad, 0x842f, 0x8439, 0x8445, 0x8447,
- 0x8448, 0x844a, 0x844d, 0x844f, 0x8451, 0x8452, 0x8456, 0x8458,
- 0x8459, 0x845a, 0x845c, 0x8460, 0x8464, 0x8465, 0x8467, 0x846a,
- 0x8470, 0x8473, 0x8474, 0x8476, 0x8478, 0x847c, 0x847d, 0x8481,
- 0x8485, 0x8492, 0x8493, 0x8495, 0x849e, 0x84a6, 0x84a8, 0x84a9,
- 0x84aa, 0x84af, 0x84b1, 0x84b4, 0x84ba, 0x84bd, 0x84be, 0x84c0,
- 0x84c2, 0x84c7, 0x84c8, 0x84cc, 0x84cf, 0x84d3,
- /* 0x59 */
- 0x84dc, 0x84e7, 0x84ea, 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f7,
- 0x8532, 0x84fa, 0x84fb, 0x84fd, 0x8502, 0x8503, 0x8507, 0x850c,
- 0x850e, 0x8510, 0x851c, 0x851e, 0x8522, 0x8523, 0x8524, 0x8525,
- 0x8527, 0x852a, 0x852b, 0x852f, 0x8533, 0x8534, 0x8536, 0x853f,
- 0x8546, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8556, 0x8559,
- 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, 0x8562, 0x8564,
- 0x856b, 0x856f, 0x8579, 0x857a, 0x857b, 0x857d, 0x857f, 0x8581,
- 0x8585, 0x8586, 0x8589, 0x858b, 0x858c, 0x858f, 0x8593, 0x8598,
- 0x859d, 0x859f, 0x85a0, 0x85a2, 0x85a5, 0x85a7, 0x85b4, 0x85b6,
- 0x85b7, 0x85b8, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c2, 0x85c7,
- 0x85ca, 0x85cb, 0x85ce, 0x85ad, 0x85d8, 0x85da, 0x85df, 0x85e0,
- 0x85e6, 0x85e8, 0x85ed, 0x85f3, 0x85f6, 0x85fc,
- /* 0x5a */
- 0x85ff, 0x8600, 0x8604, 0x8605, 0x860d, 0x860e, 0x8610, 0x8611,
- 0x8612, 0x8618, 0x8619, 0x861b, 0x861e, 0x8621, 0x8627, 0x8629,
- 0x8636, 0x8638, 0x863a, 0x863c, 0x863d, 0x8640, 0x8642, 0x8646,
- 0x8652, 0x8653, 0x8656, 0x8657, 0x8658, 0x8659, 0x865d, 0x8660,
- 0x8661, 0x8662, 0x8663, 0x8664, 0x8669, 0x866c, 0x866f, 0x8675,
- 0x8676, 0x8677, 0x867a, 0x868d, 0x8691, 0x8696, 0x8698, 0x869a,
- 0x869c, 0x86a1, 0x86a6, 0x86a7, 0x86a8, 0x86ad, 0x86b1, 0x86b3,
- 0x86b4, 0x86b5, 0x86b7, 0x86b8, 0x86b9, 0x86bf, 0x86c0, 0x86c1,
- 0x86c3, 0x86c5, 0x86d1, 0x86d2, 0x86d5, 0x86d7, 0x86da, 0x86dc,
- 0x86e0, 0x86e3, 0x86e5, 0x86e7, 0x8688, 0x86fa, 0x86fc, 0x86fd,
- 0x8704, 0x8705, 0x8707, 0x870b, 0x870e, 0x870f, 0x8710, 0x8713,
- 0x8714, 0x8719, 0x871e, 0x871f, 0x8721, 0x8723,
- /* 0x5b */
- 0x8728, 0x872e, 0x872f, 0x8731, 0x8732, 0x8739, 0x873a, 0x873c,
- 0x873d, 0x873e, 0x8740, 0x8743, 0x8745, 0x874d, 0x8758, 0x875d,
- 0x8761, 0x8764, 0x8765, 0x876f, 0x8771, 0x8772, 0x877b, 0x8783,
- 0x8784, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x878b, 0x878c,
- 0x8790, 0x8793, 0x8795, 0x8797, 0x8798, 0x8799, 0x879e, 0x87a0,
- 0x87a3, 0x87a7, 0x87ac, 0x87ad, 0x87ae, 0x87b1, 0x87b5, 0x87be,
- 0x87bf, 0x87c1, 0x87c8, 0x87c9, 0x87ca, 0x87ce, 0x87d5, 0x87d6,
- 0x87d9, 0x87da, 0x87dc, 0x87df, 0x87e2, 0x87e3, 0x87e4, 0x87ea,
- 0x87eb, 0x87ed, 0x87f1, 0x87f3, 0x87f8, 0x87fa, 0x87ff, 0x8801,
- 0x8803, 0x8806, 0x8809, 0x880a, 0x880b, 0x8810, 0x8819, 0x8812,
- 0x8813, 0x8814, 0x8818, 0x881a, 0x881b, 0x881c, 0x881e, 0x881f,
- 0x8828, 0x882d, 0x882e, 0x8830, 0x8832, 0x8835,
- /* 0x5c */
- 0x883a, 0x883c, 0x8841, 0x8843, 0x8845, 0x8848, 0x8849, 0x884a,
- 0x884b, 0x884e, 0x8851, 0x8855, 0x8856, 0x8858, 0x885a, 0x885c,
- 0x885f, 0x8860, 0x8864, 0x8869, 0x8871, 0x8879, 0x887b, 0x8880,
- 0x8898, 0x889a, 0x889b, 0x889c, 0x889f, 0x88a0, 0x88a8, 0x88aa,
- 0x88ba, 0x88bd, 0x88be, 0x88c0, 0x88ca, 0x88cb, 0x88cc, 0x88cd,
- 0x88ce, 0x88d1, 0x88d2, 0x88d3, 0x88db, 0x88de, 0x88e7, 0x88ef,
- 0x88f0, 0x88f1, 0x88f5, 0x88f7, 0x8901, 0x8906, 0x890d, 0x890e,
- 0x890f, 0x8915, 0x8916, 0x8918, 0x8919, 0x891a, 0x891c, 0x8920,
- 0x8926, 0x8927, 0x8928, 0x8930, 0x8931, 0x8932, 0x8935, 0x8939,
- 0x893a, 0x893e, 0x8940, 0x8942, 0x8945, 0x8946, 0x8949, 0x894f,
- 0x8952, 0x8957, 0x895a, 0x895b, 0x895c, 0x8961, 0x8962, 0x8963,
- 0x896b, 0x896e, 0x8970, 0x8973, 0x8975, 0x897a,
- /* 0x5d */
- 0x897b, 0x897c, 0x897d, 0x8989, 0x898d, 0x8990, 0x8994, 0x8995,
- 0x899b, 0x899c, 0x899f, 0x89a0, 0x89a5, 0x89b0, 0x89b4, 0x89b5,
- 0x89b6, 0x89b7, 0x89bc, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8,
- 0x89e5, 0x89e9, 0x89eb, 0x89ed, 0x89f1, 0x89f3, 0x89f6, 0x89f9,
- 0x89fd, 0x89ff, 0x8a04, 0x8a05, 0x8a07, 0x8a0f, 0x8a11, 0x8a12,
- 0x8a14, 0x8a15, 0x8a1e, 0x8a20, 0x8a22, 0x8a24, 0x8a26, 0x8a2b,
- 0x8a2c, 0x8a2f, 0x8a35, 0x8a37, 0x8a3d, 0x8a3e, 0x8a40, 0x8a43,
- 0x8a45, 0x8a47, 0x8a49, 0x8a4d, 0x8a4e, 0x8a53, 0x8a56, 0x8a57,
- 0x8a58, 0x8a5c, 0x8a5d, 0x8a61, 0x8a65, 0x8a67, 0x8a75, 0x8a76,
- 0x8a77, 0x8a79, 0x8a7a, 0x8a7b, 0x8a7e, 0x8a7f, 0x8a80, 0x8a83,
- 0x8a86, 0x8a8b, 0x8a8f, 0x8a90, 0x8a92, 0x8a96, 0x8a97, 0x8a99,
- 0x8a9f, 0x8aa7, 0x8aa9, 0x8aae, 0x8aaf, 0x8ab3,
- /* 0x5e */
- 0x8ab6, 0x8ab7, 0x8abb, 0x8abe, 0x8ac3, 0x8ac6, 0x8ac8, 0x8ac9,
- 0x8aca, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad7, 0x8add, 0x8adf,
- 0x8aec, 0x8af0, 0x8af4, 0x8af5, 0x8af6, 0x8afc, 0x8aff, 0x8b05,
- 0x8b06, 0x8b0b, 0x8b11, 0x8b1c, 0x8b1e, 0x8b1f, 0x8b0a, 0x8b2d,
- 0x8b30, 0x8b37, 0x8b3c, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46,
- 0x8b48, 0x8b52, 0x8b53, 0x8b54, 0x8b59, 0x8b4d, 0x8b5e, 0x8b63,
- 0x8b6d, 0x8b76, 0x8b78, 0x8b79, 0x8b7c, 0x8b7e, 0x8b81, 0x8b84,
- 0x8b85, 0x8b8b, 0x8b8d, 0x8b8f, 0x8b94, 0x8b95, 0x8b9c, 0x8b9e,
- 0x8b9f, 0x8c38, 0x8c39, 0x8c3d, 0x8c3e, 0x8c45, 0x8c47, 0x8c49,
- 0x8c4b, 0x8c4f, 0x8c51, 0x8c53, 0x8c54, 0x8c57, 0x8c58, 0x8c5b,
- 0x8c5d, 0x8c59, 0x8c63, 0x8c64, 0x8c66, 0x8c68, 0x8c69, 0x8c6d,
- 0x8c73, 0x8c75, 0x8c76, 0x8c7b, 0x8c7e, 0x8c86,
- /* 0x5f */
- 0x8c87, 0x8c8b, 0x8c90, 0x8c92, 0x8c93, 0x8c99, 0x8c9b, 0x8c9c,
- 0x8ca4, 0x8cb9, 0x8cba, 0x8cc5, 0x8cc6, 0x8cc9, 0x8ccb, 0x8ccf,
- 0x8cd6, 0x8cd5, 0x8cd9, 0x8cdd, 0x8ce1, 0x8ce8, 0x8cec, 0x8cef,
- 0x8cf0, 0x8cf2, 0x8cf5, 0x8cf7, 0x8cf8, 0x8cfe, 0x8cff, 0x8d01,
- 0x8d03, 0x8d09, 0x8d12, 0x8d17, 0x8d1b, 0x8d65, 0x8d69, 0x8d6c,
- 0x8d6e, 0x8d7f, 0x8d82, 0x8d84, 0x8d88, 0x8d8d, 0x8d90, 0x8d91,
- 0x8d95, 0x8d9e, 0x8d9f, 0x8da0, 0x8da6, 0x8dab, 0x8dac, 0x8daf,
- 0x8db2, 0x8db5, 0x8db7, 0x8db9, 0x8dbb, 0x8dc0, 0x8dc5, 0x8dc6,
- 0x8dc7, 0x8dc8, 0x8dca, 0x8dce, 0x8dd1, 0x8dd4, 0x8dd5, 0x8dd7,
- 0x8dd9, 0x8de4, 0x8de5, 0x8de7, 0x8dec, 0x8df0, 0x8dbc, 0x8df1,
- 0x8df2, 0x8df4, 0x8dfd, 0x8e01, 0x8e04, 0x8e05, 0x8e06, 0x8e0b,
- 0x8e11, 0x8e14, 0x8e16, 0x8e20, 0x8e21, 0x8e22,
- /* 0x60 */
- 0x8e23, 0x8e26, 0x8e27, 0x8e31, 0x8e33, 0x8e36, 0x8e37, 0x8e38,
- 0x8e39, 0x8e3d, 0x8e40, 0x8e41, 0x8e4b, 0x8e4d, 0x8e4e, 0x8e4f,
- 0x8e54, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e61, 0x8e62, 0x8e69,
- 0x8e6c, 0x8e6d, 0x8e6f, 0x8e70, 0x8e71, 0x8e79, 0x8e7a, 0x8e7b,
- 0x8e82, 0x8e83, 0x8e89, 0x8e90, 0x8e92, 0x8e95, 0x8e9a, 0x8e9b,
- 0x8e9d, 0x8e9e, 0x8ea2, 0x8ea7, 0x8ea9, 0x8ead, 0x8eae, 0x8eb3,
- 0x8eb5, 0x8eba, 0x8ebb, 0x8ec0, 0x8ec1, 0x8ec3, 0x8ec4, 0x8ec7,
- 0x8ecf, 0x8ed1, 0x8ed4, 0x8edc, 0x8ee8, 0x8eee, 0x8ef0, 0x8ef1,
- 0x8ef7, 0x8ef9, 0x8efa, 0x8eed, 0x8f00, 0x8f02, 0x8f07, 0x8f08,
- 0x8f0f, 0x8f10, 0x8f16, 0x8f17, 0x8f18, 0x8f1e, 0x8f20, 0x8f21,
- 0x8f23, 0x8f25, 0x8f27, 0x8f28, 0x8f2c, 0x8f2d, 0x8f2e, 0x8f34,
- 0x8f35, 0x8f36, 0x8f37, 0x8f3a, 0x8f40, 0x8f41,
- /* 0x61 */
- 0x8f43, 0x8f47, 0x8f4f, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55,
- 0x8f58, 0x8f5d, 0x8f5e, 0x8f65, 0x8f9d, 0x8fa0, 0x8fa1, 0x8fa4,
- 0x8fa5, 0x8fa6, 0x8fb5, 0x8fb6, 0x8fb8, 0x8fbe, 0x8fc0, 0x8fc1,
- 0x8fc6, 0x8fca, 0x8fcb, 0x8fcd, 0x8fd0, 0x8fd2, 0x8fd3, 0x8fd5,
- 0x8fe0, 0x8fe3, 0x8fe4, 0x8fe8, 0x8fee, 0x8ff1, 0x8ff5, 0x8ff6,
- 0x8ffb, 0x8ffe, 0x9002, 0x9004, 0x9008, 0x900c, 0x9018, 0x901b,
- 0x9028, 0x9029, 0x902f, 0x902a, 0x902c, 0x902d, 0x9033, 0x9034,
- 0x9037, 0x903f, 0x9043, 0x9044, 0x904c, 0x905b, 0x905d, 0x9062,
- 0x9066, 0x9067, 0x906c, 0x9070, 0x9074, 0x9079, 0x9085, 0x9088,
- 0x908b, 0x908c, 0x908e, 0x9090, 0x9095, 0x9097, 0x9098, 0x9099,
- 0x909b, 0x90a0, 0x90a1, 0x90a2, 0x90a5, 0x90b0, 0x90b2, 0x90b3,
- 0x90b4, 0x90b6, 0x90bd, 0x90cc, 0x90be, 0x90c3,
- /* 0x62 */
- 0x90c4, 0x90c5, 0x90c7, 0x90c8, 0x90d5, 0x90d7, 0x90d8, 0x90d9,
- 0x90dc, 0x90dd, 0x90df, 0x90e5, 0x90d2, 0x90f6, 0x90eb, 0x90ef,
- 0x90f0, 0x90f4, 0x90fe, 0x90ff, 0x9100, 0x9104, 0x9105, 0x9106,
- 0x9108, 0x910d, 0x9110, 0x9114, 0x9116, 0x9117, 0x9118, 0x911a,
- 0x911c, 0x911e, 0x9120, 0x9125, 0x9122, 0x9123, 0x9127, 0x9129,
- 0x912e, 0x912f, 0x9131, 0x9134, 0x9136, 0x9137, 0x9139, 0x913a,
- 0x913c, 0x913d, 0x9143, 0x9147, 0x9148, 0x914f, 0x9153, 0x9157,
- 0x9159, 0x915a, 0x915b, 0x9161, 0x9164, 0x9167, 0x916d, 0x9174,
- 0x9179, 0x917a, 0x917b, 0x9181, 0x9183, 0x9185, 0x9186, 0x918a,
- 0x918e, 0x9191, 0x9193, 0x9194, 0x9195, 0x9198, 0x919e, 0x91a1,
- 0x91a6, 0x91a8, 0x91ac, 0x91ad, 0x91ae, 0x91b0, 0x91b1, 0x91b2,
- 0x91b3, 0x91b6, 0x91bb, 0x91bc, 0x91bd, 0x91bf,
- /* 0x63 */
- 0x91c2, 0x91c3, 0x91c5, 0x91d3, 0x91d4, 0x91d7, 0x91d9, 0x91da,
- 0x91de, 0x91e4, 0x91e5, 0x91e9, 0x91ea, 0x91ec, 0x91ed, 0x91ee,
- 0x91ef, 0x91f0, 0x91f1, 0x91f7, 0x91f9, 0x91fb, 0x91fd, 0x9200,
- 0x9201, 0x9204, 0x9205, 0x9206, 0x9207, 0x9209, 0x920a, 0x920c,
- 0x9210, 0x9212, 0x9213, 0x9216, 0x9218, 0x921c, 0x921d, 0x9223,
- 0x9224, 0x9225, 0x9226, 0x9228, 0x922e, 0x922f, 0x9230, 0x9233,
- 0x9235, 0x9236, 0x9238, 0x9239, 0x923a, 0x923c, 0x923e, 0x9240,
- 0x9242, 0x9243, 0x9246, 0x9247, 0x924a, 0x924d, 0x924e, 0x924f,
- 0x9251, 0x9258, 0x9259, 0x925c, 0x925d, 0x9260, 0x9261, 0x9265,
- 0x9267, 0x9268, 0x9269, 0x926e, 0x926f, 0x9270, 0x9275, 0x9276,
- 0x9277, 0x9278, 0x9279, 0x927b, 0x927c, 0x927d, 0x927f, 0x9288,
- 0x9289, 0x928a, 0x928d, 0x928e, 0x9292, 0x9297,
- /* 0x64 */
- 0x9299, 0x929f, 0x92a0, 0x92a4, 0x92a5, 0x92a7, 0x92a8, 0x92ab,
- 0x92af, 0x92b2, 0x92b6, 0x92b8, 0x92ba, 0x92bb, 0x92bc, 0x92bd,
- 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c5, 0x92c6, 0x92c7,
- 0x92c8, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92d0, 0x92d3, 0x92d5,
- 0x92d7, 0x92d8, 0x92d9, 0x92dc, 0x92dd, 0x92df, 0x92e0, 0x92e1,
- 0x92e3, 0x92e5, 0x92e7, 0x92e8, 0x92ec, 0x92ee, 0x92f0, 0x92f9,
- 0x92fb, 0x92ff, 0x9300, 0x9302, 0x9308, 0x930d, 0x9311, 0x9314,
- 0x9315, 0x931c, 0x931d, 0x931e, 0x931f, 0x9321, 0x9324, 0x9325,
- 0x9327, 0x9329, 0x932a, 0x9333, 0x9334, 0x9336, 0x9337, 0x9347,
- 0x9348, 0x9349, 0x9350, 0x9351, 0x9352, 0x9355, 0x9357, 0x9358,
- 0x935a, 0x935e, 0x9364, 0x9365, 0x9367, 0x9369, 0x936a, 0x936d,
- 0x936f, 0x9370, 0x9371, 0x9373, 0x9374, 0x9376,
- /* 0x65 */
- 0x937a, 0x937d, 0x937f, 0x9380, 0x9381, 0x9382, 0x9388, 0x938a,
- 0x938b, 0x938d, 0x938f, 0x9392, 0x9395, 0x9398, 0x939b, 0x939e,
- 0x93a1, 0x93a3, 0x93a4, 0x93a6, 0x93a8, 0x93ab, 0x93b4, 0x93b5,
- 0x93b6, 0x93ba, 0x93a9, 0x93c1, 0x93c4, 0x93c5, 0x93c6, 0x93c7,
- 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93d3, 0x93d9, 0x93dc,
- 0x93de, 0x93df, 0x93e2, 0x93e6, 0x93e7, 0x93f9, 0x93f7, 0x93f8,
- 0x93fa, 0x93fb, 0x93fd, 0x9401, 0x9402, 0x9404, 0x9408, 0x9409,
- 0x940d, 0x940e, 0x940f, 0x9415, 0x9416, 0x9417, 0x941f, 0x942e,
- 0x942f, 0x9431, 0x9432, 0x9433, 0x9434, 0x943b, 0x943f, 0x943d,
- 0x9443, 0x9445, 0x9448, 0x944a, 0x944c, 0x9455, 0x9459, 0x945c,
- 0x945f, 0x9461, 0x9463, 0x9468, 0x946b, 0x946d, 0x946e, 0x946f,
- 0x9471, 0x9472, 0x9484, 0x9483, 0x9578, 0x9579,
- /* 0x66 */
- 0x957e, 0x9584, 0x9588, 0x958c, 0x958d, 0x958e, 0x959d, 0x959e,
- 0x959f, 0x95a1, 0x95a6, 0x95a9, 0x95ab, 0x95ac, 0x95b4, 0x95b6,
- 0x95ba, 0x95bd, 0x95bf, 0x95c6, 0x95c8, 0x95c9, 0x95cb, 0x95d0,
- 0x95d1, 0x95d2, 0x95d3, 0x95d9, 0x95da, 0x95dd, 0x95de, 0x95df,
- 0x95e0, 0x95e4, 0x95e6, 0x961d, 0x961e, 0x9622, 0x9624, 0x9625,
- 0x9626, 0x962c, 0x9631, 0x9633, 0x9637, 0x9638, 0x9639, 0x963a,
- 0x963c, 0x963d, 0x9641, 0x9652, 0x9654, 0x9656, 0x9657, 0x9658,
- 0x9661, 0x966e, 0x9674, 0x967b, 0x967c, 0x967e, 0x967f, 0x9681,
- 0x9682, 0x9683, 0x9684, 0x9689, 0x9691, 0x9696, 0x969a, 0x969d,
- 0x969f, 0x96a4, 0x96a5, 0x96a6, 0x96a9, 0x96ae, 0x96af, 0x96b3,
- 0x96ba, 0x96ca, 0x96d2, 0x5db2, 0x96d8, 0x96da, 0x96dd, 0x96de,
- 0x96df, 0x96e9, 0x96ef, 0x96f1, 0x96fa, 0x9702,
- /* 0x67 */
- 0x9703, 0x9705, 0x9709, 0x971a, 0x971b, 0x971d, 0x9721, 0x9722,
- 0x9723, 0x9728, 0x9731, 0x9733, 0x9741, 0x9743, 0x974a, 0x974e,
- 0x974f, 0x9755, 0x9757, 0x9758, 0x975a, 0x975b, 0x9763, 0x9767,
- 0x976a, 0x976e, 0x9773, 0x9776, 0x9777, 0x9778, 0x977b, 0x977d,
- 0x977f, 0x9780, 0x9789, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a,
- 0x979e, 0x979f, 0x97a2, 0x97ac, 0x97ae, 0x97b1, 0x97b2, 0x97b5,
- 0x97b6, 0x97b8, 0x97b9, 0x97ba, 0x97bc, 0x97be, 0x97bf, 0x97c1,
- 0x97c4, 0x97c5, 0x97c7, 0x97c9, 0x97ca, 0x97cc, 0x97cd, 0x97ce,
- 0x97d0, 0x97d1, 0x97d4, 0x97d7, 0x97d8, 0x97d9, 0x97dd, 0x97de,
- 0x97e0, 0x97db, 0x97e1, 0x97e4, 0x97ef, 0x97f1, 0x97f4, 0x97f7,
- 0x97f8, 0x97fa, 0x9807, 0x980a, 0x9819, 0x980d, 0x980e, 0x9814,
- 0x9816, 0x981c, 0x981e, 0x9820, 0x9823, 0x9826,
- /* 0x68 */
- 0x982b, 0x982e, 0x982f, 0x9830, 0x9832, 0x9833, 0x9835, 0x9825,
- 0x983e, 0x9844, 0x9847, 0x984a, 0x9851, 0x9852, 0x9853, 0x9856,
- 0x9857, 0x9859, 0x985a, 0x9862, 0x9863, 0x9865, 0x9866, 0x986a,
- 0x986c, 0x98ab, 0x98ad, 0x98ae, 0x98b0, 0x98b4, 0x98b7, 0x98b8,
- 0x98ba, 0x98bb, 0x98bf, 0x98c2, 0x98c5, 0x98c8, 0x98cc, 0x98e1,
- 0x98e3, 0x98e5, 0x98e6, 0x98e7, 0x98ea, 0x98f3, 0x98f6, 0x9902,
- 0x9907, 0x9908, 0x9911, 0x9915, 0x9916, 0x9917, 0x991a, 0x991b,
- 0x991c, 0x991f, 0x9922, 0x9926, 0x9927, 0x992b, 0x9931, 0x9932,
- 0x9933, 0x9934, 0x9935, 0x9939, 0x993a, 0x993b, 0x993c, 0x9940,
- 0x9941, 0x9946, 0x9947, 0x9948, 0x994d, 0x994e, 0x9954, 0x9958,
- 0x9959, 0x995b, 0x995c, 0x995e, 0x995f, 0x9960, 0x999b, 0x999d,
- 0x999f, 0x99a6, 0x99b0, 0x99b1, 0x99b2, 0x99b5,
- /* 0x69 */
- 0x99b9, 0x99ba, 0x99bd, 0x99bf, 0x99c3, 0x99c9, 0x99d3, 0x99d4,
- 0x99d9, 0x99da, 0x99dc, 0x99de, 0x99e7, 0x99ea, 0x99eb, 0x99ec,
- 0x99f0, 0x99f4, 0x99f5, 0x99f9, 0x99fd, 0x99fe, 0x9a02, 0x9a03,
- 0x9a04, 0x9a0b, 0x9a0c, 0x9a10, 0x9a11, 0x9a16, 0x9a1e, 0x9a20,
- 0x9a22, 0x9a23, 0x9a24, 0x9a27, 0x9a2d, 0x9a2e, 0x9a33, 0x9a35,
- 0x9a36, 0x9a38, 0x9a47, 0x9a41, 0x9a44, 0x9a4a, 0x9a4b, 0x9a4c,
- 0x9a4e, 0x9a51, 0x9a54, 0x9a56, 0x9a5d, 0x9aaa, 0x9aac, 0x9aae,
- 0x9aaf, 0x9ab2, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab9, 0x9abb, 0x9abe,
- 0x9abf, 0x9ac1, 0x9ac3, 0x9ac6, 0x9ac8, 0x9ace, 0x9ad0, 0x9ad2,
- 0x9ad5, 0x9ad6, 0x9ad7, 0x9adb, 0x9adc, 0x9ae0, 0x9ae4, 0x9ae5,
- 0x9ae7, 0x9ae9, 0x9aec, 0x9af2, 0x9af3, 0x9af5, 0x9af9, 0x9afa,
- 0x9afd, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b03,
- /* 0x6a */
- 0x9b04, 0x9b05, 0x9b08, 0x9b09, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e,
- 0x9b10, 0x9b12, 0x9b16, 0x9b19, 0x9b1b, 0x9b1c, 0x9b20, 0x9b26,
- 0x9b2b, 0x9b2d, 0x9b33, 0x9b34, 0x9b35, 0x9b37, 0x9b39, 0x9b3a,
- 0x9b3d, 0x9b48, 0x9b4b, 0x9b4c, 0x9b55, 0x9b56, 0x9b57, 0x9b5b,
- 0x9b5e, 0x9b61, 0x9b63, 0x9b65, 0x9b66, 0x9b68, 0x9b6a, 0x9b6b,
- 0x9b6c, 0x9b6d, 0x9b6e, 0x9b73, 0x9b75, 0x9b77, 0x9b78, 0x9b79,
- 0x9b7f, 0x9b80, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b89, 0x9b8a,
- 0x9b8b, 0x9b8d, 0x9b8f, 0x9b90, 0x9b94, 0x9b9a, 0x9b9d, 0x9b9e,
- 0x9ba6, 0x9ba7, 0x9ba9, 0x9bac, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb7,
- 0x9bb8, 0x9bbb, 0x9bbc, 0x9bbe, 0x9bbf, 0x9bc1, 0x9bc7, 0x9bc8,
- 0x9bce, 0x9bd0, 0x9bd7, 0x9bd8, 0x9bdd, 0x9bdf, 0x9be5, 0x9be7,
- 0x9bea, 0x9beb, 0x9bef, 0x9bf3, 0x9bf7, 0x9bf8,
- /* 0x6b */
- 0x9bf9, 0x9bfa, 0x9bfd, 0x9bff, 0x9c00, 0x9c02, 0x9c0b, 0x9c0f,
- 0x9c11, 0x9c16, 0x9c18, 0x9c19, 0x9c1a, 0x9c1c, 0x9c1e, 0x9c22,
- 0x9c23, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c31, 0x9c35,
- 0x9c36, 0x9c37, 0x9c3d, 0x9c41, 0x9c43, 0x9c44, 0x9c45, 0x9c49,
- 0x9c4a, 0x9c4e, 0x9c4f, 0x9c50, 0x9c53, 0x9c54, 0x9c56, 0x9c58,
- 0x9c5b, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c63, 0x9c69, 0x9c6a, 0x9c5c,
- 0x9c6b, 0x9c68, 0x9c6e, 0x9c70, 0x9c72, 0x9c75, 0x9c77, 0x9c7b,
- 0x9ce6, 0x9cf2, 0x9cf7, 0x9cf9, 0x9d0b, 0x9d02, 0x9d11, 0x9d17,
- 0x9d18, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d2f, 0x9d30, 0x9d32, 0x9d33,
- 0x9d34, 0x9d3a, 0x9d3c, 0x9d45, 0x9d3d, 0x9d42, 0x9d43, 0x9d47,
- 0x9d4a, 0x9d53, 0x9d54, 0x9d5f, 0x9d63, 0x9d62, 0x9d65, 0x9d69,
- 0x9d6a, 0x9d6b, 0x9d70, 0x9d76, 0x9d77, 0x9d7b,
- /* 0x6c */
- 0x9d7c, 0x9d7e, 0x9d83, 0x9d84, 0x9d86, 0x9d8a, 0x9d8d, 0x9d8e,
- 0x9d92, 0x9d93, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9da1, 0x9daa,
- 0x9dac, 0x9dae, 0x9db1, 0x9db5, 0x9db9, 0x9dbc, 0x9dbf, 0x9dc3,
- 0x9dc7, 0x9dc9, 0x9dca, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dda,
- 0x9dde, 0x9ddf, 0x9de0, 0x9de5, 0x9de7, 0x9de9, 0x9deb, 0x9dee,
- 0x9df0, 0x9df3, 0x9df4, 0x9dfe, 0x9e0a, 0x9e02, 0x9e07, 0x9e0e,
- 0x9e10, 0x9e11, 0x9e12, 0x9e15, 0x9e16, 0x9e19, 0x9e1c, 0x9e1d,
- 0x9e7a, 0x9e7b, 0x9e7c, 0x9e80, 0x9e82, 0x9e83, 0x9e84, 0x9e85,
- 0x9e87, 0x9e8e, 0x9e8f, 0x9e96, 0x9e98, 0x9e9b, 0x9e9e, 0x9ea4,
- 0x9ea8, 0x9eac, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb3, 0x9eb4, 0x9eb5,
- 0x9ec6, 0x9ec8, 0x9ecb, 0x9ed5, 0x9edf, 0x9ee4, 0x9ee7, 0x9eec,
- 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef5,
- /* 0x6d */
- 0x9ef8, 0x9eff, 0x9f02, 0x9f03, 0x9f09, 0x9f0f, 0x9f10, 0x9f11,
- 0x9f12, 0x9f14, 0x9f16, 0x9f17, 0x9f19, 0x9f1a, 0x9f1b, 0x9f1f,
- 0x9f22, 0x9f26, 0x9f2a, 0x9f2b, 0x9f2f, 0x9f31, 0x9f32, 0x9f34,
- 0x9f37, 0x9f39, 0x9f3a, 0x9f3c, 0x9f3d, 0x9f3f, 0x9f41, 0x9f43,
- 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f53, 0x9f55, 0x9f56, 0x9f57,
- 0x9f58, 0x9f5a, 0x9f5d, 0x9f5e, 0x9f68, 0x9f69, 0x9f6d, 0x9f6e,
- 0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f75, 0x9f7a, 0x9f7d, 0x9f8f,
- 0x9f90, 0x9f91, 0x9f92, 0x9f94, 0x9f96, 0x9f97, 0x9f9e, 0x9fa1,
- 0x9fa2, 0x9fa3, 0x9fa5,
-};
-
-static int
-jisx0212_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = (s[0] & 0x7F);
- if ((c1 == 0x22) || (c1 >= 0x26 && c1 <= 0x27) || (c1 >= 0x29 && c1 <= 0x2b) || (c1 >= 0x30 && c1 <= 0x6d)) {
- if (n >= 2) {
- unsigned char c2 = (s[1] & 0x7F);
- if (c2 >= 0x21 && c2 < 0x7f) {
- unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
- unsigned short wc = 0xfffd;
- if (i < 470) {
- if (i < 175)
- wc = jisx0212_2uni_page22[i-94];
- } else if (i < 752) {
- if (i < 658)
- wc = jisx0212_2uni_page26[i-470];
- } else if (i < 1410) {
- if (i < 1027)
- wc = jisx0212_2uni_page29[i-752];
- } else {
- if (i < 7211)
- wc = jisx0212_2uni_page30[i-1410];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short jisx0212_2charset[6067] = {
- 0x2237, 0x2242, 0x2270, 0x2243, 0x226d, 0x226c, 0x226e, 0x2234,
- 0x2231, 0x226b, 0x2244, 0x2a22, 0x2a21, 0x2a24, 0x2a2a, 0x2a23,
- 0x2a29, 0x2921, 0x2a2e, 0x2a32, 0x2a31, 0x2a34, 0x2a33, 0x2a40,
- 0x2a3f, 0x2a42, 0x2a41, 0x2a50, 0x2a52, 0x2a51, 0x2a54, 0x2a58,
- 0x2a53, 0x292c, 0x2a63, 0x2a62, 0x2a65, 0x2a64, 0x2a72, 0x2930,
- 0x294e, 0x2b22, 0x2b21, 0x2b24, 0x2b2a, 0x2b23, 0x2b29, 0x2941,
- 0x2b2e, 0x2b32, 0x2b31, 0x2b34, 0x2b33, 0x2b40, 0x2b3f, 0x2b42,
- 0x2b41, 0x2943, 0x2b50, 0x2b52, 0x2b51, 0x2b54, 0x2b58, 0x2b53,
- 0x294c, 0x2b63, 0x2b62, 0x2b65, 0x2b64, 0x2b72, 0x2950, 0x2b73,
- 0x2a27, 0x2b27, 0x2a25, 0x2b25, 0x2a28, 0x2b28, 0x2a2b, 0x2b2b,
- 0x2a2c, 0x2b2c, 0x2a2f, 0x2b2f, 0x2a2d, 0x2b2d, 0x2a30, 0x2b30,
- 0x2922, 0x2942, 0x2a37, 0x2b37, 0x2a36, 0x2b36, 0x2a38, 0x2b38,
- 0x2a35, 0x2b35, 0x2a3a, 0x2b3a, 0x2a3b, 0x2b3b, 0x2a3d, 0x2b3d,
- 0x2a3c, 0x2a3e, 0x2b3e, 0x2924, 0x2944, 0x2a47, 0x2b47, 0x2a45,
- 0x2b45, 0x2a46, 0x2b46, 0x2a44, 0x2945, 0x2926, 0x2946, 0x2a48,
- 0x2b48, 0x2a49, 0x2b49, 0x2947, 0x2a4a, 0x2b4a, 0x2a4c, 0x2b4c,
- 0x2a4b, 0x2b4b, 0x2929, 0x2949, 0x2928, 0x2948, 0x2a4d, 0x2b4d,
- 0x2a4f, 0x2b4f, 0x2a4e, 0x2b4e, 0x294a, 0x292b, 0x294b, 0x2a57,
- 0x2b57, 0x2a56, 0x2b56, 0x292d, 0x294d, 0x2a59, 0x2b59, 0x2a5b,
- 0x2b5b, 0x2a5a, 0x2b5a, 0x2a5c, 0x2b5c, 0x2a5d, 0x2b5d, 0x2a5f,
- 0x2b5f, 0x2a5e, 0x2b5e, 0x2a61, 0x2b61, 0x2a60, 0x2b60, 0x292f,
- 0x294f, 0x2a6c, 0x2b6c, 0x2a69, 0x2b69, 0x2a66, 0x2b66, 0x2a6b,
- 0x2b6b, 0x2a68, 0x2b68, 0x2a6a, 0x2b6a, 0x2a71, 0x2b71, 0x2a74,
- 0x2b74, 0x2a73, 0x2a75, 0x2b75, 0x2a77, 0x2b77, 0x2a76, 0x2b76,
- 0x2a26, 0x2b26, 0x2a43, 0x2b43, 0x2a55, 0x2b55, 0x2a67, 0x2b67,
- 0x2a70, 0x2b70, 0x2a6d, 0x2b6d, 0x2a6f, 0x2b6f, 0x2a6e, 0x2b6e,
- 0x2b39, 0x2230, 0x222f, 0x2232, 0x2236, 0x2235, 0x2233, 0x2238,
- 0x2239, 0x2661, 0x2662, 0x2663, 0x2664, 0x2667, 0x2669, 0x266c,
- 0x2676, 0x2665, 0x266a, 0x2671, 0x2672, 0x2673, 0x2674, 0x267b,
- 0x2678, 0x2675, 0x267a, 0x2677, 0x2679, 0x267c, 0x2742, 0x2743,
- 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b,
- 0x274c, 0x274d, 0x274e, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776,
- 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e,
- 0x2271, 0x226f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026,
- 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e,
- 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036,
- 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e,
- 0x303f, 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046,
- 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e,
- 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056,
- 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e,
- 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067,
- 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f,
- 0x3070, 0x305f, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076,
- 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e,
- 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
- 0x3129, 0x312a, 0x312b, 0x312c, 0x312d, 0x312e, 0x312f, 0x3130,
- 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
- 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
- 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
- 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
- 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
- 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x3176, 0x315f,
- 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167,
- 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f,
- 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3177, 0x3178,
- 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x3221, 0x3222,
- 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a,
- 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x3230, 0x3231, 0x3232,
- 0x3233, 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323a,
- 0x323b, 0x323c, 0x323d, 0x323e, 0x323f, 0x3240, 0x3241, 0x3242,
- 0x3243, 0x3244, 0x3245, 0x3251, 0x3246, 0x3247, 0x3248, 0x3249,
- 0x324a, 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3250, 0x3252,
- 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a,
- 0x325b, 0x325c, 0x325d, 0x325e, 0x325f, 0x3260, 0x3261, 0x3262,
- 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a,
- 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272,
- 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a,
- 0x327b, 0x327c, 0x327d, 0x327e, 0x3321, 0x3322, 0x3323, 0x3324,
- 0x3325, 0x3326, 0x3327, 0x3328, 0x3329, 0x332a, 0x332b, 0x332c,
- 0x332d, 0x332e, 0x332f, 0x3330, 0x3331, 0x3332, 0x3333, 0x3334,
- 0x3335, 0x3336, 0x3337, 0x3338, 0x3339, 0x333a, 0x333b, 0x333c,
- 0x333d, 0x333e, 0x333f, 0x3340, 0x3341, 0x3342, 0x3343, 0x3344,
- 0x3345, 0x3346, 0x3347, 0x3348, 0x3349, 0x334a, 0x334b, 0x334c,
- 0x334d, 0x334e, 0x334f, 0x3350, 0x3351, 0x3352, 0x3353, 0x3354,
- 0x3355, 0x3356, 0x3357, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c,
- 0x335d, 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364,
- 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c,
- 0x336d, 0x336e, 0x336f, 0x3370, 0x3371, 0x3372, 0x3373, 0x3374,
- 0x3375, 0x3376, 0x3377, 0x3378, 0x3379, 0x337a, 0x337b, 0x337c,
- 0x337d, 0x337e, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426,
- 0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e,
- 0x342f, 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436,
- 0x3438, 0x3437, 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e,
- 0x343f, 0x3440, 0x3441, 0x3442, 0x3443, 0x3444, 0x3445, 0x3446,
- 0x3447, 0x3448, 0x3449, 0x344a, 0x344b, 0x344c, 0x344d, 0x344e,
- 0x344f, 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, 0x3455, 0x3456,
- 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 0x345d, 0x345e,
- 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 0x3466,
- 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e,
- 0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476,
- 0x3477, 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e,
- 0x3521, 0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528,
- 0x3529, 0x352a, 0x352b, 0x352c, 0x352d, 0x352e, 0x352f, 0x3530,
- 0x3531, 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538,
- 0x3539, 0x353a, 0x353b, 0x353c, 0x353d, 0x353e, 0x353f, 0x3540,
- 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548,
- 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 0x3550,
- 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558,
- 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560,
- 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568,
- 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570,
- 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578,
- 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x3621, 0x3622,
- 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 0x362a,
- 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 0x3631, 0x3632,
- 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 0x363a,
- 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642,
- 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a,
- 0x364b, 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652,
- 0x3653, 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a,
- 0x365b, 0x365c, 0x365d, 0x365e, 0x365f, 0x3660, 0x3661, 0x3662,
- 0x3663, 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, 0x3669, 0x366a,
- 0x366b, 0x366c, 0x366d, 0x3670, 0x3671, 0x366e, 0x366f, 0x3672,
- 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367a,
- 0x367b, 0x367d, 0x367e, 0x367c, 0x3721, 0x3722, 0x3723, 0x3724,
- 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c,
- 0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
- 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
- 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
- 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
- 0x374d, 0x374e, 0x374f, 0x3750, 0x3751, 0x3752, 0x3753, 0x3754,
- 0x3755, 0x3756, 0x3757, 0x3760, 0x3758, 0x3759, 0x375a, 0x375b,
- 0x375c, 0x375d, 0x375e, 0x375f, 0x3761, 0x3762, 0x3763, 0x3764,
- 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 0x376c,
- 0x376d, 0x377e, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773,
- 0x3774, 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b,
- 0x377c, 0x377d, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826,
- 0x3827, 0x3828, 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e,
- 0x382f, 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836,
- 0x3837, 0x3838, 0x3839, 0x383a, 0x383b, 0x383c, 0x383d, 0x383e,
- 0x383f, 0x3840, 0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846,
- 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 0x384d, 0x384e,
- 0x3850, 0x3851, 0x384f, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856,
- 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e,
- 0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3867,
- 0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f,
- 0x3870, 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877,
- 0x3878, 0x3879, 0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x3921,
- 0x3922, 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929,
- 0x392a, 0x392b, 0x392c, 0x392d, 0x392e, 0x392f, 0x3930, 0x3931,
- 0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939,
- 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 0x3940, 0x3941,
- 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949,
- 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951,
- 0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959,
- 0x395a, 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961,
- 0x3962, 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969,
- 0x396a, 0x396b, 0x396c, 0x396d, 0x396e, 0x396f, 0x3970, 0x3971,
- 0x3972, 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978, 0x3979,
- 0x397a, 0x397b, 0x397c, 0x397d, 0x397e, 0x3a21, 0x3a22, 0x3a23,
- 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 0x3a2a, 0x3a2b,
- 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a33, 0x3a34,
- 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a32, 0x3a39, 0x3a3a, 0x3a3b,
- 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43,
- 0x3a44, 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b,
- 0x3a4c, 0x3a4d, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53,
- 0x3a54, 0x3a55, 0x3a56, 0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b,
- 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, 0x3a60, 0x3a61, 0x3a62, 0x3a63,
- 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 0x3a6a, 0x3a6b,
- 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a72, 0x3a73,
- 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a, 0x3a7b,
- 0x3a7c, 0x3a7d, 0x3a7e, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25,
- 0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d,
- 0x3b2e, 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35,
- 0x3b36, 0x3b37, 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3d, 0x3b3c,
- 0x3b3e, 0x3b3f, 0x3b40, 0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45,
- 0x3b47, 0x3b48, 0x3b49, 0x3b4a, 0x3b46, 0x3b4b, 0x3b4c, 0x3b4d,
- 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 0x3b53, 0x3b57, 0x3b55,
- 0x3b54, 0x3b56, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 0x3b5c, 0x3b5d,
- 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64, 0x3b65,
- 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d,
- 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x6674, 0x3b73, 0x3b74,
- 0x3b75, 0x3b76, 0x3b77, 0x3b78, 0x3b7a, 0x3b79, 0x3b7b, 0x3b7c,
- 0x3b7d, 0x3b7e, 0x3c21, 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26,
- 0x3c27, 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, 0x3c2c, 0x3c2e, 0x3c2d,
- 0x3c2f, 0x3c30, 0x3c31, 0x3c34, 0x3c32, 0x3c33, 0x3c35, 0x3c36,
- 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 0x3c3d, 0x3c3e,
- 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 0x3c46,
- 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e,
- 0x3c4f, 0x3c50, 0x3c52, 0x3c51, 0x3c53, 0x3c54, 0x3c55, 0x3c56,
- 0x3c57, 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e,
- 0x3c5f, 0x3c60, 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66,
- 0x3c67, 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e,
- 0x3c6f, 0x3c70, 0x3c71, 0x3c72, 0x3c73, 0x3c74, 0x3c75, 0x3c76,
- 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 0x3c7c, 0x3c7d, 0x3c7e,
- 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 0x3d27, 0x3d28,
- 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, 0x3d2e, 0x3d2f, 0x3d32,
- 0x3d30, 0x3d31, 0x3d33, 0x3d34, 0x3d35, 0x3d36, 0x3d37, 0x3d38,
- 0x3d39, 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, 0x3d3e, 0x3d3f, 0x3d40,
- 0x3d41, 0x3d42, 0x3d43, 0x3d44, 0x3d45, 0x3d46, 0x3d47, 0x3d48,
- 0x3d49, 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, 0x3d4e, 0x3d4f, 0x3d50,
- 0x3d51, 0x3d52, 0x3d53, 0x3d54, 0x3d55, 0x3d56, 0x3d57, 0x3d58,
- 0x3d59, 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, 0x3d5e, 0x3d5f, 0x3d60,
- 0x3d61, 0x3d62, 0x3d63, 0x3d64, 0x3d65, 0x3d66, 0x3d67, 0x3d68,
- 0x3d69, 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, 0x3d6e, 0x3d6f, 0x3d70,
- 0x3d71, 0x3d72, 0x3d73, 0x3d74, 0x3d75, 0x3d76, 0x3d77, 0x3d78,
- 0x3d79, 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, 0x3d7e, 0x3e21, 0x3e22,
- 0x3e23, 0x3e24, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 0x3e2a,
- 0x3e2b, 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e32,
- 0x3e33, 0x3e34, 0x3e35, 0x3e36, 0x3e37, 0x3e38, 0x3e39, 0x3e3a,
- 0x3e3b, 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, 0x3e40, 0x3e41, 0x3e42,
- 0x3e43, 0x3e44, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 0x3e4a,
- 0x3e4b, 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e52,
- 0x3e53, 0x3e54, 0x3e55, 0x3e56, 0x3e57, 0x3e58, 0x3e59, 0x3e5a,
- 0x3e5b, 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, 0x3e60, 0x3e61, 0x3e62,
- 0x3e63, 0x3e64, 0x3e65, 0x3e66, 0x3e67, 0x3e68, 0x3e69, 0x3e6a,
- 0x3e6b, 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, 0x3e70, 0x3e71, 0x3e72,
- 0x3e73, 0x3e74, 0x3e75, 0x3e76, 0x3e77, 0x3e78, 0x3e79, 0x3e7a,
- 0x3e7b, 0x3e7e, 0x3e7c, 0x3e7d, 0x3f21, 0x3f22, 0x3f23, 0x3f24,
- 0x3f25, 0x3f26, 0x3f27, 0x3f28, 0x3f29, 0x3f2a, 0x3f2b, 0x3f2c,
- 0x3f2d, 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, 0x3f32, 0x3f33, 0x3f34,
- 0x3f35, 0x3f36, 0x3f37, 0x3f38, 0x3f39, 0x3f3a, 0x3f3b, 0x3f3c,
- 0x3f3d, 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, 0x3f42, 0x3f43, 0x3f44,
- 0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, 0x3f4a, 0x3f4b, 0x3f4c,
- 0x3f4d, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f52, 0x3f53, 0x3f54,
- 0x3f55, 0x3f56, 0x3f57, 0x3f58, 0x3f59, 0x3f5a, 0x3f5b, 0x3f5c,
- 0x3f5d, 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, 0x3f62, 0x3f63, 0x3f64,
- 0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, 0x3f6a, 0x3f6b, 0x3f6c,
- 0x3f6d, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f72, 0x3f73, 0x3f74,
- 0x3f75, 0x3f76, 0x3f77, 0x3f78, 0x3f79, 0x3f7a, 0x3f7b, 0x3f7c,
- 0x3f7d, 0x3f7e, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, 0x4026,
- 0x4027, 0x4028, 0x4029, 0x402a, 0x402b, 0x402c, 0x402d, 0x402e,
- 0x402f, 0x4030, 0x4031, 0x4032, 0x4033, 0x4034, 0x4035, 0x4036,
- 0x4037, 0x4038, 0x4039, 0x403a, 0x403b, 0x403c, 0x403d, 0x403e,
- 0x403f, 0x4040, 0x4041, 0x4042, 0x4043, 0x4044, 0x4045, 0x4046,
- 0x4047, 0x4048, 0x4049, 0x404a, 0x404b, 0x404c, 0x404d, 0x404e,
- 0x404f, 0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056,
- 0x4057, 0x4058, 0x4059, 0x405a, 0x405b, 0x405c, 0x405d, 0x405e,
- 0x405f, 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066,
- 0x4067, 0x4068, 0x4069, 0x406a, 0x406b, 0x406c, 0x406d, 0x406e,
- 0x406f, 0x4070, 0x4071, 0x4072, 0x4073, 0x4074, 0x4075, 0x4076,
- 0x4077, 0x4078, 0x4079, 0x407a, 0x407b, 0x407c, 0x407d, 0x407e,
- 0x4121, 0x4122, 0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128,
- 0x4129, 0x412a, 0x412b, 0x412c, 0x412d, 0x412e, 0x412f, 0x4130,
- 0x4131, 0x4132, 0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138,
- 0x4139, 0x413a, 0x413b, 0x413c, 0x413d, 0x413e, 0x413f, 0x4140,
- 0x4141, 0x4142, 0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148,
- 0x4149, 0x414a, 0x414b, 0x414c, 0x414d, 0x414e, 0x414f, 0x4150,
- 0x4151, 0x4152, 0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158,
- 0x4159, 0x415a, 0x415b, 0x415c, 0x415d, 0x415e, 0x415f, 0x4160,
- 0x4161, 0x4162, 0x4163, 0x4164, 0x4165, 0x4166, 0x4167, 0x4168,
- 0x4169, 0x416a, 0x416b, 0x416c, 0x416d, 0x416e, 0x416f, 0x4170,
- 0x4171, 0x4172, 0x4173, 0x4174, 0x4175, 0x4176, 0x4177, 0x4178,
- 0x4179, 0x417a, 0x417b, 0x417c, 0x417d, 0x417e, 0x4221, 0x4222,
- 0x4223, 0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 0x422a,
- 0x422b, 0x422c, 0x422d, 0x422e, 0x4230, 0x422f, 0x4231, 0x4232,
- 0x4233, 0x4234, 0x4235, 0x4237, 0x4236, 0x4238, 0x4239, 0x423a,
- 0x423b, 0x423c, 0x423d, 0x423e, 0x4240, 0x4241, 0x4242, 0x4244,
- 0x4245, 0x4247, 0x4248, 0x4249, 0x424a, 0x424c, 0x4243, 0x4246,
- 0x424b, 0x424d, 0x424e, 0x424f, 0x4250, 0x4251, 0x4252, 0x4253,
- 0x4254, 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425a, 0x425b,
- 0x425c, 0x425d, 0x425e, 0x425f, 0x4260, 0x4261, 0x4262, 0x4263,
- 0x4264, 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 0x426a, 0x426b,
- 0x426c, 0x426d, 0x423f, 0x426e, 0x426f, 0x4270, 0x4271, 0x4272,
- 0x4273, 0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, 0x427a,
- 0x427b, 0x427c, 0x427d, 0x427e, 0x4321, 0x4322, 0x4323, 0x4324,
- 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, 0x432a, 0x432b, 0x432c,
- 0x432d, 0x432e, 0x432f, 0x4330, 0x4331, 0x4332, 0x4333, 0x4334,
- 0x4335, 0x4336, 0x4337, 0x4339, 0x433a, 0x433b, 0x433c, 0x433d,
- 0x433e, 0x433f, 0x4340, 0x4341, 0x4342, 0x4343, 0x4344, 0x4345,
- 0x4346, 0x4347, 0x4348, 0x4338, 0x434a, 0x434b, 0x434c, 0x434d,
- 0x434f, 0x434e, 0x4350, 0x4351, 0x4352, 0x4353, 0x4354, 0x4355,
- 0x4356, 0x4357, 0x4358, 0x4359, 0x435a, 0x435b, 0x4349, 0x435c,
- 0x435d, 0x435e, 0x435f, 0x4360, 0x4361, 0x4362, 0x4363, 0x4364,
- 0x4365, 0x4366, 0x4367, 0x4368, 0x4369, 0x436a, 0x436b, 0x436c,
- 0x436d, 0x436e, 0x436f, 0x4370, 0x4371, 0x4372, 0x4373, 0x4374,
- 0x4375, 0x4376, 0x4377, 0x4378, 0x4379, 0x437a, 0x437b, 0x437c,
- 0x437d, 0x437e, 0x4421, 0x4422, 0x4423, 0x4424, 0x4425, 0x4426,
- 0x4427, 0x4428, 0x4429, 0x442a, 0x442b, 0x442c, 0x442d, 0x442e,
- 0x442f, 0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435, 0x4436,
- 0x4437, 0x4438, 0x4439, 0x443a, 0x443b, 0x443c, 0x443d, 0x443e,
- 0x443f, 0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445, 0x4446,
- 0x4447, 0x4448, 0x4449, 0x444a, 0x444b, 0x444c, 0x444d, 0x444e,
- 0x444f, 0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455, 0x4456,
- 0x4457, 0x4458, 0x4459, 0x445a, 0x445b, 0x445c, 0x445d, 0x445e,
- 0x445f, 0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465, 0x4466,
- 0x4467, 0x4468, 0x4469, 0x446a, 0x446b, 0x446c, 0x446d, 0x446e,
- 0x446f, 0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475, 0x4476,
- 0x4477, 0x4478, 0x4479, 0x447a, 0x447b, 0x447c, 0x447d, 0x447e,
- 0x4521, 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527, 0x4528,
- 0x4529, 0x452a, 0x452b, 0x452c, 0x452d, 0x452e, 0x452f, 0x4530,
- 0x4531, 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537, 0x4538,
- 0x4539, 0x453a, 0x453b, 0x453c, 0x453d, 0x453e, 0x453f, 0x4540,
- 0x4541, 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548,
- 0x4549, 0x454a, 0x454b, 0x454d, 0x454c, 0x454e, 0x454f, 0x4550,
- 0x4551, 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557, 0x4558,
- 0x4559, 0x455a, 0x455b, 0x455c, 0x455d, 0x455e, 0x455f, 0x4560,
- 0x4561, 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567, 0x4568,
- 0x4569, 0x456a, 0x456b, 0x456c, 0x456d, 0x456e, 0x456f, 0x4570,
- 0x4571, 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577, 0x4578,
- 0x4579, 0x457a, 0x457b, 0x457c, 0x457d, 0x457e, 0x4621, 0x4622,
- 0x4623, 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629, 0x462a,
- 0x462b, 0x462c, 0x462d, 0x462e, 0x462f, 0x4630, 0x4631, 0x4632,
- 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, 0x4639, 0x463a,
- 0x463b, 0x463c, 0x463d, 0x463e, 0x463f, 0x4640, 0x4641, 0x4642,
- 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649, 0x464a,
- 0x464b, 0x464c, 0x464d, 0x464e, 0x464f, 0x4650, 0x4651, 0x4652,
- 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659, 0x465a,
- 0x465b, 0x465c, 0x465d, 0x465e, 0x465f, 0x4660, 0x4736, 0x4661,
- 0x4662, 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669,
- 0x466a, 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, 0x4670, 0x4671,
- 0x4672, 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679,
- 0x467a, 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, 0x4722, 0x4723,
- 0x4724, 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, 0x472a, 0x472b,
- 0x472c, 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, 0x4732, 0x4733,
- 0x4734, 0x4735, 0x4737, 0x4738, 0x4739, 0x473a, 0x473b, 0x473c,
- 0x473d, 0x473e, 0x473f, 0x4740, 0x4741, 0x4742, 0x4743, 0x4744,
- 0x4745, 0x4746, 0x4747, 0x4748, 0x4749, 0x474a, 0x474b, 0x474c,
- 0x474d, 0x474e, 0x474f, 0x4750, 0x4751, 0x4752, 0x4753, 0x4754,
- 0x4755, 0x4756, 0x4757, 0x4758, 0x4759, 0x475a, 0x475b, 0x475c,
- 0x475d, 0x475e, 0x475f, 0x4760, 0x4761, 0x4762, 0x4763, 0x4764,
- 0x4765, 0x4766, 0x4767, 0x4768, 0x4769, 0x476a, 0x476b, 0x476c,
- 0x476d, 0x476e, 0x476f, 0x4770, 0x4771, 0x4772, 0x4773, 0x4774,
- 0x4775, 0x4776, 0x4777, 0x4778, 0x4779, 0x477a, 0x477b, 0x477c,
- 0x477d, 0x477e, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826,
- 0x4827, 0x4828, 0x4829, 0x482a, 0x482b, 0x482c, 0x482d, 0x482e,
- 0x482f, 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836,
- 0x4837, 0x4838, 0x4839, 0x483a, 0x483b, 0x483c, 0x483d, 0x483e,
- 0x483f, 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846,
- 0x4847, 0x4848, 0x4849, 0x484a, 0x484b, 0x484c, 0x4853, 0x484d,
- 0x484e, 0x484f, 0x4850, 0x4851, 0x4852, 0x4854, 0x4855, 0x4856,
- 0x4857, 0x4858, 0x4859, 0x485a, 0x485b, 0x485c, 0x485d, 0x485e,
- 0x485f, 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866,
- 0x4867, 0x4868, 0x4869, 0x486a, 0x486b, 0x486c, 0x486d, 0x486e,
- 0x486f, 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876,
- 0x4877, 0x4878, 0x4879, 0x487a, 0x487b, 0x487c, 0x487d, 0x487e,
- 0x4921, 0x4922, 0x4923, 0x4924, 0x4925, 0x4926, 0x4927, 0x4928,
- 0x4929, 0x492a, 0x492b, 0x492c, 0x492d, 0x492e, 0x492f, 0x4930,
- 0x4931, 0x4932, 0x4933, 0x4934, 0x4935, 0x4936, 0x4937, 0x4938,
- 0x4939, 0x493a, 0x493b, 0x493c, 0x4941, 0x493d, 0x493e, 0x493f,
- 0x4940, 0x4942, 0x4943, 0x4944, 0x4945, 0x4946, 0x4947, 0x4948,
- 0x4949, 0x494a, 0x494b, 0x494c, 0x494d, 0x494e, 0x494f, 0x4950,
- 0x4951, 0x4952, 0x4953, 0x4954, 0x4955, 0x4956, 0x4957, 0x4958,
- 0x4959, 0x495a, 0x495b, 0x495c, 0x495d, 0x495e, 0x495f, 0x4960,
- 0x4961, 0x4962, 0x4963, 0x4964, 0x4965, 0x4966, 0x4967, 0x4968,
- 0x4969, 0x496a, 0x496b, 0x496c, 0x496d, 0x496e, 0x496f, 0x4970,
- 0x4971, 0x4972, 0x4973, 0x4974, 0x4975, 0x4976, 0x4977, 0x4978,
- 0x4979, 0x497a, 0x497b, 0x497c, 0x497d, 0x497e, 0x4a21, 0x4a22,
- 0x4a23, 0x4a24, 0x4a25, 0x4a26, 0x4a27, 0x4a28, 0x4a29, 0x4a2a,
- 0x4a2b, 0x4a2c, 0x4a2d, 0x4a2e, 0x4a2f, 0x4a30, 0x4a31, 0x4a32,
- 0x4a33, 0x4a34, 0x4a35, 0x4a36, 0x4a37, 0x4a38, 0x4a39, 0x4a3a,
- 0x4a3b, 0x4a3c, 0x4a3d, 0x4a3e, 0x4a3f, 0x4a40, 0x4a41, 0x4a42,
- 0x4a43, 0x4a44, 0x4a45, 0x4a46, 0x4a47, 0x4a48, 0x4a49, 0x4a4a,
- 0x4a4b, 0x4a4c, 0x4a4d, 0x4a4e, 0x4a4f, 0x4a50, 0x4a51, 0x4a52,
- 0x4a53, 0x4a54, 0x4a55, 0x4a56, 0x4a57, 0x4a58, 0x4a59, 0x4a5a,
- 0x4a5b, 0x4a5c, 0x4a5d, 0x4a5e, 0x4a5f, 0x4a60, 0x4a61, 0x4a62,
- 0x4a63, 0x4a64, 0x4a65, 0x4a66, 0x4a67, 0x4a68, 0x4a69, 0x4a6a,
- 0x4a6b, 0x4a6c, 0x4a6d, 0x4a6e, 0x4a6f, 0x4a70, 0x4a71, 0x4a72,
- 0x4a73, 0x4a74, 0x4a75, 0x4a76, 0x4a77, 0x4a78, 0x4a79, 0x4a7a,
- 0x4a7b, 0x4a7c, 0x4a7d, 0x4a7e, 0x4b21, 0x4b22, 0x4b23, 0x4b24,
- 0x4b25, 0x4b26, 0x4b27, 0x4b28, 0x4b29, 0x4b2a, 0x4b2b, 0x4b2c,
- 0x4b2d, 0x4b2e, 0x4b2f, 0x4b30, 0x4b31, 0x4b32, 0x4b33, 0x4b34,
- 0x4b35, 0x4b36, 0x4b37, 0x4b38, 0x4b39, 0x4b3a, 0x4b3b, 0x4b3c,
- 0x4b3d, 0x4b3e, 0x4b3f, 0x4b40, 0x4b41, 0x4b42, 0x4b43, 0x4b44,
- 0x4b45, 0x4b46, 0x4b47, 0x4b48, 0x4b49, 0x4b4a, 0x4b4b, 0x4b4c,
- 0x4b4d, 0x4b4e, 0x4b4f, 0x4b50, 0x4b51, 0x4b52, 0x4b53, 0x4b54,
- 0x4b55, 0x4b56, 0x4b57, 0x4b58, 0x4b59, 0x4b5a, 0x4b5b, 0x4b5c,
- 0x4b5d, 0x4b5e, 0x4b5f, 0x4b60, 0x4b61, 0x4b62, 0x4b63, 0x4b64,
- 0x4b65, 0x4b66, 0x4b67, 0x4b68, 0x4b69, 0x4b6a, 0x4b6b, 0x4b6c,
- 0x4b6d, 0x4b6e, 0x4b6f, 0x4b70, 0x4b71, 0x4b72, 0x4b73, 0x4b74,
- 0x4b75, 0x4b76, 0x4b77, 0x4b78, 0x4b79, 0x4b7a, 0x4b7b, 0x4b7c,
- 0x4b7d, 0x4b7e, 0x4c21, 0x4c22, 0x4c23, 0x4c24, 0x4c25, 0x4c26,
- 0x4c27, 0x4c28, 0x4c29, 0x4c2a, 0x4c2b, 0x4c2c, 0x4c2d, 0x4c2e,
- 0x4c2f, 0x4c30, 0x4c31, 0x4c32, 0x4c33, 0x4c34, 0x4c35, 0x4c36,
- 0x4c37, 0x4c38, 0x4c39, 0x4c3a, 0x4c3b, 0x4c3c, 0x4c3d, 0x4c3e,
- 0x4c3f, 0x4c40, 0x4c41, 0x4c42, 0x4c43, 0x4c44, 0x4c45, 0x4c46,
- 0x4c47, 0x4c48, 0x4c49, 0x4c4a, 0x4c4b, 0x4c4c, 0x4c4d, 0x4c4e,
- 0x4c4f, 0x4c50, 0x4c51, 0x4c52, 0x4c53, 0x4c54, 0x4c55, 0x4c56,
- 0x4c57, 0x4c58, 0x4c59, 0x4c5a, 0x4c5b, 0x4c5c, 0x4c5d, 0x4c5e,
- 0x4c5f, 0x4c60, 0x4c61, 0x4c62, 0x4c63, 0x4c64, 0x4c65, 0x4c66,
- 0x4c67, 0x4c68, 0x4c69, 0x4c6a, 0x4c6b, 0x4c6c, 0x4c6d, 0x4c6e,
- 0x4c6f, 0x4c70, 0x4c71, 0x4c72, 0x4c73, 0x4c74, 0x4c75, 0x4c76,
- 0x4c77, 0x4c78, 0x4c79, 0x4c7a, 0x4c7b, 0x4c7c, 0x4c7d, 0x4c7e,
- 0x4d21, 0x4d22, 0x4d23, 0x4d24, 0x4d25, 0x4d26, 0x4d27, 0x4d28,
- 0x4d29, 0x4d2a, 0x4d2b, 0x4d2c, 0x4d2d, 0x4d2e, 0x4d2f, 0x4d30,
- 0x4d31, 0x4d32, 0x4d33, 0x4d34, 0x4d35, 0x4d36, 0x4d37, 0x4d38,
- 0x4d39, 0x4d3a, 0x4d3b, 0x4d3c, 0x4d3d, 0x4d3e, 0x4d3f, 0x4d40,
- 0x4d41, 0x4d42, 0x4d43, 0x4d44, 0x4d45, 0x4d46, 0x4d47, 0x4d48,
- 0x4d49, 0x4d4a, 0x4d4b, 0x4d4c, 0x4d4d, 0x4d4e, 0x4d4f, 0x4d50,
- 0x4d51, 0x4d52, 0x4d53, 0x4d54, 0x4d55, 0x4d56, 0x4d57, 0x4d58,
- 0x4d59, 0x4d5a, 0x4d5b, 0x4d5c, 0x4d5d, 0x4d5e, 0x4d5f, 0x4d60,
- 0x4d61, 0x4d62, 0x4d63, 0x4d64, 0x4d65, 0x4d66, 0x4d67, 0x4d68,
- 0x4d69, 0x4d6a, 0x4d6b, 0x4d6c, 0x4d6d, 0x4d6e, 0x4d6f, 0x4d70,
- 0x4d71, 0x4d72, 0x4d73, 0x4d74, 0x4d75, 0x4d76, 0x4d77, 0x4d78,
- 0x4d79, 0x4d7a, 0x4d7b, 0x4d7c, 0x4d7d, 0x4d7e, 0x4e21, 0x4e22,
- 0x4e24, 0x4e25, 0x4e26, 0x4e27, 0x4e28, 0x4e29, 0x4e23, 0x4e2a,
- 0x4e2b, 0x4e2c, 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32,
- 0x4e33, 0x4e34, 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a,
- 0x4e3b, 0x4e3c, 0x4e3d, 0x4e3e, 0x4e3f, 0x4e40, 0x4e41, 0x4e42,
- 0x4e43, 0x4e44, 0x4e45, 0x4e46, 0x4e47, 0x4e48, 0x4e49, 0x4e4a,
- 0x4e4b, 0x4e4c, 0x4e4d, 0x4e4e, 0x4e4f, 0x4e50, 0x4e51, 0x4e52,
- 0x4e53, 0x4e54, 0x4e55, 0x4e56, 0x4e57, 0x4e58, 0x4e59, 0x4e5a,
- 0x4e5b, 0x4e5c, 0x4e5d, 0x4e5e, 0x4e5f, 0x4e60, 0x4e61, 0x4e62,
- 0x4e63, 0x4e64, 0x4e65, 0x4e66, 0x4e67, 0x4e68, 0x4e69, 0x4e6a,
- 0x4e6b, 0x4e6c, 0x4e6d, 0x4e6e, 0x4e6f, 0x4e70, 0x4e71, 0x4e72,
- 0x4e73, 0x4e74, 0x4e75, 0x4e76, 0x4e77, 0x4e78, 0x4e79, 0x4e7a,
- 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7e, 0x4f21, 0x4f22, 0x4f23, 0x4f24,
- 0x4f25, 0x4f26, 0x4f27, 0x4f28, 0x4f29, 0x4f2a, 0x4f2b, 0x4f2c,
- 0x4f2d, 0x4f2e, 0x4f2f, 0x4f30, 0x4f31, 0x4f32, 0x4f33, 0x4f34,
- 0x4f35, 0x4f36, 0x4f37, 0x4f38, 0x4f39, 0x4f3a, 0x4f3b, 0x4f3c,
- 0x4f3d, 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f43, 0x4f44,
- 0x4f45, 0x4f46, 0x4f47, 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c,
- 0x4f4d, 0x4f4e, 0x4f4f, 0x4f50, 0x4f51, 0x4f52, 0x4f53, 0x4f54,
- 0x4f55, 0x4f56, 0x4f57, 0x4f58, 0x4f59, 0x4f5a, 0x4f5b, 0x4f5c,
- 0x4f5d, 0x4f5e, 0x4f5f, 0x4f60, 0x4f61, 0x4f62, 0x4f63, 0x4f64,
- 0x4f65, 0x4f66, 0x4f67, 0x4f68, 0x4f69, 0x4f6a, 0x4f6b, 0x4f6c,
- 0x4f6d, 0x4f6e, 0x4f6f, 0x4f70, 0x4f71, 0x4f72, 0x4f74, 0x4f75,
- 0x4f76, 0x4f73, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7b, 0x4f7c,
- 0x4f7d, 0x4f7e, 0x5021, 0x5022, 0x5023, 0x5024, 0x5025, 0x5026,
- 0x5027, 0x5028, 0x5029, 0x502a, 0x502b, 0x502c, 0x502e, 0x502f,
- 0x5030, 0x5031, 0x502d, 0x5032, 0x5033, 0x5034, 0x5035, 0x5037,
- 0x5038, 0x5039, 0x503a, 0x503b, 0x5036, 0x503c, 0x503d, 0x503e,
- 0x503f, 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045, 0x5046,
- 0x5047, 0x5048, 0x5049, 0x504a, 0x504b, 0x504c, 0x504d, 0x504e,
- 0x504f, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055, 0x5056,
- 0x5057, 0x5058, 0x5059, 0x505a, 0x505b, 0x505c, 0x505d, 0x505e,
- 0x505f, 0x5060, 0x5061, 0x5062, 0x5063, 0x5064, 0x5065, 0x5066,
- 0x5067, 0x5068, 0x5069, 0x506a, 0x506b, 0x506c, 0x506d, 0x506e,
- 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, 0x5075, 0x5076,
- 0x5077, 0x5078, 0x5079, 0x507a, 0x507b, 0x507c, 0x507d, 0x507e,
- 0x5121, 0x5122, 0x5123, 0x5124, 0x5125, 0x5126, 0x5127, 0x5128,
- 0x5129, 0x512a, 0x512b, 0x512c, 0x512d, 0x512e, 0x512f, 0x5130,
- 0x5131, 0x5132, 0x5133, 0x5134, 0x5135, 0x5136, 0x5137, 0x5138,
- 0x5139, 0x513a, 0x513b, 0x513c, 0x513d, 0x513e, 0x513f, 0x5140,
- 0x5141, 0x5142, 0x5143, 0x5144, 0x5145, 0x5146, 0x5147, 0x5148,
- 0x5149, 0x514a, 0x514b, 0x514c, 0x514d, 0x514e, 0x514f, 0x5150,
- 0x5151, 0x5152, 0x5153, 0x5154, 0x5155, 0x5156, 0x5157, 0x5158,
- 0x5159, 0x515a, 0x515b, 0x515c, 0x515d, 0x515e, 0x515f, 0x5160,
- 0x5161, 0x5162, 0x5163, 0x5164, 0x5165, 0x5166, 0x5167, 0x5168,
- 0x5169, 0x516a, 0x516b, 0x516c, 0x516d, 0x516e, 0x516f, 0x5170,
- 0x5171, 0x5172, 0x5173, 0x5174, 0x5175, 0x5176, 0x5177, 0x5178,
- 0x5179, 0x517a, 0x517b, 0x517c, 0x517d, 0x517e, 0x5221, 0x5222,
- 0x5223, 0x5224, 0x5225, 0x5226, 0x5227, 0x5228, 0x5229, 0x522a,
- 0x522b, 0x522c, 0x522d, 0x522e, 0x522f, 0x5230, 0x5231, 0x5232,
- 0x5233, 0x5234, 0x5235, 0x5236, 0x5237, 0x5238, 0x5239, 0x523a,
- 0x523b, 0x523c, 0x523d, 0x523e, 0x523f, 0x5240, 0x5241, 0x5242,
- 0x5243, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524a,
- 0x524b, 0x524c, 0x524d, 0x524e, 0x524f, 0x5250, 0x5251, 0x5252,
- 0x5253, 0x5254, 0x5255, 0x5256, 0x5257, 0x5258, 0x5259, 0x525a,
- 0x525b, 0x525c, 0x525d, 0x525e, 0x525f, 0x5260, 0x5261, 0x5262,
- 0x5263, 0x5264, 0x5265, 0x5266, 0x5267, 0x5268, 0x5269, 0x526a,
- 0x526b, 0x526c, 0x526d, 0x526e, 0x526f, 0x5270, 0x5271, 0x5272,
- 0x5273, 0x5274, 0x5276, 0x5277, 0x5278, 0x5275, 0x5279, 0x527a,
- 0x527b, 0x527c, 0x527d, 0x527e, 0x5321, 0x5322, 0x5323, 0x5324,
- 0x5325, 0x5326, 0x5327, 0x5328, 0x5329, 0x532a, 0x532b, 0x532c,
- 0x532d, 0x532e, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334,
- 0x5335, 0x5336, 0x5337, 0x5338, 0x5339, 0x533a, 0x533b, 0x533c,
- 0x533d, 0x533e, 0x533f, 0x5340, 0x5341, 0x5342, 0x5343, 0x5344,
- 0x5345, 0x5346, 0x5347, 0x5348, 0x5349, 0x534a, 0x534b, 0x534c,
- 0x534d, 0x534e, 0x534f, 0x5350, 0x5351, 0x5352, 0x5353, 0x5354,
- 0x5355, 0x5356, 0x5357, 0x5358, 0x5359, 0x535a, 0x535b, 0x535c,
- 0x535d, 0x535e, 0x535f, 0x5360, 0x5361, 0x5362, 0x5363, 0x5364,
- 0x5365, 0x5366, 0x5367, 0x5368, 0x5369, 0x536a, 0x536b, 0x536c,
- 0x536d, 0x536e, 0x536f, 0x5370, 0x5371, 0x5372, 0x5373, 0x5374,
- 0x5375, 0x5376, 0x5377, 0x5378, 0x5379, 0x537a, 0x537b, 0x537c,
- 0x537d, 0x537e, 0x5421, 0x5422, 0x5423, 0x5424, 0x5425, 0x5426,
- 0x5427, 0x5428, 0x5429, 0x542a, 0x542b, 0x542c, 0x542d, 0x542e,
- 0x542f, 0x5430, 0x5431, 0x5432, 0x5434, 0x5435, 0x5436, 0x5437,
- 0x5438, 0x5439, 0x543a, 0x543b, 0x543c, 0x543d, 0x543e, 0x5433,
- 0x543f, 0x5440, 0x5441, 0x5442, 0x5443, 0x5444, 0x5445, 0x5446,
- 0x5447, 0x5448, 0x5449, 0x544a, 0x544b, 0x544c, 0x544d, 0x544e,
- 0x544f, 0x5450, 0x5451, 0x5452, 0x5453, 0x5454, 0x5455, 0x5456,
- 0x5457, 0x5458, 0x5459, 0x545a, 0x545b, 0x545c, 0x545d, 0x545e,
- 0x545f, 0x5460, 0x5461, 0x5462, 0x5463, 0x5464, 0x5465, 0x5466,
- 0x5467, 0x5468, 0x5469, 0x546a, 0x546c, 0x546b, 0x546d, 0x546e,
- 0x546f, 0x5470, 0x5471, 0x5472, 0x5473, 0x5474, 0x5475, 0x5476,
- 0x5477, 0x5478, 0x5479, 0x547a, 0x547b, 0x547c, 0x547d, 0x547e,
- 0x5521, 0x5522, 0x5523, 0x5524, 0x5525, 0x5526, 0x5527, 0x5528,
- 0x5529, 0x552a, 0x552b, 0x552c, 0x552d, 0x552e, 0x552f, 0x5530,
- 0x5531, 0x5532, 0x5533, 0x5534, 0x5535, 0x5536, 0x5537, 0x5538,
- 0x5539, 0x553a, 0x553b, 0x553c, 0x553d, 0x553e, 0x553f, 0x5540,
- 0x5541, 0x5542, 0x5543, 0x5544, 0x5545, 0x5546, 0x5547, 0x5548,
- 0x5549, 0x554a, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5550,
- 0x5551, 0x5552, 0x5553, 0x5554, 0x5555, 0x5556, 0x5557, 0x5558,
- 0x5559, 0x555a, 0x555b, 0x555c, 0x555d, 0x555e, 0x555f, 0x5560,
- 0x5561, 0x5562, 0x5563, 0x5564, 0x5565, 0x5566, 0x5567, 0x5568,
- 0x5569, 0x556a, 0x556b, 0x556c, 0x556d, 0x556e, 0x556f, 0x5570,
- 0x5571, 0x5572, 0x5573, 0x5574, 0x5575, 0x5576, 0x5577, 0x5578,
- 0x5579, 0x557a, 0x557b, 0x557c, 0x557d, 0x557e, 0x5621, 0x5622,
- 0x5623, 0x5624, 0x5625, 0x5626, 0x5627, 0x5628, 0x5629, 0x562a,
- 0x562b, 0x562c, 0x562d, 0x562e, 0x562f, 0x5630, 0x5631, 0x5632,
- 0x5633, 0x5634, 0x5635, 0x5636, 0x5637, 0x5638, 0x5639, 0x563a,
- 0x563b, 0x563c, 0x563d, 0x563e, 0x563f, 0x5640, 0x5641, 0x5642,
- 0x5643, 0x5644, 0x5645, 0x5647, 0x5648, 0x5649, 0x564a, 0x564b,
- 0x5646, 0x564c, 0x564d, 0x564e, 0x564f, 0x5650, 0x5651, 0x5652,
- 0x5653, 0x5654, 0x5656, 0x5657, 0x5658, 0x5655, 0x5659, 0x565a,
- 0x565b, 0x565c, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5662,
- 0x5663, 0x5664, 0x5665, 0x5666, 0x5667, 0x5668, 0x5669, 0x566a,
- 0x566b, 0x566c, 0x566d, 0x566e, 0x566f, 0x5670, 0x5671, 0x5672,
- 0x5673, 0x5674, 0x5675, 0x5676, 0x5677, 0x5678, 0x5679, 0x567a,
- 0x567b, 0x567c, 0x567d, 0x567e, 0x5721, 0x5722, 0x5723, 0x5724,
- 0x5725, 0x5726, 0x5727, 0x5728, 0x5729, 0x572a, 0x572b, 0x572c,
- 0x572d, 0x572e, 0x572f, 0x5730, 0x5731, 0x5732, 0x5733, 0x5734,
- 0x5735, 0x5736, 0x5737, 0x5738, 0x5739, 0x573a, 0x573b, 0x573c,
- 0x573d, 0x573e, 0x573f, 0x5740, 0x5741, 0x5742, 0x5743, 0x5744,
- 0x5745, 0x5746, 0x5747, 0x5748, 0x5749, 0x574a, 0x574b, 0x574c,
- 0x574d, 0x574e, 0x574f, 0x5750, 0x5751, 0x5752, 0x5753, 0x5754,
- 0x5755, 0x5756, 0x5757, 0x5758, 0x5759, 0x575a, 0x575b, 0x575c,
- 0x575d, 0x575e, 0x575f, 0x5760, 0x5761, 0x5762, 0x5764, 0x5765,
- 0x5766, 0x5767, 0x5768, 0x5769, 0x576a, 0x576b, 0x576c, 0x576d,
- 0x576e, 0x576f, 0x5770, 0x5771, 0x5772, 0x5773, 0x5774, 0x5775,
- 0x5776, 0x5777, 0x5778, 0x5779, 0x583e, 0x5763, 0x577a, 0x577b,
- 0x577c, 0x577d, 0x577e, 0x5821, 0x5822, 0x5823, 0x5824, 0x5825,
- 0x5826, 0x5827, 0x5828, 0x5829, 0x582a, 0x582b, 0x582c, 0x582d,
- 0x582e, 0x582f, 0x5830, 0x5831, 0x5832, 0x5833, 0x584c, 0x5834,
- 0x5835, 0x5836, 0x5837, 0x5838, 0x5839, 0x583a, 0x583b, 0x583c,
- 0x583d, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5844, 0x5845,
- 0x5846, 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584d, 0x584e,
- 0x584f, 0x5850, 0x5851, 0x5852, 0x5853, 0x5854, 0x5855, 0x5856,
- 0x5857, 0x5858, 0x5859, 0x585a, 0x585b, 0x585c, 0x585d, 0x585e,
- 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, 0x5865, 0x5866,
- 0x5867, 0x5868, 0x5869, 0x586a, 0x586b, 0x586c, 0x586d, 0x586e,
- 0x586f, 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876,
- 0x5877, 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587e,
- 0x5921, 0x5922, 0x5923, 0x5924, 0x5925, 0x5926, 0x5927, 0x5928,
- 0x592a, 0x592b, 0x592c, 0x592d, 0x592e, 0x592f, 0x5930, 0x5931,
- 0x5932, 0x5933, 0x5934, 0x5935, 0x5936, 0x5937, 0x5938, 0x5939,
- 0x593a, 0x593b, 0x593c, 0x5929, 0x593d, 0x593e, 0x593f, 0x5940,
- 0x5941, 0x5942, 0x5943, 0x5944, 0x5945, 0x5946, 0x5947, 0x5948,
- 0x5949, 0x594a, 0x594b, 0x594c, 0x594d, 0x594e, 0x594f, 0x5950,
- 0x5951, 0x5952, 0x5953, 0x5954, 0x5955, 0x5956, 0x5957, 0x5958,
- 0x5959, 0x595a, 0x595b, 0x595c, 0x595d, 0x595e, 0x595f, 0x5960,
- 0x5961, 0x5962, 0x5963, 0x5964, 0x5965, 0x5966, 0x5974, 0x5967,
- 0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f,
- 0x5970, 0x5971, 0x5972, 0x5973, 0x5975, 0x5976, 0x5977, 0x5978,
- 0x5979, 0x597a, 0x597b, 0x597c, 0x597d, 0x597e, 0x5a21, 0x5a22,
- 0x5a23, 0x5a24, 0x5a25, 0x5a26, 0x5a27, 0x5a28, 0x5a29, 0x5a2a,
- 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, 0x5a30, 0x5a31, 0x5a32,
- 0x5a33, 0x5a34, 0x5a35, 0x5a36, 0x3866, 0x5a37, 0x5a38, 0x5a39,
- 0x5a3a, 0x5a3b, 0x5a3c, 0x5a3d, 0x5a3e, 0x5a3f, 0x5a40, 0x5a41,
- 0x5a42, 0x5a43, 0x5a44, 0x5a45, 0x5a46, 0x5a47, 0x5a48, 0x5a49,
- 0x5a4a, 0x5a4b, 0x5a6d, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50,
- 0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a55, 0x5a56, 0x5a57, 0x5a58,
- 0x5a59, 0x5a5a, 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60,
- 0x5a61, 0x5a62, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a67, 0x5a68,
- 0x5a69, 0x5a6a, 0x5a6b, 0x5a6c, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71,
- 0x5a72, 0x5a73, 0x5a74, 0x5a75, 0x5a76, 0x5a77, 0x5a78, 0x5a79,
- 0x5a7a, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5b21, 0x5b22, 0x5b23,
- 0x5b24, 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b,
- 0x5b2c, 0x5b2d, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b32, 0x5b33,
- 0x5b34, 0x5b35, 0x5b36, 0x5b37, 0x5b38, 0x5b39, 0x5b3a, 0x5b3b,
- 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b40, 0x5b41, 0x5b42, 0x5b43,
- 0x5b44, 0x5b45, 0x5b46, 0x5b47, 0x5b48, 0x5b49, 0x5b4a, 0x5b4b,
- 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f, 0x5b50, 0x5b51, 0x5b52, 0x5b53,
- 0x5b54, 0x5b55, 0x5b56, 0x5b57, 0x5b58, 0x5b59, 0x5b5a, 0x5b5b,
- 0x5b5c, 0x5b5d, 0x5b5e, 0x5b5f, 0x5b60, 0x5b61, 0x5b62, 0x5b63,
- 0x5b64, 0x5b65, 0x5b66, 0x5b67, 0x5b68, 0x5b69, 0x5b6a, 0x5b6b,
- 0x5b6c, 0x5b6d, 0x5b6e, 0x5b70, 0x5b71, 0x5b72, 0x5b73, 0x5b6f,
- 0x5b74, 0x5b75, 0x5b76, 0x5b77, 0x5b78, 0x5b79, 0x5b7a, 0x5b7b,
- 0x5b7c, 0x5b7d, 0x5b7e, 0x5c21, 0x5c22, 0x5c23, 0x5c24, 0x5c25,
- 0x5c26, 0x5c27, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2c, 0x5c2d,
- 0x5c2e, 0x5c2f, 0x5c30, 0x5c31, 0x5c32, 0x5c33, 0x5c34, 0x5c35,
- 0x5c36, 0x5c37, 0x5c38, 0x5c39, 0x5c3a, 0x5c3b, 0x5c3c, 0x5c3d,
- 0x5c3e, 0x5c3f, 0x5c40, 0x5c41, 0x5c42, 0x5c43, 0x5c44, 0x5c45,
- 0x5c46, 0x5c47, 0x5c48, 0x5c49, 0x5c4a, 0x5c4b, 0x5c4c, 0x5c4d,
- 0x5c4e, 0x5c4f, 0x5c50, 0x5c51, 0x5c52, 0x5c53, 0x5c54, 0x5c55,
- 0x5c56, 0x5c57, 0x5c58, 0x5c59, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d,
- 0x5c5e, 0x5c5f, 0x5c60, 0x5c61, 0x5c62, 0x5c63, 0x5c64, 0x5c65,
- 0x5c66, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, 0x5c6c, 0x5c6d,
- 0x5c6e, 0x5c6f, 0x5c70, 0x5c71, 0x5c72, 0x5c73, 0x5c74, 0x5c75,
- 0x5c76, 0x5c77, 0x5c78, 0x5c79, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d,
- 0x5c7e, 0x5d21, 0x5d22, 0x5d23, 0x5d24, 0x5d25, 0x5d26, 0x5d27,
- 0x5d28, 0x5d29, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2d, 0x5d2e, 0x5d2f,
- 0x5d30, 0x5d31, 0x5d32, 0x5d33, 0x5d34, 0x5d35, 0x5d36, 0x5d37,
- 0x5d38, 0x5d39, 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3d, 0x5d3e, 0x5d3f,
- 0x5d40, 0x5d41, 0x5d42, 0x5d43, 0x5d44, 0x5d45, 0x5d46, 0x5d47,
- 0x5d48, 0x5d49, 0x5d4a, 0x5d4b, 0x5d4c, 0x5d4d, 0x5d4e, 0x5d4f,
- 0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57,
- 0x5d58, 0x5d59, 0x5d5a, 0x5d5b, 0x5d5c, 0x5d5d, 0x5d5e, 0x5d5f,
- 0x5d60, 0x5d61, 0x5d62, 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67,
- 0x5d68, 0x5d69, 0x5d6a, 0x5d6b, 0x5d6c, 0x5d6d, 0x5d6e, 0x5d6f,
- 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d74, 0x5d75, 0x5d76, 0x5d77,
- 0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5e21,
- 0x5e22, 0x5e23, 0x5e24, 0x5e25, 0x5e26, 0x5e27, 0x5e28, 0x5e29,
- 0x5e2a, 0x5e2b, 0x5e2c, 0x5e2d, 0x5e2e, 0x5e2f, 0x5e30, 0x5e31,
- 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e37, 0x5e38, 0x5e39,
- 0x5e3f, 0x5e3a, 0x5e3b, 0x5e3c, 0x5e3d, 0x5e3e, 0x5e40, 0x5e41,
- 0x5e42, 0x5e43, 0x5e44, 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49,
- 0x5e4e, 0x5e4a, 0x5e4b, 0x5e4c, 0x5e4d, 0x5e4f, 0x5e50, 0x5e51,
- 0x5e52, 0x5e53, 0x5e54, 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59,
- 0x5e5a, 0x5e5b, 0x5e5c, 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61,
- 0x5e62, 0x5e63, 0x5e64, 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69,
- 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, 0x5e6f, 0x5e72, 0x5e70,
- 0x5e71, 0x5e73, 0x5e74, 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79,
- 0x5e7a, 0x5e7b, 0x5e7c, 0x5e7d, 0x5e7e, 0x5f21, 0x5f22, 0x5f23,
- 0x5f24, 0x5f25, 0x5f26, 0x5f27, 0x5f28, 0x5f29, 0x5f2a, 0x5f2b,
- 0x5f2c, 0x5f2d, 0x5f2e, 0x5f2f, 0x5f30, 0x5f32, 0x5f31, 0x5f33,
- 0x5f34, 0x5f35, 0x5f36, 0x5f37, 0x5f38, 0x5f39, 0x5f3a, 0x5f3b,
- 0x5f3c, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f40, 0x5f41, 0x5f42, 0x5f43,
- 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, 0x5f4a, 0x5f4b,
- 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f50, 0x5f51, 0x5f52, 0x5f53,
- 0x5f54, 0x5f55, 0x5f56, 0x5f57, 0x5f58, 0x5f59, 0x5f5a, 0x5f5b,
- 0x5f5c, 0x5f5d, 0x5f6f, 0x5f5e, 0x5f5f, 0x5f60, 0x5f61, 0x5f62,
- 0x5f63, 0x5f64, 0x5f65, 0x5f66, 0x5f67, 0x5f68, 0x5f69, 0x5f6a,
- 0x5f6b, 0x5f6c, 0x5f6d, 0x5f6e, 0x5f70, 0x5f71, 0x5f72, 0x5f73,
- 0x5f74, 0x5f75, 0x5f76, 0x5f77, 0x5f78, 0x5f79, 0x5f7a, 0x5f7b,
- 0x5f7c, 0x5f7d, 0x5f7e, 0x6021, 0x6022, 0x6023, 0x6024, 0x6025,
- 0x6026, 0x6027, 0x6028, 0x6029, 0x602a, 0x602b, 0x602c, 0x602d,
- 0x602e, 0x602f, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6035,
- 0x6036, 0x6037, 0x6038, 0x6039, 0x603a, 0x603b, 0x603c, 0x603d,
- 0x603e, 0x603f, 0x6040, 0x6041, 0x6042, 0x6043, 0x6044, 0x6045,
- 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604b, 0x604c, 0x604d,
- 0x604e, 0x604f, 0x6050, 0x6051, 0x6052, 0x6053, 0x6054, 0x6055,
- 0x6056, 0x6057, 0x6058, 0x6059, 0x605a, 0x605b, 0x605c, 0x605d,
- 0x6064, 0x605e, 0x605f, 0x6060, 0x6061, 0x6062, 0x6063, 0x6065,
- 0x6066, 0x6067, 0x6068, 0x6069, 0x606a, 0x606b, 0x606c, 0x606d,
- 0x606e, 0x606f, 0x6070, 0x6071, 0x6072, 0x6073, 0x6074, 0x6075,
- 0x6076, 0x6077, 0x6078, 0x6079, 0x607a, 0x607b, 0x607c, 0x607d,
- 0x607e, 0x6121, 0x6122, 0x6123, 0x6124, 0x6125, 0x6126, 0x6127,
- 0x6128, 0x6129, 0x612a, 0x612b, 0x612c, 0x612d, 0x612e, 0x612f,
- 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137,
- 0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x613f,
- 0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0x6147,
- 0x6148, 0x6149, 0x614a, 0x614b, 0x614c, 0x614d, 0x614e, 0x614f,
- 0x6150, 0x6151, 0x6152, 0x6154, 0x6155, 0x6156, 0x6153, 0x6157,
- 0x6158, 0x6159, 0x615a, 0x615b, 0x615c, 0x615d, 0x615e, 0x615f,
- 0x6160, 0x6161, 0x6162, 0x6163, 0x6164, 0x6165, 0x6166, 0x6167,
- 0x6168, 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f,
- 0x6170, 0x6171, 0x6172, 0x6173, 0x6174, 0x6175, 0x6176, 0x6177,
- 0x6178, 0x6179, 0x617a, 0x617b, 0x617d, 0x617e, 0x6221, 0x6222,
- 0x6223, 0x6224, 0x617c, 0x622d, 0x6225, 0x6226, 0x6227, 0x6228,
- 0x6229, 0x622a, 0x622b, 0x622c, 0x622f, 0x6230, 0x6231, 0x6232,
- 0x622e, 0x6233, 0x6234, 0x6235, 0x6236, 0x6237, 0x6238, 0x6239,
- 0x623a, 0x623b, 0x623c, 0x623d, 0x623e, 0x623f, 0x6240, 0x6241,
- 0x6242, 0x6243, 0x6245, 0x6246, 0x6244, 0x6247, 0x6248, 0x6249,
- 0x624a, 0x624b, 0x624c, 0x624d, 0x624e, 0x624f, 0x6250, 0x6251,
- 0x6252, 0x6253, 0x6254, 0x6255, 0x6256, 0x6257, 0x6258, 0x6259,
- 0x625a, 0x625b, 0x625c, 0x625d, 0x625e, 0x625f, 0x6260, 0x6261,
- 0x6262, 0x6263, 0x6264, 0x6265, 0x6266, 0x6267, 0x6268, 0x6269,
- 0x626a, 0x626b, 0x626c, 0x626d, 0x626e, 0x626f, 0x6270, 0x6271,
- 0x6272, 0x6273, 0x6274, 0x6275, 0x6276, 0x6277, 0x6278, 0x6279,
- 0x627a, 0x627b, 0x627c, 0x627d, 0x627e, 0x6321, 0x6322, 0x6323,
- 0x6324, 0x6325, 0x6326, 0x6327, 0x6328, 0x6329, 0x632a, 0x632b,
- 0x632c, 0x632d, 0x632e, 0x632f, 0x6330, 0x6331, 0x6332, 0x6333,
- 0x6334, 0x6335, 0x6336, 0x6337, 0x6338, 0x6339, 0x633a, 0x633b,
- 0x633c, 0x633d, 0x633e, 0x633f, 0x6340, 0x6341, 0x6342, 0x6343,
- 0x6344, 0x6345, 0x6346, 0x6347, 0x6348, 0x6349, 0x634a, 0x634b,
- 0x634c, 0x634d, 0x634e, 0x634f, 0x6350, 0x6351, 0x6352, 0x6353,
- 0x6354, 0x6355, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b,
- 0x635c, 0x635d, 0x635e, 0x635f, 0x6360, 0x6361, 0x6362, 0x6363,
- 0x6364, 0x6365, 0x6366, 0x6367, 0x6368, 0x6369, 0x636a, 0x636b,
- 0x636c, 0x636d, 0x636e, 0x636f, 0x6370, 0x6371, 0x6372, 0x6373,
- 0x6374, 0x6375, 0x6376, 0x6377, 0x6378, 0x6379, 0x637a, 0x637b,
- 0x637c, 0x637d, 0x637e, 0x6421, 0x6422, 0x6423, 0x6424, 0x6425,
- 0x6426, 0x6427, 0x6428, 0x6429, 0x642a, 0x642b, 0x642c, 0x642d,
- 0x642e, 0x642f, 0x6430, 0x6431, 0x6432, 0x6433, 0x6434, 0x6435,
- 0x6436, 0x6437, 0x6438, 0x6439, 0x643a, 0x643b, 0x643c, 0x643d,
- 0x643e, 0x643f, 0x6440, 0x6441, 0x6442, 0x6443, 0x6444, 0x6445,
- 0x6446, 0x6447, 0x6448, 0x6449, 0x644a, 0x644b, 0x644c, 0x644d,
- 0x644e, 0x644f, 0x6450, 0x6451, 0x6452, 0x6453, 0x6454, 0x6455,
- 0x6456, 0x6457, 0x6458, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d,
- 0x645e, 0x645f, 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465,
- 0x6466, 0x6467, 0x6468, 0x6469, 0x646a, 0x646b, 0x646c, 0x646d,
- 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, 0x6474, 0x6475,
- 0x6476, 0x6477, 0x6478, 0x6479, 0x647a, 0x647b, 0x647c, 0x647d,
- 0x647e, 0x6521, 0x6522, 0x6523, 0x6524, 0x6525, 0x6526, 0x6527,
- 0x6528, 0x6529, 0x652a, 0x652b, 0x652c, 0x652d, 0x652e, 0x652f,
- 0x6530, 0x6531, 0x6532, 0x6533, 0x6534, 0x6535, 0x653b, 0x6536,
- 0x6537, 0x6538, 0x6539, 0x653a, 0x653c, 0x653d, 0x653e, 0x653f,
- 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6545, 0x6546, 0x6547,
- 0x6548, 0x6549, 0x654a, 0x654b, 0x654c, 0x654d, 0x654f, 0x6550,
- 0x654e, 0x6551, 0x6552, 0x6553, 0x6554, 0x6555, 0x6556, 0x6557,
- 0x6558, 0x6559, 0x655a, 0x655b, 0x655c, 0x655d, 0x655e, 0x655f,
- 0x6560, 0x6561, 0x6562, 0x6563, 0x6564, 0x6565, 0x6566, 0x6568,
- 0x6567, 0x6569, 0x656a, 0x656b, 0x656c, 0x656d, 0x656e, 0x656f,
- 0x6570, 0x6571, 0x6572, 0x6573, 0x6574, 0x6575, 0x6576, 0x6577,
- 0x6578, 0x6579, 0x657a, 0x657c, 0x657b, 0x657d, 0x657e, 0x6621,
- 0x6622, 0x6623, 0x6624, 0x6625, 0x6626, 0x6627, 0x6628, 0x6629,
- 0x662a, 0x662b, 0x662c, 0x662d, 0x662e, 0x662f, 0x6630, 0x6631,
- 0x6632, 0x6633, 0x6634, 0x6635, 0x6636, 0x6637, 0x6638, 0x6639,
- 0x663a, 0x663b, 0x663c, 0x663d, 0x663e, 0x663f, 0x6640, 0x6641,
- 0x6642, 0x6643, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649,
- 0x664a, 0x664b, 0x664c, 0x664d, 0x664e, 0x664f, 0x6650, 0x6651,
- 0x6652, 0x6653, 0x6654, 0x6655, 0x6656, 0x6657, 0x6658, 0x6659,
- 0x665a, 0x665b, 0x665c, 0x665d, 0x665e, 0x665f, 0x6660, 0x6661,
- 0x6662, 0x6663, 0x6664, 0x6665, 0x6666, 0x6667, 0x6668, 0x6669,
- 0x666a, 0x666b, 0x666c, 0x666d, 0x666e, 0x666f, 0x6670, 0x6671,
- 0x6672, 0x6673, 0x6675, 0x6676, 0x6677, 0x6678, 0x6679, 0x667a,
- 0x667b, 0x667c, 0x667d, 0x667e, 0x6721, 0x6722, 0x6723, 0x6724,
- 0x6725, 0x6726, 0x6727, 0x6728, 0x6729, 0x672a, 0x672b, 0x672c,
- 0x672d, 0x672e, 0x672f, 0x6730, 0x6731, 0x6732, 0x6733, 0x6734,
- 0x6735, 0x6736, 0x6737, 0x6738, 0x6739, 0x673a, 0x673b, 0x673c,
- 0x673d, 0x673e, 0x673f, 0x6740, 0x6741, 0x6742, 0x6743, 0x6744,
- 0x6745, 0x6746, 0x6747, 0x6748, 0x6749, 0x674a, 0x674b, 0x674c,
- 0x674d, 0x674e, 0x674f, 0x6750, 0x6751, 0x6752, 0x6753, 0x6754,
- 0x6755, 0x6756, 0x6757, 0x6758, 0x6759, 0x675a, 0x675b, 0x675c,
- 0x675d, 0x675e, 0x675f, 0x6760, 0x6761, 0x6762, 0x6763, 0x6764,
- 0x6765, 0x6766, 0x676a, 0x6767, 0x6768, 0x6769, 0x676b, 0x676c,
- 0x676d, 0x676e, 0x676f, 0x6770, 0x6771, 0x6772, 0x6773, 0x6774,
- 0x6776, 0x6777, 0x6778, 0x6779, 0x6775, 0x677a, 0x677b, 0x677c,
- 0x677d, 0x6828, 0x677e, 0x6821, 0x6822, 0x6823, 0x6824, 0x6825,
- 0x6826, 0x6827, 0x6829, 0x682a, 0x682b, 0x682c, 0x682d, 0x682e,
- 0x682f, 0x6830, 0x6831, 0x6832, 0x6833, 0x6834, 0x6835, 0x6836,
- 0x6837, 0x6838, 0x6839, 0x683a, 0x683b, 0x683c, 0x683d, 0x683e,
- 0x683f, 0x6840, 0x6841, 0x6842, 0x6843, 0x6844, 0x6845, 0x6846,
- 0x6847, 0x6848, 0x6849, 0x684a, 0x684b, 0x684c, 0x684d, 0x684e,
- 0x684f, 0x6850, 0x6851, 0x6852, 0x6853, 0x6854, 0x6855, 0x6856,
- 0x6857, 0x6858, 0x6859, 0x685a, 0x685b, 0x685c, 0x685d, 0x685e,
- 0x685f, 0x6860, 0x6861, 0x6862, 0x6863, 0x6864, 0x6865, 0x6866,
- 0x6867, 0x6868, 0x6869, 0x686a, 0x686b, 0x686c, 0x686d, 0x686e,
- 0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6874, 0x6875, 0x6876,
- 0x6877, 0x6878, 0x6879, 0x687a, 0x687b, 0x687c, 0x687d, 0x687e,
- 0x6921, 0x6922, 0x6923, 0x6924, 0x6925, 0x6926, 0x6927, 0x6928,
- 0x6929, 0x692a, 0x692b, 0x692c, 0x692d, 0x692e, 0x692f, 0x6930,
- 0x6931, 0x6932, 0x6933, 0x6934, 0x6935, 0x6936, 0x6937, 0x6938,
- 0x6939, 0x693a, 0x693b, 0x693c, 0x693d, 0x693e, 0x693f, 0x6940,
- 0x6941, 0x6942, 0x6943, 0x6944, 0x6945, 0x6946, 0x6947, 0x6948,
- 0x6949, 0x694a, 0x694c, 0x694d, 0x694b, 0x694e, 0x694f, 0x6950,
- 0x6951, 0x6952, 0x6953, 0x6954, 0x6955, 0x6956, 0x6957, 0x6958,
- 0x6959, 0x695a, 0x695b, 0x695c, 0x695d, 0x695e, 0x695f, 0x6960,
- 0x6961, 0x6962, 0x6963, 0x6964, 0x6965, 0x6966, 0x6967, 0x6968,
- 0x6969, 0x696a, 0x696b, 0x696c, 0x696d, 0x696e, 0x696f, 0x6970,
- 0x6971, 0x6972, 0x6973, 0x6974, 0x6975, 0x6976, 0x6977, 0x6978,
- 0x6979, 0x697a, 0x697b, 0x697c, 0x697d, 0x697e, 0x6a21, 0x6a22,
- 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a28, 0x6a29, 0x6a2a,
- 0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a2f, 0x6a30, 0x6a31, 0x6a32,
- 0x6a33, 0x6a34, 0x6a35, 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a,
- 0x6a3b, 0x6a3c, 0x6a3d, 0x6a3e, 0x6a3f, 0x6a40, 0x6a41, 0x6a42,
- 0x6a43, 0x6a44, 0x6a45, 0x6a46, 0x6a47, 0x6a48, 0x6a49, 0x6a4a,
- 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a50, 0x6a51, 0x6a52,
- 0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a58, 0x6a59, 0x6a5a,
- 0x6a5b, 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a61, 0x6a62,
- 0x6a63, 0x6a64, 0x6a65, 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a,
- 0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e, 0x6a6f, 0x6a70, 0x6a71, 0x6a72,
- 0x6a73, 0x6a74, 0x6a75, 0x6a76, 0x6a77, 0x6a78, 0x6a79, 0x6a7a,
- 0x6a7b, 0x6a7c, 0x6a7d, 0x6a7e, 0x6b21, 0x6b22, 0x6b23, 0x6b24,
- 0x6b25, 0x6b26, 0x6b27, 0x6b28, 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c,
- 0x6b2d, 0x6b2e, 0x6b2f, 0x6b30, 0x6b31, 0x6b32, 0x6b33, 0x6b34,
- 0x6b35, 0x6b36, 0x6b37, 0x6b38, 0x6b39, 0x6b3a, 0x6b3b, 0x6b3c,
- 0x6b3d, 0x6b3e, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b43, 0x6b44,
- 0x6b45, 0x6b46, 0x6b47, 0x6b48, 0x6b49, 0x6b50, 0x6b4a, 0x6b4b,
- 0x6b4c, 0x6b4d, 0x6b52, 0x6b4e, 0x6b4f, 0x6b51, 0x6b53, 0x6b54,
- 0x6b55, 0x6b56, 0x6b57, 0x6b58, 0x6b59, 0x6b5a, 0x6b5b, 0x6b5c,
- 0x6b5e, 0x6b5d, 0x6b5f, 0x6b60, 0x6b61, 0x6b62, 0x6b63, 0x6b64,
- 0x6b65, 0x6b66, 0x6b67, 0x6b68, 0x6b69, 0x6b6a, 0x6b6b, 0x6b6d,
- 0x6b6e, 0x6b6f, 0x6b6c, 0x6b70, 0x6b71, 0x6b72, 0x6b73, 0x6b74,
- 0x6b76, 0x6b75, 0x6b77, 0x6b78, 0x6b79, 0x6b7a, 0x6b7b, 0x6b7c,
- 0x6b7d, 0x6b7e, 0x6c21, 0x6c22, 0x6c23, 0x6c24, 0x6c25, 0x6c26,
- 0x6c27, 0x6c28, 0x6c29, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c2e,
- 0x6c2f, 0x6c30, 0x6c31, 0x6c32, 0x6c33, 0x6c34, 0x6c35, 0x6c36,
- 0x6c37, 0x6c38, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3d, 0x6c3e,
- 0x6c3f, 0x6c40, 0x6c41, 0x6c42, 0x6c43, 0x6c44, 0x6c45, 0x6c46,
- 0x6c47, 0x6c48, 0x6c49, 0x6c4a, 0x6c4b, 0x6c4c, 0x6c4e, 0x6c4f,
- 0x6c4d, 0x6c50, 0x6c51, 0x6c52, 0x6c53, 0x6c54, 0x6c55, 0x6c56,
- 0x6c57, 0x6c58, 0x6c59, 0x6c5a, 0x6c5b, 0x6c5c, 0x6c5d, 0x6c5e,
- 0x6c5f, 0x6c60, 0x6c61, 0x6c62, 0x6c63, 0x6c64, 0x6c65, 0x6c66,
- 0x6c67, 0x6c68, 0x6c69, 0x6c6a, 0x6c6b, 0x6c6c, 0x6c6d, 0x6c6e,
- 0x6c6f, 0x6c70, 0x6c71, 0x6c72, 0x6c73, 0x6c74, 0x6c75, 0x6c76,
- 0x6c77, 0x6c78, 0x6c79, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7d, 0x6c7e,
- 0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d25, 0x6d26, 0x6d27, 0x6d28,
- 0x6d29, 0x6d2a, 0x6d2b, 0x6d2c, 0x6d2d, 0x6d2e, 0x6d2f, 0x6d30,
- 0x6d31, 0x6d32, 0x6d33, 0x6d34, 0x6d35, 0x6d36, 0x6d37, 0x6d38,
- 0x6d39, 0x6d3a, 0x6d3b, 0x6d3c, 0x6d3d, 0x6d3e, 0x6d3f, 0x6d40,
- 0x6d41, 0x6d42, 0x6d43, 0x6d44, 0x6d45, 0x6d46, 0x6d47, 0x6d48,
- 0x6d49, 0x6d4a, 0x6d4b, 0x6d4c, 0x6d4d, 0x6d4e, 0x6d4f, 0x6d50,
- 0x6d51, 0x6d52, 0x6d53, 0x6d54, 0x6d55, 0x6d56, 0x6d57, 0x6d58,
- 0x6d59, 0x6d5a, 0x6d5b, 0x6d5c, 0x6d5d, 0x6d5e, 0x6d5f, 0x6d60,
- 0x6d61, 0x6d62, 0x6d63,
-};
-
-static const Summary16 jisx0212_uni2indx_page00[70] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x4000 },
- { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0xc652 }, { 8, 0x8500 },
- { 11, 0xffff }, { 27, 0xff7e }, { 41, 0xffff }, { 57, 0xff7f },
- /* 0x0100 */
- { 72, 0xffff }, { 88, 0xffcf }, { 102, 0xcff7 }, { 115, 0xffff },
- { 131, 0x3fff }, { 145, 0xffff }, { 161, 0xffff }, { 177, 0x7fff },
- { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 },
- { 192, 0xe000 }, { 195, 0x1fff }, { 208, 0x0000 }, { 208, 0x0020 },
- /* 0x0200 */
- { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 },
- { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 },
- { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 },
- { 209, 0x0080 }, { 210, 0x2f00 }, { 215, 0x0000 }, { 215, 0x0000 },
- /* 0x0300 */
- { 215, 0x0000 }, { 215, 0x0000 }, { 215, 0x0000 }, { 215, 0x0000 },
- { 215, 0x0000 }, { 215, 0x0000 }, { 215, 0x0000 }, { 215, 0x0000 },
- { 215, 0xd770 }, { 224, 0x0001 }, { 225, 0xfc00 }, { 231, 0x0001 },
- { 232, 0x7c04 }, { 238, 0x0000 }, { 238, 0x0000 }, { 238, 0x0000 },
- /* 0x0400 */
- { 238, 0xdffc }, { 251, 0x0000 }, { 251, 0x0000 }, { 251, 0x0000 },
- { 251, 0x0000 }, { 251, 0xdffc },
-};
-static const Summary16 jisx0212_uni2indx_page21[3] = {
- /* 0x2100 */
- { 264, 0x0000 }, { 264, 0x0040 }, { 265, 0x0004 },
-};
-static const Summary16 jisx0212_uni2indx_page4e[1307] = {
- /* 0x4e00 */
- { 266, 0x1034 }, { 270, 0x8004 }, { 272, 0xc918 }, { 278, 0x0021 },
- { 280, 0x0093 }, { 284, 0x1402 }, { 287, 0x0308 }, { 290, 0x8230 },
- { 294, 0x2000 }, { 295, 0x20c0 }, { 298, 0x8000 }, { 299, 0x0200 },
- { 300, 0x0008 }, { 301, 0x0c01 }, { 304, 0x8107 }, { 309, 0xe02a },
- /* 0x4f00 */
- { 315, 0x190d }, { 321, 0x02e4 }, { 326, 0x4000 }, { 327, 0x4aaa },
- { 334, 0x1b05 }, { 340, 0x8154 }, { 345, 0x5409 }, { 350, 0x6782 },
- { 357, 0x5636 }, { 365, 0xc69d }, { 374, 0x0000 }, { 374, 0x7a84 },
- { 381, 0xbb63 }, { 391, 0x1004 }, { 393, 0x0005 }, { 395, 0xb005 },
- /* 0x5000 */
- { 400, 0x5493 }, { 407, 0x7989 }, { 415, 0x4084 }, { 418, 0x082d },
- { 423, 0x5467 }, { 431, 0x828e }, { 437, 0x24cd }, { 444, 0x0003 },
- { 446, 0xc45a }, { 453, 0xd85d }, { 462, 0x8407 }, { 467, 0x2601 },
- { 471, 0x5099 }, { 477, 0xb119 }, { 484, 0x8354 }, { 490, 0x4446 },
- /* 0x5100 */
- { 495, 0x79c8 }, { 503, 0x7a81 }, { 510, 0xb188 }, { 516, 0x033a },
- { 522, 0x8404 }, { 525, 0x81a8 }, { 530, 0x0050 }, { 532, 0x4000 },
- { 533, 0x4818 }, { 537, 0x2100 }, { 539, 0x200a }, { 542, 0xd500 },
- { 547, 0x8104 }, { 550, 0x412e }, { 556, 0x4024 }, { 559, 0x009c },
- /* 0x5200 */
- { 563, 0x0026 }, { 566, 0x016c }, { 571, 0x0104 }, { 573, 0x1026 },
- { 577, 0x0220 }, { 579, 0x95a0 }, { 585, 0x4043 }, { 589, 0x0380 },
- { 592, 0x1425 }, { 597, 0x15e8 }, { 604, 0x80f0 }, { 609, 0x2dc1 },
- { 616, 0x9151 }, { 622, 0x1852 }, { 627, 0x1722 }, { 633, 0x00d3 },
- /* 0x5300 */
- { 638, 0x1c09 }, { 643, 0xd90a }, { 650, 0x3ba0 }, { 657, 0x7025 },
- { 663, 0x1804 }, { 666, 0x0a00 }, { 668, 0x302a }, { 673, 0x4204 },
- { 676, 0x4188 }, { 680, 0x2218 }, { 684, 0x8c12 }, { 689, 0x25b4 },
- { 696, 0x8021 }, { 699, 0x642c }, { 705, 0x00c1 }, { 708, 0x0020 },
- /* 0x5400 */
- { 709, 0x0004 }, { 710, 0x0408 }, { 712, 0x8582 }, { 717, 0x0032 },
- { 720, 0xa098 }, { 725, 0x4000 }, { 726, 0x6ad4 }, { 734, 0x8010 },
- { 736, 0x232a }, { 742, 0x9062 }, { 747, 0x66c2 }, { 754, 0x8e82 },
- { 760, 0x6440 }, { 764, 0x0000 }, { 764, 0x9401 }, { 768, 0xd040 },
- /* 0x5500 */
- { 772, 0x7323 }, { 780, 0x0020 }, { 781, 0x0c00 }, { 783, 0x3864 },
- { 789, 0x2682 }, { 794, 0x4d03 }, { 800, 0x0053 }, { 804, 0x8000 },
- { 805, 0xc146 }, { 811, 0x009e }, { 816, 0x2018 }, { 819, 0x8004 },
- { 821, 0x5a4a }, { 828, 0x498e }, { 835, 0x0204 }, { 837, 0x8040 },
- /* 0x5600 */
- { 839, 0xe520 }, { 845, 0x0207 }, { 849, 0x1000 }, { 850, 0xbaa9 },
- { 859, 0xaa5b }, { 868, 0x4010 }, { 870, 0xa24f }, { 878, 0x0026 },
- { 881, 0x1930 }, { 886, 0xe620 }, { 892, 0x3bc0 }, { 899, 0x408a },
- { 903, 0xbe20 }, { 910, 0xb201 }, { 915, 0x29f2 }, { 923, 0x00c2 },
- /* 0x5700 */
- { 926, 0x1486 }, { 931, 0x2c22 }, { 936, 0xd63d }, { 946, 0xe018 },
- { 951, 0x3060 }, { 955, 0x0004 }, { 956, 0xe9a4 }, { 964, 0x5ebb },
- { 975, 0x100a }, { 978, 0xf6b0 }, { 987, 0x1382 }, { 992, 0x2100 },
- { 994, 0x9180 }, { 998, 0x6020 }, { 1001, 0x22d2 }, { 1007, 0xe161 },
- /* 0x5800 */
- { 1014, 0x3318 }, { 1020, 0xc800 }, { 1023, 0x20c1 }, { 1027, 0x8204 },
- { 1030, 0xb200 }, { 1034, 0x8021 }, { 1037, 0x0192 }, { 1041, 0x9100 },
- { 1044, 0xb783 }, { 1053, 0x2051 }, { 1057, 0x0247 }, { 1062, 0x1006 },
- { 1065, 0x6114 }, { 1070, 0x2455 }, { 1076, 0x0206 }, { 1079, 0x0008 },
- /* 0x5900 */
- { 1080, 0x1860 }, { 1084, 0x201c }, { 1088, 0x811a }, { 1093, 0x8069 },
- { 1098, 0x0048 }, { 1100, 0xea0c }, { 1107, 0xa80a }, { 1112, 0x1a64 },
- { 1118, 0x5800 }, { 1121, 0x80a4 }, { 1125, 0xe090 }, { 1130, 0x1489 },
- { 1135, 0x251a }, { 1141, 0xe004 }, { 1145, 0xc098 }, { 1150, 0x0096 },
- /* 0x5a00 */
- { 1154, 0x7011 }, { 1159, 0x400c }, { 1162, 0x2598 }, { 1168, 0x0001 },
- { 1169, 0x11b0 }, { 1174, 0x4021 }, { 1177, 0x20a8 }, { 1181, 0x4c80 },
- { 1185, 0x0800 }, { 1186, 0xd249 }, { 1193, 0x1085 }, { 1197, 0x8d2e },
- { 1205, 0x8150 }, { 1209, 0x1400 }, { 1211, 0x4421 }, { 1215, 0x2060 },
- /* 0x5b00 */
- { 1218, 0x0103 }, { 1221, 0x2a80 }, { 1225, 0x2022 }, { 1228, 0x0110 },
- { 1230, 0x1802 }, { 1233, 0x4044 }, { 1236, 0xc100 }, { 1239, 0xf000 },
- { 1243, 0x4452 }, { 1248, 0x005b }, { 1253, 0xb300 }, { 1258, 0x1486 },
- { 1263, 0xa003 }, { 1267, 0x07c0 }, { 1272, 0x8001 }, { 1274, 0x2012 },
- /* 0x5c00 */
- { 1277, 0x1000 }, { 1278, 0xc080 }, { 1281, 0x5a48 }, { 1287, 0x0065 },
- { 1291, 0x0000 }, { 1291, 0x1600 }, { 1294, 0x238c }, { 1300, 0x3c31 },
- { 1307, 0x8580 }, { 1311, 0xa004 }, { 1314, 0x044d }, { 1319, 0x0434 },
- { 1323, 0x0a00 }, { 1325, 0x2084 }, { 1328, 0x4000 }, { 1329, 0x0016 },
- /* 0x5d00 */
- { 1332, 0x2042 }, { 1335, 0x0004 }, { 1336, 0x08d8 }, { 1341, 0xa212 },
- { 1346, 0x054c }, { 1351, 0x8222 }, { 1355, 0x2417 }, { 1361, 0xc601 },
- { 1366, 0x050a }, { 1370, 0x8a3c }, { 1377, 0x0881 }, { 1380, 0x0315 },
- { 1385, 0x4888 }, { 1389, 0x0301 }, { 1392, 0x0211 }, { 1395, 0x0300 },
- /* 0x5e00 */
- { 1397, 0x2081 }, { 1400, 0x8134 }, { 1405, 0x4101 }, { 1408, 0x4024 },
- { 1411, 0x0a00 }, { 1413, 0x5943 }, { 1420, 0x7d00 }, { 1426, 0x0001 },
- { 1427, 0x4801 }, { 1430, 0x0000 }, { 1430, 0x1534 }, { 1436, 0xe00a },
- { 1441, 0x5840 }, { 1445, 0x5036 }, { 1451, 0x0820 }, { 1453, 0x0000 },
- /* 0x5f00 */
- { 1453, 0x41c4 }, { 1458, 0x3200 }, { 1461, 0x591e }, { 1469, 0xa851 },
- { 1475, 0x20b1 }, { 1480, 0x0911 }, { 1484, 0x8099 }, { 1489, 0x6534 },
- { 1496, 0xa200 }, { 1499, 0x3040 }, { 1502, 0x9894 }, { 1508, 0x0103 },
- { 1511, 0x0b90 }, { 1516, 0x401f }, { 1522, 0xf706 }, { 1531, 0x144c },
- /* 0x6000 */
- { 1536, 0x2480 }, { 1539, 0x8598 }, { 1545, 0x2010 }, { 1547, 0x0028 },
- { 1549, 0x1381 }, { 1554, 0x20d2 }, { 1559, 0x0082 }, { 1561, 0xc002 },
- { 1564, 0x4544 }, { 1569, 0x612a }, { 1575, 0x0134 }, { 1579, 0x4883 },
- { 1584, 0xcf14 }, { 1592, 0x6a30 }, { 1598, 0x0024 }, { 1600, 0x3124 },
- /* 0x6100 */
- { 1605, 0x1484 }, { 1609, 0x52df }, { 1619, 0x0c04 }, { 1622, 0x02e3 },
- { 1628, 0x0262 }, { 1632, 0x4000 }, { 1633, 0x1001 }, { 1635, 0x9904 },
- { 1640, 0x281b }, { 1646, 0xb18c }, { 1653, 0x2521 }, { 1658, 0x1300 },
- { 1661, 0xc007 }, { 1666, 0xf020 }, { 1671, 0xb2a6 }, { 1679, 0x0000 },
- /* 0x6200 */
- { 1679, 0x009a }, { 1683, 0x1028 }, { 1686, 0x0a8d }, { 1692, 0x2200 },
- { 1694, 0x105c }, { 1699, 0x1457 }, { 1706, 0xa010 }, { 1709, 0x2408 },
- { 1712, 0xe000 }, { 1715, 0x0001 }, { 1716, 0x0140 }, { 1718, 0xc4c8 },
- { 1724, 0x4010 }, { 1726, 0x0460 }, { 1729, 0x0400 }, { 1730, 0x3014 },
- /* 0x6300 */
- { 1734, 0x2c18 }, { 1739, 0x0149 }, { 1743, 0x2600 }, { 1746, 0x1260 },
- { 1750, 0x4c5e }, { 1758, 0x091c }, { 1763, 0x3060 }, { 1767, 0xb132 },
- { 1774, 0x0494 }, { 1778, 0x4631 }, { 1784, 0xe050 }, { 1789, 0x2000 },
- { 1790, 0x4122 }, { 1794, 0x103a }, { 1799, 0x1421 }, { 1803, 0x032c },
- /* 0x6400 */
- { 1808, 0x0600 }, { 1810, 0x4115 }, { 1815, 0x8635 }, { 1822, 0xa021 },
- { 1826, 0x8800 }, { 1828, 0xbc1e }, { 1837, 0x200b }, { 1841, 0x2818 },
- { 1845, 0x80a0 }, { 1848, 0xab03 }, { 1855, 0x114a }, { 1860, 0xe008 },
- { 1864, 0x5e10 }, { 1870, 0x00a3 }, { 1874, 0x2630 }, { 1879, 0x88a1 },
- /* 0x6500 */
- { 1884, 0x8712 }, { 1890, 0xca58 }, { 1897, 0x4244 }, { 1901, 0x3402 },
- { 1905, 0x0288 }, { 1908, 0x8015 }, { 1912, 0x0881 }, { 1915, 0x2400 },
- { 1917, 0x0422 }, { 1920, 0x2124 }, { 1924, 0x4049 }, { 1928, 0x801c },
- { 1932, 0x4304 }, { 1936, 0x8151 }, { 1941, 0x0000 }, { 1941, 0xc235 },
- /* 0x6600 */
- { 1948, 0x2311 }, { 1953, 0x6066 }, { 1959, 0x5e5e }, { 1969, 0x028b },
- { 1974, 0x5461 }, { 1980, 0x1b82 }, { 1986, 0x1c03 }, { 1991, 0xdba8 },
- { 2000, 0x3801 }, { 2004, 0x9e05 }, { 2011, 0x2011 }, { 2014, 0x8826 },
- { 2019, 0xd10d }, { 2026, 0x8810 }, { 2029, 0x5900 }, { 2033, 0x0c00 },
- /* 0x6700 */
- { 2035, 0x40a0 }, { 2038, 0x1208 }, { 2041, 0x0005 }, { 2043, 0x4008 },
- { 2045, 0x11a0 }, { 2049, 0x2030 }, { 2052, 0x5040 }, { 2055, 0x0850 },
- { 2058, 0xc012 }, { 2062, 0x0b4a }, { 2068, 0x0000 }, { 2068, 0x3827 },
- { 2075, 0x032d }, { 2081, 0x1284 }, { 2085, 0x0042 }, { 2087, 0x02c5 },
- /* 0x6800 */
- { 2092, 0x0000 }, { 2092, 0xa210 }, { 2096, 0xb180 }, { 2101, 0x880b },
- { 2106, 0x1430 }, { 2110, 0x09a4 }, { 2115, 0xc800 }, { 2118, 0x1e27 },
- { 2126, 0x0154 }, { 2130, 0x1540 }, { 2134, 0x462a }, { 2140, 0x0804 },
- { 2142, 0x9120 }, { 2146, 0x324b }, { 2153, 0x3d20 }, { 2159, 0x3863 },
- /* 0x6900 */
- { 2166, 0x0640 }, { 2169, 0x00cb }, { 2174, 0x0000 }, { 2174, 0x092a },
- { 2179, 0x4224 }, { 2183, 0x0880 }, { 2185, 0x1378 }, { 2192, 0x8c07 },
- { 2198, 0x2001 }, { 2200, 0x0144 }, { 2203, 0xa962 }, { 2210, 0x1580 },
- { 2214, 0x0120 }, { 2216, 0x00c2 }, { 2219, 0xc024 }, { 2223, 0x402a },
- /* 0x6a00 */
- { 2227, 0x800b }, { 2231, 0x2422 }, { 2235, 0x0111 }, { 2238, 0xc895 },
- { 2245, 0x4660 }, { 2250, 0x0867 }, { 2256, 0x0490 }, { 2259, 0x400a },
- { 2262, 0x0aca }, { 2268, 0xe802 }, { 2273, 0x8820 }, { 2276, 0xe013 },
- { 2282, 0x1340 }, { 2286, 0x3071 }, { 2292, 0x1090 }, { 2295, 0x3007 },
- /* 0x6b00 */
- { 2300, 0x82cc }, { 2306, 0x4883 }, { 2311, 0x9910 }, { 2316, 0x8860 },
- { 2320, 0x2440 }, { 2323, 0x2144 }, { 2327, 0x4881 }, { 2331, 0x6021 },
- { 2335, 0x0024 }, { 2337, 0x8880 }, { 2340, 0x730d }, { 2348, 0x6301 },
- { 2353, 0x1218 }, { 2357, 0x0440 }, { 2359, 0x40ca }, { 2364, 0x8282 },
- /* 0x6c00 */
- { 2368, 0x6234 }, { 2374, 0x8205 }, { 2378, 0x51c0 }, { 2383, 0x8c68 },
- { 2389, 0xac00 }, { 2393, 0x1a14 }, { 2398, 0xa880 }, { 2402, 0x0b50 },
- { 2407, 0x02e0 }, { 2411, 0x91b0 }, { 2417, 0x0000 }, { 2417, 0x0015 },
- { 2420, 0xa044 }, { 2424, 0x1457 }, { 2431, 0x5a81 }, { 2437, 0x0014 },
- /* 0x6d00 */
- { 2439, 0xc490 }, { 2444, 0x040a }, { 2447, 0xc1c0 }, { 2452, 0x9202 },
- { 2456, 0x0000 }, { 2456, 0xc080 }, { 2459, 0x80a2 }, { 2463, 0x1001 },
- { 2465, 0x0084 }, { 2467, 0x01d6 }, { 2473, 0x1400 }, { 2475, 0xa290 },
- { 2480, 0xc510 }, { 2485, 0xa840 }, { 2489, 0x8225 }, { 2494, 0x1051 },
- /* 0x6e00 */
- { 2498, 0x0011 }, { 2500, 0x4000 }, { 2501, 0x0084 }, { 2503, 0x1a44 },
- { 2508, 0x8b30 }, { 2514, 0x709e }, { 2522, 0x010c }, { 2525, 0x2808 },
- { 2528, 0x2000 }, { 2529, 0x0208 }, { 2531, 0x6081 }, { 2535, 0x880a },
- { 2539, 0xe58b }, { 2548, 0x0000 }, { 2548, 0x6800 }, { 2551, 0x2a00 },
- /* 0x6f00 */
- { 2554, 0x3510 }, { 2559, 0x0d40 }, { 2563, 0xa640 }, { 2568, 0x1849 },
- { 2573, 0x8000 }, { 2574, 0x668e }, { 2582, 0x1106 }, { 2586, 0x6000 },
- { 2588, 0x3988 }, { 2594, 0x845d }, { 2601, 0xc1e1 }, { 2608, 0x1061 },
- { 2612, 0x05a0 }, { 2616, 0x4400 }, { 2618, 0x0300 }, { 2620, 0x3221 },
- /* 0x7000 */
- { 2625, 0x20e1 }, { 2630, 0x0080 }, { 2631, 0x8009 }, { 2634, 0x1290 },
- { 2638, 0x4f18 }, { 2645, 0x6030 }, { 2649, 0x5030 }, { 2653, 0x4060 },
- { 2656, 0x0062 }, { 2659, 0x09f0 }, { 2665, 0x0810 }, { 2667, 0x0093 },
- { 2671, 0x0400 }, { 2672, 0x117a }, { 2679, 0x0010 }, { 2680, 0x0400 },
- /* 0x7100 */
- { 2681, 0x98f8 }, { 2689, 0x4000 }, { 2690, 0xa801 }, { 2694, 0x0103 },
- { 2697, 0x0ce2 }, { 2703, 0x5485 }, { 2709, 0x0101 }, { 2711, 0x0200 },
- { 2712, 0x10a1 }, { 2716, 0x0c04 }, { 2719, 0x8005 }, { 2722, 0x840d },
- { 2727, 0x1813 }, { 2732, 0x1648 }, { 2737, 0x0000 }, { 2737, 0x4100 },
- /* 0x7200 */
- { 2739, 0x0381 }, { 2743, 0xa488 }, { 2748, 0x8810 }, { 2751, 0x0310 },
- { 2754, 0xc02e }, { 2760, 0x5469 }, { 2767, 0xc909 }, { 2773, 0x9982 },
- { 2779, 0x6210 }, { 2783, 0x0808 }, { 2785, 0x6100 }, { 2788, 0x4012 },
- { 2791, 0x1282 }, { 2795, 0x8160 }, { 2799, 0x0020 }, { 2800, 0x4c18 },
- /* 0x7300 */
- { 2805, 0x28b4 }, { 2811, 0x430c }, { 2816, 0x1194 }, { 2821, 0x2c26 },
- { 2827, 0x2008 }, { 2829, 0xe145 }, { 2836, 0xdac1 }, { 2844, 0x1282 },
- { 2848, 0x406b }, { 2854, 0xd1a9 }, { 2862, 0x2c65 }, { 2869, 0xb2a0 },
- { 2875, 0x9a60 }, { 2881, 0x224c }, { 2886, 0x02ca }, { 2891, 0xaeb0 },
- /* 0x7400 */
- { 2899, 0x0493 }, { 2904, 0x0c02 }, { 2907, 0xff50 }, { 2917, 0x0203 },
- { 2920, 0x28d9 }, { 2927, 0x2086 }, { 2931, 0x69c4 }, { 2938, 0x0006 },
- { 2940, 0x82e3 }, { 2947, 0x9707 }, { 2955, 0xcf4b }, { 2965, 0x8a26 },
- { 2971, 0x1300 }, { 2974, 0xcd09 }, { 2981, 0x8d10 }, { 2986, 0x9c10 },
- /* 0x7500 */
- { 2991, 0x0040 }, { 2992, 0x00c4 }, { 2995, 0x8693 }, { 3002, 0xe240 },
- { 3007, 0x4189 }, { 3012, 0xc085 }, { 3017, 0x8002 }, { 3019, 0x7e02 },
- { 3026, 0x0022 }, { 3028, 0x122d }, { 3034, 0x0014 }, { 3036, 0x8410 },
- { 3039, 0xd053 }, { 3046, 0x9080 }, { 3049, 0xd093 }, { 3056, 0x0202 },
- /* 0x7600 */
- { 3058, 0x959d }, { 3067, 0x7a6c }, { 3076, 0x2268 }, { 3081, 0x172c },
- { 3088, 0x0e3b }, { 3096, 0x8220 }, { 3099, 0xe030 }, { 3104, 0x0012 },
- { 3106, 0x3022 }, { 3110, 0xb820 }, { 3115, 0x25fd }, { 3125, 0x2000 },
- { 3126, 0x5a22 }, { 3132, 0x0210 }, { 3134, 0x1141 }, { 3138, 0x1243 },
- /* 0x7700 */
- { 3143, 0x4441 }, { 3147, 0x16b4 }, { 3154, 0xe104 }, { 3159, 0x6270 },
- { 3165, 0xe464 }, { 3172, 0xd0c4 }, { 3178, 0x1495 }, { 3184, 0x241d },
- { 3190, 0x3011 }, { 3194, 0x8470 }, { 3199, 0xc484 }, { 3204, 0x4022 },
- { 3207, 0x0208 }, { 3209, 0xc226 }, { 3215, 0x1451 }, { 3220, 0x0913 },
- /* 0x7800 */
- { 3225, 0x6260 }, { 3230, 0x2002 }, { 3232, 0x600e }, { 3237, 0x00a1 },
- { 3240, 0x5198 }, { 3246, 0x5004 }, { 3249, 0x451b }, { 3256, 0x4400 },
- { 3258, 0x8400 }, { 3260, 0xe110 }, { 3265, 0x3112 }, { 3270, 0xa80f },
- { 3277, 0x5380 }, { 3282, 0x886c }, { 3288, 0x0453 }, { 3293, 0x8ccc },
- /* 0x7900 */
- { 3300, 0x1041 }, { 3303, 0xd401 }, { 3308, 0x22a1 }, { 3313, 0xa832 },
- { 3319, 0x8c70 }, { 3325, 0x1912 }, { 3330, 0x0a80 }, { 3333, 0x5a04 },
- { 3338, 0x1800 }, { 3340, 0x197a }, { 3348, 0x8b02 }, { 3353, 0x0912 },
- { 3357, 0x8594 }, { 3363, 0x6450 }, { 3368, 0x2c25 }, { 3374, 0x1102 },
- /* 0x7a00 */
- { 3377, 0x168c }, { 3383, 0x4822 }, { 3387, 0xa882 }, { 3392, 0x0731 },
- { 3398, 0x11b0 }, { 3403, 0xb260 }, { 3409, 0x24a1 }, { 3414, 0x4120 },
- { 3417, 0x0c65 }, { 3423, 0x4013 }, { 3427, 0x1009 }, { 3430, 0x1a28 },
- { 3435, 0x5240 }, { 3439, 0x0802 }, { 3441, 0x1b00 }, { 3445, 0x6812 },
- /* 0x7b00 */
- { 3450, 0x0080 }, { 3451, 0x8010 }, { 3453, 0xee88 }, { 3461, 0xa013 },
- { 3466, 0x4083 }, { 3470, 0x0020 }, { 3471, 0xa651 }, { 3478, 0x008c },
- { 3481, 0x4210 }, { 3484, 0x4843 }, { 3489, 0x9021 }, { 3493, 0x3c65 },
- { 3501, 0x0524 }, { 3505, 0x0ed0 }, { 3511, 0x0500 }, { 3513, 0x5734 },
- /* 0x7c00 */
- { 3521, 0xda5e }, { 3531, 0x0a00 }, { 3533, 0x1161 }, { 3538, 0x065a },
- { 3544, 0x0440 }, { 3546, 0x7e2e }, { 3556, 0x628a }, { 3562, 0x3205 },
- { 3567, 0x80c0 }, { 3570, 0x4010 }, { 3572, 0x0041 }, { 3574, 0x9cc1 },
- { 3581, 0xa390 }, { 3587, 0x26b8 }, { 3594, 0x0a40 }, { 3597, 0x0020 },
- /* 0x7d00 */
- { 3598, 0x8388 }, { 3603, 0x604e }, { 3609, 0x2448 }, { 3613, 0x7002 },
- { 3617, 0x2183 }, { 3622, 0x368a }, { 3629, 0x04a0 }, { 3632, 0x8d01 },
- { 3637, 0x396e }, { 3646, 0x60c2 }, { 3651, 0x04c0 }, { 3654, 0x02c8 },
- { 3658, 0x707c }, { 3666, 0x0280 }, { 3668, 0x2c64 }, { 3674, 0x0662 },
- /* 0x7e00 */
- { 3679, 0x0101 }, { 3681, 0x30a3 }, { 3687, 0xb181 }, { 3693, 0x8048 },
- { 3696, 0x40b0 }, { 3700, 0x8105 }, { 3704, 0xc826 }, { 3710, 0x4108 },
- { 3713, 0x24c2 }, { 3718, 0x6522 }, { 3724, 0x0000 }, { 3724, 0x0000 },
- { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0x0000 },
- /* 0x7f00 */
- { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0x0000 }, { 3724, 0xf800 },
- { 3729, 0x8098 }, { 3733, 0x380c }, { 3738, 0x207a }, { 3744, 0xe002 },
- { 3748, 0xa801 }, { 3752, 0x10c3 }, { 3757, 0x2446 }, { 3762, 0x9010 },
- { 3765, 0xc109 }, { 3770, 0x8800 }, { 3772, 0xd128 }, { 3778, 0xe404 },
- /* 0x8000 */
- { 3783, 0xe580 }, { 3789, 0xe05a }, { 3796, 0x5051 }, { 3801, 0x56b1 },
- { 3809, 0x0011 }, { 3811, 0x0000 }, { 3811, 0x2051 }, { 3815, 0x0022 },
- { 3817, 0x4102 }, { 3820, 0x5000 }, { 3822, 0x08c0 }, { 3825, 0x0300 },
- { 3827, 0xa100 }, { 3830, 0x01b4 }, { 3835, 0x6001 }, { 3838, 0x464d },
- /* 0x8100 */
- { 3845, 0x0808 }, { 3847, 0x51c0 }, { 3852, 0x1091 }, { 3856, 0x1421 },
- { 3860, 0x14a0 }, { 3864, 0x0084 }, { 3866, 0xa383 }, { 3873, 0x0080 },
- { 3874, 0x4872 }, { 3880, 0x4941 }, { 3885, 0x4004 }, { 3887, 0x0814 },
- { 3890, 0xcc28 }, { 3896, 0x68a0 }, { 3901, 0x1812 }, { 3905, 0xa367 },
- /* 0x8200 */
- { 3914, 0x8009 }, { 3917, 0x2618 }, { 3922, 0x0106 }, { 3925, 0x0414 },
- { 3928, 0xc878 }, { 3935, 0x1042 }, { 3938, 0x2089 }, { 3942, 0xa810 },
- { 3946, 0x469b }, { 3954, 0x0d52 }, { 3960, 0x479b }, { 3969, 0xd495 },
- { 3977, 0x0040 }, { 3978, 0x0421 }, { 3981, 0xa515 }, { 3988, 0x60c0 },
- /* 0x8300 */
- { 3992, 0x0d83 }, { 3998, 0xe800 }, { 4002, 0x7006 }, { 4007, 0x3489 },
- { 4013, 0x609c }, { 4019, 0x00fa }, { 4025, 0x0000 }, { 4025, 0xa101 },
- { 4029, 0x2055 }, { 4034, 0x3b34 }, { 4042, 0x32c0 }, { 4047, 0xc000 },
- { 4049, 0x8281 }, { 4053, 0x2013 }, { 4057, 0x0500 }, { 4059, 0x1340 },
- /* 0x8400 */
- { 4063, 0x8442 }, { 4067, 0x0222 }, { 4070, 0x8000 }, { 4071, 0x0200 },
- { 4072, 0xa5a0 }, { 4078, 0x1746 }, { 4085, 0x04b1 }, { 4090, 0x3159 },
- { 4097, 0x0022 }, { 4099, 0x402c }, { 4103, 0x8740 }, { 4108, 0x6412 },
- { 4113, 0x9185 }, { 4119, 0x1008 }, { 4121, 0x8480 }, { 4124, 0x2c87 },
- /* 0x8500 */
- { 4131, 0x508c }, { 4136, 0x5001 }, { 4139, 0x8cbc }, { 4147, 0x805c },
- { 4152, 0x8040 }, { 4154, 0xf24f }, { 4164, 0x8817 }, { 4170, 0xae00 },
- { 4175, 0x9a62 }, { 4182, 0xa108 }, { 4186, 0x20a5 }, { 4191, 0xf1d0 },
- { 4199, 0x4c84 }, { 4204, 0x8500 }, { 4207, 0x2141 }, { 4211, 0x9048 },
- /* 0x8600 */
- { 4215, 0x6031 }, { 4220, 0x4b07 }, { 4227, 0x0282 }, { 4230, 0x3540 },
- { 4235, 0x0047 }, { 4239, 0x23cc }, { 4246, 0x921f }, { 4254, 0x04e0 },
- { 4258, 0x2100 }, { 4260, 0x1542 }, { 4265, 0x21c2 }, { 4270, 0x83ba },
- { 4278, 0x002b }, { 4282, 0x14a6 }, { 4288, 0x00a9 }, { 4292, 0x3400 },
- /* 0x8700 */
- { 4295, 0xc8b0 }, { 4301, 0xc219 }, { 4307, 0xc10a }, { 4312, 0x7606 },
- { 4319, 0x2029 }, { 4323, 0x2100 }, { 4325, 0x8032 }, { 4329, 0x0806 },
- { 4332, 0x1bf8 }, { 4341, 0x43a9 }, { 4348, 0x7089 }, { 4354, 0xc022 },
- { 4358, 0x4702 }, { 4363, 0x9660 }, { 4369, 0x2c1c }, { 4375, 0x850a },
- /* 0x8800 */
- { 4380, 0x0e4a }, { 4386, 0xdf1d }, { 4397, 0x6100 }, { 4400, 0x1425 },
- { 4405, 0x4f2a }, { 4413, 0x9562 }, { 4420, 0x0211 }, { 4423, 0x0a02 },
- { 4426, 0x0001 }, { 4427, 0x9d00 }, { 4432, 0x0501 }, { 4435, 0x6400 },
- { 4438, 0x7c01 }, { 4444, 0x480e }, { 4449, 0x8080 }, { 4451, 0x00a3 },
- /* 0x8900 */
- { 4455, 0xe042 }, { 4460, 0x1760 }, { 4466, 0x01c1 }, { 4470, 0x4627 },
- { 4477, 0x8265 }, { 4483, 0x1c84 }, { 4488, 0x480e }, { 4493, 0x3c29 },
- { 4500, 0x2200 }, { 4502, 0x9831 }, { 4508, 0x0021 }, { 4510, 0x10f1 },
- { 4516, 0x0000 }, { 4516, 0x01f0 }, { 4521, 0x2a20 }, { 4525, 0xa24a },
- /* 0x8a00 */
- { 4531, 0x80b0 }, { 4535, 0x4036 }, { 4540, 0x9855 }, { 4547, 0x60a0 },
- { 4551, 0x62a9 }, { 4558, 0x31c8 }, { 4564, 0x00a2 }, { 4567, 0xcee0 },
- { 4575, 0x8849 }, { 4580, 0x82c5 }, { 4586, 0xc280 }, { 4590, 0x48c8 },
- { 4595, 0x0748 }, { 4600, 0xa0ba }, { 4607, 0x1000 }, { 4608, 0x9071 },
- /* 0x8b00 */
- { 4614, 0x0c60 }, { 4618, 0xd002 }, { 4622, 0x2000 }, { 4623, 0x1081 },
- { 4626, 0x217c }, { 4633, 0x421c }, { 4638, 0x2008 }, { 4640, 0x5340 },
- { 4645, 0xa832 }, { 4651, 0xd030 }, { 4656, 0x0000 }, { 4656, 0x0000 },
- { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x0000 },
- /* 0x8c00 */
- { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x0000 }, { 4656, 0x6300 },
- { 4660, 0x8aa0 }, { 4665, 0x2b9a }, { 4673, 0x2358 }, { 4679, 0x4868 },
- { 4684, 0x08c0 }, { 4687, 0x1a0d }, { 4693, 0x0010 }, { 4694, 0x0600 },
- { 4696, 0x8a60 }, { 4701, 0x2260 }, { 4705, 0x9102 }, { 4709, 0xc1a5 },
- /* 0x8d00 */
- { 4716, 0x020a }, { 4719, 0x0884 }, { 4722, 0x0000 }, { 4722, 0x0000 },
- { 4722, 0x0000 }, { 4722, 0x0000 }, { 4722, 0x5220 }, { 4726, 0x8000 },
- { 4727, 0x2114 }, { 4731, 0xc023 }, { 4736, 0x9841 }, { 4741, 0x1aa4 },
- { 4747, 0x45e1 }, { 4754, 0x02b2 }, { 4759, 0x10b0 }, { 4763, 0x2017 },
- /* 0x8e00 */
- { 4768, 0x0872 }, { 4773, 0x0052 }, { 4776, 0x00cf }, { 4782, 0x23ca },
- { 4789, 0xe803 }, { 4795, 0x7810 }, { 4800, 0xb206 }, { 4806, 0x0e03 },
- { 4811, 0x020c }, { 4814, 0x6c25 }, { 4821, 0x6284 }, { 4826, 0x0c28 },
- { 4830, 0x809b }, { 4836, 0x1012 }, { 4839, 0x6100 }, { 4842, 0x0683 },
- /* 0x8f00 */
- { 4847, 0x8185 }, { 4852, 0x41c1 }, { 4857, 0x71ab }, { 4866, 0x04f0 },
- { 4871, 0x808b }, { 4876, 0x613e }, { 4884, 0x0020 }, { 4885, 0x0000 },
- { 4885, 0x0000 }, { 4885, 0x2000 }, { 4886, 0x0073 }, { 4891, 0x4160 },
- { 4895, 0x2c43 }, { 4901, 0x002d }, { 4905, 0x4119 }, { 4910, 0x4862 },
- /* 0x9000 */
- { 4915, 0x1114 }, { 4919, 0x0900 }, { 4921, 0xb700 }, { 4927, 0x8098 },
- { 4931, 0x1018 }, { 4934, 0x2800 }, { 4936, 0x10c4 }, { 4940, 0x0211 },
- { 4943, 0x5920 }, { 4948, 0x0ba1 }, { 4954, 0x0027 }, { 4958, 0x605d },
- { 4965, 0x11b8 }, { 4971, 0xb3a4 }, { 4979, 0x8820 }, { 4982, 0xc051 },
- /* 0x9100 */
- { 4987, 0x2171 }, { 4993, 0x55d1 }, { 5001, 0xc2ad }, { 5009, 0x36d2 },
- { 5017, 0x8188 }, { 5021, 0x0e88 }, { 5026, 0x2092 }, { 5030, 0x0e10 },
- { 5034, 0x446a }, { 5040, 0x413a }, { 5046, 0x7142 }, { 5052, 0xb84f },
- { 5061, 0x002c }, { 5064, 0x4698 }, { 5070, 0xf630 }, { 5078, 0x2a83 },
- /* 0x9200 */
- { 5084, 0x16f3 }, { 5093, 0x314d }, { 5100, 0xc178 }, { 5107, 0x5769 },
- { 5116, 0xe4cd }, { 5125, 0x3302 }, { 5130, 0xc3a3 }, { 5138, 0xbbe1 },
- { 5148, 0x6700 }, { 5153, 0x8284 }, { 5157, 0x89b1 }, { 5164, 0xbd44 },
- { 5172, 0x79ef }, { 5184, 0xb3a9 }, { 5193, 0x51ab }, { 5201, 0x8a01 },
- /* 0x9300 */
- { 5205, 0x2105 }, { 5209, 0xf032 }, { 5216, 0x06b2 }, { 5222, 0x00d8 },
- { 5226, 0x0380 }, { 5229, 0x45a7 }, { 5237, 0xa6b0 }, { 5244, 0xa45b },
- { 5252, 0xad07 }, { 5260, 0x4924 }, { 5265, 0x0b5a }, { 5272, 0x0470 },
- { 5276, 0x3ef2 }, { 5286, 0xd208 }, { 5291, 0x00c4 }, { 5294, 0x2f80 },
- /* 0x9400 */
- { 5300, 0xe316 }, { 5308, 0x80e0 }, { 5312, 0xc000 }, { 5314, 0xa81e },
- { 5321, 0x1528 }, { 5326, 0x9220 }, { 5330, 0xe90a }, { 5337, 0x0006 },
- { 5339, 0x0018 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 },
- { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 },
- /* 0x9500 */
- { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 },
- { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x0000 }, { 5341, 0x4300 },
- { 5344, 0x7110 }, { 5349, 0xe000 }, { 5352, 0x1a42 }, { 5357, 0xa450 },
- { 5362, 0x0b40 }, { 5366, 0xe60f }, { 5375, 0x0051 }, { 5378, 0x0000 },
- /* 0x9600 */
- { 5378, 0x0000 }, { 5378, 0x6000 }, { 5380, 0x1074 }, { 5385, 0x378a },
- { 5393, 0x0002 }, { 5394, 0x01d4 }, { 5399, 0x4002 }, { 5401, 0xd810 },
- { 5406, 0x021e }, { 5411, 0xa442 }, { 5416, 0xc270 }, { 5422, 0x0408 },
- { 5424, 0x0400 }, { 5425, 0xe504 }, { 5431, 0x8200 }, { 5433, 0x0402 },
- /* 0x9700 */
- { 5435, 0x022c }, { 5439, 0x2c00 }, { 5442, 0x010e }, { 5446, 0x000a },
- { 5448, 0xc40a }, { 5453, 0x0da0 }, { 5458, 0x4488 }, { 5462, 0xa9c8 },
- { 5469, 0x0201 }, { 5471, 0xc6e0 }, { 5478, 0x5004 }, { 5481, 0xd766 },
- { 5491, 0x76b2 }, { 5500, 0x6b93 }, { 5509, 0x8013 }, { 5513, 0x0592 },
- /* 0x9800 */
- { 5518, 0x6480 }, { 5522, 0x5250 }, { 5527, 0xc869 }, { 5534, 0x402d },
- { 5539, 0x0490 }, { 5542, 0x06ce }, { 5549, 0x146c }, { 5555, 0x0000 },
- { 5555, 0x0000 }, { 5555, 0x0000 }, { 5555, 0x6800 }, { 5558, 0x8d91 },
- { 5565, 0x1124 }, { 5569, 0x0000 }, { 5569, 0x04ea }, { 5575, 0x0048 },
- /* 0x9900 */
- { 5577, 0x0184 }, { 5580, 0x9ce2 }, { 5588, 0x08c4 }, { 5592, 0x1e3e },
- { 5601, 0x61c3 }, { 5608, 0xdb10 }, { 5615, 0x0001 }, { 5616, 0x0000 },
- { 5616, 0x0000 }, { 5616, 0xa800 }, { 5619, 0x0040 }, { 5620, 0xa627 },
- { 5628, 0x0208 }, { 5630, 0x5618 }, { 5636, 0x1c80 }, { 5640, 0x6231 },
- /* 0x9a00 */
- { 5646, 0x181c }, { 5651, 0x4043 }, { 5655, 0x609d }, { 5662, 0x0168 },
- { 5666, 0x5c92 }, { 5673, 0x2052 }, { 5677, 0x0000 }, { 5677, 0x0000 },
- { 5677, 0x0000 }, { 5677, 0x0000 }, { 5677, 0xd400 }, { 5681, 0xca74 },
- { 5689, 0x414a }, { 5694, 0x18e5 }, { 5701, 0x12b1 }, { 5707, 0xa62c },
- /* 0x9b00 */
- { 5714, 0x7b3f }, { 5726, 0x1a45 }, { 5732, 0x2841 }, { 5736, 0x26b8 },
- { 5743, 0x1900 }, { 5746, 0x48e0 }, { 5751, 0x7d6a }, { 5761, 0x83a8 },
- { 5767, 0xaef1 }, { 5777, 0x6411 }, { 5782, 0x12c0 }, { 5786, 0xd987 },
- { 5795, 0x4182 }, { 5799, 0xa181 }, { 5804, 0x8ca0 }, { 5809, 0xa788 },
- /* 0x9c00 */
- { 5816, 0x8805 }, { 5820, 0x5742 }, { 5827, 0x07cc }, { 5834, 0x20e2 },
- { 5839, 0xc63a }, { 5847, 0xf959 }, { 5857, 0x4f08 }, { 5863, 0x08a5 },
- { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 },
- { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0040 }, { 5869, 0x0284 },
- /* 0x9d00 */
- { 5872, 0x0804 }, { 5874, 0x7182 }, { 5880, 0x8000 }, { 5881, 0x341d },
- { 5888, 0x04ac }, { 5893, 0x8018 }, { 5896, 0x0e2c }, { 5902, 0x58c1 },
- { 5908, 0x6458 }, { 5914, 0x01ec }, { 5920, 0x5402 }, { 5924, 0x9222 },
- { 5929, 0x0688 }, { 5933, 0xc4f0 }, { 5940, 0x4aa1 }, { 5946, 0x4019 },
- /* 0x9e00 */
- { 5950, 0x4484 }, { 5954, 0x3267 }, { 5962, 0x0000 }, { 5962, 0x0000 },
- { 5962, 0x0000 }, { 5962, 0x0000 }, { 5962, 0x0000 }, { 5962, 0x1c00 },
- { 5965, 0xc0bd }, { 5973, 0x4940 }, { 5977, 0xd110 }, { 5982, 0x0039 },
- { 5986, 0x0940 }, { 5989, 0x8020 }, { 5991, 0x7090 }, { 5996, 0x8127 },
- /* 0x9f00 */
- { 6002, 0x820c }, { 6006, 0x8ed7 }, { 6016, 0x8c44 }, { 6021, 0xb696 },
- { 6030, 0x00fa }, { 6036, 0x65e8 }, { 6044, 0xe300 }, { 6049, 0x242b },
- { 6055, 0x8000 }, { 6056, 0x40d7 }, { 6063, 0x002e },
-};
-
-static int
-jisx0212_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- const Summary16 *summary = NULL;
- if (wc < 0x0460)
- summary = &jisx0212_uni2indx_page00[(wc>>4)];
- else if (wc >= 0x2100 && wc < 0x2130)
- summary = &jisx0212_uni2indx_page21[(wc>>4)-0x210];
- else if (wc >= 0x4e00 && wc < 0x9fb0)
- summary = &jisx0212_uni2indx_page4e[(wc>>4)-0x4e0];
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- unsigned short c;
- /* Keep in `used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add `summary->indx' and the number of bits set in `used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- c = jisx0212_2charset[summary->indx + used];
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/koi8_c.h b/nx-X11/lib/X11/lcUniConv/koi8_c.h
deleted file mode 100644
index d870a01db..000000000
--- a/nx-X11/lib/X11/lcUniConv/koi8_c.h
+++ /dev/null
@@ -1,102 +0,0 @@
-
-/*
- * KOI8-C
- */
-
-static const unsigned short koi8_c_2uni[128] = {
- /* 0x80 */
- 0x0493, 0x0497, 0x049b, 0x049d, 0x04a3, 0x04af, 0x04b1, 0x04b3,
- 0x04b7, 0x04b9, 0x04bb, 0x2580, 0x04d9, 0x04e3, 0x04e9, 0x04ef,
- /* 0x90 */
- 0x0492, 0x0496, 0x049a, 0x049c, 0x04a2, 0x04ae, 0x04b0, 0x04b2,
- 0x04b6, 0x04b8, 0x04ba, 0x2321, 0x04d8, 0x04e2, 0x04e8, 0x04ee,
- /* 0xa0 */
- 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457,
- 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x0491, 0x045e, 0x045f,
- /* 0xb0 */
- 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407,
- 0x0486, 0x0409, 0x040a, 0x040b, 0x040c, 0x0490, 0x040e, 0x040f,
- /* 0xc0 */
- 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
- 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- /* 0xd0 */
- 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
- 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
- /* 0xe0 */
- 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
- 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- /* 0xf0 */
- 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
- 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
-};
-
-static int
-koi8_c_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) koi8_c_2uni[c-0x80];
- return 1;
-}
-
-static const unsigned char koi8_c_page00[1] = {
- 0xa0, /* 0xa0-0xa7 */
-};
-static const unsigned char koi8_c_page04[240] = {
- 0x00, 0xb3, 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x00-0x07 */
- 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0x00, 0xbe, 0xbf, /* 0x08-0x0f */
- 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */
- 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */
- 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */
- 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */
- 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */
- 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */
- 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */
- 0x00, 0xa3, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x50-0x57 */
- 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0xbd, 0xad, 0x90, 0x80, 0x00, 0x00, 0x91, 0x81, /* 0x90-0x97 */
- 0x00, 0x00, 0x92, 0x82, 0x93, 0x83, 0x00, 0x00, /* 0x98-0x9f */
- 0x00, 0x00, 0x94, 0x84, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x85, /* 0xa8-0xaf */
- 0x96, 0x86, 0x97, 0x87, 0x00, 0x00, 0x98, 0x88, /* 0xb0-0xb7 */
- 0x99, 0x89, 0x9a, 0x8a, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x9c, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x9d, 0x8d, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0x9e, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x8f, /* 0xe8-0xef */
-};
-static const unsigned char koi8_c_page22[1] = {
- 0xb0, /* 0x16-0x16 */
-};
-
-static int
-koi8_c_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00a1)
- c = koi8_c_page00[wc-0x00a0];
- else if (wc >= 0x0400 && wc < 0x04ef)
- c = koi8_c_page04[wc-0x0400];
- else if (wc >= 0x2216 && wc < 0x2217)
- c = koi8_c_page22[wc-0x2216];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/koi8_r.h b/nx-X11/lib/X11/lcUniConv/koi8_r.h
deleted file mode 100644
index 37ca594f6..000000000
--- a/nx-X11/lib/X11/lcUniConv/koi8_r.h
+++ /dev/null
@@ -1,134 +0,0 @@
-
-/*
- * KOI8-R
- */
-
-/* Specification: RFC 1489 */
-
-static const unsigned short koi8_r_2uni[128] = {
- /* 0x80 */
- 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
- 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
- /* 0x90 */
- 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
- 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
- /* 0xa0 */
- 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
- 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
- /* 0xb0 */
- 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
- 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
- /* 0xc0 */
- 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
- 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- /* 0xd0 */
- 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
- 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
- /* 0xe0 */
- 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
- 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- /* 0xf0 */
- 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
- 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
-};
-
-static int
-koi8_r_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) koi8_r_2uni[c-0x80];
- return 1;
-}
-
-static const unsigned char koi8_r_page00[88] = {
- 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
- 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */
-};
-static const unsigned char koi8_r_page04[88] = {
- 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */
- 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */
- 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */
- 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */
- 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */
- 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */
- 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */
- 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
-};
-static const unsigned char koi8_r_page22[80] = {
- 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */
-};
-static const unsigned char koi8_r_page23[8] = {
- 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
-};
-static const unsigned char koi8_r_page25[168] = {
- 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, /* 0x50-0x57 */
- 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */
- 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* 0x60-0x67 */
- 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
- 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
-};
-
-static int
-koi8_r_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00f8)
- c = koi8_r_page00[wc-0x00a0];
- else if (wc >= 0x0400 && wc < 0x0458)
- c = koi8_r_page04[wc-0x0400];
- else if (wc >= 0x2218 && wc < 0x2268)
- c = koi8_r_page22[wc-0x2218];
- else if (wc >= 0x2320 && wc < 0x2328)
- c = koi8_r_page23[wc-0x2320];
- else if (wc >= 0x2500 && wc < 0x25a8)
- c = koi8_r_page25[wc-0x2500];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/koi8_u.h b/nx-X11/lib/X11/lcUniConv/koi8_u.h
deleted file mode 100644
index e094419bc..000000000
--- a/nx-X11/lib/X11/lcUniConv/koi8_u.h
+++ /dev/null
@@ -1,142 +0,0 @@
-
-/*
- * KOI8-U
- */
-
-/* Specification: RFC 2319 */
-
-static const unsigned short koi8_u_2uni[128] = {
- /* 0x80 */
- 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
- 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
- /* 0x90 */
- 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
- 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
- /* 0xa0 */
- 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
- 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
- /* 0xb0 */
- 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
- 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
- /* 0xc0 */
- 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
- 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- /* 0xd0 */
- 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
- 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
- /* 0xe0 */
- 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
- 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- /* 0xf0 */
- 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
- 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a,
-};
-
-static int
-koi8_u_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) koi8_u_2uni[c-0x80];
- return 1;
-}
-
-static const unsigned char koi8_u_page00[88] = {
- 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
- 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */
-};
-static const unsigned char koi8_u_page04[152] = {
- 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */
- 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */
- 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */
- 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */
- 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */
- 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */
- 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */
- 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */
- 0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
-};
-static const unsigned char koi8_u_page22[80] = {
- 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */
-};
-static const unsigned char koi8_u_page23[8] = {
- 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
-};
-static const unsigned char koi8_u_page25[168] = {
- 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */
- 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */
- 0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */
- 0xba, 0xbb, 0xbc, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
- 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
-};
-
-static int
-koi8_u_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00f8)
- c = koi8_u_page00[wc-0x00a0];
- else if (wc >= 0x0400 && wc < 0x0498)
- c = koi8_u_page04[wc-0x0400];
- else if (wc >= 0x2218 && wc < 0x2268)
- c = koi8_u_page22[wc-0x2218];
- else if (wc >= 0x2320 && wc < 0x2328)
- c = koi8_u_page23[wc-0x2320];
- else if (wc >= 0x2500 && wc < 0x25a8)
- c = koi8_u_page25[wc-0x2500];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/ksc5601.h b/nx-X11/lib/X11/lcUniConv/ksc5601.h
deleted file mode 100644
index 843dcff19..000000000
--- a/nx-X11/lib/X11/lcUniConv/ksc5601.h
+++ /dev/null
@@ -1,3002 +0,0 @@
-
-/*
- * KSC5601.1987-0
- */
-
-static const unsigned short ksc5601_2uni_page21[1115] = {
- /* 0x21 */
- 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003,
- 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c,
- 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
- 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7,
- 0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033,
- 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, 0x2220,
- 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, 0x203b,
- 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1,
- 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191,
- 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d,
- 0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282,
- 0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2,
- /* 0x22 */
- 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, 0x02d8,
- 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, 0x02d0,
- 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 0x25c0,
- 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663,
- 0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5,
- 0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c,
- 0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196,
- 0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, 0x2116,
- 0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x23 */
- 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08,
- 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10,
- 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18,
- 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20,
- 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28,
- 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30,
- 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38,
- 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40,
- 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48,
- 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50,
- 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58,
- 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3,
- /* 0x24 */
- 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
- 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
- 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
- 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
- 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
- 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
- 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168,
- 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170,
- 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178,
- 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, 0x3180,
- 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 0x3188,
- 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e,
- /* 0x25 */
- 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
- 0x2178, 0x2179, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2160,
- 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168,
- 0x2169, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,
- 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0,
- 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8,
- 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0,
- 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x26 */
- 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c,
- 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
- 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f,
- 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542,
- 0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d,
- 0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, 0x252a,
- 0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, 0x253a,
- 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, 0x2546,
- 0x2547, 0x2548, 0x2549, 0x254a, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x27 */
- 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4,
- 0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, 0x339e,
- 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, 0x338f,
- 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, 0x33b1,
- 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9,
- 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc,
- 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394,
- 0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5,
- 0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac,
- 0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x28 */
- 0x00c6, 0x00d0, 0x00aa, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x013f,
- 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, 0xfffd,
- 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267,
- 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f,
- 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277,
- 0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, 0x24d3,
- 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db,
- 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3,
- 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 0x2461,
- 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
- 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154,
- 0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e,
- /* 0x29 */
- 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0140,
- 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, 0x0149,
- 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, 0x3207,
- 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 0x320f,
- 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217,
- 0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f,
- 0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7,
- 0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af,
- 0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475,
- 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d,
- 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, 0x00b3,
- 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084,
- /* 0x2a */
- 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048,
- 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050,
- 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
- 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
- 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
- 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
- 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
- 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
- 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
- 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
- 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x2b */
- 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8,
- 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0,
- 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8,
- 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
- 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8,
- 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0,
- 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8,
- 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0,
- 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8,
- 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
- 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- /* 0x2c */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416,
- 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
- 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426,
- 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e,
- 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436,
- 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
- 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446,
- 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e,
- 0x044f,
-};
-static const unsigned short ksc5601_2uni_page30[2350] = {
- /* 0x30 */
- 0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10,
- 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19,
- 0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d,
- 0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b,
- 0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77,
- 0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86,
- 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d,
- 0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf,
- 0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4,
- 0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7,
- 0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5,
- 0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06,
- /* 0x31 */
- 0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, 0xad29,
- 0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45,
- 0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, 0xad6c,
- 0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c,
- 0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, 0xad90,
- 0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8,
- 0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9,
- 0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d,
- 0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, 0xae40,
- 0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e,
- 0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61,
- 0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78,
- /* 0x32 */
- 0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, 0xaebc,
- 0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0,
- 0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, 0xaef4,
- 0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d,
- 0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, 0xaf42,
- 0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65,
- 0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, 0xaf9c,
- 0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb,
- 0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, 0xaff1,
- 0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014,
- 0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, 0xb04c,
- 0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059,
- /* 0x33 */
- 0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, 0xb08f,
- 0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1,
- 0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af,
- 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5,
- 0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, 0xb0e0,
- 0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113,
- 0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, 0xb125,
- 0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140,
- 0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, 0xb158,
- 0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188,
- 0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, 0xb19c,
- 0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd,
- /* 0x34 */
- 0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd,
- 0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217,
- 0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268,
- 0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290,
- 0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3,
- 0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9,
- 0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2,
- 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee,
- 0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa,
- 0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311,
- 0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358,
- 0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365,
- /* 0x35 */
- 0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378,
- 0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, 0xb394,
- 0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb,
- 0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db,
- 0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c,
- 0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, 0xb454,
- 0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488,
- 0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0,
- 0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3,
- 0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514,
- 0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528,
- 0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538,
- /* 0x36 */
- 0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d,
- 0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, 0xb5a0,
- 0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3,
- 0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, 0xb5cc,
- 0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611,
- 0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, 0xb668,
- 0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4,
- 0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, 0xb729,
- 0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748,
- 0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, 0xb771,
- 0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d,
- 0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797,
- /* 0x37 */
- 0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac,
- 0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, 0xb7ed,
- 0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807,
- 0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, 0xb81d,
- 0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838,
- 0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, 0xb860,
- 0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d,
- 0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, 0xb8c5,
- 0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9,
- 0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, 0xb918,
- 0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951,
- 0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969,
- /* 0x38 */
- 0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985,
- 0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0,
- 0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc,
- 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db,
- 0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec,
- 0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01,
- 0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48,
- 0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58,
- 0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71,
- 0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8,
- 0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb,
- 0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc,
- /* 0x39 */
- 0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20,
- 0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c,
- 0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f,
- 0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c,
- 0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4,
- 0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00,
- 0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11,
- 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d,
- 0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30,
- 0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45,
- 0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88,
- 0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97,
- /* 0x3a */
- 0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, 0xbcb0,
- 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4,
- 0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, 0xbcf4,
- 0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09,
- 0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, 0xbd4c,
- 0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84,
- 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, 0xbd95,
- 0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5,
- 0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, 0xbe03,
- 0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f,
- 0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, 0xbe57,
- 0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64,
- /* 0x3b */
- 0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, 0xbe7b,
- 0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90,
- 0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, 0xbed7,
- 0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08,
- 0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, 0xbf41,
- 0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5,
- 0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, 0xc03c,
- 0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091,
- 0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, 0xc0ad,
- 0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd,
- 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, 0xc0d0,
- 0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4,
- /* 0x3c */
- 0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100,
- 0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f,
- 0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f,
- 0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148,
- 0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c,
- 0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178,
- 0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c,
- 0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0,
- 0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0,
- 0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200,
- 0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c,
- 0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d,
- /* 0x3d */
- 0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254,
- 0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c,
- 0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b,
- 0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5,
- 0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb,
- 0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb,
- 0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314,
- 0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, 0xc345,
- 0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c,
- 0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc,
- 0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5,
- 0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430,
- /* 0x3e */
- 0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c,
- 0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, 0xc4bc,
- 0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500,
- 0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, 0xc52c,
- 0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548,
- 0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, 0xc555,
- 0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564,
- 0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, 0xc57d,
- 0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595,
- 0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, 0xc5b8,
- 0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6,
- 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce,
- /* 0x3f */
- 0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5,
- 0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, 0xc5fc,
- 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607,
- 0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, 0xc624,
- 0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634,
- 0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, 0xc648,
- 0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660,
- 0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, 0xc688,
- 0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4,
- 0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, 0xc6b9,
- 0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0,
- 0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8,
- /* 0x40 */
- 0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705,
- 0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721,
- 0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c,
- 0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751,
- 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c,
- 0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d,
- 0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a,
- 0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a,
- 0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad,
- 0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8,
- 0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8,
- 0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a,
- /* 0x41 */
- 0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820,
- 0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840,
- 0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, 0xc874,
- 0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887,
- 0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8,
- 0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7,
- 0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900,
- 0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918,
- 0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, 0xc961,
- 0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c,
- 0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4,
- 0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3,
- /* 0x42 */
- 0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, 0xc9e2,
- 0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8,
- 0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, 0xca0d,
- 0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c,
- 0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, 0xca98,
- 0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1,
- 0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, 0xcb10,
- 0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c,
- 0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, 0xcb9c,
- 0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10,
- 0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, 0xcc29,
- 0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b,
- /* 0x43 */
- 0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, 0xcc54,
- 0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68,
- 0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, 0xcca9,
- 0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4,
- 0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, 0xccf0,
- 0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b,
- 0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, 0xcd64,
- 0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95,
- 0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, 0xcdc4,
- 0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb,
- 0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, 0xce21,
- 0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35,
- /* 0x44 */
- 0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69,
- 0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85,
- 0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1,
- 0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5,
- 0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9,
- 0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15,
- 0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31,
- 0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67,
- 0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c,
- 0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8,
- 0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011,
- 0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c,
- /* 0x45 */
- 0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060,
- 0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4,
- 0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0,
- 0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4,
- 0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef,
- 0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, 0xd138,
- 0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d,
- 0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c,
- 0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0,
- 0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4,
- 0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234,
- 0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c,
- /* 0x46 */
- 0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295,
- 0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2bc,
- 0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8,
- 0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, 0xd300,
- 0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314,
- 0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, 0xd328,
- 0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d,
- 0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, 0xd38d,
- 0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8,
- 0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, 0xd3c5,
- 0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed,
- 0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401,
- /* 0x47 */
- 0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d,
- 0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, 0xd488,
- 0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4,
- 0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, 0xd4fd,
- 0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d,
- 0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, 0xd559,
- 0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574,
- 0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, 0xd589,
- 0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8,
- 0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, 0xd5f4,
- 0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610,
- 0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620,
- /* 0x48 */
- 0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648,
- 0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c,
- 0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c,
- 0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac,
- 0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1,
- 0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5,
- 0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c,
- 0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738,
- 0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756,
- 0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769,
- 0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789,
- 0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d,
-};
-static const unsigned short ksc5601_2uni_page4a[4888] = {
- /* 0x4a */
- 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 0x54e5,
- 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c,
- 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36,
- 0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404,
- 0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3,
- 0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7,
- 0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, 0x78f5,
- 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, 0x9593,
- 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, 0x8910,
- 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 0x61be,
- 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3,
- 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95,
- /* 0x4b */
- 0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, 0x5808,
- 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, 0x6c5f,
- 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, 0x8221,
- 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, 0x4ef7,
- 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 0x69ea,
- 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900,
- 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9,
- 0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da,
- 0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d,
- 0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106,
- 0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, 0x5091,
- 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2,
- /* 0x4c */
- 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9,
- 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694,
- 0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b,
- 0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a,
- 0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac,
- 0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, 0x5770,
- 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, 0x666f,
- 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, 0x74a5,
- 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 0x7d93,
- 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1,
- 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951,
- 0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0,
- /* 0x4d */
- 0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b,
- 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, 0x53e9,
- 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, 0x62f7,
- 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 0x75fc,
- 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6,
- 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c,
- 0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2,
- 0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606,
- 0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904,
- 0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, 0x6050,
- 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, 0x8ca2,
- 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc,
- /* 0x4e */
- 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846,
- 0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec,
- 0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50,
- 0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec,
- 0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, 0x6d38,
- 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, 0x639b,
- 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, 0x62d0,
- 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 0x50d1,
- 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821,
- 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e,
- 0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18,
- 0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe,
- /* 0x4f */
- 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, 0x5bc7,
- 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, 0x69cb,
- 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 0x7396,
- 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205,
- 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1,
- 0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b,
- 0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4,
- 0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae,
- 0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, 0x52f8,
- 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, 0x53a5,
- 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, 0x8a6d,
- 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4,
- /* 0x50 */
- 0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea,
- 0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035,
- 0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908,
- 0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, 0x9699,
- 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, 0x747e,
- 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, 0xf909,
- 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 0x79bd,
- 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca,
- 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc,
- 0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b,
- 0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e,
- 0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3,
- /* 0x51 */
- 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, 0x6c23,
- 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 0x74a3,
- 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a,
- 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18,
- 0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e,
- 0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854,
- 0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d,
- 0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, 0xf913,
- 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, 0xf919,
- 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, 0xf91f,
- 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 0x6960,
- 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925,
- /* 0x52 */
- 0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929,
- 0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0,
- 0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, 0x606c,
- 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, 0x5f29,
- 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, 0xf935,
- 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 0xf93c,
- 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3,
- 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166,
- 0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e,
- 0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952,
- 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959,
- 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336,
- /* 0x53 */
- 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 0x65b7,
- 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde,
- 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8,
- 0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b,
- 0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7,
- 0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510,
- 0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, 0x7cd6,
- 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, 0x5cb1,
- 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, 0x8cb8,
- 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 0x5230,
- 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6,
- 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843,
- /* 0x54 */
- 0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc,
- 0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, 0x8e48,
- 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, 0x6bd2,
- 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, 0x7e9b,
- 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 0x711e,
- 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd,
- 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c,
- 0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597,
- 0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017,
- 0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97,
- 0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, 0x9127,
- 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85,
- /* 0x55 */
- 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de,
- 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375,
- 0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3,
- 0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd,
- 0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a,
- 0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, 0x5fa0,
- 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, 0x51c9,
- 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, 0x8f1b,
- 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 0x623e,
- 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62,
- 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b,
- 0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23,
- /* 0x56 */
- 0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, 0x934a,
- 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, 0x6582,
- 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, 0xf95f,
- 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 0x8046,
- 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7,
- 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3,
- 0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def,
- 0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0,
- 0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727,
- 0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, 0x78ca,
- 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, 0x5ed6,
- 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc,
- /* 0x57 */
- 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda,
- 0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b,
- 0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409,
- 0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e,
- 0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, 0x5f8b,
- 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, 0x51cc,
- 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, 0x5398,
- 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 0x7281,
- 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8,
- 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d,
- 0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f,
- 0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c,
- /* 0x58 */
- 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, 0x78e8,
- 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, 0x83ab,
- 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 0x633d,
- 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513,
- 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab,
- 0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b,
- 0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb,
- 0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164,
- 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, 0x964c,
- 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, 0x840c,
- 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, 0x7704,
- 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5,
- /* 0x59 */
- 0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f,
- 0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4,
- 0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478,
- 0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, 0x7261,
- 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, 0x8b28,
- 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, 0x9da9,
- 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 0x5999,
- 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7,
- 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab,
- 0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46,
- 0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8,
- 0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587,
- /* 0x5a */
- 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, 0x52ff,
- 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 0x5fae,
- 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e,
- 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d,
- 0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9,
- 0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd,
- 0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94,
- 0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, 0x99c1,
- 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, 0x6591,
- 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, 0x76fc,
- 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 0x9812,
- 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51,
- /* 0x5b */
- 0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d,
- 0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9,
- 0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, 0x80aa,
- 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, 0x90a6,
- 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, 0x62dc,
- 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 0x88f4,
- 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70,
- 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a,
- 0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc,
- 0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e,
- 0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb,
- 0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656,
- /* 0x5c */
- 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 0x8b8a,
- 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19,
- 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5,
- 0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08,
- 0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a,
- 0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14,
- 0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, 0x798f,
- 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, 0x99a5,
- 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, 0x5cf0,
- 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 0x8702,
- 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256,
- 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66,
- /* 0x5d */
- 0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7,
- 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, 0x8151,
- 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, 0x8cfb,
- 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, 0x9ce7,
- 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 0x5fff,
- 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde,
- 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f,
- 0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15,
- 0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2,
- 0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6,
- 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, 0x7891,
- 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5,
- /* 0x5e */
- 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb,
- 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c,
- 0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7,
- 0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b,
- 0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2,
- 0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, 0x5beb,
- 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, 0x659c,
- 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, 0x6e23,
- 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 0x7be9,
- 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df,
- 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc,
- 0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a,
- /* 0x5f */
- 0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, 0x759d,
- 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, 0x715e,
- 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, 0x8518,
- 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 0x50cf,
- 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38,
- 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d,
- 0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4,
- 0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7,
- 0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d,
- 0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, 0x6055,
- 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, 0x68f2,
- 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72,
- /* 0x60 */
- 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd,
- 0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790,
- 0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b,
- 0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e,
- 0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, 0x766c,
- 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, 0x861a,
- 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, 0x9bae,
- 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 0x859b,
- 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2,
- 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee,
- 0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f,
- 0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c,
- /* 0x61 */
- 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, 0x6b72,
- 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, 0x562f,
- 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 0x6414,
- 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2,
- 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20,
- 0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5,
- 0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f,
- 0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0,
- 0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, 0x8a1f,
- 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, 0x9396,
- 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, 0x58fd,
- 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101,
- /* 0x62 */
- 0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a,
- 0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2,
- 0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac,
- 0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, 0x8896,
- 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, 0x92b9,
- 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, 0x9ad3,
- 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 0x6f5a,
- 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa,
- 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3,
- 0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340,
- 0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4,
- 0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27,
- /* 0x63 */
- 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, 0x8936,
- 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 0x6607,
- 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4,
- 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f,
- 0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494,
- 0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4,
- 0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184,
- 0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, 0x4f81,
- 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, 0x71fc,
- 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, 0x85ce,
- 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 0x5ba4,
- 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81,
- /* 0x64 */
- 0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341,
- 0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25,
- 0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, 0x8a1d,
- 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, 0x5dbd,
- 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, 0x9354,
- 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 0x6848,
- 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb,
- 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4,
- 0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f,
- 0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16,
- 0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, 0x5384,
- 0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d,
- /* 0x65 */
- 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 0x591c,
- 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31,
- 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d,
- 0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da,
- 0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001,
- 0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c,
- 0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, 0x5704,
- 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, 0x9b5a,
- 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, 0x5830,
- 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 0x513c,
- 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88,
- 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982,
- /* 0x66 */
- 0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207,
- 0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, 0xf988,
- 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, 0xf98c,
- 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, 0x5827,
- 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 0x6350,
- 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5,
- 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5,
- 0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f,
- 0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b,
- 0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1,
- 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3,
- 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2,
- /* 0x67 */
- 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449,
- 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac,
- 0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41,
- 0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b,
- 0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1,
- 0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, 0xf9b4,
- 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, 0x6fca,
- 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, 0x88d4,
- 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 0x9810,
- 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da,
- 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca,
- 0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3,
- /* 0x68 */
- 0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, 0x9f07,
- 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, 0x761f,
- 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, 0x7515,
- 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 0x7aa9,
- 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b,
- 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9,
- 0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0,
- 0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a,
- 0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb,
- 0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, 0xf9bc,
- 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, 0x66dc,
- 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1,
- /* 0x69 */
- 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef,
- 0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32,
- 0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7,
- 0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67,
- 0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, 0x84c9,
- 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, 0x512a,
- 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, 0x6182,
- 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 0x79b9,
- 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5,
- 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631,
- 0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52,
- 0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553,
- /* 0x6a */
- 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, 0x718a,
- 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, 0x5a9b,
- 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 0x6e72,
- 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060,
- 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d,
- 0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170,
- 0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466,
- 0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f,
- 0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, 0x5b7a,
- 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, 0x6109,
- 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, 0x6961,
- 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb,
- /* 0x6b */
- 0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652,
- 0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb,
- 0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9,
- 0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, 0x80b2,
- 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, 0x6f64,
- 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, 0xf9d9,
- 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 0xf9dc,
- 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59,
- 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3,
- 0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100,
- 0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3,
- 0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc,
- /* 0x6c */
- 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, 0x5937,
- 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 0xf9e1,
- 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5,
- 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7,
- 0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c,
- 0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a,
- 0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb,
- 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, 0x8335,
- 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, 0xf9f3,
- 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, 0x93b0,
- 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 0xf9f5,
- 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344,
- /* 0x6d */
- 0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4,
- 0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063,
- 0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, 0x78c1,
- 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, 0x8cc7,
- 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, 0x70b8,
- 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 0x68e7,
- 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a,
- 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef,
- 0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756,
- 0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b,
- 0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523,
- 0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577,
- /* 0x6e */
- 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 0x683d,
- 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09,
- 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e,
- 0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17,
- 0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7,
- 0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8,
- 0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, 0x6575,
- 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, 0x7e3e,
- 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, 0x8fea,
- 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 0x5178,
- 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb,
- 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1,
- /* 0x6f */
- 0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b,
- 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, 0x9293,
- 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, 0x622a,
- 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, 0x5cbe,
- 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 0x63a5,
- 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448,
- 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a,
- 0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89,
- 0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1,
- 0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d,
- 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, 0x914a,
- 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756,
- /* 0x70 */
- 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d,
- 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd,
- 0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d,
- 0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14,
- 0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d,
- 0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, 0x722a,
- 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, 0x7c97,
- 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, 0x8abf,
- 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 0x9ce5,
- 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9,
- 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9,
- 0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b,
- /* 0x71 */
- 0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, 0x5ea7,
- 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, 0x80c4,
- 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, 0x665d,
- 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 0x70b7,
- 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db,
- 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152,
- 0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8,
- 0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c,
- 0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301,
- 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, 0x6c41,
- 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, 0x75c7,
- 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea,
- /* 0x72 */
- 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f,
- 0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c,
- 0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3,
- 0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072,
- 0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, 0x5875,
- 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, 0x6d25,
- 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, 0x771e,
- 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 0x8a3a,
- 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707,
- 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be,
- 0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f,
- 0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f,
- /* 0x73 */
- 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, 0x501f,
- 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, 0x7b9a,
- 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 0x7a84,
- 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da,
- 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d,
- 0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed,
- 0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92,
- 0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70,
- 0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, 0x6f32,
- 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, 0x50b5,
- 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, 0x83dc,
- 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56,
- /* 0x74 */
- 0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254,
- 0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620,
- 0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929,
- 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, 0x85a6,
- 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, 0x51f8,
- 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, 0x8f4d,
- 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 0x7c3d,
- 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252,
- 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8,
- 0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff,
- 0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d,
- 0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2,
- /* 0x75 */
- 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, 0x790e,
- 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 0x8c82,
- 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7,
- 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a,
- 0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283,
- 0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e,
- 0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf,
- 0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, 0x939a,
- 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, 0x7b51,
- 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, 0x6625,
- 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 0x6c96,
- 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403,
- /* 0x76 */
- 0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0,
- 0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074,
- 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, 0x55e4,
- 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, 0x75d4,
- 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, 0x81f4,
- 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 0x98ed,
- 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88,
- 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31,
- 0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253,
- 0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c,
- 0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b,
- 0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17,
- /* 0x77 */
- 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 0x7058,
- 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d,
- 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03,
- 0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70,
- 0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04,
- 0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e,
- 0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, 0x5806,
- 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, 0x59ac,
- 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, 0x5a46,
- 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 0x722c,
- 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742,
- 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211,
- /* 0x78 */
- 0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557,
- 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, 0x5f6d,
- 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, 0x7247,
- 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, 0x576a,
- 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 0x5ee2,
- 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305,
- 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b,
- 0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de,
- 0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea,
- 0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07,
- 0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, 0x74e2,
- 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43,
- /* 0x79 */
- 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c,
- 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c,
- 0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d,
- 0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630,
- 0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15,
- 0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, 0x608d,
- 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, 0x9591,
- 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, 0x54b8,
- 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 0x9677,
- 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c,
- 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d,
- 0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a,
- /* 0x7a */
- 0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, 0x595a,
- 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, 0x89e3,
- 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, 0x5016,
- 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 0x73e6,
- 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b,
- 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57,
- 0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8,
- 0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d,
- 0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249,
- 0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, 0x5354,
- 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, 0x83a2,
- 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b,
- /* 0x7b */
- 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9,
- 0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8,
- 0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af,
- 0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5,
- 0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, 0x6dcf,
- 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, 0x7425,
- 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, 0x82a6,
- 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 0x93ac,
- 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7,
- 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18,
- 0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b,
- 0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575,
- /* 0x7c */
- 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, 0x9774,
- 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, 0x559a,
- 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 0x6853,
- 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b,
- 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d,
- 0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f,
- 0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352,
- 0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a,
- 0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, 0x6fae,
- 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, 0x8cc4,
- 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, 0x5b5d,
- 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6,
- /* 0x7d */
- 0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e,
- 0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd,
- 0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb,
- 0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, 0x8431,
- 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, 0x7147,
- 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, 0x8667,
- 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 0x80f8,
- 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07,
- 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5,
- 0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09,
- 0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9,
- 0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70,
-};
-
-static int
-ksc5601_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c1 = (s[0] & 0x7F);
- if ((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x30 && c1 <= 0x48) || (c1 >= 0x4a && c1 <= 0x7d)) {
- if (n >= 2) {
- unsigned char c2 = (s[1] & 0x7F);
- if (c2 >= 0x21 && c2 < 0x7f) {
- unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21);
- unsigned short wc = 0xfffd;
- if (i < 1410) {
- if (i < 1115)
- wc = ksc5601_2uni_page21[i];
- } else if (i < 3854) {
- if (i < 3760)
- wc = ksc5601_2uni_page30[i-1410];
- } else {
- if (i < 8742)
- wc = ksc5601_2uni_page4a[i-3854];
- }
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOFEW(0);
- }
- return RET_ILSEQ;
-}
-
-static const unsigned short ksc5601_2charset[8224] = {
- 0x222e, 0x2234, 0x2157, 0x2127, 0x2823, 0x2129, 0x2146, 0x213e,
- 0x2977, 0x2978, 0x2225, 0x2252, 0x2124, 0x222c, 0x2976, 0x282c,
- 0x2879, 0x2876, 0x287a, 0x222f, 0x2821, 0x2822, 0x213f, 0x282a,
- 0x282d, 0x292c, 0x2921, 0x2923, 0x2140, 0x292a, 0x292d, 0x2922,
- 0x2824, 0x2924, 0x2925, 0x2826, 0x2926, 0x2927, 0x2828, 0x2928,
- 0x2829, 0x2929, 0x2930, 0x282f, 0x292f, 0x282b, 0x292b, 0x282e,
- 0x292e, 0x2227, 0x2230, 0x2228, 0x222b, 0x222a, 0x222d, 0x2229,
- 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548,
- 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, 0x2550,
- 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558,
- 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568,
- 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, 0x2570,
- 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2577, 0x2578,
- 0x2c27, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, 0x2c28,
- 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x2c2f, 0x2c30,
- 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37, 0x2c38,
- 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f, 0x2c40,
- 0x2c41, 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, 0x2c58,
- 0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f, 0x2c60,
- 0x2c61, 0x2c62, 0x2c63, 0x2c64, 0x2c65, 0x2c66, 0x2c67, 0x2c68,
- 0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6d, 0x2c6e, 0x2c6f, 0x2c70,
- 0x2c71, 0x2c57, 0x212a, 0x212e, 0x212f, 0x2130, 0x2131, 0x2253,
- 0x2254, 0x2125, 0x2126, 0x2236, 0x2147, 0x2148, 0x2158, 0x2979,
- 0x297a, 0x297b, 0x297c, 0x297d, 0x297e, 0x2149, 0x2235, 0x2724,
- 0x2260, 0x2265, 0x2262, 0x2759, 0x214a, 0x2877, 0x2878, 0x287b,
- 0x287c, 0x287d, 0x287e, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534,
- 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x2521, 0x2522, 0x2523,
- 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x2167,
- 0x2168, 0x2166, 0x2169, 0x216a, 0x2255, 0x2258, 0x2256, 0x2259,
- 0x2257, 0x2221, 0x2222, 0x2223, 0x2153, 0x2224, 0x2154, 0x2174,
- 0x2175, 0x2233, 0x2232, 0x216e, 0x2170, 0x2144, 0x2150, 0x212b,
- 0x217c, 0x217d, 0x217b, 0x217a, 0x2172, 0x2173, 0x2231, 0x2145,
- 0x2171, 0x212d, 0x216f, 0x2156, 0x2141, 0x2155, 0x2142, 0x2143,
- 0x216c, 0x216d, 0x2178, 0x2179, 0x2176, 0x2177, 0x2241, 0x2151,
- 0x2152, 0x2867, 0x2868, 0x2869, 0x286a, 0x286b, 0x286c, 0x286d,
- 0x286e, 0x286f, 0x2870, 0x2871, 0x2872, 0x2873, 0x2874, 0x2875,
- 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, 0x296d, 0x296e,
- 0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, 0x2975, 0x294d,
- 0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955,
- 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, 0x295c, 0x295d,
- 0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965,
- 0x2966, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, 0x2852, 0x2853,
- 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, 0x285b,
- 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, 0x2862, 0x2863,
- 0x2864, 0x2865, 0x2866, 0x2621, 0x262c, 0x2622, 0x262d, 0x2623,
- 0x2648, 0x2647, 0x262e, 0x2624, 0x2642, 0x2641, 0x262f, 0x2626,
- 0x2646, 0x2645, 0x2631, 0x2625, 0x2644, 0x2643, 0x2630, 0x2627,
- 0x263c, 0x2649, 0x264a, 0x2637, 0x264b, 0x264c, 0x2632, 0x2629,
- 0x263e, 0x264d, 0x264e, 0x2639, 0x264f, 0x2650, 0x2634, 0x2628,
- 0x2651, 0x2652, 0x2638, 0x263d, 0x2653, 0x2654, 0x2633, 0x262a,
- 0x2655, 0x2656, 0x263a, 0x263f, 0x2657, 0x2658, 0x2635, 0x262b,
- 0x2659, 0x265a, 0x263b, 0x265b, 0x265c, 0x2640, 0x265d, 0x265e,
- 0x265f, 0x2660, 0x2661, 0x2662, 0x2663, 0x2664, 0x2636, 0x2246,
- 0x2161, 0x2160, 0x2243, 0x2247, 0x2248, 0x224b, 0x224a, 0x2249,
- 0x224c, 0x2163, 0x2162, 0x223a, 0x2239, 0x2165, 0x2164, 0x2238,
- 0x2237, 0x215f, 0x215e, 0x2242, 0x215b, 0x215d, 0x215c, 0x2244,
- 0x2245, 0x215a, 0x2159, 0x224f, 0x224e, 0x2250, 0x2251, 0x214f,
- 0x214e, 0x223c, 0x223d, 0x2240, 0x223b, 0x223e, 0x223f, 0x224d,
- 0x225b, 0x225c, 0x225d, 0x225a, 0x2121, 0x2122, 0x2123, 0x2128,
- 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, 0x213a, 0x213b,
- 0x213c, 0x213d, 0x216b, 0x2132, 0x2133, 0x2a21, 0x2a22, 0x2a23,
- 0x2a24, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, 0x2a2a, 0x2a2b,
- 0x2a2c, 0x2a2d, 0x2a2e, 0x2a2f, 0x2a30, 0x2a31, 0x2a32, 0x2a33,
- 0x2a34, 0x2a35, 0x2a36, 0x2a37, 0x2a38, 0x2a39, 0x2a3a, 0x2a3b,
- 0x2a3c, 0x2a3d, 0x2a3e, 0x2a3f, 0x2a40, 0x2a41, 0x2a42, 0x2a43,
- 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, 0x2a4a, 0x2a4b,
- 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50, 0x2a51, 0x2a52, 0x2a53,
- 0x2a54, 0x2a55, 0x2a56, 0x2a57, 0x2a58, 0x2a59, 0x2a5a, 0x2a5b,
- 0x2a5c, 0x2a5d, 0x2a5e, 0x2a5f, 0x2a60, 0x2a61, 0x2a62, 0x2a63,
- 0x2a64, 0x2a65, 0x2a66, 0x2a67, 0x2a68, 0x2a69, 0x2a6a, 0x2a6b,
- 0x2a6c, 0x2a6d, 0x2a6e, 0x2a6f, 0x2a70, 0x2a71, 0x2a72, 0x2a73,
- 0x2b21, 0x2b22, 0x2b23, 0x2b24, 0x2b25, 0x2b26, 0x2b27, 0x2b28,
- 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e, 0x2b2f, 0x2b30,
- 0x2b31, 0x2b32, 0x2b33, 0x2b34, 0x2b35, 0x2b36, 0x2b37, 0x2b38,
- 0x2b39, 0x2b3a, 0x2b3b, 0x2b3c, 0x2b3d, 0x2b3e, 0x2b3f, 0x2b40,
- 0x2b41, 0x2b42, 0x2b43, 0x2b44, 0x2b45, 0x2b46, 0x2b47, 0x2b48,
- 0x2b49, 0x2b4a, 0x2b4b, 0x2b4c, 0x2b4d, 0x2b4e, 0x2b4f, 0x2b50,
- 0x2b51, 0x2b52, 0x2b53, 0x2b54, 0x2b55, 0x2b56, 0x2b57, 0x2b58,
- 0x2b59, 0x2b5a, 0x2b5b, 0x2b5c, 0x2b5d, 0x2b5e, 0x2b5f, 0x2b60,
- 0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65, 0x2b66, 0x2b67, 0x2b68,
- 0x2b69, 0x2b6a, 0x2b6b, 0x2b6c, 0x2b6d, 0x2b6e, 0x2b6f, 0x2b70,
- 0x2b71, 0x2b72, 0x2b73, 0x2b74, 0x2b75, 0x2b76, 0x2421, 0x2422,
- 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, 0x242a,
- 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, 0x2432,
- 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, 0x243a,
- 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, 0x2442,
- 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244a,
- 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, 0x2452,
- 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245a,
- 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, 0x2462,
- 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
- 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
- 0x2473, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
- 0x247b, 0x247c, 0x247d, 0x247e, 0x2931, 0x2932, 0x2933, 0x2934,
- 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
- 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, 0x2942, 0x2943, 0x2944,
- 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c,
- 0x225f, 0x2831, 0x2832, 0x2833, 0x2834, 0x2835, 0x2836, 0x2837,
- 0x2838, 0x2839, 0x283a, 0x283b, 0x283c, 0x283d, 0x283e, 0x283f,
- 0x2840, 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, 0x2846, 0x2847,
- 0x2848, 0x2849, 0x284a, 0x284b, 0x284c, 0x225e, 0x2749, 0x274a,
- 0x274b, 0x274c, 0x274d, 0x273a, 0x273b, 0x275c, 0x275d, 0x275e,
- 0x2736, 0x2737, 0x2738, 0x2754, 0x2755, 0x2756, 0x2757, 0x2758,
- 0x2721, 0x2722, 0x2723, 0x2725, 0x272b, 0x272c, 0x272d, 0x272e,
- 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2727, 0x2728,
- 0x2729, 0x272a, 0x273d, 0x273e, 0x2765, 0x2766, 0x2767, 0x2768,
- 0x2761, 0x2762, 0x2763, 0x273f, 0x2740, 0x2741, 0x2742, 0x2743,
- 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x274e, 0x274f, 0x2750,
- 0x2751, 0x2752, 0x2753, 0x275a, 0x275b, 0x2263, 0x276c, 0x2726,
- 0x2760, 0x276f, 0x2261, 0x273c, 0x276d, 0x2735, 0x2739, 0x276a,
- 0x276b, 0x275f, 0x2264, 0x2764, 0x276e, 0x2769, 0x6c69, 0x6f4b,
- 0x7652, 0x5832, 0x6d5b, 0x5f32, 0x5f3e, 0x793b, 0x5c74, 0x7564,
- 0x7326, 0x5d60, 0x6126, 0x4e78, 0x5c30, 0x632a, 0x7169, 0x4d7a,
- 0x7c2f, 0x5321, 0x712b, 0x6751, 0x522c, 0x4e79, 0x717d, 0x5e3f,
- 0x7b3a, 0x7939, 0x4e52, 0x632b, 0x6b60, 0x4e7a, 0x4b77, 0x6525,
- 0x4a61, 0x544c, 0x6a61, 0x5c63, 0x5f2d, 0x4b6b, 0x552f, 0x5675,
- 0x6578, 0x5e40, 0x6c23, 0x694d, 0x6a27, 0x6976, 0x7b3b, 0x6769,
- 0x6f4c, 0x5066, 0x5e41, 0x642c, 0x584c, 0x7971, 0x4e5f, 0x7a24,
- 0x6632, 0x7a7b, 0x7a3d, 0x4c48, 0x6f4d, 0x5555, 0x5322, 0x6c51,
- 0x6427, 0x6c52, 0x7631, 0x4e7b, 0x5051, 0x4b3f, 0x6d24, 0x6d28,
- 0x5e42, 0x7662, 0x6d5c, 0x5c75, 0x6039, 0x544e, 0x7435, 0x535b,
- 0x5635, 0x6c24, 0x6466, 0x716a, 0x4b6c, 0x4b40, 0x6c72, 0x506a,
- 0x7972, 0x6c25, 0x505f, 0x676a, 0x506b, 0x5c51, 0x5b69, 0x7d4c,
- 0x5b57, 0x5a61, 0x5636, 0x635f, 0x5e43, 0x5e44, 0x4a21, 0x6e6c,
- 0x5323, 0x6e37, 0x784f, 0x6a48, 0x6e38, 0x712c, 0x7125, 0x694e,
- 0x793c, 0x6579, 0x6c6a, 0x5d56, 0x6d42, 0x7825, 0x653a, 0x5b58,
- 0x4a22, 0x514d, 0x6e6d, 0x6c6b, 0x5e45, 0x6360, 0x4a49, 0x7269,
- 0x554e, 0x7636, 0x4e42, 0x5647, 0x6334, 0x712d, 0x6a62, 0x5742,
- 0x7327, 0x4d6a, 0x6b6e, 0x5932, 0x7d25, 0x7655, 0x5562, 0x7835,
- 0x4c75, 0x7535, 0x642d, 0x676b, 0x7155, 0x703b, 0x6935, 0x4c49,
- 0x7a55, 0x6154, 0x5756, 0x5c41, 0x5e46, 0x7a6f, 0x6361, 0x6173,
- 0x5c76, 0x4e7c, 0x5b44, 0x7871, 0x5c64, 0x656f, 0x5c31, 0x5556,
- 0x735a, 0x4b41, 0x5b43, 0x597a, 0x536e, 0x7a38, 0x7d26, 0x6b6f,
- 0x7426, 0x4c4a, 0x7328, 0x735b, 0x5b27, 0x7637, 0x4f66, 0x7072,
- 0x4b5a, 0x6752, 0x5743, 0x7670, 0x685e, 0x6526, 0x6567, 0x4a23,
- 0x4c27, 0x6a49, 0x7836, 0x7a25, 0x712e, 0x6f4e, 0x4b6d, 0x7630,
- 0x6f4f, 0x694f, 0x775e, 0x4e53, 0x5c77, 0x5b28, 0x4b78, 0x5f21,
- 0x5d61, 0x754a, 0x6936, 0x676c, 0x6e6e, 0x7370, 0x5f3f, 0x4c4b,
- 0x5041, 0x7452, 0x603a, 0x5f40, 0x4e60, 0x5c52, 0x7d6a, 0x5676,
- 0x6a4a, 0x6869, 0x632c, 0x7350, 0x4a24, 0x5b78, 0x5e47, 0x6b70,
- 0x7156, 0x6562, 0x4c4c, 0x4b7b, 0x6a63, 0x5f41, 0x566d, 0x6950,
- 0x6e39, 0x5563, 0x5153, 0x6570, 0x6834, 0x6b43, 0x6a2a, 0x7a7c,
- 0x7576, 0x703c, 0x7d54, 0x603b, 0x4e43, 0x503a, 0x773a, 0x5873,
- 0x774d, 0x642e, 0x545f, 0x5067, 0x6c7d, 0x522e, 0x6e6f, 0x5557,
- 0x6a64, 0x7822, 0x4d6b, 0x573f, 0x7b31, 0x4d6c, 0x5c32, 0x506c,
- 0x4e7d, 0x6e70, 0x4c42, 0x506d, 0x6577, 0x737c, 0x6e22, 0x5933,
- 0x5874, 0x6937, 0x4e2e, 0x5922, 0x5871, 0x544f, 0x6527, 0x5552,
- 0x5629, 0x7422, 0x7157, 0x5558, 0x703d, 0x5750, 0x5450, 0x574f,
- 0x6b6a, 0x7d6b, 0x5b6d, 0x7c45, 0x4b42, 0x7d55, 0x7448, 0x686a,
- 0x7573, 0x795e, 0x536f, 0x6c53, 0x5d42, 0x6f37, 0x6754, 0x4a4a,
- 0x597b, 0x7a7d, 0x562a, 0x7478, 0x7777, 0x5c2c, 0x5757, 0x5f22,
- 0x4e3e, 0x5370, 0x7024, 0x616c, 0x4f67, 0x734b, 0x6d29, 0x4a3e,
- 0x746f, 0x764e, 0x5e7b, 0x503b, 0x5537, 0x6e71, 0x7428, 0x5c78,
- 0x4b27, 0x5a4e, 0x6066, 0x6d25, 0x6e72, 0x5c79, 0x795c, 0x735c,
- 0x7872, 0x7479, 0x7c71, 0x503c, 0x5b79, 0x5731, 0x4b7c, 0x7025,
- 0x4b7d, 0x5574, 0x4d6d, 0x4a25, 0x562b, 0x5042, 0x703e, 0x523d,
- 0x4c24, 0x7a36, 0x4c4d, 0x5a7a, 0x764f, 0x6938, 0x5875, 0x4c4e,
- 0x574d, 0x5451, 0x696d, 0x4a6b, 0x5962, 0x7d32, 0x632d, 0x564c,
- 0x5934, 0x6127, 0x6e53, 0x5043, 0x7d33, 0x5564, 0x4f68, 0x6d43,
- 0x5032, 0x4e7e, 0x5a28, 0x7850, 0x7d56, 0x7851, 0x7852, 0x5c53,
- 0x5d62, 0x7b79, 0x5d41, 0x6335, 0x6d5d, 0x4e44, 0x4b21, 0x5d63,
- 0x7c5d, 0x792f, 0x527b, 0x4f21, 0x6428, 0x7436, 0x6c7e, 0x632e,
- 0x676d, 0x7d41, 0x5a62, 0x5833, 0x5d64, 0x706f, 0x7671, 0x7a70,
- 0x5175, 0x5a4f, 0x5c54, 0x5c26, 0x6f3f, 0x4e4f, 0x6059, 0x5956,
- 0x6c54, 0x6a4b, 0x4a3f, 0x5530, 0x4f69, 0x716d, 0x4c4f, 0x6478,
- 0x646d, 0x5758, 0x7d27, 0x6a2b, 0x7632, 0x4f70, 0x793d, 0x6674,
- 0x4b5b, 0x7351, 0x6951, 0x7329, 0x5060, 0x6952, 0x5a63, 0x6252,
- 0x7622, 0x6174, 0x5a64, 0x6755, 0x753f, 0x4f22, 0x4d2f, 0x4f23,
- 0x4d30, 0x717e, 0x5023, 0x612f, 0x7823, 0x4a26, 0x773b, 0x726a,
- 0x5e48, 0x6953, 0x5e49, 0x7d5e, 0x4a40, 0x796a, 0x514e, 0x6e54,
- 0x5452, 0x5923, 0x7d28, 0x5759, 0x774e, 0x7a3e, 0x4f56, 0x5770,
- 0x6b61, 0x7845, 0x5c7a, 0x5d43, 0x795f, 0x676f, 0x7d65, 0x7623,
- 0x597c, 0x7d29, 0x676e, 0x5565, 0x6f50, 0x4d31, 0x7722, 0x7132,
- 0x7131, 0x4d32, 0x5a2b, 0x4a27, 0x6362, 0x7b3c, 0x5924, 0x6e3a,
- 0x7853, 0x7b7a, 0x4f24, 0x5c7b, 0x7663, 0x6d2a, 0x7221, 0x4e61,
- 0x7a26, 0x7960, 0x6c56, 0x646e, 0x7921, 0x7b6f, 0x796b, 0x6e23,
- 0x6a2c, 0x4a28, 0x747a, 0x4d56, 0x7c76, 0x7449, 0x7854, 0x7826,
- 0x5e4a, 0x7246, 0x575a, 0x5350, 0x5845, 0x6a66, 0x735d, 0x645a,
- 0x7664, 0x7672, 0x5f42, 0x597d, 0x4c76, 0x533a, 0x642f, 0x7961,
- 0x7026, 0x4b53, 0x603c, 0x744a, 0x547a, 0x7d2a, 0x7962, 0x7437,
- 0x7d42, 0x7c30, 0x7d6c, 0x4a62, 0x7d3d, 0x6a67, 0x5f43, 0x5152,
- 0x4e62, 0x5324, 0x7d2b, 0x5f60, 0x7247, 0x6770, 0x506e, 0x732a,
- 0x5e4b, 0x7638, 0x6175, 0x7133, 0x7723, 0x4a29, 0x4f25, 0x5f44,
- 0x6130, 0x703f, 0x7624, 0x6336, 0x7a46, 0x506f, 0x7d6d, 0x5d44,
- 0x7c77, 0x663f, 0x5e2d, 0x7a3f, 0x6571, 0x6d44, 0x5225, 0x7d6e,
- 0x7536, 0x6176, 0x5e4c, 0x7c5e, 0x6c57, 0x4d5d, 0x5637, 0x4d33,
- 0x7855, 0x6558, 0x4f6a, 0x4f50, 0x6a4c, 0x6a2e, 0x6a2d, 0x5371,
- 0x5325, 0x774f, 0x6e24, 0x5024, 0x7222, 0x5070, 0x7223, 0x7778,
- 0x5033, 0x5b29, 0x533b, 0x4a6c, 0x7126, 0x4b55, 0x7767, 0x4d5e,
- 0x7724, 0x7840, 0x535d, 0x4c50, 0x4f26, 0x7673, 0x6177, 0x535c,
- 0x7a7e, 0x7a27, 0x6b59, 0x4f27, 0x6a2f, 0x646f, 0x6939, 0x7158,
- 0x5858, 0x6072, 0x6634, 0x5c7c, 0x7371, 0x6350, 0x727b, 0x5b46,
- 0x5071, 0x5072, 0x4f5c, 0x5351, 0x4c31, 0x7758, 0x4b28, 0x6b3c,
- 0x643e, 0x745c, 0x5c42, 0x7027, 0x6640, 0x4a6d, 0x686b, 0x6568,
- 0x5c43, 0x6d5e, 0x5372, 0x4c77, 0x4e54, 0x672b, 0x4b43, 0x6131,
- 0x7732, 0x5373, 0x5352, 0x7540, 0x5f5d, 0x6e73, 0x6771, 0x7d34,
- 0x7248, 0x7352, 0x6e74, 0x6253, 0x4c51, 0x5f6a, 0x693a, 0x5957,
- 0x754d, 0x7172, 0x7a47, 0x5978, 0x5442, 0x7665, 0x5d45, 0x6772,
- 0x6d5f, 0x4a4b, 0x5b7a, 0x6835, 0x5326, 0x7d35, 0x7949, 0x6462,
- 0x7b3d, 0x5724, 0x4e45, 0x4e55, 0x5666, 0x653d, 0x5e4d, 0x6c73,
- 0x6d60, 0x6c6c, 0x7b3e, 0x5f6b, 0x6178, 0x793e, 0x5073, 0x602a,
- 0x6862, 0x6254, 0x527d, 0x6528, 0x5953, 0x535e, 0x7438, 0x773c,
- 0x5c7d, 0x686c, 0x6467, 0x6377, 0x6c28, 0x7a71, 0x6572, 0x5074,
- 0x522f, 0x5c65, 0x5025, 0x7134, 0x7c31, 0x4c78, 0x5d46, 0x7a51,
- 0x775f, 0x7a28, 0x6e75, 0x5e4e, 0x6773, 0x772c, 0x6b44, 0x6d61,
- 0x602b, 0x5d47, 0x5233, 0x523f, 0x4a4c, 0x7b3f, 0x657d, 0x5d65,
- 0x584d, 0x6c74, 0x5075, 0x686d, 0x5052, 0x5958, 0x7666, 0x5b2a,
- 0x7760, 0x5859, 0x7423, 0x745d, 0x6f51, 0x5935, 0x6d2b, 0x6337,
- 0x6e3b, 0x4d34, 0x6073, 0x6a4d, 0x6c75, 0x686e, 0x4b29, 0x712f,
- 0x4a4d, 0x6c29, 0x726b, 0x7d6f, 0x7973, 0x6641, 0x6c58, 0x6d2c,
- 0x6a4e, 0x685f, 0x5e4f, 0x5226, 0x6774, 0x5156, 0x6642, 0x6363,
- 0x6430, 0x5834, 0x7625, 0x735e, 0x5725, 0x7768, 0x6846, 0x7b66,
- 0x5d66, 0x5c7e, 0x585a, 0x5a2c, 0x6a30, 0x6338, 0x4a2a, 0x6179,
- 0x6a31, 0x726c, 0x7a6e, 0x6e55, 0x7974, 0x526c, 0x7b7b, 0x7d70,
- 0x603d, 0x4e63, 0x7846, 0x5e2e, 0x5f45, 0x653e, 0x6d2d, 0x7a6a,
- 0x4d6e, 0x6d26, 0x6d2e, 0x706d, 0x5d21, 0x6d2f, 0x7c78, 0x586b,
- 0x4c79, 0x4d35, 0x7a29, 0x615d, 0x6255, 0x6d4f, 0x5d22, 0x794a,
- 0x6a68, 0x656d, 0x536b, 0x6954, 0x617a, 0x644c, 0x6164, 0x6847,
- 0x4e5b, 0x5c55, 0x7735, 0x7c73, 0x7073, 0x4e2f, 0x7135, 0x6f52,
- 0x6848, 0x6b71, 0x4b54, 0x603e, 0x6378, 0x6a69, 0x7c32, 0x6074,
- 0x4f60, 0x6e25, 0x7a2a, 0x6643, 0x6132, 0x4a2b, 0x6364, 0x693b,
- 0x6256, 0x7372, 0x6e56, 0x6a32, 0x5076, 0x6c59, 0x5a4b, 0x4f28,
- 0x5d23, 0x585b, 0x794e, 0x6955, 0x6351, 0x523c, 0x582c, 0x734c,
- 0x4d7b, 0x7656, 0x6775, 0x686f, 0x6379, 0x523b, 0x7373, 0x637b,
- 0x5e50, 0x4e30, 0x5677, 0x7159, 0x7541, 0x5c44, 0x753b, 0x5e51,
- 0x5c66, 0x5e52, 0x6d62, 0x6e76, 0x6a4f, 0x706e, 0x637c, 0x535f,
- 0x5374, 0x6133, 0x6134, 0x7453, 0x5f46, 0x6956, 0x5b2b, 0x7626,
- 0x6339, 0x6b45, 0x7429, 0x4d36, 0x5279, 0x5a2d, 0x5263, 0x4f51,
- 0x4b5c, 0x4c7a, 0x4f5d, 0x6829, 0x633b, 0x633a, 0x605a, 0x6e77,
- 0x5c33, 0x5375, 0x5726, 0x7635, 0x575b, 0x6155, 0x546a, 0x5f23,
- 0x7d5f, 0x5077, 0x6d54, 0x4b2a, 0x645b, 0x617b, 0x4b22, 0x5360,
- 0x643f, 0x7b40, 0x5a3e, 0x644d, 0x5639, 0x6f40, 0x617c, 0x7639,
- 0x5f47, 0x6431, 0x5c67, 0x5c68, 0x7a56, 0x5376, 0x715a, 0x7a72,
- 0x627d, 0x554f, 0x5078, 0x4d5f, 0x754b, 0x6470, 0x4b2b, 0x5744,
- 0x627e, 0x5d5a, 0x5a2e, 0x4a6e, 0x5539, 0x6321, 0x6863, 0x732b,
- 0x4f29, 0x5377, 0x5471, 0x4e64, 0x6872, 0x6575, 0x672e, 0x563a,
- 0x5f6c, 0x6440, 0x6864, 0x5835, 0x645c, 0x7439, 0x7136, 0x625e,
- 0x6135, 0x4d6f, 0x7127, 0x4e65, 0x4b5d, 0x5963, 0x732c, 0x5079,
- 0x6c2b, 0x5e53, 0x7769, 0x7975, 0x615e, 0x4b6e, 0x633c, 0x7856,
- 0x5b6e, 0x7d71, 0x7736, 0x745e, 0x726d, 0x5b59, 0x7028, 0x617d,
- 0x5e54, 0x602c, 0x6d63, 0x5361, 0x5f48, 0x5936, 0x7d2c, 0x6f53,
- 0x6441, 0x786b, 0x5b2c, 0x7c46, 0x582d, 0x763a, 0x5b5f, 0x5353,
- 0x7847, 0x4a4e, 0x7841, 0x5234, 0x5c34, 0x7a39, 0x4a4f, 0x7c33,
- 0x6a6a, 0x6a6b, 0x507a, 0x6d64, 0x5d67, 0x5f49, 0x5f6d, 0x6e3c,
- 0x6f41, 0x4c52, 0x5d24, 0x5f4a, 0x5378, 0x7128, 0x4d37, 0x6f54,
- 0x645d, 0x5f6e, 0x4b2c, 0x693c, 0x6a6c, 0x5f4b, 0x793f, 0x562f,
- 0x5546, 0x4f2a, 0x4e29, 0x5678, 0x7137, 0x6e78, 0x5959, 0x735f,
- 0x7848, 0x4e46, 0x5566, 0x7466, 0x6645, 0x6f55, 0x4b6f, 0x7c5f,
- 0x5c27, 0x5667, 0x7849, 0x6352, 0x633d, 0x4f61, 0x7040, 0x6c5a,
- 0x5d57, 0x7b70, 0x6c2c, 0x7029, 0x7a57, 0x7b41, 0x5240, 0x6530,
- 0x6d65, 0x4b2d, 0x7930, 0x7725, 0x4b2e, 0x5a2f, 0x5836, 0x5327,
- 0x7b32, 0x7d44, 0x6c2d, 0x7b21, 0x6569, 0x696e, 0x7374, 0x7873,
- 0x7041, 0x5e2f, 0x7830, 0x7360, 0x672f, 0x5b2d, 0x6635, 0x7928,
- 0x5d58, 0x6859, 0x6f56, 0x5362, 0x625f, 0x7c60, 0x5748, 0x7d2d,
- 0x5f6f, 0x4c53, 0x5379, 0x5470, 0x5b47, 0x5e55, 0x7074, 0x5550,
- 0x6559, 0x7c47, 0x5c56, 0x6260, 0x5a30, 0x7323, 0x536c, 0x744b,
- 0x7d45, 0x637d, 0x7931, 0x507b, 0x6c5b, 0x753c, 0x7224, 0x584e,
- 0x584f, 0x7577, 0x7661, 0x5237, 0x7b6c, 0x5d48, 0x6468, 0x5241,
- 0x7857, 0x563b, 0x5e56, 0x773d, 0x6c2e, 0x5061, 0x6075, 0x6a33,
- 0x4e56, 0x4c25, 0x6c76, 0x6261, 0x633e, 0x7c48, 0x4d70, 0x7976,
- 0x5f70, 0x653f, 0x4e3f, 0x7c61, 0x6d30, 0x7d51, 0x763b, 0x794f,
- 0x6b5a, 0x4a41, 0x5238, 0x4d71, 0x6353, 0x7d66, 0x666d, 0x637a,
- 0x702a, 0x7950, 0x7c62, 0x7827, 0x6165, 0x6e79, 0x6776, 0x6a6d,
- 0x7c34, 0x7542, 0x575c, 0x7075, 0x5d68, 0x536d, 0x757c, 0x5a3f,
- 0x4c7b, 0x537a, 0x7424, 0x6f57, 0x5443, 0x7b63, 0x7b6d, 0x602d,
- 0x6a6e, 0x7b33, 0x6442, 0x7667, 0x525d, 0x5f4c, 0x7c49, 0x6529,
- 0x6076, 0x7633, 0x617e, 0x4b70, 0x6a6f, 0x6a70, 0x5a40, 0x7834,
- 0x6b72, 0x6443, 0x6957, 0x6471, 0x4a6f, 0x4e57, 0x7c4a, 0x7361,
- 0x4b44, 0x6365, 0x4b45, 0x6a34, 0x693d, 0x5749, 0x6b5b, 0x6d31,
- 0x4c43, 0x773e, 0x7c4b, 0x7874, 0x5937, 0x7353, 0x7354, 0x7764,
- 0x7751, 0x5837, 0x4e31, 0x4a42, 0x7b34, 0x4b46, 0x7076, 0x5567,
- 0x6a50, 0x4c54, 0x4b2f, 0x742a, 0x692f, 0x7543, 0x6958, 0x5d69,
- 0x7173, 0x557b, 0x5e3b, 0x747b, 0x7d73, 0x7d72, 0x7726, 0x5d49,
- 0x5453, 0x4c28, 0x5a41, 0x4c55, 0x5964, 0x7a4a, 0x6563, 0x533c,
- 0x4a70, 0x5044, 0x4a50, 0x7a2b, 0x6b6b, 0x6778, 0x5965, 0x5157,
- 0x7324, 0x547b, 0x7c63, 0x7a58, 0x7355, 0x4f2b, 0x6b73, 0x557c,
- 0x5354, 0x4d7c, 0x5966, 0x6279, 0x6221, 0x6b54, 0x6077, 0x6432,
- 0x4c7c, 0x7b64, 0x742b, 0x503d, 0x4a71, 0x6f38, 0x5740, 0x6e7a,
- 0x7d74, 0x5363, 0x7b42, 0x5568, 0x5b2e, 0x6136, 0x7837, 0x603f,
- 0x7b43, 0x5d6a, 0x6222, 0x6e26, 0x7668, 0x7675, 0x5d4a, 0x5062,
- 0x5d26, 0x5d6b, 0x6479, 0x632f, 0x507c, 0x747c, 0x4c3c, 0x776a,
- 0x6564, 0x5f71, 0x7761, 0x7977, 0x6f39, 0x7858, 0x7929, 0x7859,
- 0x6e3d, 0x5846, 0x6463, 0x754e, 0x5d59, 0x5967, 0x5239, 0x5543,
- 0x5a65, 0x5a50, 0x5159, 0x4e58, 0x4b5e, 0x742c, 0x5a7b, 0x7669,
- 0x6873, 0x4f2c, 0x7070, 0x747d, 0x5b48, 0x4e40, 0x6354, 0x514f,
- 0x7175, 0x4d72, 0x4f6b, 0x4d38, 0x6326, 0x515a, 0x7225, 0x7226,
- 0x644e, 0x537b, 0x7129, 0x7249, 0x6f58, 0x6649, 0x5838, 0x7a73,
- 0x7335, 0x7824, 0x5173, 0x6648, 0x785a, 0x5c69, 0x5e57, 0x4b5f,
- 0x4f6c, 0x745f, 0x5174, 0x523a, 0x5f72, 0x6137, 0x6223, 0x537c,
- 0x6d66, 0x5b49, 0x647a, 0x4f5e, 0x4e50, 0x5553, 0x7375, 0x772e,
- 0x6f48, 0x4d73, 0x754f, 0x6573, 0x7042, 0x4a51, 0x6a71, 0x5026,
- 0x595a, 0x702b, 0x6b67, 0x6540, 0x7c35, 0x6444, 0x4c29, 0x7d46,
- 0x6a35, 0x652a, 0x5f3a, 0x615f, 0x5a51, 0x6138, 0x6874, 0x537d,
- 0x6224, 0x724a, 0x5a66, 0x7733, 0x7d4d, 0x7336, 0x6e57, 0x7544,
- 0x5824, 0x7227, 0x5938, 0x5939, 0x6f49, 0x564e, 0x774b, 0x5f2e,
- 0x6875, 0x5235, 0x5355, 0x744c, 0x5a7c, 0x5968, 0x776b, 0x7549,
- 0x733c, 0x5a52, 0x5335, 0x6836, 0x564f, 0x743a, 0x7749, 0x4c2a,
- 0x7043, 0x4c56, 0x5053, 0x533d, 0x5b7b, 0x4b60, 0x5364, 0x7677,
- 0x553a, 0x734d, 0x4b61, 0x6b74, 0x742d, 0x7c2a, 0x776c, 0x6876,
- 0x5a67, 0x774c, 0x6541, 0x606e, 0x557d, 0x4e66, 0x7c2b, 0x553b,
- 0x7228, 0x6225, 0x4d39, 0x6a72, 0x4b47, 0x4d74, 0x5b2f, 0x6f59,
- 0x4d3a, 0x7c79, 0x5f73, 0x4e67, 0x5a42, 0x4f2d, 0x6779, 0x7828,
- 0x7362, 0x4a72, 0x5f24, 0x5444, 0x4c57, 0x6542, 0x4d3b, 0x6f5a,
- 0x6e58, 0x5d27, 0x6226, 0x6040, 0x5630, 0x784a, 0x7c7a, 0x597e,
- 0x5e30, 0x5d6c, 0x5a68, 0x5460, 0x5679, 0x4d57, 0x5e58, 0x7278,
- 0x6456, 0x5045, 0x742e, 0x5d28, 0x6d45, 0x7356, 0x5e59, 0x6366,
- 0x5328, 0x5b30, 0x655a, 0x633f, 0x5b31, 0x5569, 0x6041, 0x6f5b,
- 0x7069, 0x5732, 0x507d, 0x5969, 0x507e, 0x6c6d, 0x5329, 0x7229,
- 0x7044, 0x6262, 0x696f, 0x7951, 0x6959, 0x685a, 0x5a43, 0x5a44,
- 0x5445, 0x677a, 0x4d60, 0x6330, 0x5b32, 0x7b44, 0x7363, 0x5925,
- 0x7b67, 0x5d4b, 0x5054, 0x6636, 0x602e, 0x7d5a, 0x5c35, 0x6078,
- 0x6731, 0x7570, 0x585c, 0x6d46, 0x6139, 0x6340, 0x7940, 0x6970,
- 0x595b, 0x7364, 0x5c36, 0x6469, 0x7045, 0x6341, 0x7c4c, 0x7c4d,
- 0x724b, 0x724c, 0x644f, 0x715b, 0x7a59, 0x7138, 0x7d75, 0x6079,
- 0x677b, 0x7c37, 0x7c64, 0x7b45, 0x6367, 0x5839, 0x7678, 0x5c45,
- 0x4c58, 0x602f, 0x7467, 0x6f5c, 0x4f7c, 0x6f5d, 0x722a, 0x7d3e,
- 0x4a2c, 0x7d3b, 0x7d47, 0x6732, 0x6a51, 0x5f74, 0x516c, 0x645e,
- 0x6543, 0x5926, 0x4d3c, 0x7365, 0x6d55, 0x593a, 0x6d67, 0x7b35,
- 0x786c, 0x6067, 0x4c59, 0x5446, 0x6725, 0x5575, 0x533e, 0x7c7b,
- 0x6472, 0x5f75, 0x6878, 0x786d, 0x4e47, 0x7d76, 0x6858, 0x4d58,
- 0x6756, 0x4c5a, 0x4a63, 0x5f76, 0x7047, 0x7046, 0x583a, 0x7174,
- 0x7470, 0x754c, 0x7c65, 0x6a45, 0x6a73, 0x5d5b, 0x5c57, 0x5e7d,
- 0x7279, 0x5547, 0x5850, 0x7048, 0x5121, 0x5122, 0x5954, 0x5668,
- 0x594a, 0x5a31, 0x5847, 0x5c62, 0x734e, 0x7574, 0x7139, 0x5a53,
- 0x766a, 0x4f75, 0x7d2e, 0x4a52, 0x5f34, 0x575d, 0x7a3a, 0x6e27,
- 0x753d, 0x7875, 0x6d68, 0x5461, 0x5123, 0x6156, 0x7978, 0x5b4a,
- 0x4b79, 0x5454, 0x595c, 0x6e3e, 0x776d, 0x526e, 0x6166, 0x7779,
- 0x5d6d, 0x685b, 0x5b33, 0x5177, 0x6030, 0x5462, 0x7657, 0x5779,
- 0x585d, 0x4d7d, 0x722b, 0x4d3d, 0x7842, 0x722c, 0x4a2d, 0x4a2e,
- 0x4f2e, 0x6342, 0x5c37, 0x5b5a, 0x593b, 0x4a73, 0x7653, 0x6678,
- 0x6a75, 0x6a76, 0x7679, 0x4f2f, 0x4a53, 0x4a2f, 0x5230, 0x713a,
- 0x5733, 0x6343, 0x737d, 0x5e5a, 0x5e5b, 0x6f5e, 0x6263, 0x6e7b,
- 0x5f77, 0x574a, 0x4e68, 0x5b5b, 0x713b, 0x6971, 0x7a37, 0x5046,
- 0x4c2b, 0x6e28, 0x4b7a, 0x7979, 0x4c7d, 0x537e, 0x6450, 0x726e,
- 0x5455, 0x5f4d, 0x7c38, 0x5150, 0x724d, 0x7752, 0x4a54, 0x5559,
- 0x585e, 0x4d59, 0x6e29, 0x763c, 0x4c5b, 0x7049, 0x7c7c, 0x6849,
- 0x747e, 0x677c, 0x575e, 0x5e5c, 0x702c, 0x4c7e, 0x4d61, 0x613a,
- 0x5b6f, 0x5a32, 0x5125, 0x5c38, 0x5876, 0x5124, 0x4d62, 0x5c6a,
- 0x7077, 0x704a, 0x503e, 0x5d5c, 0x5456, 0x5356, 0x6d50, 0x4d21,
- 0x5f35, 0x5f78, 0x5421, 0x4e32, 0x684a, 0x6b75, 0x6355, 0x7550,
- 0x7521, 0x5927, 0x652b, 0x664b, 0x7571, 0x6545, 0x7923, 0x605b,
- 0x766b, 0x4b71, 0x596a, 0x7522, 0x5751, 0x5178, 0x6a78, 0x6a79,
- 0x5a33, 0x6f5f, 0x716f, 0x6576, 0x6e3f, 0x6264, 0x503f, 0x7a2c,
- 0x7551, 0x6733, 0x693e, 0x724e, 0x5b34, 0x7c4e, 0x5d6e, 0x6734,
- 0x5734, 0x7734, 0x4d3e, 0x5a69, 0x4f30, 0x7759, 0x7366, 0x4e59,
- 0x4e2a, 0x4b48, 0x5027, 0x704b, 0x5047, 0x6445, 0x5b60, 0x555a,
- 0x5727, 0x6e40, 0x7876, 0x7552, 0x6d69, 0x593c, 0x6546, 0x7523,
- 0x5a54, 0x6227, 0x7b7c, 0x715c, 0x4a74, 0x687a, 0x4e69, 0x6978,
- 0x6265, 0x5039, 0x5472, 0x5126, 0x5f4e, 0x7c74, 0x532a, 0x4c2c,
- 0x6f60, 0x6565, 0x5055, 0x5b7c, 0x7c66, 0x4b7e, 0x6d6a, 0x5e31,
- 0x7963, 0x5422, 0x4f76, 0x5650, 0x556a, 0x716e, 0x7a4b, 0x6521,
- 0x5531, 0x4f6d, 0x6d6b, 0x5532, 0x553c, 0x7d62, 0x732d, 0x7d5b,
- 0x6930, 0x5127, 0x7d63, 0x4e33, 0x7d64, 0x7a4e, 0x4a30, 0x7727,
- 0x4f31, 0x6622, 0x7c36, 0x722d, 0x6f61, 0x732e, 0x5c46, 0x596b,
- 0x6860, 0x6128, 0x5576, 0x4f7d, 0x5e5d, 0x5951, 0x646a, 0x724f,
- 0x773f, 0x6266, 0x6228, 0x6356, 0x6d51, 0x6979, 0x5631, 0x5e32,
- 0x6068, 0x532b, 0x6b5c, 0x5f2f, 0x4a43, 0x6e7c, 0x7d43, 0x6b76,
- 0x4f32, 0x596c, 0x593d, 0x585f, 0x5438, 0x6b3e, 0x5d6f, 0x5d70,
- 0x5d71, 0x5d72, 0x593e, 0x7b46, 0x4f33, 0x6e7d, 0x642b, 0x5a45,
- 0x586c, 0x5128, 0x6229, 0x5e3c, 0x6735, 0x5b70, 0x6f62, 0x7170,
- 0x4f34, 0x5b71, 0x6031, 0x5f25, 0x7952, 0x677d, 0x6623, 0x7b71,
- 0x4b30, 0x722e, 0x4d67, 0x685c, 0x6757, 0x7740, 0x5063, 0x5a21,
- 0x4c3d, 0x5129, 0x5d4c, 0x637e, 0x512a, 0x682a, 0x6a36, 0x797a,
- 0x664c, 0x7658, 0x5447, 0x594b, 0x5952, 0x534b, 0x5877, 0x5a29,
- 0x7578, 0x5e5e, 0x722f, 0x7829, 0x5848, 0x6e41, 0x7941, 0x5d73,
- 0x6a7a, 0x763d, 0x613b, 0x4d3f, 0x7454, 0x664d, 0x7c4f, 0x7b22,
- 0x605c, 0x743b, 0x5a55, 0x7932, 0x7b72, 0x5b76, 0x5e5f, 0x5b72,
- 0x785c, 0x776e, 0x6b68, 0x527a, 0x713c, 0x7a5a, 0x5a6a, 0x5a46,
- 0x7741, 0x6736, 0x6547, 0x562c, 0x5c47, 0x6129, 0x622a, 0x5526,
- 0x5457, 0x7250, 0x6a7b, 0x605d, 0x7b73, 0x713d, 0x6267, 0x7d57,
- 0x4e48, 0x6a37, 0x7c40, 0x7d67, 0x776f, 0x5735, 0x6f3a, 0x715d,
- 0x5e33, 0x684b, 0x785d, 0x7b47, 0x5548, 0x575f, 0x5d29, 0x6931,
- 0x7a2d, 0x7659, 0x7a74, 0x782a, 0x666e, 0x4c5c, 0x613c, 0x606f,
- 0x693f, 0x7c7d, 0x664e, 0x6157, 0x664f, 0x7471, 0x6473, 0x647b,
- 0x7964, 0x6f63, 0x4f6e, 0x763e, 0x6032, 0x7c7e, 0x512b, 0x577a,
- 0x7b48, 0x6257, 0x5423, 0x7078, 0x5728, 0x6167, 0x533f, 0x6f64,
- 0x5745, 0x6b62, 0x7c67, 0x6422, 0x6268, 0x6650, 0x7b68, 0x7468,
- 0x6574, 0x743c, 0x7455, 0x5f36, 0x7c39, 0x6e42, 0x4a75, 0x6f65,
- 0x4b62, 0x5424, 0x5e60, 0x5a7d, 0x6446, 0x683e, 0x605e, 0x7634,
- 0x6a52, 0x797b, 0x6042, 0x4a64, 0x6737, 0x6a7d, 0x595d, 0x5a34,
- 0x6e2a, 0x7b69, 0x5b4b, 0x5a35, 0x713e, 0x532c, 0x7b49, 0x5f4f,
- 0x5340, 0x6357, 0x6f66, 0x7c50, 0x6940, 0x7553, 0x6c5c, 0x7737,
- 0x6a38, 0x5179, 0x5c48, 0x6a39, 0x715e, 0x5736, 0x4f35, 0x5928,
- 0x6c6e, 0x5d2a, 0x4d22, 0x682e, 0x613d, 0x7251, 0x6941, 0x527c,
- 0x5b35, 0x7367, 0x587e, 0x7c51, 0x6d32, 0x742f, 0x7b23, 0x7c41,
- 0x6e2b, 0x5425, 0x7472, 0x6e59, 0x7b4a, 0x4d63, 0x583b, 0x655b,
- 0x7877, 0x7654, 0x5729, 0x4b49, 0x6651, 0x704c, 0x582e, 0x7953,
- 0x557e, 0x583c, 0x7230, 0x622b, 0x7368, 0x6f42, 0x6d6c, 0x6738,
- 0x5a7e, 0x4c3e, 0x727c, 0x5a6b, 0x6258, 0x6d56, 0x5651, 0x6033,
- 0x7c52, 0x6b48, 0x5341, 0x704d, 0x4f77, 0x6d52, 0x5458, 0x5c49,
- 0x5771, 0x5f3b, 0x7325, 0x744d, 0x713f, 0x7831, 0x697a, 0x7b4b,
- 0x4a55, 0x7954, 0x774a, 0x5648, 0x7c68, 0x733d, 0x6e7e, 0x677e,
- 0x5342, 0x5336, 0x4c2d, 0x767a, 0x5632, 0x5258, 0x6758, 0x6325,
- 0x6739, 0x702d, 0x7b4c, 0x6b21, 0x5426, 0x7b4d, 0x553d, 0x715f,
- 0x767b, 0x5e34, 0x556b, 0x6548, 0x7b24, 0x5439, 0x5e61, 0x6423,
- 0x5737, 0x786e, 0x5e35, 0x5652, 0x7955, 0x673a, 0x6b55, 0x5577,
- 0x6f67, 0x613e, 0x7a2e, 0x5669, 0x566e, 0x673b, 0x6c4b, 0x5533,
- 0x4e34, 0x7b25, 0x616e, 0x7728, 0x7b4e, 0x583d, 0x7b7d, 0x7c69,
- 0x4f36, 0x6d47, 0x6e2c, 0x4c5d, 0x7627, 0x667a, 0x7524, 0x7d5c,
- 0x6d33, 0x4e49, 0x6f68, 0x613f, 0x7a5b, 0x4b63, 0x7729, 0x7b26,
- 0x5c39, 0x7140, 0x6d48, 0x6f43, 0x562d, 0x7d4e, 0x6821, 0x7b74,
- 0x5527, 0x7176, 0x6653, 0x4c5e, 0x7832, 0x5c6b, 0x7d36, 0x656a,
- 0x7160, 0x5b4c, 0x5d4d, 0x5448, 0x596d, 0x7525, 0x667b, 0x6654,
- 0x7d48, 0x5621, 0x7d3f, 0x7c53, 0x6f21, 0x673c, 0x516e, 0x6655,
- 0x6972, 0x5f30, 0x5860, 0x7c3a, 0x7d2f, 0x704e, 0x5b61, 0x6549,
- 0x6d34, 0x6043, 0x6358, 0x697b, 0x6a28, 0x7d37, 0x7b27, 0x6942,
- 0x7d77, 0x6259, 0x5c6c, 0x6822, 0x6670, 0x7d78, 0x7d79, 0x763f,
- 0x6727, 0x6657, 0x5473, 0x5449, 0x567a, 0x5772, 0x6140, 0x5b62,
- 0x6658, 0x673d, 0x704f, 0x733e, 0x622c, 0x7537, 0x6070, 0x7d38,
- 0x6368, 0x5427, 0x687c, 0x7a52, 0x786f, 0x5653, 0x5534, 0x7050,
- 0x7770, 0x6e33, 0x6a3a, 0x6a53, 0x6d49, 0x5d2b, 0x652c, 0x7d21,
- 0x5f50, 0x6c33, 0x5f51, 0x6d6d, 0x7838, 0x777a, 0x782b, 0x7460,
- 0x543a, 0x6433, 0x695a, 0x5e36, 0x593f, 0x5940, 0x566f, 0x594c,
- 0x5a2a, 0x5f65, 0x7765, 0x4c32, 0x5f79, 0x5760, 0x543b, 0x7d7a,
- 0x4c33, 0x5b73, 0x5f52, 0x4e4a, 0x6e5a, 0x6464, 0x7b4f, 0x4f37,
- 0x6e43, 0x4e6a, 0x622d, 0x5761, 0x7a75, 0x5549, 0x782c, 0x6759,
- 0x7369, 0x586d, 0x6344, 0x7071, 0x6865, 0x607a, 0x6e44, 0x595e,
- 0x6b22, 0x6b23, 0x7c42, 0x6a3b, 0x682b, 0x5e62, 0x6d6f, 0x6823,
- 0x4f71, 0x543c, 0x7c6a, 0x673e, 0x7c72, 0x5634, 0x622e, 0x5337,
- 0x7a4c, 0x7a5c, 0x6d35, 0x6163, 0x682c, 0x685d, 0x6f69, 0x743d,
- 0x4f38, 0x695b, 0x512c, 0x5a47, 0x6b49, 0x684c, 0x5e37, 0x563c,
- 0x5365, 0x7a5d, 0x5a56, 0x4a31, 0x5a48, 0x5f26, 0x7933, 0x7252,
- 0x4a44, 0x4e4b, 0x4d75, 0x7d30, 0x5528, 0x7141, 0x6269, 0x5c4a,
- 0x6c34, 0x7a40, 0x7b28, 0x5028, 0x5a6c, 0x596e, 0x607b, 0x6f6a,
- 0x7a5e, 0x6044, 0x4f39, 0x554a, 0x5762, 0x622f, 0x5738, 0x684d,
- 0x765a, 0x6f22, 0x625a, 0x767c, 0x7b50, 0x512d, 0x4d64, 0x512e,
- 0x5c6d, 0x684e, 0x7079, 0x4e35, 0x667c, 0x577b, 0x5056, 0x5d75,
- 0x7771, 0x767d, 0x5b77, 0x7b6a, 0x695c, 0x5941, 0x7572, 0x6045,
- 0x6a54, 0x7942, 0x6a3c, 0x5245, 0x7b51, 0x6740, 0x6b25, 0x5f7a,
- 0x6322, 0x5739, 0x6943, 0x687d, 0x682f, 0x7253, 0x7b29, 0x5825,
- 0x554b, 0x5048, 0x512f, 0x5763, 0x6046, 0x5622, 0x6d70, 0x5773,
- 0x7c54, 0x5a57, 0x4c5f, 0x7254, 0x5130, 0x4c60, 0x5b7d, 0x733f,
- 0x7051, 0x7c3b, 0x6230, 0x6625, 0x625b, 0x5f5e, 0x6047, 0x726f,
- 0x4c61, 0x566a, 0x6742, 0x4e36, 0x7340, 0x4d7e, 0x7b52, 0x7878,
- 0x777b, 0x683f, 0x6837, 0x6d36, 0x5c3a, 0x4c34, 0x7177, 0x6838,
- 0x4a76, 0x6424, 0x7456, 0x5f66, 0x5f27, 0x5f67, 0x6141, 0x6944,
- 0x5c4b, 0x6945, 0x6f23, 0x6b26, 0x4b23, 0x6369, 0x517b, 0x6f24,
- 0x6f6b, 0x5034, 0x4d23, 0x6866, 0x6f25, 0x534c, 0x5a6d, 0x573a,
- 0x7255, 0x7565, 0x596f, 0x7934, 0x5554, 0x7d4f, 0x5b63, 0x7161,
- 0x6c36, 0x7b7e, 0x5357, 0x5131, 0x4b31, 0x5132, 0x4b32, 0x7142,
- 0x7461, 0x7935, 0x6143, 0x6142, 0x6b77, 0x5f28, 0x4b4a, 0x6639,
- 0x785e, 0x792a, 0x4a77, 0x6d37, 0x5338, 0x7256, 0x5459, 0x6e45,
- 0x7270, 0x4a32, 0x5c3b, 0x7178, 0x6c37, 0x654a, 0x7640, 0x7d5d,
- 0x5463, 0x4c62, 0x7754, 0x5765, 0x5343, 0x5826, 0x7641, 0x5d76,
- 0x4d40, 0x655c, 0x654b, 0x6144, 0x6830, 0x7430, 0x736a, 0x5a6e,
- 0x573b, 0x6231, 0x572a, 0x567b, 0x645f, 0x4a56, 0x6b28, 0x5b7e,
- 0x7642, 0x6f3b, 0x547d, 0x6048, 0x6839, 0x6f26, 0x4d24, 0x5474,
- 0x5b21, 0x5b5c, 0x5b5d, 0x6e5c, 0x4b4b, 0x7c55, 0x4e6b, 0x4d41,
- 0x7b53, 0x792b, 0x7554, 0x5929, 0x695d, 0x5b4d, 0x5d4e, 0x6743,
- 0x6c4c, 0x796c, 0x4b4c, 0x607c, 0x5428, 0x6d53, 0x586f, 0x7257,
- 0x4a78, 0x5a6f, 0x5654, 0x594d, 0x586e, 0x7241, 0x5f53, 0x5a70,
- 0x626a, 0x607d, 0x5878, 0x772f, 0x5a36, 0x4a57, 0x7258, 0x5879,
- 0x7a5f, 0x4f6f, 0x5942, 0x7052, 0x6451, 0x7337, 0x7a60, 0x6f6c,
- 0x6232, 0x543d, 0x594e, 0x7462, 0x5429, 0x4d42, 0x675a, 0x7259,
- 0x592a, 0x583e, 0x5c2d, 0x626b, 0x567c, 0x4a79, 0x545a, 0x7457,
- 0x4c21, 0x4f3a, 0x7538, 0x5943, 0x5068, 0x6345, 0x6b78, 0x7231,
- 0x4f3b, 0x532d, 0x6861, 0x4e6c, 0x6034, 0x5e63, 0x5d77, 0x7232,
- 0x7376, 0x765b, 0x577e, 0x785f, 0x7772, 0x5029, 0x665a, 0x7526,
- 0x573c, 0x4c63, 0x665b, 0x5d5d, 0x5133, 0x6f6d, 0x565e, 0x6474,
- 0x616f, 0x5d78, 0x684f, 0x4a65, 0x5c21, 0x6035, 0x7c2c, 0x7c2d,
- 0x5827, 0x6d38, 0x5b36, 0x5670, 0x732f, 0x4d25, 0x5a71, 0x5828,
- 0x4c64, 0x5134, 0x4a58, 0x5a72, 0x7527, 0x7528, 0x6626, 0x556c,
- 0x5578, 0x5a73, 0x6346, 0x5e64, 0x5e65, 0x5135, 0x5136, 0x5137,
- 0x7233, 0x695e, 0x7053, 0x7234, 0x7054, 0x4b64, 0x7b54, 0x7566,
- 0x636a, 0x5e66, 0x5f54, 0x7879, 0x702e, 0x5138, 0x565f, 0x5057,
- 0x7c21, 0x6f6e, 0x5c58, 0x695f, 0x655d, 0x7d7b, 0x6049, 0x5649,
- 0x542a, 0x654c, 0x6960, 0x5058, 0x7c22, 0x543e, 0x6233, 0x5e67,
- 0x5c3c, 0x5236, 0x7555, 0x4e21, 0x7529, 0x5d79, 0x5d7a, 0x7055,
- 0x765f, 0x725a, 0x646b, 0x7271, 0x6c39, 0x7d7c, 0x612a, 0x4a59,
- 0x6f6f, 0x752a, 0x6c79, 0x782d, 0x7242, 0x7643, 0x5752, 0x7922,
- 0x7056, 0x707a, 0x7660, 0x6973, 0x7243, 0x542b, 0x4a33, 0x4d26,
- 0x4d43, 0x4d5a, 0x594f, 0x7644, 0x6e5d, 0x6744, 0x6234, 0x5f62,
- 0x675b, 0x6831, 0x7c2e, 0x654d, 0x7a6b, 0x4f3c, 0x4f62, 0x4d76,
- 0x6f70, 0x743e, 0x544d, 0x7338, 0x6921, 0x7272, 0x736b, 0x7057,
- 0x4f57, 0x4f5f, 0x6840, 0x6841, 0x4f63, 0x6922, 0x502a, 0x7341,
- 0x502b, 0x5464, 0x6f3c, 0x5821, 0x595f, 0x7357, 0x5c3d, 0x4c65,
- 0x6d71, 0x7162, 0x545b, 0x6235, 0x4a66, 0x532e, 0x4c66, 0x7153,
- 0x7567, 0x4a5a, 0x7b6e, 0x6145, 0x5f69, 0x6e5e, 0x7742, 0x5822,
- 0x5d2c, 0x702f, 0x563d, 0x612b, 0x7936, 0x5475, 0x5049, 0x6f27,
- 0x626c, 0x5b6a, 0x4e4c, 0x7568, 0x7755, 0x534d, 0x737e, 0x5035,
- 0x607e, 0x5f7b, 0x665d, 0x6824, 0x4b4d, 0x6f28, 0x6e34, 0x5a58,
- 0x5139, 0x5f29, 0x7330, 0x4c44, 0x4e37, 0x6f29, 0x5f55, 0x6d57,
- 0x6e46, 0x6f3d, 0x7c56, 0x5b74, 0x6f2a, 0x7839, 0x7569, 0x6359,
- 0x6146, 0x543f, 0x5e68, 0x706a, 0x7342, 0x532f, 0x4a5b, 0x7c57,
- 0x6d58, 0x6147, 0x7458, 0x5633, 0x5d2d, 0x553e, 0x7143, 0x6e5f,
- 0x566b, 0x7459, 0x5766, 0x5a37, 0x5d7b, 0x5d4f, 0x5823, 0x5a59,
- 0x7058, 0x6f44, 0x6158, 0x7154, 0x6d72, 0x555b, 0x555c, 0x7344,
- 0x4b57, 0x6236, 0x6f71, 0x7b55, 0x5358, 0x5d50, 0x7059, 0x4b33,
- 0x555d, 0x4d27, 0x502c, 0x513a, 0x7144, 0x6533, 0x7b75, 0x6961,
- 0x7d60, 0x7c3c, 0x5a22, 0x5a23, 0x5221, 0x526f, 0x626d, 0x5e69,
- 0x4e5c, 0x7235, 0x5064, 0x5d51, 0x6148, 0x5b37, 0x5f63, 0x6d39,
- 0x7145, 0x734f, 0x572b, 0x612c, 0x636b, 0x6e47, 0x6149, 0x4a7a,
- 0x707b, 0x7a61, 0x705a, 0x4c67, 0x5a74, 0x4c3f, 0x4e6d, 0x5529,
- 0x7a62, 0x5065, 0x6b56, 0x6c5f, 0x5f7c, 0x7756, 0x5e6a, 0x4b34,
- 0x6f3e, 0x4c35, 0x4f3d, 0x6f72, 0x6237, 0x4c68, 0x707c, 0x5660,
- 0x7146, 0x6238, 0x6b2b, 0x4b35, 0x5851, 0x744e, 0x7377, 0x5746,
- 0x513b, 0x772a, 0x6d4a, 0x5753, 0x587a, 0x7645, 0x514c, 0x5d7c,
- 0x5f7d, 0x7965, 0x604a, 0x727d, 0x5330, 0x7473, 0x5a49, 0x665e,
- 0x783a, 0x6850, 0x587b, 0x6a55, 0x5623, 0x7646, 0x725b, 0x647c,
- 0x6832, 0x5a5a, 0x725c, 0x7b56, 0x6932, 0x6e2d, 0x7a63, 0x5c6e,
- 0x756a, 0x6660, 0x707d, 0x572c, 0x7545, 0x6e60, 0x5b65, 0x5d5e,
- 0x5970, 0x6923, 0x7179, 0x7244, 0x604b, 0x6924, 0x6239, 0x6331,
- 0x7c6b, 0x4d28, 0x4c36, 0x705b, 0x663a, 0x4d29, 0x7343, 0x6159,
- 0x6f2b, 0x6745, 0x6069, 0x7345, 0x5440, 0x553f, 0x5d2e, 0x797c,
- 0x4c40, 0x6522, 0x4e38, 0x5852, 0x7956, 0x712a, 0x4e51, 0x7647,
- 0x5b6b, 0x5f7e, 0x5861, 0x7773, 0x5767, 0x547e, 0x513c, 0x654f,
- 0x4b36, 0x5a38, 0x4d44, 0x563e, 0x623a, 0x4f58, 0x604c, 0x6b79,
- 0x7d7d, 0x5768, 0x4b58, 0x6962, 0x683a, 0x6347, 0x6c4d, 0x6c4e,
- 0x563f, 0x6327, 0x5f56, 0x7d68, 0x6e61, 0x7628, 0x5d7d, 0x783b,
- 0x6851, 0x7957, 0x4e6e, 0x6c4f, 0x6925, 0x5655, 0x4d45, 0x6d3a,
- 0x513d, 0x4f3e, 0x6c3b, 0x5231, 0x4c69, 0x5944, 0x697c, 0x513e,
- 0x6c3c, 0x652d, 0x7730, 0x4c6a, 0x5344, 0x5640, 0x567d, 0x6121,
- 0x5e3d, 0x7629, 0x5a24, 0x5624, 0x7546, 0x6122, 0x6946, 0x7245,
- 0x7469, 0x566c, 0x6b53, 0x6c3d, 0x625c, 0x5e6b, 0x705c, 0x6b3f,
- 0x574e, 0x513f, 0x752b, 0x797d, 0x4a5c, 0x4d46, 0x7236, 0x5d7e,
- 0x4c37, 0x5b38, 0x5069, 0x4e5d, 0x6b40, 0x7d22, 0x784b, 0x6a56,
- 0x7130, 0x5b4e, 0x7743, 0x5b4f, 0x4b24, 0x7860, 0x7b57, 0x6b4a,
- 0x6021, 0x4e4d, 0x545c, 0x7d58, 0x5276, 0x7237, 0x7a76, 0x762a,
- 0x7a77, 0x5866, 0x7431, 0x6852, 0x4a45, 0x4c6b, 0x626e, 0x623b,
- 0x772d, 0x7861, 0x736c, 0x5e21, 0x647d, 0x636c, 0x5d2f, 0x5d30,
- 0x4b37, 0x6853, 0x6123, 0x5260, 0x707e, 0x6926, 0x4b72, 0x6d73,
- 0x5c59, 0x604d, 0x775a, 0x5b39, 0x4c2e, 0x5a5b, 0x4d47, 0x5d31,
- 0x582f, 0x6323, 0x4e6f, 0x7273, 0x7833, 0x604e, 0x757d, 0x6b6c,
- 0x5345, 0x7c6c, 0x525b, 0x546b, 0x5e22, 0x6566, 0x7030, 0x5544,
- 0x6d74, 0x636d, 0x6842, 0x6d75, 0x577c, 0x6d3b, 0x762b, 0x7238,
- 0x7648, 0x5366, 0x725d, 0x4f3f, 0x6b2c, 0x4f40, 0x6628, 0x7d69,
- 0x4f41, 0x605f, 0x5e6c, 0x6022, 0x743f, 0x626f, 0x5971, 0x7147,
- 0x4b38, 0x797e, 0x5b3a, 0x5a75, 0x766c, 0x5a5c, 0x7a64, 0x604f,
- 0x5d32, 0x6629, 0x6f73, 0x736d, 0x6b7a, 0x7966, 0x4a5d, 0x555e,
- 0x4a5e, 0x5f64, 0x667d, 0x752c, 0x6475, 0x6963, 0x6d4b, 0x4f64,
- 0x5853, 0x5d33, 0x546c, 0x7239, 0x5f37, 0x4b4e, 0x7b58, 0x5059,
- 0x5d52, 0x7774, 0x675c, 0x6425, 0x7c23, 0x5b3b, 0x723a, 0x697d,
- 0x504a, 0x7556, 0x5945, 0x6434, 0x6d27, 0x6a3d, 0x667e, 0x7744,
- 0x752d, 0x5960, 0x4a34, 0x7862, 0x4f42, 0x6c3e, 0x6534, 0x4d48,
- 0x6e48, 0x6748, 0x4d49, 0x7937, 0x7168, 0x5972, 0x5b75, 0x4a35,
- 0x5946, 0x5849, 0x592b, 0x6d3c, 0x5854, 0x5c5a, 0x623c, 0x7c6d,
- 0x6c60, 0x527e, 0x6947, 0x662a, 0x6270, 0x7a3b, 0x752e, 0x7b2a,
- 0x6c7b, 0x6c3f, 0x7c58, 0x5465, 0x7943, 0x6e62, 0x5769, 0x6d76,
- 0x5e6d, 0x4c6c, 0x636e, 0x6854, 0x7a78, 0x5d34, 0x6435, 0x5830,
- 0x5855, 0x746a, 0x4e39, 0x5661, 0x4f52, 0x5036, 0x4e22, 0x736e,
- 0x7378, 0x5c4c, 0x504b, 0x7c24, 0x4d4a, 0x5754, 0x5e23, 0x6460,
- 0x6e49, 0x625d, 0x757e, 0x542c, 0x5551, 0x5870, 0x7843, 0x6a57,
- 0x7557, 0x583f, 0x7d40, 0x6b2d, 0x552a, 0x6728, 0x6e4a, 0x4a67,
- 0x7863, 0x545d, 0x6a58, 0x7b59, 0x6d77, 0x6535, 0x502d, 0x7171,
- 0x623d, 0x6348, 0x5955, 0x5f2a, 0x5b3c, 0x7864, 0x717a, 0x6536,
- 0x736f, 0x7b5a, 0x6160, 0x592c, 0x756b, 0x6036, 0x6948, 0x4b4f,
- 0x6349, 0x5e6e, 0x623e, 0x5c6f, 0x5625, 0x6271, 0x567e, 0x5921,
- 0x5840, 0x5c5b, 0x6d3d, 0x5f38, 0x6a25, 0x572d, 0x7379, 0x6d78,
- 0x7547, 0x614a, 0x6b63, 0x725e, 0x784c, 0x6a59, 0x5346, 0x5b66,
- 0x752f, 0x4e70, 0x697e, 0x7b36, 0x6272, 0x4f72, 0x7739, 0x5973,
- 0x614b, 0x5a5d, 0x5a39, 0x6b7b, 0x4b39, 0x6d79, 0x6060, 0x7440,
- 0x7d3c, 0x5f31, 0x636f, 0x6023, 0x7d39, 0x7031, 0x4d4b, 0x6d3e,
- 0x5540, 0x6370, 0x6d7a, 0x6964, 0x556d, 0x675d, 0x5476, 0x6537,
- 0x5b67, 0x623f, 0x6e4b, 0x5774, 0x705d, 0x4e2b, 0x675e, 0x5656,
- 0x614c, 0x6833, 0x656e, 0x5c22, 0x6050, 0x5535, 0x5521, 0x7b5b,
- 0x794b, 0x4b73, 0x7425, 0x7a48, 0x5657, 0x6965, 0x7b5c, 0x7d50,
- 0x7b76, 0x5a25, 0x5b3d, 0x6c62, 0x4d77, 0x705e, 0x7649, 0x5e6f,
- 0x5331, 0x7c6e, 0x6843, 0x7148, 0x4e71, 0x796d, 0x7274, 0x6436,
- 0x7539, 0x5c70, 0x6371, 0x6825, 0x723b, 0x5e24, 0x5a4c, 0x4a69,
- 0x635a, 0x7c59, 0x6a5a, 0x7944, 0x6324, 0x7b5d, 0x6f4a, 0x6844,
- 0x554c, 0x6b57, 0x592d, 0x7b2b, 0x5359, 0x5522, 0x765e, 0x5a76,
- 0x6051, 0x6928, 0x7579, 0x7a2f, 0x6b7c, 0x606a, 0x6332, 0x5545,
- 0x7163, 0x556e, 0x4d4c, 0x6d59, 0x5841, 0x7a6c, 0x716b, 0x7a3c,
- 0x6662, 0x7a65, 0x627a, 0x4a36, 0x6437, 0x6a5b, 0x757a, 0x7b2c,
- 0x4f43, 0x6b7d, 0x787a, 0x5f39, 0x6171, 0x5224, 0x757b, 0x505a,
- 0x505b, 0x6a3e, 0x5931, 0x4a37, 0x5367, 0x7865, 0x5332, 0x6240,
- 0x725f, 0x4d65, 0x792c, 0x4d4d, 0x6e2e, 0x562e, 0x576a, 0x6760,
- 0x6b2e, 0x4f59, 0x5c4d, 0x6d7b, 0x5e70, 0x576b, 0x5e25, 0x5f57,
- 0x5b50, 0x5b51, 0x5523, 0x7032, 0x5c5c, 0x4a68, 0x7866, 0x5c4e,
- 0x6a5c, 0x5b52, 0x6933, 0x775b, 0x6328, 0x572e, 0x6061, 0x4b3a,
- 0x6551, 0x505c, 0x5541, 0x584a, 0x6329, 0x6024, 0x6929, 0x5347,
- 0x5c5d, 0x782e, 0x4c38, 0x502e, 0x5872, 0x634a, 0x4c2f, 0x542d,
- 0x7651, 0x504c, 0x4a46, 0x5542, 0x4e3a, 0x4a47, 0x7a30, 0x5f58,
- 0x753a, 0x656b, 0x6f74, 0x5d35, 0x4d2a, 0x6372, 0x7b77, 0x7750,
- 0x7d3a, 0x7d61, 0x767e, 0x5140, 0x6845, 0x6438, 0x6168, 0x4c41,
- 0x526d, 0x5b3e, 0x6062, 0x7a49, 0x614d, 0x4a38, 0x7260, 0x7149,
- 0x5e71, 0x705f, 0x7844, 0x6e4c, 0x5e72, 0x6749, 0x6273, 0x6761,
- 0x634b, 0x634c, 0x4f78, 0x6f2c, 0x7d7e, 0x7c25, 0x7a31, 0x5f59,
- 0x6052, 0x745a, 0x714a, 0x4e23, 0x723c, 0x6c63, 0x6025, 0x772b,
- 0x6b2f, 0x655e, 0x6124, 0x4d2b, 0x5974, 0x6826, 0x4d4e, 0x6169,
- 0x7c6f, 0x6063, 0x6241, 0x4e24, 0x5e26, 0x6b7e, 0x6b5d, 0x7060,
- 0x745b, 0x6274, 0x5348, 0x746b, 0x6e35, 0x7558, 0x555f, 0x5665,
- 0x6b30, 0x7463, 0x634d, 0x7474, 0x7a32, 0x6f75, 0x4a5f, 0x6b31,
- 0x6d3f, 0x7d49, 0x6426, 0x7924, 0x7033, 0x656c, 0x5167, 0x5947,
- 0x6457, 0x6a5d, 0x5477, 0x5a3a, 0x5a4d, 0x794c, 0x615a, 0x5b3f,
- 0x4c45, 0x6c50, 0x4b3b, 0x5e73, 0x692a, 0x5948, 0x6e63, 0x573d,
- 0x4f44, 0x504d, 0x7c26, 0x717b, 0x7d52, 0x5141, 0x635b, 0x5349,
- 0x5c4f, 0x4c6d, 0x5e27, 0x663b, 0x6c21, 0x4c39, 0x7b5e, 0x6762,
- 0x5441, 0x5c28, 0x6242, 0x7358, 0x6553, 0x7359, 0x7346, 0x4d5b,
- 0x4d2c, 0x7c43, 0x5467, 0x5142, 0x7925, 0x6855, 0x634e, 0x544a,
- 0x5f5a, 0x7b5f, 0x6763, 0x787b, 0x634f, 0x7530, 0x5867, 0x5949,
- 0x782f, 0x6f76, 0x5d36, 0x6e2f, 0x4d78, 0x5e38, 0x7c27, 0x777c,
- 0x7731, 0x4e3b, 0x7421, 0x6e4d, 0x612e, 0x6c43, 0x4f7e, 0x783f,
- 0x5862, 0x5368, 0x5e28, 0x7464, 0x6c42, 0x5975, 0x7945, 0x5d53,
- 0x5671, 0x6c7c, 0x7c70, 0x6d40, 0x4a39, 0x6e64, 0x7261, 0x5e39,
- 0x5672, 0x5e74, 0x5f5b, 0x5b53, 0x7a67, 0x5863, 0x7441, 0x5d37,
- 0x7275, 0x542e, 0x5673, 0x5d38, 0x4f45, 0x5f5f, 0x723e, 0x7621,
- 0x6b4b, 0x717c, 0x7347, 0x606b, 0x6d7c, 0x615b, 0x6e65, 0x5e75,
- 0x7a53, 0x714b, 0x502f, 0x5d39, 0x5143, 0x7531, 0x6a46, 0x7061,
- 0x762c, 0x7559, 0x706b, 0x5d3a, 0x723f, 0x7745, 0x5b22, 0x7276,
- 0x4a3a, 0x7775, 0x4b65, 0x6e66, 0x6053, 0x4e25, 0x5658, 0x542f,
- 0x6949, 0x534e, 0x7442, 0x4b66, 0x7121, 0x6b32, 0x7122, 0x6b33,
- 0x7034, 0x4b74, 0x5430, 0x7332, 0x7b37, 0x756c, 0x6e67, 0x7432,
- 0x756d, 0x4f73, 0x7062, 0x6e4e, 0x714c, 0x6538, 0x5775, 0x6373,
- 0x4f65, 0x4f46, 0x7333, 0x6458, 0x4f79, 0x4f5a, 0x7a4d, 0x6663,
- 0x7262, 0x756e, 0x4a3b, 0x635c, 0x4e72, 0x5659, 0x6e30, 0x7465,
- 0x5842, 0x5c50, 0x4c6e, 0x5560, 0x764a, 0x7d4a, 0x5856, 0x744f,
- 0x5626, 0x5c3e, 0x5b54, 0x5747, 0x727e, 0x714d, 0x6243, 0x5c5e,
- 0x5c5f, 0x6f2d, 0x662b, 0x795d, 0x6a3f, 0x6f2e, 0x7450, 0x4e73,
- 0x662c, 0x4e5e, 0x5579, 0x6374, 0x4d50, 0x5538, 0x777d, 0x5c29,
- 0x5e76, 0x5c2a, 0x7263, 0x6934, 0x525c, 0x6966, 0x6376, 0x674a,
- 0x504e, 0x5a77, 0x4a3c, 0x6e68, 0x5a5e, 0x7277, 0x627b, 0x4c26,
- 0x5a3b, 0x6e69, 0x755a, 0x775c, 0x616a, 0x4e41, 0x5431, 0x7d31,
- 0x663d, 0x7b2d, 0x7867, 0x614e, 0x7762, 0x756f, 0x4f47, 0x5432,
- 0x4c6f, 0x5468, 0x6e4f, 0x7757, 0x6026, 0x5641, 0x615c, 0x7063,
- 0x7164, 0x5c71, 0x5627, 0x7475, 0x714e, 0x7264, 0x5030, 0x6c6f,
- 0x793a, 0x6b35, 0x546d, 0x6244, 0x6967, 0x6b34, 0x6a21, 0x783c,
- 0x4e26, 0x7946, 0x7c5a, 0x5433, 0x5339, 0x6a5e, 0x692b, 0x6161,
- 0x534f, 0x7476, 0x6a40, 0x614f, 0x4c3a, 0x6e6a, 0x7064, 0x7334,
- 0x546e, 0x7240, 0x7165, 0x7443, 0x6054, 0x6b36, 0x5721, 0x4b68,
- 0x792d, 0x692d, 0x5864, 0x7a33, 0x6245, 0x7c3d, 0x6c44, 0x5831,
- 0x5c2b, 0x5524, 0x6b69, 0x683b, 0x5857, 0x7b2e, 0x5161, 0x5b40,
- 0x753e, 0x5e77, 0x4a7b, 0x7746, 0x4f48, 0x6150, 0x6e50, 0x6974,
- 0x4e74, 0x554d, 0x4f5b, 0x5d3b, 0x4e2c, 0x6968, 0x5434, 0x6447,
- 0x755b, 0x7a41, 0x5e29, 0x5478, 0x6f77, 0x5333, 0x6b37, 0x6f78,
- 0x755c, 0x6d4c, 0x5b55, 0x714f, 0x7150, 0x7532, 0x592e, 0x552c,
- 0x6246, 0x7d23, 0x7b65, 0x5f2b, 0x6275, 0x762d, 0x7533, 0x7035,
- 0x6125, 0x755d, 0x6c22, 0x6d7d, 0x7534, 0x7b38, 0x5b23, 0x564a,
- 0x4b59, 0x6554, 0x737a, 0x6b38, 0x6037, 0x576c, 0x716c, 0x652f,
- 0x5561, 0x576d, 0x5151, 0x6172, 0x6f79, 0x5d3c, 0x765c, 0x7065,
- 0x7444, 0x6969, 0x737b, 0x546f, 0x4c22, 0x777e, 0x5f3c, 0x6b4d,
- 0x5037, 0x5642, 0x682d, 0x6f2f, 0x4b25, 0x4b69, 0x7a68, 0x4c46,
- 0x6667, 0x6a47, 0x5b24, 0x4f49, 0x627c, 0x6f7a, 0x6b5e, 0x7548,
- 0x545e, 0x6055, 0x6f30, 0x6247, 0x592f, 0x7967, 0x6765, 0x4f4a,
- 0x6151, 0x6248, 0x6f7b, 0x7a79, 0x5c72, 0x6027, 0x7868, 0x4b6a,
- 0x4b3c, 0x5662, 0x755e, 0x755f, 0x6e36, 0x6276, 0x534a, 0x6f7c,
- 0x5144, 0x6f31, 0x5145, 0x505e, 0x5961, 0x6038, 0x4d51, 0x7339,
- 0x674c, 0x5628, 0x4e27, 0x5435, 0x6448, 0x5334, 0x6b39, 0x4b75,
- 0x765d, 0x7123, 0x4c47, 0x694a, 0x6170, 0x7560, 0x7b2f, 0x4b51,
- 0x7b60, 0x7265, 0x6c70, 0x706c, 0x6e6b, 0x694b, 0x4c70, 0x572f,
- 0x7321, 0x7c75, 0x7124, 0x6056, 0x6f32, 0x7451, 0x7721, 0x7151,
- 0x4a7c, 0x4a7d, 0x4e4e, 0x7348, 0x733a, 0x6d7e, 0x5a26, 0x606c,
- 0x784d, 0x4b52, 0x6b4e, 0x7958, 0x7959, 0x4a60, 0x5a4a, 0x4b26,
- 0x4a48, 0x796e, 0x5b6c, 0x5031, 0x556f, 0x6673, 0x6722, 0x6459,
- 0x6461, 0x7c44, 0x796f, 0x4f74, 0x7766, 0x4e3c, 0x7445, 0x5c23,
- 0x5d3d, 0x7446, 0x7821, 0x6856, 0x5b41, 0x7066, 0x6439, 0x766d,
- 0x792e, 0x5d3e, 0x5730, 0x5868, 0x4b3d, 0x795a, 0x784e, 0x7970,
- 0x606d, 0x6333, 0x7433, 0x6a42, 0x7266, 0x7036, 0x5b56, 0x6b64,
- 0x7267, 0x5755, 0x5436, 0x7968, 0x5741, 0x6555, 0x696a, 0x574c,
- 0x5369, 0x6249, 0x7c5b, 0x4d2d, 0x4c30, 0x6a22, 0x6476, 0x5040,
- 0x7037, 0x6e21, 0x5776, 0x624a, 0x624b, 0x7a4f, 0x6b5f, 0x564b,
- 0x7434, 0x6d4d, 0x6452, 0x6a29, 0x643a, 0x7322, 0x4d52, 0x764b,
- 0x7166, 0x6d41, 0x683c, 0x6e51, 0x7067, 0x624c, 0x642a, 0x7561,
- 0x6d5a, 0x576e, 0x5171, 0x696b, 0x696c, 0x6064, 0x5a27, 0x5d54,
- 0x6a23, 0x5643, 0x5674, 0x5a5f, 0x6f33, 0x624d, 0x6f7d, 0x7268,
- 0x6f45, 0x6767, 0x577d, 0x674e, 0x5f5c, 0x7947, 0x5976, 0x5f2c,
- 0x565a, 0x5c24, 0x7038, 0x557a, 0x6477, 0x5644, 0x746c, 0x6f7e,
- 0x7021, 0x5e2a, 0x5a3c, 0x587c, 0x7a54, 0x6c65, 0x7c28, 0x6c66,
- 0x584b, 0x7b39, 0x6453, 0x4d79, 0x4f53, 0x4a6a, 0x4f54, 0x783d,
- 0x7447, 0x6a5f, 0x795b, 0x5437, 0x6b65, 0x6152, 0x6a24, 0x7a42,
- 0x7b61, 0x7a6d, 0x7022, 0x4c71, 0x7a23, 0x6277, 0x624e, 0x6975,
- 0x616b, 0x6768, 0x6857, 0x5a78, 0x544b, 0x7776, 0x5645, 0x5469,
- 0x7a7a, 0x4c72, 0x775d, 0x5e3a, 0x4e28, 0x7039, 0x647e, 0x6449,
- 0x6454, 0x6a43, 0x6f34, 0x573e, 0x7b62, 0x4d53, 0x6f35, 0x7a69,
- 0x7926, 0x5f3d, 0x7747, 0x787d, 0x787c, 0x5e2b, 0x5b68, 0x635d,
- 0x6162, 0x5146, 0x7650, 0x6b66, 0x5a79, 0x6c47, 0x5e78, 0x7869,
- 0x635e, 0x4e75, 0x7a43, 0x6557, 0x6c48, 0x7349, 0x643b, 0x662e,
- 0x6f36, 0x5c3f, 0x4e3d, 0x5843, 0x504f, 0x4f7a, 0x734a, 0x6057,
- 0x5147, 0x692e, 0x683d, 0x7a44, 0x624f, 0x7a45, 0x7938, 0x5c60,
- 0x7b30, 0x5829, 0x655f, 0x7927, 0x766e, 0x764c, 0x6278, 0x6c71,
- 0x5a60, 0x7152, 0x524c, 0x4f4b, 0x4a3d, 0x5d3f, 0x766f, 0x5e79,
- 0x7a34, 0x552d, 0x7167, 0x5e3e, 0x5c40, 0x5148, 0x5149, 0x783e,
- 0x4b76, 0x5479, 0x7562, 0x6153, 0x5869, 0x787e, 0x4f4c, 0x7d24,
- 0x4e76, 0x7a50, 0x4c73, 0x663e, 0x762e, 0x5570, 0x514a, 0x7c3e,
- 0x5571, 0x4d69, 0x7a35, 0x6250, 0x7477, 0x4d54, 0x6723, 0x5b25,
- 0x6251, 0x5722, 0x7763, 0x6a26, 0x5021, 0x4e5a, 0x7b6b, 0x5b26,
- 0x5b5e, 0x5865, 0x6a60, 0x582a, 0x6560, 0x565b, 0x6f46, 0x786a,
- 0x6455, 0x4e77, 0x6058, 0x576f, 0x746d, 0x4d66, 0x4c74, 0x7563,
- 0x644a, 0x5c61, 0x7948, 0x7c3f, 0x6827, 0x5844, 0x4b3e, 0x5c2e,
- 0x5777, 0x7068, 0x5d40, 0x4f4d, 0x5c73, 0x5930, 0x6669, 0x643c,
- 0x6a44, 0x646c, 0x6465, 0x7b78, 0x4c3b, 0x643d, 0x4d5c, 0x5977,
- 0x5d5f, 0x6d4e, 0x5950, 0x6523, 0x794d, 0x4d2e, 0x4f4e, 0x762f,
- 0x7d53, 0x6b6d, 0x565c, 0x6524, 0x5536, 0x565d, 0x7969, 0x6724,
- 0x5663, 0x514b, 0x5664, 0x5572, 0x5e7a, 0x5778, 0x586a, 0x4f55,
- 0x587d, 0x582b, 0x7d4b, 0x7c5c, 0x6028, 0x5573, 0x7d59, 0x4c23,
- 0x5979, 0x536a, 0x7575, 0x6f47, 0x535a, 0x5a3d, 0x6828, 0x5c2f,
- 0x7023, 0x4d55, 0x6029, 0x5e2c, 0x703a, 0x6e31, 0x6e32, 0x764d,
- 0x6e52, 0x5646, 0x6065, 0x733b, 0x6561, 0x644b, 0x5723, 0x5b42,
- 0x4a7e, 0x4f4f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026,
- 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e,
- 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036,
- 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e,
- 0x303f, 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046,
- 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e,
- 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056,
- 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e,
- 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066,
- 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e,
- 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076,
- 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e,
- 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128,
- 0x3129, 0x312a, 0x312b, 0x312c, 0x312d, 0x312e, 0x312f, 0x3130,
- 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138,
- 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140,
- 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
- 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150,
- 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158,
- 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
- 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168,
- 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170,
- 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178,
- 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x3221, 0x3222,
- 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a,
- 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x3230, 0x3231, 0x3232,
- 0x3233, 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323a,
- 0x323b, 0x323c, 0x323d, 0x323e, 0x323f, 0x3240, 0x3241, 0x3242,
- 0x3243, 0x3244, 0x3245, 0x3246, 0x3247, 0x3248, 0x3249, 0x324a,
- 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3250, 0x3251, 0x3252,
- 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a,
- 0x325b, 0x325c, 0x325d, 0x325e, 0x325f, 0x3260, 0x3261, 0x3262,
- 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a,
- 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272,
- 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a,
- 0x327b, 0x327c, 0x327d, 0x327e, 0x3321, 0x3322, 0x3323, 0x3324,
- 0x3325, 0x3326, 0x3327, 0x3328, 0x3329, 0x332a, 0x332b, 0x332c,
- 0x332d, 0x332e, 0x332f, 0x3330, 0x3331, 0x3332, 0x3333, 0x3334,
- 0x3335, 0x3336, 0x3337, 0x3338, 0x3339, 0x333a, 0x333b, 0x333c,
- 0x333d, 0x333e, 0x333f, 0x3340, 0x3341, 0x3342, 0x3343, 0x3344,
- 0x3345, 0x3346, 0x3347, 0x3348, 0x3349, 0x334a, 0x334b, 0x334c,
- 0x334d, 0x334e, 0x334f, 0x3350, 0x3351, 0x3352, 0x3353, 0x3354,
- 0x3355, 0x3356, 0x3357, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c,
- 0x335d, 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364,
- 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c,
- 0x336d, 0x336e, 0x336f, 0x3370, 0x3371, 0x3372, 0x3373, 0x3374,
- 0x3375, 0x3376, 0x3377, 0x3378, 0x3379, 0x337a, 0x337b, 0x337c,
- 0x337d, 0x337e, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426,
- 0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e,
- 0x342f, 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436,
- 0x3437, 0x3438, 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e,
- 0x343f, 0x3440, 0x3441, 0x3442, 0x3443, 0x3444, 0x3445, 0x3446,
- 0x3447, 0x3448, 0x3449, 0x344a, 0x344b, 0x344c, 0x344d, 0x344e,
- 0x344f, 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, 0x3455, 0x3456,
- 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 0x345d, 0x345e,
- 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 0x3466,
- 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e,
- 0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476,
- 0x3477, 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e,
- 0x3521, 0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528,
- 0x3529, 0x352a, 0x352b, 0x352c, 0x352d, 0x352e, 0x352f, 0x3530,
- 0x3531, 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538,
- 0x3539, 0x353a, 0x353b, 0x353c, 0x353d, 0x353e, 0x353f, 0x3540,
- 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548,
- 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 0x3550,
- 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558,
- 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560,
- 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568,
- 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570,
- 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578,
- 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x3621, 0x3622,
- 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 0x362a,
- 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 0x3631, 0x3632,
- 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 0x363a,
- 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642,
- 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a,
- 0x364b, 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652,
- 0x3653, 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a,
- 0x365b, 0x365c, 0x365d, 0x365e, 0x365f, 0x3660, 0x3661, 0x3662,
- 0x3663, 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, 0x3669, 0x366a,
- 0x366b, 0x366c, 0x366d, 0x366e, 0x366f, 0x3670, 0x3671, 0x3672,
- 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367a,
- 0x367b, 0x367c, 0x367d, 0x367e, 0x3721, 0x3722, 0x3723, 0x3724,
- 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c,
- 0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
- 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
- 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
- 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
- 0x374d, 0x374e, 0x374f, 0x3750, 0x3751, 0x3752, 0x3753, 0x3754,
- 0x3755, 0x3756, 0x3757, 0x3758, 0x3759, 0x375a, 0x375b, 0x375c,
- 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, 0x3762, 0x3763, 0x3764,
- 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 0x376c,
- 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774,
- 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c,
- 0x377d, 0x377e, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826,
- 0x3827, 0x3828, 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e,
- 0x382f, 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836,
- 0x3837, 0x3838, 0x3839, 0x383a, 0x383b, 0x383c, 0x383d, 0x383e,
- 0x383f, 0x3840, 0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846,
- 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 0x384d, 0x384e,
- 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856,
- 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e,
- 0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866,
- 0x3867, 0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e,
- 0x386f, 0x3870, 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876,
- 0x3877, 0x3878, 0x3879, 0x387a, 0x387b, 0x387c, 0x387d, 0x387e,
- 0x3921, 0x3922, 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928,
- 0x3929, 0x392a, 0x392b, 0x392c, 0x392d, 0x392e, 0x392f, 0x3930,
- 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938,
- 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 0x3940,
- 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948,
- 0x3949, 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950,
- 0x3951, 0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958,
- 0x3959, 0x395a, 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960,
- 0x3961, 0x3962, 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968,
- 0x3969, 0x396a, 0x396b, 0x396c, 0x396d, 0x396e, 0x396f, 0x3970,
- 0x3971, 0x3972, 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978,
- 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, 0x397e, 0x3a21, 0x3a22,
- 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 0x3a2a,
- 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a32,
- 0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a39, 0x3a3a,
- 0x3a3b, 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42,
- 0x3a43, 0x3a44, 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a,
- 0x3a4b, 0x3a4c, 0x3a4d, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52,
- 0x3a53, 0x3a54, 0x3a55, 0x3a56, 0x3a57, 0x3a58, 0x3a59, 0x3a5a,
- 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, 0x3a60, 0x3a61, 0x3a62,
- 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 0x3a6a,
- 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a72,
- 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a,
- 0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3b21, 0x3b22, 0x3b23, 0x3b24,
- 0x3b25, 0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c,
- 0x3b2d, 0x3b2e, 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34,
- 0x3b35, 0x3b36, 0x3b37, 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3c,
- 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40, 0x3b41, 0x3b42, 0x3b43, 0x3b44,
- 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, 0x3b4a, 0x3b4b, 0x3b4c,
- 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 0x3b53, 0x3b54,
- 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 0x3b5c,
- 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64,
- 0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c,
- 0x3b6d, 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x3b73, 0x3b74,
- 0x3b75, 0x3b76, 0x3b77, 0x3b78, 0x3b79, 0x3b7a, 0x3b7b, 0x3b7c,
- 0x3b7d, 0x3b7e, 0x3c21, 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26,
- 0x3c27, 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, 0x3c2c, 0x3c2d, 0x3c2e,
- 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33, 0x3c34, 0x3c35, 0x3c36,
- 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 0x3c3d, 0x3c3e,
- 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 0x3c46,
- 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e,
- 0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, 0x3c54, 0x3c55, 0x3c56,
- 0x3c57, 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e,
- 0x3c5f, 0x3c60, 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66,
- 0x3c67, 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e,
- 0x3c6f, 0x3c70, 0x3c71, 0x3c72, 0x3c73, 0x3c74, 0x3c75, 0x3c76,
- 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 0x3c7c, 0x3c7d, 0x3c7e,
- 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 0x3d27, 0x3d28,
- 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, 0x3d2e, 0x3d2f, 0x3d30,
- 0x3d31, 0x3d32, 0x3d33, 0x3d34, 0x3d35, 0x3d36, 0x3d37, 0x3d38,
- 0x3d39, 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, 0x3d3e, 0x3d3f, 0x3d40,
- 0x3d41, 0x3d42, 0x3d43, 0x3d44, 0x3d45, 0x3d46, 0x3d47, 0x3d48,
- 0x3d49, 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, 0x3d4e, 0x3d4f, 0x3d50,
- 0x3d51, 0x3d52, 0x3d53, 0x3d54, 0x3d55, 0x3d56, 0x3d57, 0x3d58,
- 0x3d59, 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, 0x3d5e, 0x3d5f, 0x3d60,
- 0x3d61, 0x3d62, 0x3d63, 0x3d64, 0x3d65, 0x3d66, 0x3d67, 0x3d68,
- 0x3d69, 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, 0x3d6e, 0x3d6f, 0x3d70,
- 0x3d71, 0x3d72, 0x3d73, 0x3d74, 0x3d75, 0x3d76, 0x3d77, 0x3d78,
- 0x3d79, 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, 0x3d7e, 0x3e21, 0x3e22,
- 0x3e23, 0x3e24, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 0x3e2a,
- 0x3e2b, 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e32,
- 0x3e33, 0x3e34, 0x3e35, 0x3e36, 0x3e37, 0x3e38, 0x3e39, 0x3e3a,
- 0x3e3b, 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, 0x3e40, 0x3e41, 0x3e42,
- 0x3e43, 0x3e44, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 0x3e4a,
- 0x3e4b, 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e52,
- 0x3e53, 0x3e54, 0x3e55, 0x3e56, 0x3e57, 0x3e58, 0x3e59, 0x3e5a,
- 0x3e5b, 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, 0x3e60, 0x3e61, 0x3e62,
- 0x3e63, 0x3e64, 0x3e65, 0x3e66, 0x3e67, 0x3e68, 0x3e69, 0x3e6a,
- 0x3e6b, 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, 0x3e70, 0x3e71, 0x3e72,
- 0x3e73, 0x3e74, 0x3e75, 0x3e76, 0x3e77, 0x3e78, 0x3e79, 0x3e7a,
- 0x3e7b, 0x3e7c, 0x3e7d, 0x3e7e, 0x3f21, 0x3f22, 0x3f23, 0x3f24,
- 0x3f25, 0x3f26, 0x3f27, 0x3f28, 0x3f29, 0x3f2a, 0x3f2b, 0x3f2c,
- 0x3f2d, 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, 0x3f32, 0x3f33, 0x3f34,
- 0x3f35, 0x3f36, 0x3f37, 0x3f38, 0x3f39, 0x3f3a, 0x3f3b, 0x3f3c,
- 0x3f3d, 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, 0x3f42, 0x3f43, 0x3f44,
- 0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, 0x3f4a, 0x3f4b, 0x3f4c,
- 0x3f4d, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f52, 0x3f53, 0x3f54,
- 0x3f55, 0x3f56, 0x3f57, 0x3f58, 0x3f59, 0x3f5a, 0x3f5b, 0x3f5c,
- 0x3f5d, 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, 0x3f62, 0x3f63, 0x3f64,
- 0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, 0x3f6a, 0x3f6b, 0x3f6c,
- 0x3f6d, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f72, 0x3f73, 0x3f74,
- 0x3f75, 0x3f76, 0x3f77, 0x3f78, 0x3f79, 0x3f7a, 0x3f7b, 0x3f7c,
- 0x3f7d, 0x3f7e, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, 0x4026,
- 0x4027, 0x4028, 0x4029, 0x402a, 0x402b, 0x402c, 0x402d, 0x402e,
- 0x402f, 0x4030, 0x4031, 0x4032, 0x4033, 0x4034, 0x4035, 0x4036,
- 0x4037, 0x4038, 0x4039, 0x403a, 0x403b, 0x403c, 0x403d, 0x403e,
- 0x403f, 0x4040, 0x4041, 0x4042, 0x4043, 0x4044, 0x4045, 0x4046,
- 0x4047, 0x4048, 0x4049, 0x404a, 0x404b, 0x404c, 0x404d, 0x404e,
- 0x404f, 0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056,
- 0x4057, 0x4058, 0x4059, 0x405a, 0x405b, 0x405c, 0x405d, 0x405e,
- 0x405f, 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066,
- 0x4067, 0x4068, 0x4069, 0x406a, 0x406b, 0x406c, 0x406d, 0x406e,
- 0x406f, 0x4070, 0x4071, 0x4072, 0x4073, 0x4074, 0x4075, 0x4076,
- 0x4077, 0x4078, 0x4079, 0x407a, 0x407b, 0x407c, 0x407d, 0x407e,
- 0x4121, 0x4122, 0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128,
- 0x4129, 0x412a, 0x412b, 0x412c, 0x412d, 0x412e, 0x412f, 0x4130,
- 0x4131, 0x4132, 0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138,
- 0x4139, 0x413a, 0x413b, 0x413c, 0x413d, 0x413e, 0x413f, 0x4140,
- 0x4141, 0x4142, 0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148,
- 0x4149, 0x414a, 0x414b, 0x414c, 0x414d, 0x414e, 0x414f, 0x4150,
- 0x4151, 0x4152, 0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158,
- 0x4159, 0x415a, 0x415b, 0x415c, 0x415d, 0x415e, 0x415f, 0x4160,
- 0x4161, 0x4162, 0x4163, 0x4164, 0x4165, 0x4166, 0x4167, 0x4168,
- 0x4169, 0x416a, 0x416b, 0x416c, 0x416d, 0x416e, 0x416f, 0x4170,
- 0x4171, 0x4172, 0x4173, 0x4174, 0x4175, 0x4176, 0x4177, 0x4178,
- 0x4179, 0x417a, 0x417b, 0x417c, 0x417d, 0x417e, 0x4221, 0x4222,
- 0x4223, 0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 0x422a,
- 0x422b, 0x422c, 0x422d, 0x422e, 0x422f, 0x4230, 0x4231, 0x4232,
- 0x4233, 0x4234, 0x4235, 0x4236, 0x4237, 0x4238, 0x4239, 0x423a,
- 0x423b, 0x423c, 0x423d, 0x423e, 0x423f, 0x4240, 0x4241, 0x4242,
- 0x4243, 0x4244, 0x4245, 0x4246, 0x4247, 0x4248, 0x4249, 0x424a,
- 0x424b, 0x424c, 0x424d, 0x424e, 0x424f, 0x4250, 0x4251, 0x4252,
- 0x4253, 0x4254, 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425a,
- 0x425b, 0x425c, 0x425d, 0x425e, 0x425f, 0x4260, 0x4261, 0x4262,
- 0x4263, 0x4264, 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 0x426a,
- 0x426b, 0x426c, 0x426d, 0x426e, 0x426f, 0x4270, 0x4271, 0x4272,
- 0x4273, 0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, 0x427a,
- 0x427b, 0x427c, 0x427d, 0x427e, 0x4321, 0x4322, 0x4323, 0x4324,
- 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, 0x432a, 0x432b, 0x432c,
- 0x432d, 0x432e, 0x432f, 0x4330, 0x4331, 0x4332, 0x4333, 0x4334,
- 0x4335, 0x4336, 0x4337, 0x4338, 0x4339, 0x433a, 0x433b, 0x433c,
- 0x433d, 0x433e, 0x433f, 0x4340, 0x4341, 0x4342, 0x4343, 0x4344,
- 0x4345, 0x4346, 0x4347, 0x4348, 0x4349, 0x434a, 0x434b, 0x434c,
- 0x434d, 0x434e, 0x434f, 0x4350, 0x4351, 0x4352, 0x4353, 0x4354,
- 0x4355, 0x4356, 0x4357, 0x4358, 0x4359, 0x435a, 0x435b, 0x435c,
- 0x435d, 0x435e, 0x435f, 0x4360, 0x4361, 0x4362, 0x4363, 0x4364,
- 0x4365, 0x4366, 0x4367, 0x4368, 0x4369, 0x436a, 0x436b, 0x436c,
- 0x436d, 0x436e, 0x436f, 0x4370, 0x4371, 0x4372, 0x4373, 0x4374,
- 0x4375, 0x4376, 0x4377, 0x4378, 0x4379, 0x437a, 0x437b, 0x437c,
- 0x437d, 0x437e, 0x4421, 0x4422, 0x4423, 0x4424, 0x4425, 0x4426,
- 0x4427, 0x4428, 0x4429, 0x442a, 0x442b, 0x442c, 0x442d, 0x442e,
- 0x442f, 0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435, 0x4436,
- 0x4437, 0x4438, 0x4439, 0x443a, 0x443b, 0x443c, 0x443d, 0x443e,
- 0x443f, 0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445, 0x4446,
- 0x4447, 0x4448, 0x4449, 0x444a, 0x444b, 0x444c, 0x444d, 0x444e,
- 0x444f, 0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455, 0x4456,
- 0x4457, 0x4458, 0x4459, 0x445a, 0x445b, 0x445c, 0x445d, 0x445e,
- 0x445f, 0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465, 0x4466,
- 0x4467, 0x4468, 0x4469, 0x446a, 0x446b, 0x446c, 0x446d, 0x446e,
- 0x446f, 0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475, 0x4476,
- 0x4477, 0x4478, 0x4479, 0x447a, 0x447b, 0x447c, 0x447d, 0x447e,
- 0x4521, 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527, 0x4528,
- 0x4529, 0x452a, 0x452b, 0x452c, 0x452d, 0x452e, 0x452f, 0x4530,
- 0x4531, 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537, 0x4538,
- 0x4539, 0x453a, 0x453b, 0x453c, 0x453d, 0x453e, 0x453f, 0x4540,
- 0x4541, 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548,
- 0x4549, 0x454a, 0x454b, 0x454c, 0x454d, 0x454e, 0x454f, 0x4550,
- 0x4551, 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557, 0x4558,
- 0x4559, 0x455a, 0x455b, 0x455c, 0x455d, 0x455e, 0x455f, 0x4560,
- 0x4561, 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567, 0x4568,
- 0x4569, 0x456a, 0x456b, 0x456c, 0x456d, 0x456e, 0x456f, 0x4570,
- 0x4571, 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577, 0x4578,
- 0x4579, 0x457a, 0x457b, 0x457c, 0x457d, 0x457e, 0x4621, 0x4622,
- 0x4623, 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629, 0x462a,
- 0x462b, 0x462c, 0x462d, 0x462e, 0x462f, 0x4630, 0x4631, 0x4632,
- 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, 0x4639, 0x463a,
- 0x463b, 0x463c, 0x463d, 0x463e, 0x463f, 0x4640, 0x4641, 0x4642,
- 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649, 0x464a,
- 0x464b, 0x464c, 0x464d, 0x464e, 0x464f, 0x4650, 0x4651, 0x4652,
- 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659, 0x465a,
- 0x465b, 0x465c, 0x465d, 0x465e, 0x465f, 0x4660, 0x4661, 0x4662,
- 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669, 0x466a,
- 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, 0x4670, 0x4671, 0x4672,
- 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679, 0x467a,
- 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, 0x4722, 0x4723, 0x4724,
- 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, 0x472a, 0x472b, 0x472c,
- 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, 0x4732, 0x4733, 0x4734,
- 0x4735, 0x4736, 0x4737, 0x4738, 0x4739, 0x473a, 0x473b, 0x473c,
- 0x473d, 0x473e, 0x473f, 0x4740, 0x4741, 0x4742, 0x4743, 0x4744,
- 0x4745, 0x4746, 0x4747, 0x4748, 0x4749, 0x474a, 0x474b, 0x474c,
- 0x474d, 0x474e, 0x474f, 0x4750, 0x4751, 0x4752, 0x4753, 0x4754,
- 0x4755, 0x4756, 0x4757, 0x4758, 0x4759, 0x475a, 0x475b, 0x475c,
- 0x475d, 0x475e, 0x475f, 0x4760, 0x4761, 0x4762, 0x4763, 0x4764,
- 0x4765, 0x4766, 0x4767, 0x4768, 0x4769, 0x476a, 0x476b, 0x476c,
- 0x476d, 0x476e, 0x476f, 0x4770, 0x4771, 0x4772, 0x4773, 0x4774,
- 0x4775, 0x4776, 0x4777, 0x4778, 0x4779, 0x477a, 0x477b, 0x477c,
- 0x477d, 0x477e, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826,
- 0x4827, 0x4828, 0x4829, 0x482a, 0x482b, 0x482c, 0x482d, 0x482e,
- 0x482f, 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836,
- 0x4837, 0x4838, 0x4839, 0x483a, 0x483b, 0x483c, 0x483d, 0x483e,
- 0x483f, 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846,
- 0x4847, 0x4848, 0x4849, 0x484a, 0x484b, 0x484c, 0x484d, 0x484e,
- 0x484f, 0x4850, 0x4851, 0x4852, 0x4853, 0x4854, 0x4855, 0x4856,
- 0x4857, 0x4858, 0x4859, 0x485a, 0x485b, 0x485c, 0x485d, 0x485e,
- 0x485f, 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866,
- 0x4867, 0x4868, 0x4869, 0x486a, 0x486b, 0x486c, 0x486d, 0x486e,
- 0x486f, 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876,
- 0x4877, 0x4878, 0x4879, 0x487a, 0x487b, 0x487c, 0x487d, 0x487e,
- 0x4b50, 0x4b56, 0x4b67, 0x4d4f, 0x4d68, 0x4e2d, 0x4f7b, 0x5022,
- 0x5038, 0x5050, 0x505d, 0x5154, 0x5155, 0x5158, 0x515b, 0x515c,
- 0x515d, 0x515e, 0x515f, 0x5160, 0x5162, 0x5163, 0x5164, 0x5165,
- 0x5166, 0x5168, 0x5169, 0x516a, 0x516b, 0x516d, 0x516f, 0x5170,
- 0x5172, 0x5176, 0x517a, 0x517c, 0x517d, 0x517e, 0x5222, 0x5223,
- 0x5227, 0x5228, 0x5229, 0x522a, 0x522b, 0x522d, 0x5232, 0x523e,
- 0x5242, 0x5243, 0x5244, 0x5246, 0x5247, 0x5248, 0x5249, 0x524a,
- 0x524b, 0x524d, 0x524e, 0x524f, 0x5250, 0x5251, 0x5252, 0x5253,
- 0x5254, 0x5255, 0x5256, 0x5257, 0x5259, 0x525a, 0x525e, 0x525f,
- 0x5261, 0x5262, 0x5264, 0x5265, 0x5266, 0x5267, 0x5268, 0x5269,
- 0x526a, 0x526b, 0x5270, 0x5271, 0x5272, 0x5273, 0x5274, 0x5275,
- 0x5277, 0x5278, 0x5466, 0x547c, 0x5525, 0x552b, 0x552e, 0x5638,
- 0x564d, 0x574b, 0x5764, 0x5b45, 0x5b64, 0x5c25, 0x5d25, 0x5d55,
- 0x5d74, 0x5e7c, 0x5e7e, 0x5f33, 0x5f61, 0x5f68, 0x6071, 0x612d,
- 0x616d, 0x6375, 0x6421, 0x6429, 0x652e, 0x6531, 0x6532, 0x6539,
- 0x653b, 0x653c, 0x6544, 0x654e, 0x6550, 0x6552, 0x6556, 0x657a,
- 0x657b, 0x657c, 0x657e, 0x6621, 0x6624, 0x6627, 0x662d, 0x662f,
- 0x6630, 0x6631, 0x6633, 0x6637, 0x6638, 0x663c, 0x6644, 0x6646,
- 0x6647, 0x664a, 0x6652, 0x6656, 0x6659, 0x665c, 0x665f, 0x6661,
- 0x6664, 0x6665, 0x6666, 0x6668, 0x666a, 0x666b, 0x666c, 0x666f,
- 0x6671, 0x6672, 0x6675, 0x6676, 0x6677, 0x6679, 0x6721, 0x6726,
- 0x6729, 0x672a, 0x672c, 0x672d, 0x6730, 0x673f, 0x6741, 0x6746,
- 0x6747, 0x674b, 0x674d, 0x674f, 0x6750, 0x6753, 0x675f, 0x6764,
- 0x6766, 0x6777, 0x6867, 0x6868, 0x6870, 0x6871, 0x6877, 0x6879,
- 0x687b, 0x687e, 0x6927, 0x692c, 0x694c, 0x6977, 0x6a41, 0x6a65,
- 0x6a74, 0x6a77, 0x6a7c, 0x6a7e, 0x6b24, 0x6b27, 0x6b29, 0x6b2a,
- 0x6b3a, 0x6b3b, 0x6b3d, 0x6b41, 0x6b42, 0x6b46, 0x6b47, 0x6b4c,
- 0x6b4f, 0x6b50, 0x6b51, 0x6b52, 0x6b58, 0x6c26, 0x6c27, 0x6c2a,
- 0x6c2f, 0x6c30, 0x6c31, 0x6c32, 0x6c35, 0x6c38, 0x6c3a, 0x6c40,
- 0x6c41, 0x6c45, 0x6c46, 0x6c49, 0x6c4a, 0x6c55, 0x6c5d, 0x6c5e,
- 0x6c61, 0x6c64, 0x6c67, 0x6c68, 0x6c77, 0x6c78, 0x6c7a, 0x6d21,
- 0x6d22, 0x6d23, 0x6d6e, 0x6e5b, 0x723d, 0x727a, 0x7331, 0x7427,
- 0x746e, 0x7674, 0x7676, 0x7738, 0x7748, 0x7753, 0x785b, 0x7870,
- 0x7a21, 0x7a22, 0x7a66, 0x7c29, 0x2321, 0x2322, 0x2323, 0x2324,
- 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x232c,
- 0x232d, 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334,
- 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c,
- 0x233d, 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344,
- 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c,
- 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354,
- 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x212c,
- 0x235d, 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364,
- 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c,
- 0x236d, 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374,
- 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c,
- 0x237d, 0x2226, 0x214b, 0x214c, 0x217e, 0x237e, 0x214d, 0x235c,
-};
-
-static const Summary16 ksc5601_uni2indx_page00[70] = {
- /* 0x0000 */
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
- { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x2592 }, { 6, 0xf7df },
- { 20, 0x0040 }, { 21, 0xc181 }, { 26, 0x0040 }, { 27, 0x4181 },
- /* 0x0100 */
- { 31, 0x0000 }, { 31, 0x0002 }, { 32, 0x00c0 }, { 34, 0x810e },
- { 39, 0x0e07 }, { 45, 0x000c }, { 47, 0x00c0 }, { 49, 0x0000 },
- { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 },
- { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 },
- /* 0x0200 */
- { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 },
- { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 },
- { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 },
- { 49, 0x0080 }, { 50, 0x2f01 }, { 56, 0x0000 }, { 56, 0x0000 },
- /* 0x0300 */
- { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 },
- { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 },
- { 56, 0x0000 }, { 56, 0xfffe }, { 71, 0x03fb }, { 80, 0xfffe },
- { 95, 0x03fb }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 },
- /* 0x0400 */
- { 104, 0x0002 }, { 105, 0xffff }, { 121, 0xffff }, { 137, 0xffff },
- { 153, 0xffff }, { 169, 0x0002 },
-};
-static const Summary16 ksc5601_uni2indx_page20[103] = {
- /* 0x2000 */
- { 170, 0x0000 }, { 170, 0x3320 }, { 175, 0x0063 }, { 179, 0x080d },
- { 183, 0x0000 }, { 183, 0x0000 }, { 183, 0x0000 }, { 183, 0x8010 },
- { 185, 0x001e }, { 189, 0x0000 }, { 189, 0x0000 }, { 189, 0x0000 },
- { 189, 0x0000 }, { 189, 0x0000 }, { 189, 0x0000 }, { 189, 0x0000 },
- /* 0x2100 */
- { 189, 0x0208 }, { 191, 0x0048 }, { 193, 0x0846 }, { 197, 0x0000 },
- { 197, 0x0000 }, { 197, 0x7818 }, { 203, 0x03ff }, { 213, 0x03ff },
- { 223, 0x0000 }, { 223, 0x03ff }, { 233, 0x0000 }, { 233, 0x0000 },
- { 233, 0x0000 }, { 233, 0x0014 }, { 235, 0x0000 }, { 235, 0x0000 },
- /* 0x2200 */
- { 235, 0x898d }, { 242, 0x6402 }, { 246, 0x5fa1 }, { 255, 0x3030 },
- { 259, 0x0000 }, { 259, 0x0004 }, { 260, 0x0c33 }, { 266, 0x0000 },
- { 266, 0x00cc }, { 270, 0x0200 }, { 271, 0x0020 }, { 272, 0x0000 },
- { 272, 0x0000 }, { 272, 0x0000 }, { 272, 0x0000 }, { 272, 0x0000 },
- /* 0x2300 */
- { 272, 0x0000 }, { 272, 0x0004 }, { 273, 0x0000 }, { 273, 0x0000 },
- { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 },
- { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 },
- { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 },
- /* 0x2400 */
- { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x0000 },
- { 273, 0x0000 }, { 273, 0x0000 }, { 273, 0x7fff }, { 288, 0xfff0 },
- { 300, 0x0007 }, { 303, 0xf000 }, { 307, 0xffff }, { 323, 0x003f },
- { 329, 0x0000 }, { 329, 0xffff }, { 345, 0x03ff }, { 355, 0x0000 },
- /* 0x2500 */
- { 355, 0xf00f }, { 363, 0xffff }, { 379, 0xffff }, { 395, 0xffff },
- { 411, 0x0fff }, { 423, 0x0000 }, { 423, 0x0000 }, { 423, 0x0000 },
- { 423, 0x0000 }, { 423, 0x0004 }, { 424, 0x03fb }, { 433, 0x30cc },
- { 439, 0xc9c3 }, { 447, 0x0003 }, { 449, 0x0000 }, { 449, 0x0000 },
- /* 0x2600 */
- { 449, 0xc060 }, { 453, 0x5000 }, { 455, 0x0000 }, { 455, 0x0000 },
- { 455, 0x0005 }, { 457, 0x0000 }, { 457, 0x37bb },
-};
-static const Summary16 ksc5601_uni2indx_page30[62] = {
- /* 0x3000 */
- { 468, 0xff0f }, { 480, 0x003b }, { 485, 0x0000 }, { 485, 0x0000 },
- { 485, 0xfffe }, { 500, 0xffff }, { 516, 0xffff }, { 532, 0xffff },
- { 548, 0xffff }, { 564, 0x000f }, { 568, 0xfffe }, { 583, 0xffff },
- { 599, 0xffff }, { 615, 0xffff }, { 631, 0xffff }, { 647, 0x007f },
- /* 0x3100 */
- { 654, 0x0000 }, { 654, 0x0000 }, { 654, 0x0000 }, { 654, 0xfffe },
- { 669, 0xffff }, { 685, 0xffff }, { 701, 0xffff }, { 717, 0xffff },
- { 733, 0x7fff }, { 748, 0x0000 }, { 748, 0x0000 }, { 748, 0x0000 },
- { 748, 0x0000 }, { 748, 0x0000 }, { 748, 0x0000 }, { 748, 0x0000 },
- /* 0x3200 */
- { 748, 0xffff }, { 764, 0x1fff }, { 777, 0x0000 }, { 777, 0x0000 },
- { 777, 0x0000 }, { 777, 0x0000 }, { 777, 0xffff }, { 793, 0x8fff },
- { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 },
- { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 },
- /* 0x3300 */
- { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 },
- { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 },
- { 806, 0xff1f }, { 819, 0xffff }, { 835, 0xffff }, { 851, 0xffff },
- { 867, 0x87ff }, { 879, 0x3949 },
-};
-static const Summary16 ksc5601_uni2indx_page4e[1306] = {
- /* 0x4e00 */
- { 886, 0x2f8b }, { 895, 0x4372 }, { 902, 0x2000 }, { 903, 0x0b04 },
- { 907, 0xe82c }, { 914, 0xe340 }, { 920, 0x2800 }, { 922, 0x40c8 },
- { 926, 0x5944 }, { 932, 0x4937 }, { 940, 0x7976 }, { 950, 0x0440 },
- { 952, 0x2c93 }, { 959, 0xa3f0 }, { 967, 0x0038 }, { 970, 0x08c5 },
- /* 0x4f00 */
- { 975, 0xee02 }, { 982, 0x0003 }, { 984, 0x8000 }, { 985, 0x3550 },
- { 991, 0xe1c8 }, { 998, 0x1e23 }, { 1005, 0x8200 }, { 1007, 0xc449 },
- { 1013, 0xad5a }, { 1022, 0x2942 }, { 1027, 0xc000 }, { 1029, 0x8060 },
- { 1032, 0x461c }, { 1038, 0xa49a }, { 1045, 0xc003 }, { 1049, 0x052a },
- /* 0x5000 */
- { 1054, 0x2a44 }, { 1059, 0xd646 }, { 1067, 0x3dda }, { 1077, 0x0800 },
- { 1078, 0x8388 }, { 1083, 0x1420 }, { 1086, 0x0020 }, { 1087, 0x0170 },
- { 1091, 0x2021 }, { 1094, 0x0302 }, { 1097, 0x3000 }, { 1099, 0x40ac },
- { 1104, 0x8620 }, { 1108, 0x4462 }, { 1113, 0x20a0 }, { 1116, 0x8a00 },
- /* 0x5100 */
- { 1119, 0x0253 }, { 1124, 0x8004 }, { 1126, 0x0402 }, { 1128, 0x1484 },
- { 1132, 0x7bfb }, { 1145, 0x1004 }, { 1147, 0x7fa4 }, { 1157, 0x11e2 },
- { 1163, 0x2441 }, { 1167, 0x00a4 }, { 1170, 0x1421 }, { 1174, 0x20c0 },
- { 1177, 0x3a50 }, { 1183, 0x7000 }, { 1186, 0x0002 }, { 1187, 0x2743 },
- /* 0x5200 */
- { 1194, 0x45c9 }, { 1201, 0x2082 }, { 1204, 0x4630 }, { 1209, 0x0fc1 },
- { 1216, 0x3c88 }, { 1222, 0x2850 }, { 1226, 0x8602 }, { 1230, 0xa024 },
- { 1234, 0x2388 }, { 1239, 0x8806 }, { 1243, 0x0e19 }, { 1249, 0x4000 },
- { 1250, 0x22aa }, { 1256, 0xeb64 }, { 1265, 0x001c }, { 1268, 0xcd28 },
- /* 0x5300 */
- { 1275, 0xa120 }, { 1279, 0x02e1 }, { 1284, 0x840b }, { 1289, 0x8200 },
- { 1291, 0x279b }, { 1300, 0x549e }, { 1308, 0x8141 }, { 1312, 0xa0b3 },
- { 1319, 0x0010 }, { 1320, 0x8508 }, { 1324, 0x2061 }, { 1328, 0x0800 },
- { 1329, 0x2f08 }, { 1335, 0x08d0 }, { 1339, 0xbe3e }, { 1350, 0x010f },
- /* 0x5400 */
- { 1355, 0xf718 }, { 1364, 0xa803 }, { 1369, 0x0a41 }, { 1373, 0x5b08 },
- { 1379, 0x0504 }, { 1382, 0x0002 }, { 1383, 0x0500 }, { 1385, 0x382a },
- { 1391, 0x5041 }, { 1395, 0x0001 }, { 1396, 0x1910 }, { 1400, 0x2108 },
- { 1403, 0x0313 }, { 1408, 0x0000 }, { 1408, 0x6122 }, { 1413, 0x0404 },
- /* 0x5500 */
- { 1415, 0x40d0 }, { 1419, 0x1001 }, { 1421, 0x8000 }, { 1422, 0x4022 },
- { 1425, 0x8050 }, { 1428, 0x4048 }, { 1431, 0x0008 }, { 1432, 0x1000 },
- { 1433, 0x06d1 }, { 1439, 0x3700 }, { 1444, 0x5e80 }, { 1450, 0x0000 },
- { 1450, 0x00a0 }, { 1452, 0x9410 }, { 1456, 0x0018 }, { 1458, 0x6000 },
- /* 0x5600 */
- { 1460, 0x0240 }, { 1462, 0x0090 }, { 1464, 0x8000 }, { 1465, 0x0054 },
- { 1468, 0x0000 }, { 1468, 0x0008 }, { 1469, 0x0900 }, { 1471, 0x0010 },
- { 1472, 0x0040 }, { 1473, 0x0000 }, { 1473, 0x5020 }, { 1476, 0x1010 },
- { 1478, 0x2400 }, { 1480, 0x4c02 }, { 1484, 0x0001 }, { 1485, 0x0601 },
- /* 0x5700 */
- { 1488, 0x2918 }, { 1493, 0x814c }, { 1498, 0x2100 }, { 1500, 0x0801 },
- { 1502, 0x6485 }, { 1508, 0x0003 }, { 1510, 0x4452 }, { 1515, 0x1021 },
- { 1518, 0x0904 }, { 1521, 0x0008 }, { 1522, 0x000d }, { 1525, 0x0000 },
- { 1525, 0x4988 }, { 1530, 0x8000 }, { 1531, 0x0001 }, { 1532, 0x1691 },
- /* 0x5800 */
- { 1538, 0x0765 }, { 1545, 0x4000 }, { 1546, 0x8492 }, { 1551, 0x0433 },
- { 1556, 0x8c00 }, { 1559, 0x4592 }, { 1565, 0x0016 }, { 1568, 0x5220 },
- { 1572, 0x0228 }, { 1575, 0xd008 }, { 1579, 0x4300 }, { 1582, 0x4c08 },
- { 1586, 0x40a2 }, { 1590, 0xc32a }, { 1597, 0x9810 }, { 1601, 0x2e00 },
- /* 0x5900 */
- { 1605, 0x8000 }, { 1606, 0x1670 }, { 1612, 0x6e84 }, { 1619, 0x4082 },
- { 1622, 0xc390 }, { 1628, 0x04b3 }, { 1634, 0x7c85 }, { 1642, 0x2118 },
- { 1646, 0x041c }, { 1650, 0x02c8 }, { 1654, 0x1120 }, { 1657, 0x4a00 },
- { 1660, 0x0a48 }, { 1664, 0x361b }, { 1672, 0x5540 }, { 1677, 0x8900 },
- /* 0x5a00 */
- { 1680, 0x000a }, { 1682, 0x9902 }, { 1687, 0x0221 }, { 1690, 0x1040 },
- { 1692, 0x0242 }, { 1695, 0x0400 }, { 1696, 0x0044 }, { 1698, 0x0000 },
- { 1698, 0x0000 }, { 1698, 0x0c04 }, { 1701, 0x0010 }, { 1702, 0x0000 },
- { 1702, 0x1216 }, { 1707, 0x0000 }, { 1707, 0x0242 }, { 1710, 0x0000 },
- /* 0x5b00 */
- { 1710, 0x1a20 }, { 1714, 0x0040 }, { 1715, 0x0400 }, { 1716, 0x0000 },
- { 1716, 0x0009 }, { 1718, 0xb5b3 }, { 1728, 0x0a18 }, { 1732, 0x1523 },
- { 1738, 0x9ba0 }, { 1745, 0x1fe8 }, { 1754, 0x507c }, { 1761, 0x8379 },
- { 1769, 0x10fd }, { 1777, 0xc09d }, { 1784, 0xdbf6 }, { 1796, 0x0560 },
- /* 0x5c00 */
- { 1800, 0xef92 }, { 1810, 0x0242 }, { 1813, 0x0110 }, { 1815, 0xdf02 },
- { 1823, 0x6961 }, { 1830, 0x0822 }, { 1833, 0x9035 }, { 1839, 0x0202 },
- { 1841, 0x0000 }, { 1841, 0x0003 }, { 1843, 0x1a02 }, { 1847, 0x45aa },
- { 1854, 0x0001 }, { 1855, 0x0200 }, { 1856, 0x8101 }, { 1859, 0x2851 },
- /* 0x5d00 */
- { 1864, 0x6080 }, { 1867, 0x02d2 }, { 1872, 0x0280 }, { 1874, 0x0000 },
- { 1874, 0x1800 }, { 1876, 0x0001 }, { 1877, 0x9200 }, { 1880, 0x0000 },
- { 1880, 0x0880 }, { 1882, 0x2000 }, { 1883, 0x0405 }, { 1886, 0x3500 },
- { 1890, 0x2000 }, { 1891, 0x6044 }, { 1895, 0x49e6 }, { 1903, 0x609e },
- /* 0x5e00 */
- { 1910, 0x104c }, { 1914, 0x2a42 }, { 1919, 0x2820 }, { 1922, 0xa148 },
- { 1927, 0x10b1 }, { 1932, 0x8020 }, { 1934, 0x000e }, { 1937, 0x7b9c },
- { 1947, 0x8490 }, { 1951, 0x14a0 }, { 1955, 0x28c1 }, { 1960, 0x41e0 },
- { 1965, 0x0704 }, { 1969, 0x8c49 }, { 1975, 0x100d }, { 1979, 0x0cc8 },
- /* 0x5f00 */
- { 1984, 0x8412 }, { 1988, 0x89ba }, { 1996, 0x02c0 }, { 1999, 0x1422 },
- { 2003, 0x5500 }, { 2007, 0x0ac0 }, { 2011, 0x3ec4 }, { 2019, 0x9283 },
- { 2025, 0x1ca3 }, { 2032, 0x4387 }, { 2039, 0x4703 }, { 2045, 0x22a0 },
- { 2049, 0x3028 }, { 2053, 0x03c0 }, { 2057, 0x0801 }, { 2059, 0xa020 },
- /* 0x6000 */
- { 2062, 0x8000 }, { 2063, 0x3044 }, { 2067, 0x85a3 }, { 2074, 0x0000 },
- { 2074, 0x200e }, { 2078, 0x2225 }, { 2083, 0xb73c }, { 2093, 0x0001 },
- { 2094, 0x3220 }, { 2098, 0x8c50 }, { 2103, 0x0099 }, { 2107, 0x315d },
- { 2115, 0x00a0 }, { 2117, 0x9402 }, { 2121, 0x0003 }, { 2123, 0x0e4b },
- /* 0x6100 */
- { 2130, 0xe342 }, { 2137, 0x8c20 }, { 2141, 0x0080 }, { 2142, 0xd091 },
- { 2148, 0x1d94 }, { 2155, 0xa328 }, { 2161, 0x499c }, { 2168, 0x60c1 },
- { 2173, 0x4406 }, { 2177, 0x0713 }, { 2183, 0x5a90 }, { 2189, 0x4444 },
- { 2193, 0x0f88 }, { 2199, 0x0000 }, { 2199, 0x0040 }, { 2200, 0x95c4 },
- /* 0x6200 */
- { 2207, 0x7581 }, { 2214, 0x8447 }, { 2220, 0x4402 }, { 2223, 0xc053 },
- { 2229, 0x2b83 }, { 2236, 0x0108 }, { 2238, 0x4000 }, { 2239, 0x9242 },
- { 2244, 0x0611 }, { 2248, 0x09a6 }, { 2254, 0x0800 }, { 2255, 0x3222 },
- { 2260, 0xb384 }, { 2267, 0x1bdd }, { 2277, 0xf000 }, { 2281, 0xc08a },
- /* 0x6300 */
- { 2286, 0x0282 }, { 2289, 0x0002 }, { 2290, 0x8800 }, { 2292, 0x6c00 },
- { 2296, 0x9200 }, { 2299, 0x0021 }, { 2301, 0x4180 }, { 2304, 0x8c84 },
- { 2309, 0x1308 }, { 2313, 0x0944 }, { 2317, 0x07a7 }, { 2325, 0x0000 },
- { 2325, 0x8051 }, { 2329, 0x0c41 }, { 2333, 0x6002 }, { 2336, 0x00d0 },
- /* 0x6400 */
- { 2339, 0xa000 }, { 2341, 0x10d0 }, { 2345, 0x3004 }, { 2348, 0x4400 },
- { 2350, 0x0000 }, { 2350, 0x0100 }, { 2351, 0x8201 }, { 2354, 0x0700 },
- { 2357, 0x0100 }, { 2358, 0x440e }, { 2363, 0x6830 }, { 2368, 0x0805 },
- { 2371, 0x64b2 }, { 2378, 0x0514 }, { 2382, 0x10e6 }, { 2388, 0x4414 },
- /* 0x6500 */
- { 2392, 0x0011 }, { 2394, 0x2100 }, { 2396, 0x9c08 }, { 2401, 0xcbc0 },
- { 2408, 0xe120 }, { 2413, 0x40c2 }, { 2417, 0x304c }, { 2422, 0x41b4 },
- { 2428, 0x10ac }, { 2433, 0x9a83 }, { 2440, 0x98b2 }, { 2447, 0x3281 },
- { 2452, 0x9822 }, { 2457, 0x0084 }, { 2459, 0x3369 }, { 2467, 0xbc12 },
- /* 0x6600 */
- { 2474, 0xd6c0 }, { 2481, 0xc03b }, { 2488, 0xa1a1 }, { 2494, 0x0c53 },
- { 2500, 0x8a1e }, { 2507, 0xea00 }, { 2512, 0xcbf0 }, { 2521, 0x05d8 },
- { 2527, 0x4390 }, { 2532, 0x21c3 }, { 2538, 0x4805 }, { 2542, 0x4a1c },
- { 2548, 0x02d0 }, { 2552, 0x3240 }, { 2556, 0x0041 }, { 2558, 0xd79d },
- /* 0x6700 */
- { 2569, 0x2b09 }, { 2575, 0xe8b0 }, { 2582, 0x7dc0 }, { 2590, 0x2452 },
- { 2595, 0xc240 }, { 2599, 0xd04b }, { 2606, 0xa000 }, { 2608, 0xc8ab },
- { 2616, 0x8a80 }, { 2620, 0x34a9 }, { 2627, 0x8000 }, { 2628, 0x41c9 },
- { 2634, 0x8010 }, { 2636, 0x241f }, { 2643, 0x9200 }, { 2646, 0x487b },
- /* 0x6800 */
- { 2654, 0x0000 }, { 2654, 0x00cc }, { 2658, 0x8406 }, { 2662, 0x3300 },
- { 2666, 0x410f }, { 2672, 0x001b }, { 2676, 0x2000 }, { 2677, 0x8040 },
- { 2679, 0x8022 }, { 2682, 0xa098 }, { 2687, 0xa186 }, { 2693, 0x006b },
- { 2698, 0x2a30 }, { 2703, 0x85a4 }, { 2709, 0x4181 }, { 2713, 0x0604 },
- /* 0x6900 */
- { 2716, 0x6021 }, { 2720, 0x0004 }, { 2721, 0x0080 }, { 2722, 0xa001 },
- { 2725, 0x0400 }, { 2726, 0x46b8 }, { 2733, 0xe90f }, { 2742, 0x03a0 },
- { 2746, 0x0000 }, { 2746, 0x1820 }, { 2749, 0x40a0 }, { 2752, 0x0810 },
- { 2754, 0x380a }, { 2759, 0x0001 }, { 2760, 0x0500 }, { 2762, 0xa800 },
- /* 0x6a00 */
- { 2765, 0x0404 }, { 2767, 0xc28a }, { 2773, 0x000a }, { 2775, 0x2720 },
- { 2780, 0x0910 }, { 2783, 0x830c }, { 2788, 0x0802 }, { 2790, 0x0000 },
- { 2790, 0x6211 }, { 2795, 0x1080 }, { 2797, 0x000c }, { 2799, 0x0808 },
- { 2801, 0x000c }, { 2803, 0x0c08 }, { 2806, 0x0000 }, { 2806, 0x0840 },
- /* 0x6b00 */
- { 2808, 0x1410 }, { 2811, 0x0044 }, { 2813, 0x000b }, { 2816, 0x6404 },
- { 2820, 0x50c0 }, { 2824, 0x8001 }, { 2826, 0x047e }, { 2833, 0x8984 },
- { 2838, 0x0658 }, { 2843, 0x4140 }, { 2846, 0xc000 }, { 2848, 0x94a4 },
- { 2854, 0xa862 }, { 2860, 0x09dc }, { 2867, 0x1800 }, { 2869, 0x0000 },
- /* 0x6c00 */
- { 2869, 0x8100 }, { 2871, 0x000a }, { 2873, 0x0008 }, { 2874, 0x4190 },
- { 2878, 0x4007 }, { 2882, 0xe4a1 }, { 2889, 0x2501 }, { 2893, 0x6445 },
- { 2899, 0x11ee }, { 2907, 0x0e7d }, { 2916, 0x4800 }, { 2918, 0xfb08 },
- { 2926, 0x1616 }, { 2932, 0x08a8 }, { 2936, 0xc92e }, { 2944, 0x0009 },
- /* 0x6d00 */
- { 2946, 0x1800 }, { 2948, 0x4a82 }, { 2953, 0x06a0 }, { 2957, 0x6b64 },
- { 2965, 0x0002 }, { 2966, 0x1600 }, { 2969, 0x5648 }, { 2975, 0x8390 },
- { 2980, 0x73a0 }, { 2987, 0x002a }, { 2990, 0x8000 }, { 2991, 0x0024 },
- { 2993, 0x88f9 }, { 3001, 0x4702 }, { 3006, 0x4d02 }, { 3011, 0x0faa },
- /* 0x6e00 */
- { 3019, 0x0000 }, { 3019, 0x8e80 }, { 3024, 0xb87b }, { 3034, 0x7554 },
- { 3042, 0x2418 }, { 3046, 0xd940 }, { 3052, 0xc880 }, { 3056, 0x040c },
- { 3059, 0x0000 }, { 3059, 0xb041 }, { 3064, 0x8c24 }, { 3069, 0x0442 },
- { 3072, 0x5a34 }, { 3079, 0x001a }, { 3082, 0x8000 }, { 3083, 0xc110 },
- /* 0x6f00 */
- { 3087, 0x8046 }, { 3091, 0x0032 }, { 3094, 0x180d }, { 3099, 0x8106 },
- { 3103, 0x0002 }, { 3104, 0xcd92 }, { 3112, 0x6014 }, { 3116, 0x7401 },
- { 3121, 0x6112 }, { 3126, 0x0091 }, { 3129, 0xc098 }, { 3134, 0x420a },
- { 3138, 0x040f }, { 3143, 0x8420 }, { 3146, 0x9a13 }, { 3153, 0x4002 },
- /* 0x7000 */
- { 3155, 0x8a62 }, { 3161, 0xfd22 }, { 3170, 0x8188 }, { 3174, 0x4080 },
- { 3176, 0x1000 }, { 3177, 0x2103 }, { 3181, 0x0808 }, { 3183, 0x3101 },
- { 3187, 0x4420 }, { 3190, 0x0704 }, { 3194, 0xb812 }, { 3200, 0x0388 },
- { 3204, 0x8900 }, { 3207, 0xa300 }, { 3211, 0x0000 }, { 3211, 0x2202 },
- /* 0x7100 */
- { 3214, 0x1210 }, { 3217, 0x4600 }, { 3220, 0x0042 }, { 3222, 0x0041 },
- { 3224, 0x5680 }, { 3229, 0x5241 }, { 3234, 0x52f0 }, { 3241, 0x2000 },
- { 3242, 0x8610 }, { 3246, 0x8214 }, { 3250, 0x1004 }, { 3252, 0x4602 },
- { 3256, 0x430a }, { 3261, 0x8035 }, { 3266, 0x60e0 }, { 3271, 0xd800 },
- /* 0x7200 */
- { 3275, 0x0041 }, { 3277, 0x0801 }, { 3279, 0x3400 }, { 3282, 0x6c65 },
- { 3290, 0x11c1 }, { 3295, 0xab04 }, { 3301, 0x0286 }, { 3305, 0x2204 },
- { 3308, 0x0003 }, { 3310, 0x0000 }, { 3310, 0x9084 }, { 3314, 0x0000 },
- { 3314, 0x4015 }, { 3318, 0x0281 }, { 3321, 0x0202 }, { 3323, 0x3300 },
- /* 0x7300 */
- { 3327, 0x0400 }, { 3328, 0x3840 }, { 3332, 0x0e20 }, { 3336, 0xc0c0 },
- { 3340, 0x0030 }, { 3342, 0x0085 }, { 3345, 0x0500 }, { 3347, 0x0d25 },
- { 3353, 0x4ad0 }, { 3359, 0x81d0 }, { 3364, 0x2280 }, { 3367, 0x020c },
- { 3370, 0xb605 }, { 3377, 0x6240 }, { 3381, 0x2679 }, { 3389, 0x6280 },
- /* 0x7400 */
- { 3393, 0x02ea }, { 3399, 0x0808 }, { 3401, 0xdd67 }, { 3412, 0x8579 },
- { 3420, 0x081b }, { 3425, 0xdea0 }, { 3433, 0x8735 }, { 3441, 0x4000 },
- { 3442, 0x0a8c }, { 3447, 0xd100 }, { 3451, 0x05aa }, { 3457, 0xa225 },
- { 3463, 0x8440 }, { 3466, 0x1510 }, { 3470, 0x404d }, { 3475, 0x0080 },
- /* 0x7500 */
- { 3476, 0x0012 }, { 3478, 0x8d22 }, { 3484, 0x1968 }, { 3490, 0x058f },
- { 3497, 0x9080 }, { 3500, 0x3a1a }, { 3507, 0x8464 }, { 3512, 0x8561 },
- { 3518, 0xccc0 }, { 3524, 0x2002 }, { 3526, 0x0820 }, { 3528, 0x732e },
- { 3537, 0x20a4 }, { 3541, 0x0b34 }, { 3547, 0x0004 }, { 3548, 0x1415 },
- /* 0x7600 */
- { 3553, 0x2001 }, { 3555, 0x8200 }, { 3557, 0x0057 }, { 3562, 0x0800 },
- { 3563, 0x5004 }, { 3566, 0x0044 }, { 3568, 0x1212 }, { 3572, 0x7905 },
- { 3579, 0x40d0 }, { 3583, 0x0009 }, { 3585, 0x4000 }, { 3586, 0x8400 },
- { 3588, 0x054c }, { 3593, 0xd844 }, { 3599, 0x409a }, { 3604, 0x5114 },
- /* 0x7700 */
- { 3609, 0x0b12 }, { 3614, 0x4000 }, { 3615, 0x0201 }, { 3617, 0x1580 },
- { 3621, 0x2001 }, { 3623, 0x0800 }, { 3624, 0x084a }, { 3628, 0xc200 },
- { 3631, 0x0800 }, { 3632, 0x4002 }, { 3634, 0x3020 }, { 3637, 0x9809 },
- { 3642, 0x0000 }, { 3642, 0x1880 }, { 3645, 0xe22c }, { 3652, 0x0008 },
- /* 0x7800 */
- { 3653, 0x0004 }, { 3654, 0x0004 }, { 3655, 0x10e0 }, { 3659, 0x0014 },
- { 3661, 0x8020 }, { 3663, 0x2000 }, { 3664, 0x9800 }, { 3667, 0x1000 },
- { 3668, 0x7082 }, { 3673, 0x0082 }, { 3675, 0x0288 }, { 3678, 0x1c00 },
- { 3681, 0x4c22 }, { 3686, 0x0001 }, { 3687, 0x9100 }, { 3690, 0x0820 },
- /* 0x7900 */
- { 3692, 0x4002 }, { 3694, 0x0040 }, { 3695, 0x1c00 }, { 3698, 0x4400 },
- { 3700, 0x0383 }, { 3705, 0x7cc1 }, { 3713, 0x2121 }, { 3717, 0x8400 },
- { 3719, 0xe002 }, { 3723, 0x0002 }, { 3724, 0x44c0 }, { 3728, 0xe20a },
- { 3734, 0x0e03 }, { 3739, 0x8126 }, { 3744, 0x02d0 }, { 3748, 0x0800 },
- /* 0x7a00 */
- { 3749, 0x2921 }, { 3754, 0x9690 }, { 3760, 0x4001 }, { 3762, 0xb8c2 },
- { 3769, 0x6241 }, { 3774, 0x0080 }, { 3775, 0x0a06 }, { 3779, 0xa651 },
- { 3786, 0x0112 }, { 3789, 0x812c }, { 3794, 0xc600 }, { 3798, 0x0400 },
- { 3799, 0x0cb0 }, { 3804, 0xa280 }, { 3808, 0xa429 }, { 3814, 0x8640 },
- /* 0x7b00 */
- { 3818, 0x8000 }, { 3819, 0x4a02 }, { 3823, 0x3041 }, { 3827, 0x0200 },
- { 3828, 0xba40 }, { 3834, 0x0057 }, { 3839, 0x5001 }, { 3842, 0x2020 },
- { 3844, 0x8880 }, { 3847, 0x24b0 }, { 3852, 0x2002 }, { 3854, 0x0112 },
- { 3857, 0x02d3 }, { 3863, 0x0004 }, { 3864, 0x0211 }, { 3867, 0x0000 },
- /* 0x7c00 */
- { 3867, 0x0080 }, { 3868, 0x4004 }, { 3870, 0x0c82 }, { 3874, 0xe000 },
- { 3877, 0x3008 }, { 3880, 0x0000 }, { 3880, 0x1011 }, { 3883, 0x0008 },
- { 3884, 0x0208 }, { 3886, 0x81a4 }, { 3891, 0x40a0 }, { 3894, 0x420e },
- { 3899, 0x0400 }, { 3900, 0xc040 }, { 3903, 0x0081 }, { 3905, 0x4800 },
- /* 0x7d00 */
- { 3907, 0x2df5 }, { 3917, 0x0f91 }, { 3924, 0xd807 }, { 3931, 0x0629 },
- { 3936, 0x007c }, { 3941, 0x4001 }, { 3943, 0x4546 }, { 3949, 0x824e },
- { 3955, 0xc000 }, { 3957, 0x1008 }, { 3959, 0x3005 }, { 3963, 0xed36 },
- { 3973, 0x0c80 }, { 3976, 0x6540 }, { 3981, 0x930b }, { 3988, 0x0810 },
- /* 0x7e00 */
- { 3990, 0x0600 }, { 3992, 0xe820 }, { 3997, 0xc80a }, { 4002, 0x6082 },
- { 4006, 0x00ca }, { 4010, 0x4034 }, { 4014, 0x2e02 }, { 4019, 0x1201 },
- { 4022, 0x9004 }, { 4025, 0x1948 }, { 4030, 0x0000 }, { 4030, 0x0000 },
- { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0000 },
- /* 0x7f00 */
- { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0000 }, { 4030, 0x0540 },
- { 4033, 0x1000 }, { 4034, 0x0031 }, { 4037, 0x4c00 }, { 4040, 0x02a5 },
- { 4045, 0x5520 }, { 4050, 0x4410 }, { 4053, 0x0310 }, { 4056, 0x2304 },
- { 4060, 0x5422 }, { 4065, 0x8034 }, { 4069, 0x0a03 }, { 4073, 0x1201 },
- /* 0x8000 */
- { 4076, 0x126b }, { 4083, 0x01a1 }, { 4087, 0x2000 }, { 4088, 0xa048 },
- { 4092, 0x0448 }, { 4095, 0x4540 }, { 4099, 0x8000 }, { 4100, 0xe08d },
- { 4107, 0x1af0 }, { 4114, 0x2840 }, { 4117, 0x8626 }, { 4123, 0x0416 },
- { 4127, 0x5018 }, { 4131, 0x4c00 }, { 4134, 0x0032 }, { 4137, 0x2112 },
- /* 0x8100 */
- { 4141, 0x05e4 }, { 4147, 0x0d00 }, { 4150, 0x8a08 }, { 4154, 0x4200 },
- { 4156, 0x4800 }, { 4158, 0x0033 }, { 4162, 0x0860 }, { 4165, 0x8703 },
- { 4171, 0x8501 }, { 4175, 0x3400 }, { 4178, 0x0109 }, { 4181, 0xe428 },
- { 4187, 0x2045 }, { 4191, 0x8100 }, { 4193, 0x25a8 }, { 4199, 0x5c18 },
- /* 0x8200 */
- { 4205, 0x35a0 }, { 4211, 0xd804 }, { 4216, 0x1c02 }, { 4220, 0x02e0 },
- { 4224, 0x00a1 }, { 4227, 0x0200 }, { 4228, 0xc050 }, { 4232, 0x4146 },
- { 4237, 0x6800 }, { 4240, 0xa604 }, { 4245, 0xf260 }, { 4252, 0xbb8a },
- { 4261, 0x0000 }, { 4261, 0xc8b6 }, { 4269, 0x00e2 }, { 4273, 0x6002 },
- /* 0x8300 */
- { 4276, 0x023e }, { 4282, 0x0080 }, { 4283, 0x8900 }, { 4286, 0x0372 },
- { 4292, 0x8681 }, { 4297, 0x0006 }, { 4299, 0x0000 }, { 4299, 0x0888 },
- { 4302, 0x4600 }, { 4305, 0x4140 }, { 4308, 0x0e04 }, { 4312, 0x2000 },
- { 4313, 0x1622 }, { 4318, 0x1048 }, { 4321, 0x8a00 }, { 4324, 0x2217 },
- /* 0x8400 */
- { 4330, 0x7418 }, { 4336, 0x0000 }, { 4336, 0x1200 }, { 4338, 0x2102 },
- { 4341, 0x0200 }, { 4342, 0x0880 }, { 4344, 0x984a }, { 4350, 0x0420 },
- { 4352, 0x0000 }, { 4352, 0x1211 }, { 4356, 0x0002 }, { 4357, 0x9904 },
- { 4362, 0x2a55 }, { 4369, 0x0402 }, { 4371, 0x5000 }, { 4373, 0x1010 },
- /* 0x8500 */
- { 4375, 0x0000 }, { 4375, 0x459a }, { 4382, 0xb02a }, { 4388, 0xa000 },
- { 4390, 0x420a }, { 4394, 0x0208 }, { 4396, 0x2708 }, { 4401, 0x0000 },
- { 4401, 0x8090 }, { 4404, 0x0812 }, { 4407, 0x8740 }, { 4412, 0x0401 },
- { 4414, 0xe202 }, { 4419, 0x3020 }, { 4422, 0x0630 }, { 4426, 0x8c80 },
- /* 0x8600 */
- { 4430, 0x04c4 }, { 4434, 0x04c0 }, { 4437, 0x2000 }, { 4438, 0x8000 },
- { 4439, 0x4000 }, { 4440, 0xd831 }, { 4447, 0x0080 }, { 4448, 0x0200 },
- { 4449, 0x1400 }, { 4451, 0x0008 }, { 4452, 0x0218 }, { 4455, 0x0000 },
- { 4455, 0x0880 }, { 4457, 0x8a10 }, { 4461, 0x2010 }, { 4463, 0x4000 },
- /* 0x8700 */
- { 4464, 0x010d }, { 4468, 0x1500 }, { 4471, 0x0000 }, { 4471, 0x0000 },
- { 4471, 0x4000 }, { 4472, 0x80a0 }, { 4475, 0x0140 }, { 4477, 0x0150 },
- { 4480, 0x2004 }, { 4482, 0x8000 }, { 4483, 0x0004 }, { 4484, 0x0408 },
- { 4486, 0x0010 }, { 4487, 0x0000 }, { 4487, 0x9001 }, { 4490, 0x4a04 },
- /* 0x8800 */
- { 4494, 0x0020 }, { 4495, 0x8000 }, { 4496, 0x000c }, { 4498, 0x0842 },
- { 4501, 0x3041 }, { 4505, 0x2a8c }, { 4511, 0x090e }, { 4516, 0xc085 },
- { 4521, 0x2906 }, { 4526, 0x40c4 }, { 4530, 0x0800 }, { 4531, 0x0010 },
- { 4532, 0x8006 }, { 4535, 0xb230 }, { 4541, 0x0102 }, { 4543, 0x2138 },
- /* 0x8900 */
- { 4548, 0x0080 }, { 4549, 0x030d }, { 4554, 0x0420 }, { 4556, 0x0940 },
- { 4559, 0x0012 }, { 4561, 0x8000 }, { 4562, 0x0410 }, { 4564, 0x8004 },
- { 4566, 0x88ca }, { 4572, 0x0048 }, { 4574, 0x0602 }, { 4577, 0x2404 },
- { 4580, 0x0001 }, { 4581, 0x0004 }, { 4582, 0x0008 }, { 4583, 0x0110 },
- /* 0x8a00 */
- { 4585, 0x550d }, { 4592, 0xa9c8 }, { 4599, 0x2428 }, { 4603, 0x0c52 },
- { 4608, 0x0000 }, { 4608, 0x4831 }, { 4613, 0x624d }, { 4620, 0x022f },
- { 4626, 0x30a0 }, { 4630, 0x4128 }, { 4634, 0x057b }, { 4642, 0xd205 },
- { 4648, 0xa894 }, { 4654, 0x1844 }, { 4658, 0x6cc2 }, { 4665, 0x45c2 },
- /* 0x8b00 */
- { 4671, 0x4017 }, { 4676, 0x2ed1 }, { 4684, 0x1901 }, { 4688, 0x0208 },
- { 4690, 0xc202 }, { 4694, 0x1500 }, { 4697, 0x9040 }, { 4700, 0x2091 },
- { 4704, 0x0401 }, { 4706, 0x044d }, { 4711, 0x0000 }, { 4711, 0x0000 },
- { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x0000 },
- /* 0x8c00 */
- { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x0000 }, { 4711, 0x8080 },
- { 4713, 0x1542 }, { 4718, 0x0420 }, { 4720, 0x0c02 }, { 4723, 0x0600 },
- { 4725, 0x1404 }, { 4728, 0x6000 }, { 4730, 0x9f87 }, { 4740, 0xb9d9 },
- { 4750, 0x059f }, { 4758, 0x540a }, { 4763, 0x245d }, { 4770, 0x3810 },
- /* 0x8d00 */
- { 4774, 0x25b0 }, { 4780, 0x0048 }, { 4782, 0x0000 }, { 4782, 0x0000 },
- { 4782, 0x0000 }, { 4782, 0x0000 }, { 4782, 0x0850 }, { 4785, 0x0099 },
- { 4789, 0x0420 }, { 4791, 0x0200 }, { 4792, 0x0108 }, { 4794, 0x4408 },
- { 4797, 0x9840 }, { 4801, 0x2800 }, { 4803, 0x810a }, { 4807, 0x0008 },
- /* 0x8e00 */
- { 4808, 0x8400 }, { 4810, 0x4001 }, { 4812, 0x0400 }, { 4813, 0x0021 },
- { 4815, 0x0794 }, { 4821, 0x8200 }, { 4823, 0x0001 }, { 4824, 0x0050 },
- { 4826, 0x2482 }, { 4830, 0x0000 }, { 4830, 0x1c00 }, { 4833, 0x0000 },
- { 4833, 0x3c01 }, { 4838, 0x8004 }, { 4840, 0x0800 }, { 4841, 0x4900 },
- /* 0x8f00 */
- { 4844, 0x0228 }, { 4847, 0xf83c }, { 4856, 0x86c0 }, { 4861, 0xcb08 },
- { 4867, 0x6230 }, { 4872, 0xa000 }, { 4874, 0x0004 }, { 4875, 0x0000 },
- { 4875, 0x0000 }, { 4875, 0x1800 }, { 4877, 0xa148 }, { 4882, 0x0007 },
- { 4885, 0x4024 }, { 4888, 0x0012 }, { 4890, 0x2c40 }, { 4894, 0x2285 },
- /* 0x9000 */
- { 4899, 0xa96f }, { 4909, 0xe6b3 }, { 4919, 0x400f }, { 4924, 0x5126 },
- { 4930, 0x6c86 }, { 4937, 0x723b }, { 4946, 0xe20b }, { 4953, 0xb5a4 },
- { 4961, 0x859f }, { 4970, 0x0222 }, { 4973, 0x854c }, { 4979, 0x0123 },
- { 4983, 0x0402 }, { 4985, 0x4000 }, { 4986, 0x2102 }, { 4989, 0x2020 },
- /* 0x9100 */
- { 4991, 0x0004 }, { 4992, 0x0224 }, { 4995, 0x2080 }, { 4997, 0x0004 },
- { 4998, 0x7e00 }, { 5004, 0x0004 }, { 5005, 0x1604 }, { 5009, 0x01a0 },
- { 5012, 0x2a80 }, { 5016, 0x1004 }, { 5018, 0xd800 }, { 5022, 0x0032 },
- { 5025, 0xfa81 }, { 5033, 0x3183 }, { 5039, 0x0488 }, { 5042, 0x0020 },
- /* 0x9200 */
- { 5043, 0x2000 }, { 5044, 0x4087 }, { 5049, 0x0000 }, { 5049, 0x8410 },
- { 5052, 0x0221 }, { 5055, 0x4880 }, { 5058, 0x0074 }, { 5062, 0x0000 },
- { 5062, 0x0029 }, { 5065, 0x114a }, { 5070, 0x0000 }, { 5070, 0x02c8 },
- { 5074, 0x9000 }, { 5076, 0x0004 }, { 5077, 0x0410 }, { 5079, 0x1100 },
- /* 0x9300 */
- { 5081, 0x0010 }, { 5082, 0xc501 }, { 5087, 0xc957 }, { 5096, 0x0000 },
- { 5096, 0x2d00 }, { 5100, 0x0810 }, { 5102, 0x4000 }, { 5103, 0x5020 },
- { 5106, 0x1000 }, { 5107, 0x0450 }, { 5110, 0x3088 }, { 5114, 0x0001 },
- { 5115, 0x0008 }, { 5116, 0x4002 }, { 5118, 0x0012 }, { 5120, 0x0040 },
- /* 0x9400 */
- { 5121, 0x0010 }, { 5122, 0x0100 }, { 5123, 0x0820 }, { 5125, 0x0120 },
- { 5127, 0x0010 }, { 5128, 0x0806 }, { 5131, 0x0000 }, { 5131, 0xa000 },
- { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 },
- { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 },
- /* 0x9500 */
- { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 },
- { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0000 }, { 5133, 0x0080 },
- { 5134, 0x8a09 }, { 5139, 0x011e }, { 5144, 0x2138 }, { 5149, 0x1802 },
- { 5152, 0x0480 }, { 5154, 0x1070 }, { 5158, 0x0006 }, { 5160, 0x0000 },
- /* 0x9600 */
- { 5160, 0x0000 }, { 5160, 0x1000 }, { 5161, 0x4402 }, { 5164, 0x8804 },
- { 5167, 0x3815 }, { 5173, 0xf801 }, { 5179, 0x041c }, { 5183, 0x21e9 },
- { 5190, 0x6c60 }, { 5196, 0x1b30 }, { 5202, 0x0588 }, { 5206, 0x0882 },
- { 5209, 0x7af3 }, { 5220, 0x1a60 }, { 5225, 0x870c }, { 5231, 0x0ac5 },
- /* 0x9700 */
- { 5237, 0x00c1 }, { 5240, 0x524a }, { 5246, 0x0080 }, { 5247, 0x2205 },
- { 5251, 0x0114 }, { 5254, 0x5042 }, { 5258, 0x2206 }, { 5262, 0x0490 },
- { 5265, 0xa800 }, { 5268, 0x0000 }, { 5268, 0x2901 }, { 5272, 0x0000 },
- { 5272, 0x0840 }, { 5274, 0x1008 }, { 5276, 0x0000 }, { 5276, 0x8848 },
- /* 0x9800 */
- { 5280, 0x156f }, { 5289, 0x018f }, { 5295, 0x2000 }, { 5296, 0x0b01 },
- { 5300, 0x7040 }, { 5304, 0x4510 }, { 5308, 0x88a0 }, { 5312, 0x0000 },
- { 5312, 0x0000 }, { 5312, 0x0000 }, { 5312, 0x8100 }, { 5314, 0x0002 },
- { 5315, 0x0090 }, { 5317, 0x9800 }, { 5320, 0xe006 }, { 5325, 0x7010 },
- /* 0x9900 */
- { 5329, 0x1608 }, { 5333, 0x4109 }, { 5337, 0x0101 }, { 5339, 0x0000 },
- { 5339, 0x3a20 }, { 5344, 0x0096 }, { 5348, 0x0000 }, { 5348, 0x0000 },
- { 5348, 0x0000 }, { 5348, 0x2240 }, { 5351, 0x7120 }, { 5356, 0x021a },
- { 5360, 0x0002 }, { 5361, 0xa227 }, { 5368, 0x2000 }, { 5369, 0x8002 },
- /* 0x9a00 */
- { 5371, 0xc102 }, { 5375, 0x0200 }, { 5376, 0x0800 }, { 5377, 0x00c1 },
- { 5380, 0x2029 }, { 5384, 0x8ca0 }, { 5389, 0x0624 }, { 5393, 0x0000 },
- { 5393, 0x0000 }, { 5393, 0x0000 }, { 5393, 0x0100 }, { 5394, 0x0100 },
- { 5395, 0x0000 }, { 5395, 0x0118 }, { 5398, 0x4020 }, { 5400, 0x0000 },
- /* 0x9b00 */
- { 5400, 0x0000 }, { 5400, 0x0400 }, { 5401, 0x0480 }, { 5403, 0x1002 },
- { 5405, 0x803e }, { 5411, 0x0410 }, { 5413, 0x8000 }, { 5414, 0x0000 },
- { 5414, 0x4000 }, { 5415, 0x8002 }, { 5417, 0x4800 }, { 5419, 0x0000 },
- { 5419, 0x0200 }, { 5420, 0x0040 }, { 5421, 0x0110 }, { 5423, 0x0000 },
- /* 0x9c00 */
- { 5423, 0x2000 }, { 5424, 0x0025 }, { 5427, 0x0020 }, { 5428, 0x0804 },
- { 5430, 0x0280 }, { 5432, 0x0080 }, { 5433, 0x0000 }, { 5433, 0x0000 },
- { 5433, 0x0000 }, { 5433, 0x0000 }, { 5433, 0x0000 }, { 5433, 0x0000 },
- { 5433, 0x0000 }, { 5433, 0x0000 }, { 5433, 0x02a0 }, { 5436, 0x0058 },
- /* 0x9d00 */
- { 5439, 0x0200 }, { 5440, 0x0800 }, { 5441, 0x0140 }, { 5443, 0x0800 },
- { 5444, 0x0000 }, { 5444, 0x2002 }, { 5446, 0x1003 }, { 5449, 0x0004 },
- { 5450, 0x0000 }, { 5450, 0x0000 }, { 5450, 0x8200 }, { 5452, 0x0010 },
- { 5453, 0x0010 }, { 5454, 0x0080 }, { 5455, 0x0000 }, { 5455, 0x0704 },
- /* 0x9e00 */
- { 5459, 0x0000 }, { 5459, 0x4400 }, { 5461, 0x0000 }, { 5461, 0x0000 },
- { 5461, 0x0000 }, { 5461, 0x0000 }, { 5461, 0x0000 }, { 5461, 0xa220 },
- { 5465, 0x0000 }, { 5465, 0xa08c }, { 5470, 0x0020 }, { 5471, 0x4830 },
- { 5475, 0x6008 }, { 5478, 0x5912 }, { 5484, 0x0100 }, { 5485, 0x0010 },
- /* 0x9f00 */
- { 5486, 0x4180 }, { 5489, 0x0008 }, { 5490, 0x0001 }, { 5491, 0x0800 },
- { 5492, 0x4c00 }, { 5495, 0x8004 }, { 5497, 0x1482 }, { 5501, 0x0080 },
- { 5502, 0x2000 }, { 5503, 0x1021 },
-};
-static const Summary16 ksc5601_uni2indx_pageac[698] = {
- /* 0xac00 */
- { 5506, 0x0793 }, { 5513, 0x3eff }, { 5526, 0xb011 }, { 5531, 0x1303 },
- { 5536, 0x2801 }, { 5539, 0x1110 }, { 5542, 0x0000 }, { 5542, 0x0593 },
- { 5548, 0x1e7b }, { 5558, 0xb011 }, { 5563, 0x9703 }, { 5570, 0x3b01 },
- { 5576, 0x1112 }, { 5580, 0x00a0 }, { 5582, 0x9593 }, { 5590, 0x306b },
- /* 0xad00 */
- { 5597, 0xb051 }, { 5603, 0x1102 }, { 5606, 0x3201 }, { 5610, 0x1130 },
- { 5614, 0x02b0 }, { 5618, 0x0111 }, { 5621, 0x300a }, { 5625, 0xb879 },
- { 5634, 0x1306 }, { 5639, 0x3001 }, { 5642, 0x0010 }, { 5643, 0x0080 },
- { 5644, 0x0113 }, { 5648, 0x100b }, { 5652, 0x0011 }, { 5654, 0x9300 },
- /* 0xae00 */
- { 5658, 0x2b03 }, { 5664, 0x0010 }, { 5665, 0x0000 }, { 5665, 0x0593 },
- { 5671, 0x746b }, { 5680, 0xb051 }, { 5686, 0x1323 }, { 5692, 0x3b01 },
- { 5698, 0x1030 }, { 5701, 0x0000 }, { 5701, 0x0000 }, { 5701, 0x7000 },
- { 5704, 0xb011 }, { 5709, 0x1303 }, { 5714, 0x2900 }, { 5717, 0x1110 },
- /* 0xaf00 */
- { 5720, 0x2180 }, { 5723, 0x0001 }, { 5724, 0x3000 }, { 5726, 0xb015 },
- { 5732, 0x030e }, { 5737, 0x3001 }, { 5740, 0x0030 }, { 5742, 0x0200 },
- { 5743, 0x0111 }, { 5746, 0x1023 }, { 5750, 0x0000 }, { 5750, 0x1300 },
- { 5753, 0x6b81 }, { 5760, 0x1010 }, { 5762, 0x0300 }, { 5764, 0x0113 },
- /* 0xb000 */
- { 5768, 0x1013 }, { 5772, 0x3011 }, { 5776, 0x0100 }, { 5777, 0x0000 },
- { 5777, 0x5530 }, { 5783, 0x22b8 }, { 5789, 0x0000 }, { 5789, 0x3000 },
- { 5791, 0xb011 }, { 5796, 0x9702 }, { 5802, 0xfb07 }, { 5812, 0x113a },
- { 5818, 0x03b0 }, { 5823, 0x0113 }, { 5827, 0x0021 }, { 5829, 0x0000 },
- /* 0xb100 */
- { 5829, 0x1b00 }, { 5833, 0x3b0d }, { 5841, 0x1138 }, { 5846, 0x03b0 },
- { 5851, 0x0113 }, { 5855, 0x1133 }, { 5861, 0x0001 }, { 5862, 0x1300 },
- { 5865, 0x2b05 }, { 5871, 0x111c }, { 5876, 0x0100 }, { 5877, 0x0000 },
- { 5877, 0x1000 }, { 5878, 0xb011 }, { 5883, 0x1300 }, { 5886, 0x2a01 },
- /* 0xb200 */
- { 5890, 0x1930 }, { 5895, 0x02b0 }, { 5899, 0x0001 }, { 5900, 0x1010 },
- { 5902, 0x0000 }, { 5902, 0x1100 }, { 5904, 0x0301 }, { 5907, 0x1030 },
- { 5910, 0x0230 }, { 5913, 0x0713 }, { 5919, 0x146b }, { 5926, 0x0011 },
- { 5928, 0x1300 }, { 5931, 0x2b05 }, { 5937, 0xf974 }, { 5947, 0x8fb8 },
- /* 0xb300 */
- { 5956, 0x0113 }, { 5960, 0x103b }, { 5966, 0x0000 }, { 5966, 0x0000 },
- { 5966, 0x0000 }, { 5966, 0xd970 }, { 5974, 0x4ab0 }, { 5980, 0x0113 },
- { 5984, 0x103b }, { 5990, 0x0011 }, { 5992, 0x1103 }, { 5996, 0x0000 },
- { 5996, 0x5930 }, { 6002, 0x2ab1 }, { 6009, 0x0111 }, { 6012, 0x1000 },
- /* 0xb400 */
- { 6013, 0x0000 }, { 6013, 0x1101 }, { 6016, 0x0b01 }, { 6020, 0x0010 },
- { 6021, 0x0000 }, { 6021, 0x0113 }, { 6025, 0x102b }, { 6030, 0x0000 },
- { 6030, 0x0101 }, { 6032, 0x2000 }, { 6033, 0x1110 }, { 6036, 0x02a0 },
- { 6039, 0x0111 }, { 6042, 0x3021 }, { 6046, 0xb059 }, { 6053, 0x0102 },
- /* 0xb500 */
- { 6055, 0x0000 }, { 6055, 0x1930 }, { 6060, 0x07b0 }, { 6066, 0x0113 },
- { 6070, 0x383b }, { 6078, 0xb011 }, { 6083, 0x0003 }, { 6085, 0x0000 },
- { 6085, 0x0000 }, { 6085, 0x0000 }, { 6085, 0x0d13 }, { 6091, 0x383b },
- { 6099, 0xb011 }, { 6104, 0x0103 }, { 6107, 0x1000 }, { 6108, 0x0000 },
- /* 0xb600 */
- { 6108, 0x0000 }, { 6108, 0x0113 }, { 6112, 0x1020 }, { 6114, 0x0010 },
- { 6115, 0x0100 }, { 6116, 0x0000 }, { 6116, 0x0110 }, { 6118, 0x0000 },
- { 6118, 0x0000 }, { 6118, 0x3000 }, { 6120, 0x1811 }, { 6124, 0x0002 },
- { 6125, 0x0000 }, { 6125, 0x0010 }, { 6126, 0x0000 }, { 6126, 0x0111 },
- /* 0xb700 */
- { 6129, 0x0023 }, { 6132, 0x0000 }, { 6132, 0x9300 }, { 6136, 0x0b01 },
- { 6140, 0x1110 }, { 6143, 0x0030 }, { 6145, 0x0111 }, { 6148, 0x302b },
- { 6154, 0xb011 }, { 6159, 0x13c7 }, { 6167, 0x3b01 }, { 6173, 0x0130 },
- { 6176, 0x0280 }, { 6178, 0x0000 }, { 6178, 0x3000 }, { 6180, 0xb011 },
- /* 0xb800 */
- { 6185, 0x1383 }, { 6191, 0x2b01 }, { 6196, 0x1130 }, { 6200, 0x03b0 },
- { 6205, 0x0011 }, { 6207, 0x300a }, { 6211, 0xb011 }, { 6216, 0x1102 },
- { 6219, 0x2000 }, { 6220, 0x0000 }, { 6220, 0x0100 }, { 6221, 0x0111 },
- { 6224, 0x102b }, { 6229, 0xa011 }, { 6233, 0x1302 }, { 6237, 0x2b01 },
- /* 0xb900 */
- { 6242, 0x0010 }, { 6243, 0x0100 }, { 6244, 0x0001 }, { 6245, 0x3000 },
- { 6247, 0x9011 }, { 6251, 0x1302 }, { 6255, 0x2b01 }, { 6260, 0x1130 },
- { 6264, 0x66b0 }, { 6271, 0x0000 }, { 6271, 0x3000 }, { 6273, 0xb011 },
- { 6278, 0xd302 }, { 6284, 0x6b07 }, { 6292, 0x113a }, { 6298, 0x07b0 },
- /* 0xba00 */
- { 6304, 0x0103 }, { 6307, 0x0020 }, { 6308, 0x0000 }, { 6308, 0x1300 },
- { 6311, 0x6b05 }, { 6318, 0x1138 }, { 6323, 0x03b0 }, { 6328, 0x0113 },
- { 6332, 0x10b8 }, { 6337, 0x0000 }, { 6337, 0x1b00 }, { 6341, 0x2b05 },
- { 6347, 0x0110 }, { 6349, 0x0300 }, { 6351, 0x0000 }, { 6351, 0x1000 },
- /* 0xbb00 */
- { 6352, 0xa011 }, { 6356, 0x1102 }, { 6359, 0x0a01 }, { 6362, 0x7970 },
- { 6370, 0xa2b0 }, { 6376, 0x0111 }, { 6379, 0x100a }, { 6382, 0x0000 },
- { 6382, 0x1100 }, { 6384, 0x0001 }, { 6385, 0x1110 }, { 6388, 0x0090 },
- { 6390, 0x0111 }, { 6393, 0x0009 }, { 6395, 0x0000 }, { 6395, 0x9300 },
- /* 0xbc00 */
- { 6399, 0xbb05 }, { 6407, 0xf9f2 }, { 6418, 0x22b0 }, { 6423, 0x0113 },
- { 6427, 0x323b }, { 6435, 0x2001 }, { 6437, 0x0000 }, { 6437, 0x0000 },
- { 6437, 0x5930 }, { 6443, 0x06b0 }, { 6448, 0x0193 }, { 6453, 0x303b },
- { 6460, 0xa011 }, { 6464, 0x1123 }, { 6469, 0x0000 }, { 6469, 0x1170 },
- /* 0xbd00 */
- { 6474, 0x02b0 }, { 6478, 0x0011 }, { 6480, 0x1010 }, { 6482, 0x0000 },
- { 6482, 0x1301 }, { 6486, 0x0301 }, { 6489, 0x0110 }, { 6491, 0x0000 },
- { 6491, 0x0793 }, { 6498, 0x162b }, { 6505, 0x0010 }, { 6506, 0x0101 },
- { 6508, 0x0000 }, { 6508, 0x1130 }, { 6512, 0x0200 }, { 6513, 0x0111 },
- /* 0xbe00 */
- { 6516, 0x3029 }, { 6521, 0xb011 }, { 6526, 0x0000 }, { 6526, 0x0000 },
- { 6526, 0x5130 }, { 6531, 0x0eb0 }, { 6537, 0x0513 }, { 6542, 0x383b },
- { 6550, 0xb011 }, { 6555, 0x0303 }, { 6559, 0x0100 }, { 6560, 0x0000 },
- { 6560, 0x0000 }, { 6560, 0x0193 }, { 6565, 0x1039 }, { 6570, 0x0000 },
- /* 0xbf00 */
- { 6570, 0x0302 }, { 6573, 0x3b00 }, { 6578, 0x0000 }, { 6578, 0x0000 },
- { 6578, 0x0113 }, { 6582, 0x0023 }, { 6585, 0x0000 }, { 6585, 0x0000 },
- { 6585, 0x0000 }, { 6585, 0x0010 }, { 6586, 0x0000 }, { 6586, 0x0001 },
- { 6587, 0x3020 }, { 6590, 0x9011 }, { 6594, 0x0002 }, { 6595, 0x0000 },
- /* 0xc000 */
- { 6595, 0x0000 }, { 6595, 0x0000 }, { 6595, 0x0000 }, { 6595, 0x1000 },
- { 6596, 0x0000 }, { 6596, 0x1102 }, { 6599, 0x0301 }, { 6602, 0x0000 },
- { 6602, 0x0000 }, { 6602, 0x0113 }, { 6606, 0xb02b }, { 6613, 0xb079 },
- { 6621, 0x1323 }, { 6627, 0x3b01 }, { 6633, 0x1130 }, { 6637, 0x02b0 },
- /* 0xc100 */
- { 6641, 0x0111 }, { 6644, 0xf021 }, { 6650, 0xb0d9 }, { 6658, 0x1343 },
- { 6664, 0x3b01 }, { 6670, 0x1130 }, { 6674, 0x03b0 }, { 6679, 0x0111 },
- { 6682, 0x7020 }, { 6686, 0xb051 }, { 6692, 0x1322 }, { 6697, 0x2001 },
- { 6699, 0x1110 }, { 6702, 0x0190 }, { 6705, 0x0111 }, { 6708, 0x300b },
- /* 0xc200 */
- { 6713, 0xb011 }, { 6718, 0x9302 }, { 6723, 0xab01 }, { 6729, 0x0016 },
- { 6732, 0x0100 }, { 6733, 0x0113 }, { 6737, 0x3021 }, { 6741, 0xb011 },
- { 6746, 0x0302 }, { 6749, 0x2901 }, { 6753, 0x3130 }, { 6758, 0x02b0 },
- { 6762, 0x0000 }, { 6762, 0x3000 }, { 6764, 0xb819 }, { 6771, 0x1b42 },
- /* 0xc300 */
- { 6777, 0x3301 }, { 6782, 0x1138 }, { 6787, 0x0330 }, { 6791, 0x0000 },
- { 6791, 0x0020 }, { 6792, 0x0000 }, { 6792, 0x1300 }, { 6795, 0x3305 },
- { 6801, 0x1110 }, { 6804, 0x0000 }, { 6804, 0x0000 }, { 6804, 0x0000 },
- { 6804, 0x0001 }, { 6805, 0x9300 }, { 6809, 0x2305 }, { 6814, 0x0130 },
- /* 0xc400 */
- { 6817, 0x0100 }, { 6818, 0x0001 }, { 6819, 0x1010 }, { 6821, 0x3011 },
- { 6825, 0x0100 }, { 6826, 0x0000 }, { 6826, 0x1130 }, { 6830, 0x0230 },
- { 6833, 0x0001 }, { 6834, 0x1010 }, { 6836, 0x0000 }, { 6836, 0x1100 },
- { 6838, 0x0000 }, { 6838, 0x0000 }, { 6838, 0x0200 }, { 6839, 0x8513 },
- /* 0xc500 */
- { 6845, 0x1003 }, { 6848, 0x1011 }, { 6851, 0x1300 }, { 6854, 0x2b01 },
- { 6859, 0x7730 }, { 6867, 0x63b8 }, { 6875, 0x0113 }, { 6879, 0x303b },
- { 6886, 0xb091 }, { 6892, 0x11a2 }, { 6897, 0x0201 }, { 6899, 0x7b30 },
- { 6907, 0x57f0 }, { 6916, 0x0113 }, { 6920, 0x702b }, { 6927, 0xf0d1 },
- /* 0xc600 */
- { 6935, 0x11e3 }, { 6942, 0x1b01 }, { 6947, 0x7130 }, { 6953, 0x0ab9 },
- { 6960, 0x0113 }, { 6964, 0x303b }, { 6971, 0x9001 }, { 6974, 0x1302 },
- { 6978, 0x2b01 }, { 6983, 0x1130 }, { 6987, 0x02b0 }, { 6991, 0x0713 },
- { 6997, 0x302b }, { 7003, 0x3011 }, { 7007, 0x1303 }, { 7012, 0x2301 },
- /* 0xc700 */
- { 7016, 0x1130 }, { 7020, 0x02b0 }, { 7024, 0x0113 }, { 7028, 0x30ab },
- { 7035, 0xb411 }, { 7041, 0x11fe }, { 7050, 0x0901 }, { 7053, 0x7130 },
- { 7059, 0x47b8 }, { 7067, 0x05d3 }, { 7074, 0x307b }, { 7082, 0xb011 },
- { 7087, 0x5303 }, { 7093, 0x2101 }, { 7096, 0x1110 }, { 7099, 0x0000 },
- /* 0xc800 */
- { 7099, 0x0513 }, { 7104, 0x306b }, { 7111, 0xb011 }, { 7116, 0x1102 },
- { 7119, 0x3301 }, { 7124, 0x0010 }, { 7125, 0x0000 }, { 7125, 0x0513 },
- { 7130, 0x38eb }, { 7139, 0xa010 }, { 7142, 0x0102 }, { 7144, 0x3000 },
- { 7146, 0x1110 }, { 7149, 0x02b0 }, { 7153, 0x0013 }, { 7156, 0x3020 },
- /* 0xc900 */
- { 7159, 0xb071 }, { 7166, 0x0102 }, { 7168, 0x1000 }, { 7169, 0x0010 },
- { 7170, 0x0000 }, { 7170, 0x0113 }, { 7174, 0x100b }, { 7178, 0x1011 },
- { 7181, 0x1300 }, { 7184, 0x2b01 }, { 7189, 0x0000 }, { 7189, 0x0000 },
- { 7189, 0x0593 }, { 7195, 0x366b }, { 7204, 0xb095 }, { 7211, 0x1303 },
- /* 0xca00 */
- { 7216, 0x3b01 }, { 7222, 0x0110 }, { 7224, 0x0200 }, { 7225, 0x0000 },
- { 7225, 0x3000 }, { 7227, 0xb011 }, { 7232, 0x0103 }, { 7235, 0x2000 },
- { 7236, 0x0010 }, { 7237, 0x0100 }, { 7238, 0x0000 }, { 7238, 0x3000 },
- { 7240, 0xb011 }, { 7245, 0x030a }, { 7249, 0x1001 }, { 7251, 0x0010 },
- /* 0xcb00 */
- { 7252, 0x0100 }, { 7253, 0x0111 }, { 7256, 0x0003 }, { 7258, 0x0000 },
- { 7258, 0x1302 }, { 7262, 0x2301 }, { 7266, 0x0010 }, { 7267, 0x0300 },
- { 7269, 0x0000 }, { 7269, 0x1000 }, { 7270, 0x0000 }, { 7270, 0x0100 },
- { 7271, 0x0000 }, { 7271, 0x0010 }, { 7272, 0x0290 }, { 7275, 0x0000 },
- /* 0xcc00 */
- { 7275, 0x3000 }, { 7277, 0x3011 }, { 7281, 0x5386 }, { 7288, 0x7b01 },
- { 7295, 0x1130 }, { 7299, 0x03b0 }, { 7304, 0x0151 }, { 7308, 0x0021 },
- { 7310, 0x0000 }, { 7310, 0x1300 }, { 7313, 0x3b01 }, { 7319, 0x1130 },
- { 7323, 0x02b0 }, { 7327, 0x0011 }, { 7329, 0x1010 }, { 7331, 0x0001 },
- /* 0xcd00 */
- { 7332, 0x1302 }, { 7336, 0x2b01 }, { 7341, 0x1110 }, { 7344, 0x0200 },
- { 7345, 0x0000 }, { 7345, 0x1000 }, { 7346, 0xb011 }, { 7351, 0x0102 },
- { 7353, 0x0100 }, { 7354, 0x1130 }, { 7358, 0x02b0 }, { 7362, 0x0001 },
- { 7363, 0x1010 }, { 7365, 0x0001 }, { 7366, 0x1100 }, { 7368, 0x2b01 },
- /* 0xce00 */
- { 7373, 0x1110 }, { 7376, 0x0210 }, { 7378, 0x0113 }, { 7382, 0x002b },
- { 7386, 0x0000 }, { 7386, 0x9300 }, { 7390, 0x2b03 }, { 7396, 0x1130 },
- { 7400, 0x02b0 }, { 7404, 0x0113 }, { 7408, 0x303b }, { 7415, 0x0000 },
- { 7415, 0x0002 }, { 7416, 0x0000 }, { 7416, 0x1930 }, { 7421, 0x03b0 },
- /* 0xcf00 */
- { 7426, 0x0113 }, { 7430, 0x102b }, { 7435, 0xb011 }, { 7440, 0x0103 },
- { 7443, 0x0000 }, { 7443, 0x1130 }, { 7447, 0x02b0 }, { 7451, 0x0113 },
- { 7455, 0x1021 }, { 7458, 0x0000 }, { 7458, 0x0102 }, { 7460, 0x0001 },
- { 7461, 0x0010 }, { 7462, 0x0000 }, { 7462, 0x0113 }, { 7466, 0x102b },
- /* 0xd000 */
- { 7471, 0x0011 }, { 7473, 0x0102 }, { 7475, 0x2000 }, { 7476, 0x1130 },
- { 7480, 0x02b0 }, { 7484, 0x0111 }, { 7487, 0x3001 }, { 7490, 0x3011 },
- { 7494, 0x0002 }, { 7495, 0x0000 }, { 7495, 0x1130 }, { 7499, 0x02b0 },
- { 7503, 0x0313 }, { 7508, 0x303b }, { 7515, 0xb011 }, { 7520, 0x0103 },
- /* 0xd100 */
- { 7523, 0x2000 }, { 7524, 0x0000 }, { 7524, 0x0000 }, { 7524, 0x0513 },
- { 7529, 0x303b }, { 7536, 0xb011 }, { 7541, 0x1102 }, { 7544, 0x1000 },
- { 7545, 0x0110 }, { 7547, 0x0000 }, { 7547, 0x0113 }, { 7551, 0x142b },
- { 7557, 0x0001 }, { 7558, 0x0100 }, { 7559, 0x0000 }, { 7559, 0x0110 },
- /* 0xd200 */
- { 7561, 0x0280 }, { 7563, 0x0001 }, { 7564, 0x3000 }, { 7566, 0xb011 },
- { 7571, 0x0102 }, { 7573, 0x1000 }, { 7574, 0x0010 }, { 7575, 0x0000 },
- { 7575, 0x0113 }, { 7579, 0x1023 }, { 7583, 0x1011 }, { 7586, 0x9302 },
- { 7591, 0x0b05 }, { 7596, 0x1110 }, { 7599, 0x0030 }, { 7601, 0x0113 },
- /* 0xd300 */
- { 7605, 0x702b }, { 7612, 0xb051 }, { 7618, 0x1323 }, { 7624, 0x3b01 },
- { 7630, 0x0030 }, { 7632, 0x0000 }, { 7632, 0x0000 }, { 7632, 0x3000 },
- { 7634, 0xb011 }, { 7639, 0x1303 }, { 7644, 0x2b01 }, { 7649, 0x1110 },
- { 7652, 0x0330 }, { 7656, 0x0101 }, { 7658, 0x300a }, { 7662, 0xb011 },
- /* 0xd400 */
- { 7667, 0x0102 }, { 7669, 0x2000 }, { 7670, 0x0000 }, { 7670, 0x0000 },
- { 7670, 0x0011 }, { 7672, 0x1000 }, { 7673, 0xa011 }, { 7677, 0x9300 },
- { 7681, 0x2b05 }, { 7687, 0x0010 }, { 7688, 0x0200 }, { 7689, 0x0000 },
- { 7689, 0x1000 }, { 7690, 0x9011 }, { 7694, 0x1100 }, { 7696, 0x2901 },
- /* 0xd500 */
- { 7700, 0x1110 }, { 7703, 0x00b0 }, { 7706, 0x0000 }, { 7706, 0x3000 },
- { 7708, 0xb011 }, { 7713, 0x1302 }, { 7717, 0x2b21 }, { 7723, 0x1130 },
- { 7727, 0x03b0 }, { 7732, 0x0001 }, { 7733, 0x0020 }, { 7734, 0x0000 },
- { 7734, 0x1300 }, { 7737, 0x2b05 }, { 7743, 0x1130 }, { 7747, 0x02b0 },
- /* 0xd600 */
- { 7751, 0x0113 }, { 7755, 0x103b }, { 7761, 0x2011 }, { 7764, 0x1300 },
- { 7767, 0x2b21 }, { 7773, 0x1132 }, { 7778, 0x0280 }, { 7780, 0x0013 },
- { 7783, 0x3028 }, { 7787, 0xa011 }, { 7791, 0x1102 }, { 7794, 0x0a01 },
- { 7797, 0x1130 }, { 7801, 0x0292 }, { 7805, 0x0111 }, { 7808, 0x3021 },
- /* 0xd700 */
- { 7812, 0x0011 }, { 7814, 0x1302 }, { 7818, 0x2b01 }, { 7823, 0x1130 },
- { 7827, 0x0290 }, { 7830, 0x03d3 }, { 7837, 0x122b }, { 7843, 0x3011 },
- { 7847, 0x1302 }, { 7851, 0x2b01 },
-};
-static const Summary16 ksc5601_uni2indx_pagef9[17] = {
- /* 0xf900 */
- { 7856, 0xffff }, { 7872, 0xffff }, { 7888, 0xffff }, { 7904, 0xffff },
- { 7920, 0xffff }, { 7936, 0xffff }, { 7952, 0xffff }, { 7968, 0xffff },
- { 7984, 0xffff }, { 8000, 0xffff }, { 8016, 0xffff }, { 8032, 0xffff },
- { 8048, 0xffff }, { 8064, 0xffff }, { 8080, 0xffff }, { 8096, 0xffff },
- /* 0xfa00 */
- { 8112, 0x0fff },
-};
-static const Summary16 ksc5601_uni2indx_pageff[15] = {
- /* 0xff00 */
- { 8124, 0xfffe }, { 8139, 0xffff }, { 8155, 0xffff }, { 8171, 0xffff },
- { 8187, 0xffff }, { 8203, 0x7fff }, { 8218, 0x0000 }, { 8218, 0x0000 },
- { 8218, 0x0000 }, { 8218, 0x0000 }, { 8218, 0x0000 }, { 8218, 0x0000 },
- { 8218, 0x0000 }, { 8218, 0x0000 }, { 8218, 0x006f },
-};
-
-static int
-ksc5601_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (n >= 2) {
- const Summary16 *summary = NULL;
- if (wc < 0x0460)
- summary = &ksc5601_uni2indx_page00[(wc>>4)];
- else if (wc >= 0x2000 && wc < 0x2670) /* General Punctuation (2000, 206F) */
- summary = &ksc5601_uni2indx_page20[(wc>>4)-0x200];
- else if (wc >= 0x3000 && wc < 0x33e0) /* CJK Symbols and Punctuation (3000, 303F) */
- summary = &ksc5601_uni2indx_page30[(wc>>4)-0x300];
- else if (wc >= 0x4e00 && wc < 0x9fa0) /* CJK Unified Ideographs (4E00, 9FFF) */
- summary = &ksc5601_uni2indx_page4e[(wc>>4)-0x4e0];
- else if (wc >= 0xac00 && wc < 0xd7a0) /* Hangul Syllables (AC00, D7AF) 11183 */
- summary = &ksc5601_uni2indx_pageac[(wc>>4)-0xac0];
- else if (wc >= 0xf900 && wc < 0xfa10) /* CJK Compatibility Ideographs (F900, FAFF) */
- summary = &ksc5601_uni2indx_pagef9[(wc>>4)-0xf90];
- else if (wc >= 0xff00 && wc < 0xfff0) /* Halfwidth and Fullwidth Forms (FF00, FFEF) */
- summary = &ksc5601_uni2indx_pageff[(wc>>4)-0xff0];
- if (summary) {
- unsigned short used = summary->used;
- unsigned int i = wc & 0x0f;
- if (used & ((unsigned short) 1 << i)) {
- unsigned short c;
- /* Keep in `used' only the bits 0..i-1. */
- used &= ((unsigned short) 1 << i) - 1;
- /* Add `summary->indx' and the number of bits set in `used'. */
- used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
- used = (used & 0x3333) + ((used & 0xcccc) >> 2);
- used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
- used = (used & 0x00ff) + (used >> 8);
- c = ksc5601_2charset[summary->indx + used];
- r[0] = (c >> 8); r[1] = (c & 0xff);
- return 2;
- }
- }
- return RET_ILSEQ;
- }
- return RET_TOOSMALL;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/mulelao.h b/nx-X11/lib/X11/lcUniConv/mulelao.h
deleted file mode 100644
index 5b8245762..000000000
--- a/nx-X11/lib/X11/lcUniConv/mulelao.h
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/*
- * MULELAO-1
- */
-
-static const unsigned short mulelao_2uni[96] = {
- /* 0xa0 */
- 0x00a0, 0x0e81, 0x0e82, 0xfffd, 0x0e84, 0xfffd, 0xfffd, 0x0e87,
- 0x0e88, 0xfffd, 0x0e8a, 0xfffd, 0xfffd, 0x0e8d, 0xfffd, 0xfffd,
- /* 0xb0 */
- 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e94, 0x0e95, 0x0e96, 0x0e97,
- 0xfffd, 0x0e99, 0x0e9a, 0x0e9b, 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f,
- /* 0xc0 */
- 0xfffd, 0x0ea1, 0x0ea2, 0x0ea3, 0xfffd, 0x0ea5, 0xfffd, 0x0ea7,
- 0xfffd, 0xfffd, 0x0eaa, 0x0eab, 0xfffd, 0x0ead, 0x0eae, 0x0eaf,
- /* 0xd0 */
- 0x0eb0, 0x0eb1, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7,
- 0x0eb8, 0x0eb9, 0xfffd, 0x0ebb, 0x0ebc, 0x0ebd, 0xfffd, 0xfffd,
- /* 0xe0 */
- 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0xfffd, 0x0ec6, 0xfffd,
- 0x0ec8, 0x0ec9, 0x0eca, 0x0ecb, 0x0ecc, 0x0ecd, 0xfffd, 0xfffd,
- /* 0xf0 */
- 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7,
- 0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x0edc, 0x0edd, 0xfffd, 0xfffd,
-};
-
-static int
-mulelao_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0xa0) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else {
- unsigned short wc = mulelao_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char mulelao_page0e[96] = {
- 0x00, 0xa1, 0xa2, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0x80-0x87 */
- 0xa8, 0x00, 0xaa, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x90-0x97 */
- 0x00, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x98-0x9f */
- 0x00, 0xc1, 0xc2, 0xc3, 0x00, 0xc5, 0x00, 0xc7, /* 0xa0-0xa7 */
- 0x00, 0x00, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xa8-0xaf */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xb0-0xb7 */
- 0xd8, 0xd9, 0x00, 0xdb, 0xdc, 0xdd, 0x00, 0x00, /* 0xb8-0xbf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x00, 0xe6, 0x00, /* 0xc0-0xc7 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0x00, /* 0xc8-0xcf */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */
- 0xf8, 0xf9, 0x00, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */
-};
-
-static int
-mulelao_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x00a0) {
- *r = wc;
- return 1;
- }
- else if (wc == 0x00a0)
- c = 0xa0;
- else if (wc >= 0x0e80 && wc < 0x0ee0)
- c = mulelao_page0e[wc-0x0e80];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/tatar_cyr.h b/nx-X11/lib/X11/lcUniConv/tatar_cyr.h
deleted file mode 100644
index 471e5a79a..000000000
--- a/nx-X11/lib/X11/lcUniConv/tatar_cyr.h
+++ /dev/null
@@ -1,122 +0,0 @@
-
-/*
- * TATAR-CYR
- */
-
-static const unsigned short tatar_cyr_2uni[128] = {
- /* 0x80 */
- 0x04d8, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
- 0x20ac, 0x2030, 0x04e8, 0x2039, 0x04ae, 0x0496, 0x04a2, 0x04ba,
- /* 0x90 */
- 0x04d9, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
- 0x98, 0x2122, 0x04e9, 0x203a, 0x04af, 0x0497, 0x04a3, 0x04bb,
- /* 0xa0 */
- 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
- 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
- /* 0xb0 */
- 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
- 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
- /* 0xc0 */
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
- 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
- /* 0xd0 */
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
- 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
- /* 0xe0 */
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
- 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
- /* 0xf0 */
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
- 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-};
-
-static int
-tatar_cyr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) tatar_cyr_2uni[c-0x80];
- return 1;
-}
-
-static const unsigned char tatar_cyr_page00[32] = {
- 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */
- 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
-};
-static const unsigned char tatar_cyr_page04[240] = {
- 0x00, 0xa8, 0x00, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */
- 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, /* 0x08-0x0f */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */
- 0x00, 0xb8, 0x00, 0x83, 0xba, 0xbe, 0xb3, 0xbf, /* 0x50-0x57 */
- 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x9d, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
- 0x00, 0x00, 0x8e, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x9c, /* 0xa8-0xaf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x8f, 0x9f, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x80, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */
-};
-static const unsigned char tatar_cyr_page20[48] = {
- 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
- 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
-};
-static const unsigned char tatar_cyr_page21[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
-};
-static const unsigned char tatar_cyr_page22[1] = {
- 0xb0, /* 0x16-0x16 */
-};
-
-static int
-tatar_cyr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x00bc)
- c = tatar_cyr_page00[wc-0x00a0];
- else if (wc >= 0x0400 && wc < 0x04ef)
- c = tatar_cyr_page04[wc-0x0400];
- else if (wc >= 0x2010 && wc < 0x203b)
- c = tatar_cyr_page20[wc-0x2010];
- else if (wc == 0x20ac)
- c = 0x88;
- else if (wc >= 0x2110 && wc < 0x2123)
- c = tatar_cyr_page21[wc-0x2110];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/tcvn.h b/nx-X11/lib/X11/lcUniConv/tcvn.h
deleted file mode 100644
index 4662683dc..000000000
--- a/nx-X11/lib/X11/lcUniConv/tcvn.h
+++ /dev/null
@@ -1,133 +0,0 @@
-
-/*
- * TCVN-5712
- */
-
-static const unsigned short tcvn_2uni_1[32] = {
- /* 0x00 */
- 0x0000, 0x00da, 0x1ee4, 0x0003, 0x1eea, 0x1eec, 0x1eee, 0x0007,
- 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
- /* 0x10 */
- 0x0010, 0x1ee8, 0x1ef0, 0x1ef2, 0x1ef6, 0x1ef8, 0x00dd, 0x1ef4,
- 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
-};
-static const unsigned short tcvn_2uni_2[128] = {
- /* 0x80 */
- 0x00c0, 0x1ea2, 0x00c3, 0x00c1, 0x1ea0, 0x1eb6, 0x1eac, 0x00c8,
- 0x1eba, 0x1ebc, 0x00c9, 0x1eb8, 0x1ec6, 0x00cc, 0x1ec8, 0x0128,
- /* 0x90 */
- 0x00cd, 0x1eca, 0x00d2, 0x1ece, 0x00d5, 0x00d3, 0x1ecc, 0x1ed8,
- 0x1edc, 0x1ede, 0x1ee0, 0x1eda, 0x1ee2, 0x00d9, 0x1ee6, 0x0168,
- /* 0xa0 */
- 0x00a0, 0x0102, 0x00c2, 0x00ca, 0x00d4, 0x01a0, 0x01af, 0x0110,
- 0x0103, 0x00e2, 0x00ea, 0x00f4, 0x01a1, 0x01b0, 0x0111, 0x1eb0,
- /* 0xb0 */
- 0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0x00e0, 0x1ea3, 0x00e3,
- 0x00e1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4,
- /* 0xc0 */
- 0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7,
- 0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0x00e8, 0x1ec2, 0x1ebb, 0x1ebd,
- /* 0xd0 */
- 0x00e9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0x00ec,
- 0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0x00ed, 0x1ecb, 0x00f2,
- /* 0xe0 */
- 0x1ed4, 0x1ecf, 0x00f5, 0x00f3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7,
- 0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0x00f9,
- /* 0xf0 */
- 0x1ed6, 0x1ee7, 0x0169, 0x00fa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef,
- 0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0x00fd, 0x1ef5, 0x1ed0,
-};
-
-static int
-tcvn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x20)
- *pwc = (ucs4_t) tcvn_2uni_1[c];
- else if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) tcvn_2uni_2[c-0x80];
- return 1;
-}
-
-static const unsigned char tcvn_page00[96+184] = {
- 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
- 0x80, 0x83, 0xa2, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0x87, 0x8a, 0xa3, 0x00, 0x8d, 0x90, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0x92, 0x95, 0xa4, 0x94, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0x9d, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, /* 0xd8-0xdf */
- 0xb5, 0xb8, 0xa9, 0xb7, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0xcc, 0xd0, 0xaa, 0x00, 0xd7, 0xdd, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0xdf, 0xe3, 0xab, 0xe2, 0x00, 0x00, /* 0xf0-0xf7 */
- 0x00, 0xef, 0xf3, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
- /* 0x0100 */
- 0x00, 0x00, 0xa1, 0xa8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0xa7, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0x8f, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x9f, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
- 0xa5, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, /* 0xa8-0xaf */
- 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
-};
-static const unsigned char tcvn_page03[40] = {
- 0xb0, 0xb3, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
-};
-static const unsigned char tcvn_page1e[96] = {
- 0x84, 0xb9, 0x81, 0xb6, 0xc4, 0xca, 0xc1, 0xc7, /* 0xa0-0xa7 */
- 0xc2, 0xc8, 0xc3, 0xc9, 0x86, 0xcb, 0xc0, 0xbe, /* 0xa8-0xaf */
- 0xaf, 0xbb, 0xba, 0xbc, 0xbf, 0xbd, 0x85, 0xc6, /* 0xb0-0xb7 */
- 0x8b, 0xd1, 0x88, 0xce, 0x89, 0xcf, 0xda, 0xd5, /* 0xb8-0xbf */
- 0xc5, 0xd2, 0xcd, 0xd3, 0xd9, 0xd4, 0x8c, 0xd6, /* 0xc0-0xc7 */
- 0x8e, 0xd8, 0x91, 0xde, 0x96, 0xe4, 0x93, 0xe1, /* 0xc8-0xcf */
- 0xff, 0xe8, 0xdb, 0xe5, 0xe0, 0xe6, 0xf0, 0xe7, /* 0xd0-0xd7 */
- 0x97, 0xe9, 0x9b, 0xed, 0x98, 0xea, 0x99, 0xeb, /* 0xd8-0xdf */
- 0x9a, 0xec, 0x9c, 0xee, 0x02, 0xf4, 0x9e, 0xf1, /* 0xe0-0xe7 */
- 0x11, 0xf8, 0x04, 0xf5, 0x05, 0xf6, 0x06, 0xf7, /* 0xe8-0xef */
- 0x12, 0xf9, 0x13, 0xfa, 0x17, 0xfe, 0x14, 0xfb, /* 0xf0-0xf7 */
- 0x15, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */
-};
-
-static int
-tcvn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076 & (1 << wc)) == 0)) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00a0 && wc < 0x01b8)
- c = tcvn_page00[wc-0x00a0];
- else if (wc >= 0x0300 && wc < 0x0328)
- c = tcvn_page03[wc-0x0300];
- else if (wc >= 0x1ea0 && wc < 0x1f00)
- c = tcvn_page1e[wc-0x1ea0];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/tis620.h b/nx-X11/lib/X11/lcUniConv/tis620.h
deleted file mode 100644
index 4fa96ec98..000000000
--- a/nx-X11/lib/X11/lcUniConv/tis620.h
+++ /dev/null
@@ -1,77 +0,0 @@
-
-/*
- * TIS620-0
- */
-
-static const unsigned short tis620_2uni[96] = {
- /* 0xa0 */
- 0xfffd, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
- 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
- /* 0xb0 */
- 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
- 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
- /* 0xc0 */
- 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
- 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
- /* 0xd0 */
- 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
- 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f,
- /* 0xe0 */
- 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
- 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,
- /* 0xf0 */
- 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
- 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-};
-
-static int
-tis620_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x80) {
- *pwc = (ucs4_t) c;
- return 1;
- }
- else if (c < 0xa0) {
- }
- else {
- unsigned short wc = tis620_2uni[c-0xa0];
- if (wc != 0xfffd) {
- *pwc = (ucs4_t) wc;
- return 1;
- }
- }
- return RET_ILSEQ;
-}
-
-static const unsigned char tis620_page0e[96] = {
- 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
- 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
- 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
- 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
-};
-
-static int
-tis620_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x0e00 && wc < 0x0e60)
- c = tis620_page0e[wc-0x0e00];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/ucs2be.h b/nx-X11/lib/X11/lcUniConv/ucs2be.h
deleted file mode 100644
index 20a8b27bd..000000000
--- a/nx-X11/lib/X11/lcUniConv/ucs2be.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * UCS-2BE = UCS-2 big endian
- */
-
-static int
-ucs2be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- if (n >= 2) {
- if (s[0] >= 0xd8 && s[0] < 0xe0) {
- return RET_ILSEQ;
- } else {
- *pwc = (s[0] << 8) + s[1];
- return 2;
- }
- }
- return RET_TOOFEW(0);
-}
-
-static int
-ucs2be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) {
- if (n >= 2) {
- r[0] = (unsigned char) (wc >> 8);
- r[1] = (unsigned char) wc;
- return 2;
- } else
- return RET_TOOSMALL;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/utf8.h b/nx-X11/lib/X11/lcUniConv/utf8.h
deleted file mode 100644
index d00995ca0..000000000
--- a/nx-X11/lib/X11/lcUniConv/utf8.h
+++ /dev/null
@@ -1,109 +0,0 @@
-
-/*
- * UTF-8
- */
-
-/* Specification: RFC 2279 */
-
-static int
-utf8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = s[0];
-
- if (c < 0x80) {
- *pwc = c;
- return 1;
- } else if (c < 0xc2) {
- return RET_ILSEQ;
- } else if (c < 0xe0) {
- if (n < 2)
- return RET_TOOFEW(0);
- if (!((s[1] ^ 0x80) < 0x40))
- return RET_ILSEQ;
- *pwc = ((ucs4_t) (c & 0x1f) << 6)
- | (ucs4_t) (s[1] ^ 0x80);
- return 2;
- } else if (c < 0xf0) {
- if (n < 3)
- return RET_TOOFEW(0);
- if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
- && (c >= 0xe1 || s[1] >= 0xa0)))
- return RET_ILSEQ;
- *pwc = ((ucs4_t) (c & 0x0f) << 12)
- | ((ucs4_t) (s[1] ^ 0x80) << 6)
- | (ucs4_t) (s[2] ^ 0x80);
- return 3;
- } else if (c < 0xf8) {
- if (n < 4)
- return RET_TOOFEW(0);
- if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
- && (s[3] ^ 0x80) < 0x40
- && (c >= 0xf1 || s[1] >= 0x90)))
- return RET_ILSEQ;
- *pwc = ((ucs4_t) (c & 0x07) << 18)
- | ((ucs4_t) (s[1] ^ 0x80) << 12)
- | ((ucs4_t) (s[2] ^ 0x80) << 6)
- | (ucs4_t) (s[3] ^ 0x80);
- return 4;
- } else if (c < 0xfc) {
- if (n < 5)
- return RET_TOOFEW(0);
- if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
- && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
- && (c >= 0xf9 || s[1] >= 0x88)))
- return RET_ILSEQ;
- *pwc = ((ucs4_t) (c & 0x03) << 24)
- | ((ucs4_t) (s[1] ^ 0x80) << 18)
- | ((ucs4_t) (s[2] ^ 0x80) << 12)
- | ((ucs4_t) (s[3] ^ 0x80) << 6)
- | (ucs4_t) (s[4] ^ 0x80);
- return 5;
- } else if (c < 0xfe) {
- if (n < 6)
- return RET_TOOFEW(0);
- if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
- && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
- && (s[5] ^ 0x80) < 0x40
- && (c >= 0xfd || s[1] >= 0x84)))
- return RET_ILSEQ;
- *pwc = ((ucs4_t) (c & 0x01) << 30)
- | ((ucs4_t) (s[1] ^ 0x80) << 24)
- | ((ucs4_t) (s[2] ^ 0x80) << 18)
- | ((ucs4_t) (s[3] ^ 0x80) << 12)
- | ((ucs4_t) (s[4] ^ 0x80) << 6)
- | (ucs4_t) (s[5] ^ 0x80);
- return 6;
- } else
- return RET_ILSEQ;
-}
-
-static int
-utf8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) /* n == 0 is acceptable */
-{
- int count;
- if (wc < 0x80)
- count = 1;
- else if (wc < 0x800)
- count = 2;
- else if (wc < 0x10000)
- count = 3;
- else if (wc < 0x200000)
- count = 4;
- else if (wc < 0x4000000)
- count = 5;
- else if (wc <= 0x7fffffff)
- count = 6;
- else
- return RET_ILSEQ;
- if (n < count)
- return RET_TOOSMALL;
- switch (count) { /* note: code falls through cases! */
- case 6: r[5] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x4000000;
- case 5: r[4] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x200000;
- case 4: r[3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000;
- case 3: r[2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800;
- case 2: r[1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0;
- case 1: r[0] = wc;
- }
- return count;
-}
diff --git a/nx-X11/lib/X11/lcUniConv/viscii.h b/nx-X11/lib/X11/lcUniConv/viscii.h
deleted file mode 100644
index d5147e81e..000000000
--- a/nx-X11/lib/X11/lcUniConv/viscii.h
+++ /dev/null
@@ -1,122 +0,0 @@
-
-/*
- * VISCII1.1-1
- */
-
-/* Specification: RFC 1456 */
-
-static const unsigned short viscii_2uni_1[32] = {
- /* 0x00 */
- 0x0000, 0x0001, 0x1eb2, 0x0003, 0x0004, 0x1eb4, 0x1eaa, 0x0007,
- 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
- /* 0x10 */
- 0x0010, 0x0011, 0x0012, 0x0013, 0x1ef6, 0x0015, 0x0016, 0x0017,
- 0x0018, 0x1ef8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1ef4, 0x001f,
-};
-static const unsigned short viscii_2uni_2[128] = {
- /* 0x80 */
- 0x1ea0, 0x1eae, 0x1eb0, 0x1eb6, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eac,
- 0x1ebc, 0x1eb8, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ed0,
- /* 0x90 */
- 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1ee2, 0x1eda, 0x1edc, 0x1ede,
- 0x1eca, 0x1ece, 0x1ecc, 0x1ec8, 0x1ee6, 0x0168, 0x1ee4, 0x1ef2,
- /* 0xa0 */
- 0x00d5, 0x1eaf, 0x1eb1, 0x1eb7, 0x1ea5, 0x1ea7, 0x1ea9, 0x1ead,
- 0x1ebd, 0x1eb9, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ed1,
- /* 0xb0 */
- 0x1ed3, 0x1ed5, 0x1ed7, 0x1ee0, 0x01a0, 0x1ed9, 0x1edd, 0x1edf,
- 0x1ecb, 0x1ef0, 0x1ee8, 0x1eea, 0x1eec, 0x01a1, 0x1edb, 0x01af,
- /* 0xc0 */
- 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x1ea2, 0x0102, 0x1eb3, 0x1eb5,
- 0x00c8, 0x00c9, 0x00ca, 0x1eba, 0x00cc, 0x00cd, 0x0128, 0x1ef3,
- /* 0xd0 */
- 0x0110, 0x1ee9, 0x00d2, 0x00d3, 0x00d4, 0x1ea1, 0x1ef7, 0x1eeb,
- 0x1eed, 0x00d9, 0x00da, 0x1ef9, 0x1ef5, 0x00dd, 0x1ee1, 0x01b0,
- /* 0xe0 */
- 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x1ea3, 0x0103, 0x1eef, 0x1eab,
- 0x00e8, 0x00e9, 0x00ea, 0x1ebb, 0x00ec, 0x00ed, 0x0129, 0x1ec9,
- /* 0xf0 */
- 0x0111, 0x1ef1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x1ecf, 0x1ecd,
- 0x1ee5, 0x00f9, 0x00fa, 0x0169, 0x1ee7, 0x00fd, 0x1ee3, 0x1eee,
-};
-
-static int
-viscii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
-{
- unsigned char c = *s;
- if (c < 0x20)
- *pwc = (ucs4_t) viscii_2uni_1[c];
- else if (c < 0x80)
- *pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) viscii_2uni_2[c-0x80];
- return 1;
-}
-
-static const unsigned char viscii_page00[64+184] = {
- 0xc0, 0xc1, 0xc2, 0xc3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */
- 0xc8, 0xc9, 0xca, 0x00, 0xcc, 0xcd, 0x00, 0x00, /* 0xc8-0xcf */
- 0x00, 0x00, 0xd2, 0xd3, 0xd4, 0xa0, 0x00, 0x00, /* 0xd0-0xd7 */
- 0x00, 0xd9, 0xda, 0x00, 0x00, 0xdd, 0x00, 0x00, /* 0xd8-0xdf */
- 0xe0, 0xe1, 0xe2, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */
- 0xe8, 0xe9, 0xea, 0x00, 0xec, 0xed, 0x00, 0x00, /* 0xe8-0xef */
- 0x00, 0x00, 0xf2, 0xf3, 0xf4, 0xf5, 0x00, 0x00, /* 0xf0-0xf7 */
- 0x00, 0xf9, 0xfa, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */
- /* 0x0100 */
- 0x00, 0x00, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
- 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
- 0xce, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
- 0x9d, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
- 0xb4, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xa8-0xaf */
- 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
-};
-static const unsigned char viscii_page1e[96] = {
- 0x80, 0xd5, 0xc4, 0xe4, 0x84, 0xa4, 0x85, 0xa5, /* 0xa0-0xa7 */
- 0x86, 0xa6, 0x06, 0xe7, 0x87, 0xa7, 0x81, 0xa1, /* 0xa8-0xaf */
- 0x82, 0xa2, 0x02, 0xc6, 0x05, 0xc7, 0x83, 0xa3, /* 0xb0-0xb7 */
- 0x89, 0xa9, 0xcb, 0xeb, 0x88, 0xa8, 0x8a, 0xaa, /* 0xb8-0xbf */
- 0x8b, 0xab, 0x8c, 0xac, 0x8d, 0xad, 0x8e, 0xae, /* 0xc0-0xc7 */
- 0x9b, 0xef, 0x98, 0xb8, 0x9a, 0xf7, 0x99, 0xf6, /* 0xc8-0xcf */
- 0x8f, 0xaf, 0x90, 0xb0, 0x91, 0xb1, 0x92, 0xb2, /* 0xd0-0xd7 */
- 0x93, 0xb5, 0x95, 0xbe, 0x96, 0xb6, 0x97, 0xb7, /* 0xd8-0xdf */
- 0xb3, 0xde, 0x94, 0xfe, 0x9e, 0xf8, 0x9c, 0xfc, /* 0xe0-0xe7 */
- 0xba, 0xd1, 0xbb, 0xd7, 0xbc, 0xd8, 0xff, 0xe6, /* 0xe8-0xef */
- 0xb9, 0xf1, 0x9f, 0xcf, 0x1e, 0xdc, 0x14, 0xd6, /* 0xf0-0xf7 */
- 0x19, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */
-};
-
-static int
-viscii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
-{
- unsigned char c = 0;
- if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064 & (1 << wc)) == 0)) {
- *r = wc;
- return 1;
- }
- else if (wc >= 0x00c0 && wc < 0x01b8)
- c = viscii_page00[wc-0x00c0];
- else if (wc >= 0x1ea0 && wc < 0x1f00)
- c = viscii_page1e[wc-0x1ea0];
- if (c != 0) {
- *r = c;
- return 1;
- }
- return RET_ILSEQ;
-}
diff --git a/nx-X11/lib/X11/lcUtil.c b/nx-X11/lib/X11/lcUtil.c
deleted file mode 100644
index 52a16daea..000000000
--- a/nx-X11/lib/X11/lcUtil.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- * Bug fixes: Bruno Haible XFree86 Inc.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlib.h>
-#include "XlcPublic.h"
-
-/* Don't use <ctype.h> here because it is locale dependent. */
-
-#define set_toupper(ch) \
- if (ch >= 'a' && ch <= 'z') \
- ch = ch - 'a' + 'A';
-
-/* Compares two ISO 8859-1 strings, ignoring case of ASCII letters.
- Like strcasecmp in an ASCII locale. */
-int
-_XlcCompareISOLatin1(
- const char *str1,
- const char *str2)
-{
- unsigned char ch1, ch2;
-
- for ( ; ; str1++, str2++) {
- ch1 = *str1;
- ch2 = *str2;
- if (ch1 == '\0' || ch2 == '\0')
- break;
- set_toupper(ch1);
- set_toupper(ch2);
- if (ch1 != ch2)
- break;
- }
-
- return ch1 - ch2;
-}
-
-/* Compares two ISO 8859-1 strings, at most len bytes of each, ignoring
- case of ASCII letters. Like strncasecmp in an ASCII locale. */
-int
-_XlcNCompareISOLatin1(
- const char *str1,
- const char *str2,
- int len)
-{
- unsigned char ch1, ch2;
-
- for ( ; ; str1++, str2++, len--) {
- if (len == 0)
- return 0;
- ch1 = *str1;
- ch2 = *str2;
- if (ch1 == '\0' || ch2 == '\0')
- break;
- set_toupper(ch1);
- set_toupper(ch2);
- if (ch1 != ch2)
- break;
- }
-
- return ch1 - ch2;
-}
diff --git a/nx-X11/lib/X11/lcWrap.c b/nx-X11/lib/X11/lcWrap.c
deleted file mode 100644
index 067c501ba..000000000
--- a/nx-X11/lib/X11/lcWrap.c
+++ /dev/null
@@ -1,648 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/*
- * Copyright 1991 by the Open Software Foundation
- * Copyright 1993 by the TOSHIBA Corp.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the names of Open Software Foundation and TOSHIBA
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Open Software
- * Foundation and TOSHIBA make no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OPEN SOFTWARE FOUNDATION AND TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN OR TOSHIBA BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * M. Collins OSF
- *
- * Katsuhisa Yano TOSHIBA Corp.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdlib.h>
-#include "Xlibint.h"
-#include "Xlcint.h"
-#include <nx-X11/Xlocale.h>
-#include <nx-X11/Xos.h>
-#ifdef WIN32
-#undef close
-#endif
-#include <nx-X11/Xutil.h>
-#include "XlcPubI.h"
-
-#ifdef XTHREADS
-LockInfoPtr _Xi18n_lock;
-#endif
-
-char *
-XSetLocaleModifiers(
- const char *modifiers)
-{
- XLCd lcd = _XlcCurrentLC();
- char *user_mods;
- char *mapped_mods;
-
- if (!lcd)
- return (char *) NULL;
- if (!modifiers)
- return lcd->core->modifiers;
- user_mods = getenv("XMODIFIERS");
- mapped_mods = (*lcd->methods->map_modifiers) (lcd, user_mods, modifiers);
- if (mapped_mods) {
- Xfree(lcd->core->modifiers);
- lcd->core->modifiers = mapped_mods;
- }
- return mapped_mods;
-}
-
-Bool
-XSupportsLocale(void)
-{
- return _XlcCurrentLC() != (XLCd)NULL;
-}
-
-Bool _XlcValidModSyntax(
- const char * mods,
- const char * const *valid_mods)
-{
- int i;
- const char * const *ptr;
-
- while (mods && (*mods == '@')) {
- mods++;
- if (*mods == '@')
- break;
- for (ptr = valid_mods; *ptr; ptr++) {
- i = strlen(*ptr);
- if (strncmp(mods, *ptr, i) || ((mods[i] != '=')
-#ifdef WIN32
- && (mods[i] != '#')
-#endif
- ))
- continue;
- mods = strchr(mods+i+1, '@');
- break;
- }
- }
- return !mods || !*mods;
-}
-
-static const char *im_valid[] = {"im", (const char *)NULL};
-
-/*ARGSUSED*/
-char *
-_XlcDefaultMapModifiers(
- XLCd lcd,
- const char *user_mods,
- const char *prog_mods)
-{
- int i;
- char *mods;
-
- if (!_XlcValidModSyntax(prog_mods, im_valid))
- return (char *)NULL;
- if (!_XlcValidModSyntax(user_mods, im_valid))
- return (char *)NULL;
- i = strlen(prog_mods) + 1;
- if (user_mods)
- i += strlen(user_mods);
- mods = Xmalloc(i);
- if (mods) {
- strcpy(mods, prog_mods);
- if (user_mods)
- strcat(mods, user_mods);
-#ifdef WIN32
- {
- char *s;
- for (s = mods; (s = strchr(s, '@')); s++) {
- for (s++; *s && *s != '='; s++) {
- if (*s == '#') {
- *s = '=';
- break;
- }
- }
- }
- }
-#endif
- }
- return mods;
-}
-
-typedef struct _XLCdListRec {
- struct _XLCdListRec *next;
- XLCd lcd;
- int ref_count;
-} XLCdListRec, *XLCdList;
-
-static XLCdList lcd_list = NULL;
-
-typedef struct _XlcLoaderListRec {
- struct _XlcLoaderListRec *next;
- XLCdLoadProc proc;
-} XlcLoaderListRec, *XlcLoaderList;
-
-static XlcLoaderList loader_list = NULL;
-
-void
-_XlcRemoveLoader(
- XLCdLoadProc proc)
-{
- XlcLoaderList loader, prev;
-
- if (loader_list == NULL)
- return;
-
- prev = loader = loader_list;
- if (loader->proc == proc) {
- loader_list = loader->next;
- Xfree(loader);
- return;
- }
-
- while ((loader = loader->next)) {
- if (loader->proc == proc) {
- prev->next = loader->next;
- Xfree(loader);
- return;
- }
- prev = loader;
- }
-
- return;
-}
-
-Bool
-_XlcAddLoader(
- XLCdLoadProc proc,
- XlcPosition position)
-{
- XlcLoaderList loader, last;
-
- _XlcRemoveLoader(proc); /* remove old loader, if exist */
-
- loader = Xmalloc(sizeof(XlcLoaderListRec));
- if (loader == NULL)
- return False;
-
- loader->proc = proc;
-
- if (loader_list == NULL)
- position = XlcHead;
-
- if (position == XlcHead) {
- loader->next = loader_list;
- loader_list = loader;
- } else {
- last = loader_list;
- while (last->next)
- last = last->next;
-
- loader->next = NULL;
- last->next = loader;
- }
-
- return True;
-}
-
-XLCd
-_XOpenLC(
- char *name)
-{
- XLCd lcd;
- XlcLoaderList loader;
- XLCdList cur;
-#if !defined(X_LOCALE)
- int len;
- char sinamebuf[256];
- char* siname = sinamebuf;
-#endif
-
- if (name == NULL) {
- name = setlocale (LC_CTYPE, (char *)NULL);
-#if !defined(X_LOCALE)
- /*
- * _XlMapOSLocaleName will return the same string or a substring
- * of name, so strlen(name) is okay
- */
- if ((len = strlen(name)) >= sizeof sinamebuf) {
- siname = Xmalloc (len + 1);
- if (siname == NULL)
- return NULL;
- }
- name = _XlcMapOSLocaleName(name, siname);
-#endif
- }
-
- _XLockMutex(_Xi18n_lock);
-
- /*
- * search for needed lcd, if found return it
- */
- for (cur = lcd_list; cur; cur = cur->next) {
- if (!strcmp (cur->lcd->core->name, name)) {
- lcd = cur->lcd;
- cur->ref_count++;
- goto found;
- }
- }
-
- if (!loader_list)
- _XlcInitLoader();
-
- /*
- * not there, so try to get and add to list
- */
- for (loader = loader_list; loader; loader = loader->next) {
- lcd = (*loader->proc)(name);
- if (lcd) {
- cur = Xmalloc (sizeof(XLCdListRec));
- if (cur) {
- cur->lcd = lcd;
- cur->ref_count = 1;
- cur->next = lcd_list;
- lcd_list = cur;
- } else {
- (*lcd->methods->close)(lcd);
- lcd = (XLCd) NULL;
- }
- goto found;
- }
- }
-
- lcd = NULL;
-
-found:
- _XUnlockMutex(_Xi18n_lock);
-
-#if !defined(X_LOCALE)
- if (siname != sinamebuf) Xfree(siname);
-#endif
-
- return lcd;
-}
-
-void
-_XCloseLC(
- XLCd lcd)
-{
- XLCdList cur, *prev;
-
- for (prev = &lcd_list; (cur = *prev); prev = &cur->next) {
- if (cur->lcd == lcd) {
- if (--cur->ref_count < 1) {
- (*lcd->methods->close)(lcd);
- *prev = cur->next;
- Xfree(cur);
- }
- break;
- }
- }
-
- if(loader_list) {
- _XlcDeInitLoader();
- loader_list = NULL;
- }
-}
-
-/*
- * Get the XLCd for the current locale
- */
-
-XLCd
-_XlcCurrentLC(void)
-{
- XLCd lcd;
- static XLCd last_lcd = NULL;
-
- lcd = _XOpenLC((char *) NULL);
-
- if (last_lcd)
- _XCloseLC(last_lcd);
-
- last_lcd = lcd;
-
- return lcd;
-}
-
-XrmMethods
-_XrmInitParseInfo(
- XPointer *state)
-{
- XLCd lcd = _XOpenLC((char *) NULL);
-
- if (lcd == (XLCd) NULL)
- return (XrmMethods) NULL;
-
- return (*lcd->methods->init_parse_info)(lcd, state);
-}
-
-int
-XmbTextPropertyToTextList(
- Display *dpy,
- const XTextProperty *text_prop,
- char ***list_ret,
- int *count_ret)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return XLocaleNotSupported;
-
- return (*lcd->methods->mb_text_prop_to_list)(lcd, dpy, text_prop, list_ret,
- count_ret);
-}
-
-int
-XwcTextPropertyToTextList(
- Display *dpy,
- const XTextProperty *text_prop,
- wchar_t ***list_ret,
- int *count_ret)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return XLocaleNotSupported;
-
- return (*lcd->methods->wc_text_prop_to_list)(lcd, dpy, text_prop, list_ret,
- count_ret);
-}
-
-int
-Xutf8TextPropertyToTextList(
- Display *dpy,
- const XTextProperty *text_prop,
- char ***list_ret,
- int *count_ret)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return XLocaleNotSupported;
-
- return (*lcd->methods->utf8_text_prop_to_list)(lcd, dpy, text_prop,
- list_ret, count_ret);
-}
-
-int
-XmbTextListToTextProperty(
- Display *dpy,
- char **list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return XLocaleNotSupported;
-
- return (*lcd->methods->mb_text_list_to_prop)(lcd, dpy, list, count, style,
- text_prop);
-}
-
-int
-XwcTextListToTextProperty(
- Display *dpy,
- wchar_t **list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return XLocaleNotSupported;
-
- return (*lcd->methods->wc_text_list_to_prop)(lcd, dpy, list, count, style,
- text_prop);
-}
-
-int
-Xutf8TextListToTextProperty(
- Display *dpy,
- char **list,
- int count,
- XICCEncodingStyle style,
- XTextProperty *text_prop)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return XLocaleNotSupported;
-
- return (*lcd->methods->utf8_text_list_to_prop)(lcd, dpy, list, count,
- style, text_prop);
-}
-
-void
-XwcFreeStringList(
- wchar_t **list)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return;
-
- (*lcd->methods->wc_free_string_list)(lcd, list);
-}
-
-const char *
-XDefaultString(void)
-{
- XLCd lcd = _XlcCurrentLC();
-
- if (lcd == NULL)
- return (char *) NULL;
-
- return (*lcd->methods->default_string)(lcd);
-}
-
-void
-_XlcCopyFromArg(
- char *src,
- char *dst,
- int size)
-{
- if (size == sizeof(long))
- *((long *) dst) = (long) src;
-#ifdef LONG64
- else if (size == sizeof(int))
- *((int *) dst) = (int)(long) src;
-#endif
- else if (size == sizeof(short))
- *((short *) dst) = (short)(long) src;
- else if (size == sizeof(char))
- *((char *) dst) = (char)(long) src;
- else if (size == sizeof(XPointer))
- *((XPointer *) dst) = (XPointer) src;
- else if (size > sizeof(XPointer))
- memcpy(dst, (char *) src, size);
- else
- memcpy(dst, (char *) &src, size);
-}
-
-void
-_XlcCopyToArg(
- char *src,
- char **dst,
- int size)
-{
- /* FIXME:
- On Big Endian machines, this behaves differently than _XCopyToArg. */
- if (size == sizeof(long))
- *((long *) *dst) = *((long *) src);
-#ifdef LONG64
- else if (size == sizeof(int))
- *((int *) *dst) = *((int *) src);
-#endif
- else if (size == sizeof(short))
- *((short *) *dst) = *((short *) src);
- else if (size == sizeof(char))
- *((char *) *dst) = *((char *) src);
- else if (size == sizeof(XPointer))
- *((XPointer *) *dst) = *((XPointer *) src);
- else
- memcpy(*dst, src, size);
-}
-
-void
-_XlcCountVaList(
- va_list var,
- int *count_ret)
-{
- int count;
-
- for (count = 0; va_arg(var, char *); count++)
- (void)va_arg(var, XPointer);
-
- *count_ret = count;
-}
-
-void
-_XlcVaToArgList(
- va_list var,
- int count,
- XlcArgList *args_ret)
-{
- XlcArgList args;
-
- *args_ret = args = Xmalloc(sizeof(XlcArg) * count);
- if (args == (XlcArgList) NULL)
- return;
-
- for ( ; count-- > 0; args++) {
- args->name = va_arg(var, char *);
- args->value = va_arg(var, XPointer);
- }
-}
-
-void
-_XlcCompileResourceList(
- XlcResourceList resources,
- int num_resources)
-{
- for ( ; num_resources-- > 0; resources++)
- resources->xrm_name = XrmPermStringToQuark(resources->name);
-}
-
-char *
-_XlcGetValues(
- XPointer base,
- XlcResourceList resources,
- int num_resources,
- XlcArgList args,
- int num_args,
- unsigned long mask)
-{
- XlcResourceList res;
- XrmQuark xrm_name;
- int count;
-
- for ( ; num_args-- > 0; args++) {
- res = resources;
- count = num_resources;
- xrm_name = XrmPermStringToQuark(args->name);
-
- for ( ; count-- > 0; res++) {
- if (xrm_name == res->xrm_name && (mask & res->mask)) {
- _XlcCopyToArg(base + res->offset, &args->value, res->size);
- break;
- }
- }
-
- if (count < 0)
- return args->name;
- }
-
- return NULL;
-}
-
-char *
-_XlcSetValues(
- XPointer base,
- XlcResourceList resources,
- int num_resources,
- XlcArgList args,
- int num_args,
- unsigned long mask)
-{
- XlcResourceList res;
- XrmQuark xrm_name;
- int count;
-
- for ( ; num_args-- > 0; args++) {
- res = resources;
- count = num_resources;
- xrm_name = XrmPermStringToQuark(args->name);
-
- for ( ; count-- > 0; res++) {
- if (xrm_name == res->xrm_name && (mask & res->mask)) {
- _XlcCopyFromArg(args->value, base + res->offset, res->size);
- break;
- }
- }
-
- if (count < 0)
- return args->name;
- }
-
- return NULL;
-}
diff --git a/nx-X11/lib/X11/locking.c b/nx-X11/lib/X11/locking.c
deleted file mode 100644
index 9f4fe0677..000000000
--- a/nx-X11/lib/X11/locking.c
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
-
-Copyright 1992, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/*
- * Author: Stephen Gildea, MIT X Consortium
- *
- * locking.c - multi-thread locking routines implemented in C Threads
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#undef _XLockMutex
-#undef _XUnlockMutex
-#undef _XCreateMutex
-#undef _XFreeMutex
-
-#ifdef XTHREADS
-
-#ifdef __UNIXWARE__
-#include <dlfcn.h>
-#endif
-
-#include "Xprivate.h"
-#include "locking.h"
-#ifdef XTHREADS_WARN
-#include <stdio.h> /* for warn/debug stuff */
-#endif
-
-/* Additional arguments for source code location lock call was made from */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
-# define XTHREADS_FILE_LINE_ARGS \
- , \
- char* file, /* source file, from macro */ \
- int line
-#else
-# define XTHREADS_FILE_LINE_ARGS /* None */
-#endif
-
-
-#define NUM_FREE_CVLS 4
-
-/* in lcWrap.c */
-extern LockInfoPtr _Xi18n_lock;
-
-#ifdef WIN32
-static DWORD _X_TlsIndex = (DWORD)-1;
-
-void _Xthread_init(void)
-{
- if (_X_TlsIndex == (DWORD)-1)
- _X_TlsIndex = TlsAlloc();
-}
-
-struct _xthread_waiter *
-_Xthread_waiter(void)
-{
- struct _xthread_waiter *me;
-
- if (!(me = TlsGetValue(_X_TlsIndex))) {
- me = xmalloc(sizeof(struct _xthread_waiter));
- me->sem = CreateSemaphore(NULL, 0, 1, NULL);
- me->next = NULL;
- TlsSetValue(_X_TlsIndex, me);
- }
- return me;
-}
-#endif /* WIN32 */
-
-static xthread_t _Xthread_self(void)
-{
- return xthread_self();
-}
-
-static LockInfoRec global_lock;
-static LockInfoRec i18n_lock;
-
-static void _XLockMutex(
- LockInfoPtr lip
- XTHREADS_FILE_LINE_ARGS
- )
-{
- xmutex_lock(lip->lock);
-}
-
-static void _XUnlockMutex(
- LockInfoPtr lip
- XTHREADS_FILE_LINE_ARGS
- )
-{
- xmutex_unlock(lip->lock);
-}
-
-static void _XCreateMutex(
- LockInfoPtr lip)
-{
- lip->lock = xmutex_malloc();
- if (lip->lock) {
- xmutex_init(lip->lock);
- xmutex_set_name(lip->lock, "Xlib");
- }
-}
-
-static void _XFreeMutex(
- LockInfoPtr lip)
-{
- xmutex_clear(lip->lock);
- xmutex_free(lip->lock);
-}
-
-#ifdef XTHREADS_WARN
-static char *locking_file;
-static int locking_line;
-static xthread_t locking_thread;
-static Bool xlibint_unlock = False; /* XlibInt.c may Unlock and re-Lock */
-
-/* history that is useful to examine in a debugger */
-#define LOCK_HIST_SIZE 21
-
-static struct {
- Bool lockp; /* True for lock, False for unlock */
- xthread_t thread;
- char *file;
- int line;
-} locking_history[LOCK_HIST_SIZE];
-
-int lock_hist_loc = 0; /* next slot to fill */
-
-static void _XLockDisplayWarn(
- Display *dpy,
- char *file, /* source file, from macro */
- int line)
-{
- xthread_t self;
- xthread_t old_locker;
-
- self = xthread_self();
- old_locker = locking_thread;
- if (xthread_have_id(old_locker)) {
- if (xthread_equal(old_locker, self))
- printf("Xlib ERROR: %s line %d thread %x: locking display already locked at %s line %d\n",
- file, line, self, locking_file, locking_line);
-#ifdef XTHREADS_DEBUG
- else
- printf("%s line %d: thread %x waiting on lock held by %s line %d thread %x\n",
- file, line, self,
- locking_file, locking_line, old_locker);
-#endif /* XTHREADS_DEBUG */
- }
-
- xmutex_lock(dpy->lock->mutex);
-
- if (strcmp(file, "XlibInt.c") == 0) {
- if (!xlibint_unlock)
- printf("Xlib ERROR: XlibInt.c line %d thread %x locking display it did not unlock\n",
- line, self);
- xlibint_unlock = False;
- }
-
-#ifdef XTHREADS_DEBUG
- /* if (old_locker && old_locker != self) */
- if (strcmp("XClearArea.c", file) && strcmp("XDrSegs.c", file)) /* ico */
- printf("%s line %d: thread %x got display lock\n", file, line, self);
-#endif /* XTHREADS_DEBUG */
-
- locking_thread = self;
- if (strcmp(file, "XlibInt.c") != 0) {
- locking_file = file;
- locking_line = line;
- }
- locking_history[lock_hist_loc].file = file;
- locking_history[lock_hist_loc].line = line;
- locking_history[lock_hist_loc].thread = self;
- locking_history[lock_hist_loc].lockp = True;
- lock_hist_loc++;
- if (lock_hist_loc >= LOCK_HIST_SIZE)
- lock_hist_loc = 0;
-}
-#endif /* XTHREADS_WARN */
-
-static void _XUnlockDisplay(
- Display *dpy
- XTHREADS_FILE_LINE_ARGS
- )
-{
-#ifdef XTHREADS_WARN
- xthread_t self = xthread_self();
-
-#ifdef XTHREADS_DEBUG
- if (strcmp("XClearArea.c", file) && strcmp("XDrSegs.c", file)) /* ico */
- printf("%s line %d: thread %x unlocking display\n", file, line, self);
-#endif /* XTHREADS_DEBUG */
-
- if (!xthread_have_id(locking_thread))
- printf("Xlib ERROR: %s line %d thread %x: unlocking display that is not locked\n",
- file, line, self);
- else if (strcmp(file, "XlibInt.c") == 0)
- xlibint_unlock = True;
-#ifdef XTHREADS_DEBUG
- else if (strcmp(file, locking_file) != 0)
- /* not always an error because locking_file is not per-thread */
- printf("%s line %d: unlocking display locked from %s line %d (probably okay)\n",
- file, line, locking_file, locking_line);
-#endif /* XTHREADS_DEBUG */
- xthread_clear_id(locking_thread);
-
- locking_history[lock_hist_loc].file = file;
- locking_history[lock_hist_loc].line = line;
- locking_history[lock_hist_loc].thread = self;
- locking_history[lock_hist_loc].lockp = False;
- lock_hist_loc++;
- if (lock_hist_loc >= LOCK_HIST_SIZE)
- lock_hist_loc = 0;
-#endif /* XTHREADS_WARN */
- xmutex_unlock(dpy->lock->mutex);
-}
-
-
-static struct _XCVList *_XCreateCVL(
- Display *dpy)
-{
- struct _XCVList *cvl;
-
- if ((cvl = dpy->lock->free_cvls) != NULL) {
- dpy->lock->free_cvls = cvl->next;
- dpy->lock->num_free_cvls--;
- } else {
- cvl = Xmalloc(sizeof(struct _XCVList));
- if (!cvl)
- return NULL;
- cvl->cv = xcondition_malloc();
- if (!cvl->cv) {
- Xfree(cvl);
- return NULL;
- }
- xcondition_init(cvl->cv);
- xcondition_set_name(cvl->cv, "Xlib read queue");
- }
- cvl->next = NULL;
- return cvl;
-}
-
-/* Put ourselves on the queue to read the connection.
- Allocates and returns a queue element. */
-
-static struct _XCVList *
-_XPushReader(
- Display *dpy,
- struct _XCVList ***tail)
-{
- struct _XCVList *cvl;
-
- cvl = _XCreateCVL(dpy);
-#ifdef XTHREADS_DEBUG
- printf("_XPushReader called in thread %x, pushing %x\n",
- xthread_self(), cvl);
-#endif
- **tail = cvl;
- *tail = &cvl->next;
- return cvl;
-}
-
-/* signal the next thread waiting to read the connection */
-
-static void _XPopReader(
- Display *dpy,
- struct _XCVList **list,
- struct _XCVList ***tail)
-{
- register struct _XCVList *front = *list;
-
-#ifdef XTHREADS_DEBUG
- printf("_XPopReader called in thread %x, popping %x\n",
- xthread_self(), front);
-#endif
-
- if (dpy->flags & XlibDisplayProcConni)
- /* we never added ourself in the first place */
- return;
-
- if (front) { /* check "front" for paranoia */
- *list = front->next;
- if (*tail == &front->next) /* did we free the last elt? */
- *tail = list;
- if (dpy->lock->num_free_cvls < NUM_FREE_CVLS) {
- front->next = dpy->lock->free_cvls;
- dpy->lock->free_cvls = front;
- dpy->lock->num_free_cvls++;
- } else {
- xcondition_clear(front->cv);
- Xfree(front->cv);
- Xfree(front);
- }
- }
-
- /* signal new front after it is in place */
- if ((dpy->lock->reply_first = (dpy->lock->reply_awaiters != NULL))) {
- ConditionSignal(dpy, dpy->lock->reply_awaiters->cv);
- } else if (dpy->lock->event_awaiters) {
- ConditionSignal(dpy, dpy->lock->event_awaiters->cv);
- }
-}
-
-static void _XConditionWait(
- xcondition_t cv,
- xmutex_t mutex
- XTHREADS_FILE_LINE_ARGS
- )
-{
-#ifdef XTHREADS_WARN
- xthread_t self = xthread_self();
- char *old_file = locking_file;
- int old_line = locking_line;
-
-#ifdef XTHREADS_DEBUG
- printf("line %d thread %x in condition wait\n", line, self);
-#endif
- xthread_clear_id(locking_thread);
-
- locking_history[lock_hist_loc].file = file;
- locking_history[lock_hist_loc].line = line;
- locking_history[lock_hist_loc].thread = self;
- locking_history[lock_hist_loc].lockp = False;
- lock_hist_loc++;
- if (lock_hist_loc >= LOCK_HIST_SIZE)
- lock_hist_loc = 0;
-#endif /* XTHREADS_WARN */
-
- xcondition_wait(cv, mutex);
-
-#ifdef XTHREADS_WARN
- locking_thread = self;
- locking_file = old_file;
- locking_line = old_line;
-
- locking_history[lock_hist_loc].file = file;
- locking_history[lock_hist_loc].line = line;
- locking_history[lock_hist_loc].thread = self;
- locking_history[lock_hist_loc].lockp = True;
- lock_hist_loc++;
- if (lock_hist_loc >= LOCK_HIST_SIZE)
- lock_hist_loc = 0;
-#ifdef XTHREADS_DEBUG
- printf("line %d thread %x was signaled\n", line, self);
-#endif /* XTHREADS_DEBUG */
-#endif /* XTHREADS_WARN */
-}
-
-static void _XConditionSignal(
- xcondition_t cv
- XTHREADS_FILE_LINE_ARGS
- )
-{
-#ifdef XTHREADS_WARN
-#ifdef XTHREADS_DEBUG
- printf("line %d thread %x is signalling\n", line, xthread_self());
-#endif
-#endif
- xcondition_signal(cv);
-}
-
-
-static void _XConditionBroadcast(
- xcondition_t cv
- XTHREADS_FILE_LINE_ARGS
- )
-{
-#ifdef XTHREADS_WARN
-#ifdef XTHREADS_DEBUG
- printf("line %d thread %x is broadcasting\n", line, xthread_self());
-#endif
-#endif
- xcondition_broadcast(cv);
-}
-
-
-static void _XFreeDisplayLock(
- Display *dpy)
-{
- struct _XCVList *cvl;
-
- if (dpy->lock != NULL) {
- if (dpy->lock->mutex != NULL) {
- xmutex_clear(dpy->lock->mutex);
- xmutex_free(dpy->lock->mutex);
- }
- if (dpy->lock->cv != NULL) {
- xcondition_clear(dpy->lock->cv);
- xcondition_free(dpy->lock->cv);
- }
- if (dpy->lock->writers != NULL) {
- xcondition_clear(dpy->lock->writers);
- xcondition_free(dpy->lock->writers);
- }
- while ((cvl = dpy->lock->free_cvls)) {
- dpy->lock->free_cvls = cvl->next;
- xcondition_clear(cvl->cv);
- Xfree(cvl->cv);
- Xfree(cvl);
- }
- Xfree(dpy->lock);
- dpy->lock = NULL;
- }
- if (dpy->lock_fns != NULL) {
- Xfree(dpy->lock_fns);
- dpy->lock_fns = NULL;
- }
-}
-
-/*
- * wait for thread with user-level display lock to release it.
- */
-
-static void _XDisplayLockWait(
- Display *dpy)
-{
- xthread_t self;
-
- while (dpy->lock->locking_level > 0) {
- self = xthread_self();
- if (xthread_equal(dpy->lock->locking_thread, self))
- break;
- ConditionWait(dpy, dpy->lock->cv);
- }
-}
-
-static void _XLockDisplay(
- Display *dpy
- XTHREADS_FILE_LINE_ARGS
- )
-{
-#ifdef XTHREADS_WARN
- _XLockDisplayWarn(dpy, file, line);
-#else
- xmutex_lock(dpy->lock->mutex);
-#endif
- if (dpy->lock->locking_level > 0)
- _XDisplayLockWait(dpy);
- _XIDHandler(dpy);
- _XSeqSyncFunction(dpy);
-}
-
-/*
- * _XReply is allowed to exit from select/poll and clean up even if a
- * user-level lock is in force, so it uses this instead of _XFancyLockDisplay.
- */
-static void _XInternalLockDisplay(
- Display *dpy,
- Bool wskip
- XTHREADS_FILE_LINE_ARGS
- )
-{
-#ifdef XTHREADS_WARN
- _XLockDisplayWarn(dpy, file, line);
-#else
- xmutex_lock(dpy->lock->mutex);
-#endif
- if (!wskip && dpy->lock->locking_level > 0)
- _XDisplayLockWait(dpy);
-}
-
-static void _XUserLockDisplay(
- register Display* dpy)
-{
- _XDisplayLockWait(dpy);
-
- if (++dpy->lock->locking_level == 1) {
- dpy->lock->lock_wait = _XDisplayLockWait;
- dpy->lock->locking_thread = xthread_self();
- }
-}
-
-static
-void _XUserUnlockDisplay(
- register Display* dpy)
-{
- if (dpy->lock->locking_level > 0 && --dpy->lock->locking_level == 0) {
- /* signal other threads that might be waiting in XLockDisplay */
- ConditionBroadcast(dpy, dpy->lock->cv);
- dpy->lock->lock_wait = NULL;
- xthread_clear_id(dpy->lock->locking_thread);
- }
-}
-
-/* returns 0 if initialized ok, -1 if unable to allocate
- a mutex or other memory */
-
-static int _XInitDisplayLock(
- Display *dpy)
-{
- dpy->lock_fns = Xmalloc(sizeof(struct _XLockPtrs));
- if (dpy->lock_fns == NULL)
- return -1;
- dpy->lock = Xmalloc(sizeof(struct _XLockInfo));
- if (dpy->lock == NULL) {
- _XFreeDisplayLock(dpy);
- return -1;
- }
- dpy->lock->cv = xcondition_malloc();
- dpy->lock->mutex = xmutex_malloc();
- dpy->lock->writers = xcondition_malloc();
- if (!dpy->lock->cv || !dpy->lock->mutex || !dpy->lock->writers) {
- _XFreeDisplayLock(dpy);
- return -1;
- }
-
- dpy->lock->reply_bytes_left = 0;
- dpy->lock->reply_was_read = False;
- dpy->lock->reply_awaiters = NULL;
- dpy->lock->reply_awaiters_tail = &dpy->lock->reply_awaiters;
- dpy->lock->event_awaiters = NULL;
- dpy->lock->event_awaiters_tail = &dpy->lock->event_awaiters;
- dpy->lock->reply_first = False;
- dpy->lock->locking_level = 0;
- dpy->lock->num_free_cvls = 0;
- dpy->lock->free_cvls = NULL;
- xthread_clear_id(dpy->lock->locking_thread);
- xthread_clear_id(dpy->lock->reading_thread);
- xthread_clear_id(dpy->lock->conni_thread);
- xmutex_init(dpy->lock->mutex);
- xmutex_set_name(dpy->lock->mutex, "Xlib Display");
- xcondition_init(dpy->lock->cv);
- xcondition_set_name(dpy->lock->cv, "XLockDisplay");
- xcondition_init(dpy->lock->writers);
- xcondition_set_name(dpy->lock->writers, "Xlib wait for writable");
- dpy->lock_fns->lock_display = _XLockDisplay;
- dpy->lock->internal_lock_display = _XInternalLockDisplay;
- dpy->lock_fns->unlock_display = _XUnlockDisplay;
- dpy->lock->user_lock_display = _XUserLockDisplay;
- dpy->lock->user_unlock_display = _XUserUnlockDisplay;
- dpy->lock->pop_reader = _XPopReader;
- dpy->lock->push_reader = _XPushReader;
- dpy->lock->condition_wait = _XConditionWait;
- dpy->lock->condition_signal = _XConditionSignal;
- dpy->lock->condition_broadcast = _XConditionBroadcast;
- dpy->lock->create_cvl = _XCreateCVL;
- dpy->lock->lock_wait = NULL; /* filled in by XLockDisplay() */
-
- return 0;
-}
-
-#ifdef __UNIXWARE__
-xthread_t __x11_thr_self() { return 0; }
-xthread_t (*_x11_thr_self)() = __x11_thr_self;
-#endif
-
-
-Status XInitThreads(void)
-{
- if (_Xglobal_lock)
- return 1;
-#ifdef __UNIXWARE__
- else {
- void *dl_handle = dlopen(NULL, RTLD_LAZY);
- if (!dl_handle ||
- ((_x11_thr_self = (xthread_t(*)())dlsym(dl_handle,"thr_self")) == 0)) {
- _x11_thr_self = __x11_thr_self;
- (void) fprintf (stderr,
- "XInitThreads called, but no libthread in the calling program!\n" );
- }
- }
-#endif /* __UNIXWARE__ */
-#ifdef xthread_init
- xthread_init(); /* return value? */
-#endif
- if (!(global_lock.lock = xmutex_malloc()))
- return 0;
- if (!(i18n_lock.lock = xmutex_malloc())) {
- xmutex_free(global_lock.lock);
- global_lock.lock = NULL;
- return 0;
- }
- _Xglobal_lock = &global_lock;
- xmutex_init(_Xglobal_lock->lock);
- xmutex_set_name(_Xglobal_lock->lock, "Xlib global");
- _Xi18n_lock = &i18n_lock;
- xmutex_init(_Xi18n_lock->lock);
- xmutex_set_name(_Xi18n_lock->lock, "Xlib i18n");
- _XLockMutex_fn = _XLockMutex;
- _XUnlockMutex_fn = _XUnlockMutex;
- _XCreateMutex_fn = _XCreateMutex;
- _XFreeMutex_fn = _XFreeMutex;
- _XInitDisplayLock_fn = _XInitDisplayLock;
- _XFreeDisplayLock_fn = _XFreeDisplayLock;
- _Xthread_self_fn = _Xthread_self;
-
-#ifdef XTHREADS_WARN
-#ifdef XTHREADS_DEBUG
- setlinebuf(stdout); /* for debugging messages */
-#endif
-#endif
-
- return 1;
-}
-
-#else /* XTHREADS */
-Status XInitThreads(void)
-{
- return 0;
-}
-#endif /* XTHREADS */
diff --git a/nx-X11/lib/X11/locking.h b/nx-X11/lib/X11/locking.h
deleted file mode 100644
index 277c9afc8..000000000
--- a/nx-X11/lib/X11/locking.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-
-Copyright 1992, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-/*
- * Author: Stephen Gildea, MIT X Consortium
- *
- * locking.h - data types for C Threads locking.
- * Used by XlibInt.c, locking.c, LockDis.c
- */
-
-#ifndef _X_locking_H_
-#define _X_locking_H_
-
-#define xmalloc(s) Xmalloc(s)
-#define xfree(s) Xfree(s)
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xthreads.h>
-
-struct _XCVList {
- xcondition_t cv;
- xReply *buf;
- struct _XCVList *next;
-};
-
-extern xthread_t (*_Xthread_self_fn)( /* in XlibInt.c */
- void
-);
-
-/* Display->lock is a pointer to one of these */
-
-struct _XLockInfo {
- xmutex_t mutex; /* mutex for critical sections */
- int reply_bytes_left; /* nbytes of the reply still to read */
- Bool reply_was_read; /* _XReadEvents read a reply for _XReply */
- struct _XCVList *reply_awaiters; /* list of CVs for _XReply */
- struct _XCVList **reply_awaiters_tail;
- struct _XCVList *event_awaiters; /* list of CVs for _XReadEvents */
- struct _XCVList **event_awaiters_tail;
- Bool reply_first; /* who may read, reply queue or event queue */
- /* for XLockDisplay */
- int locking_level; /* how many times into XLockDisplay we are */
- xthread_t locking_thread; /* thread that did XLockDisplay */
- xcondition_t cv; /* wait if another thread has XLockDisplay */
- xthread_t reading_thread; /* cache */
- xthread_t conni_thread; /* thread in XProcessInternalConnection */
- xcondition_t writers; /* wait for writable */
- int num_free_cvls;
- struct _XCVList *free_cvls;
- /* used only in XlibInt.c */
- void (*pop_reader)(
- Display* /* dpy */,
- struct _XCVList** /* list */,
- struct _XCVList*** /* tail */
- );
- struct _XCVList *(*push_reader)(
- Display * /* dpy */,
- struct _XCVList*** /* tail */
- );
- void (*condition_wait)(
- xcondition_t /* cv */,
- xmutex_t /* mutex */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char* /* file */,
- int /* line */
-#endif
- );
- void (*internal_lock_display)(
- Display* /* dpy */,
- Bool /* wskip */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char* /* file */,
- int /* line */
-#endif
- );
- /* used in XlibInt.c and locking.c */
- void (*condition_signal)(
- xcondition_t /* cv */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char* /* file */,
- int /* line */
-#endif
- );
- void (*condition_broadcast)(
- xcondition_t /* cv */
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
- , char* /* file */,
- int /* line */
-#endif
- );
- /* used in XlibInt.c and XLockDis.c */
- void (*lock_wait)(
- Display* /* dpy */
- );
- void (*user_lock_display)(
- Display* /* dpy */
- );
- void (*user_unlock_display)(
- Display* /* dpy */
- );
- struct _XCVList *(*create_cvl)(
- Display * /* dpy */
- );
-};
-
-#define UnlockNextEventReader(d) if ((d)->lock) \
- (*(d)->lock->pop_reader)((d),&(d)->lock->event_awaiters,&(d)->lock->event_awaiters_tail)
-
-#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
-#define ConditionWait(d,c) if ((d)->lock) \
- (*(d)->lock->condition_wait)(c, (d)->lock->mutex,__FILE__,__LINE__)
-#define ConditionSignal(d,c) if ((d)->lock) \
- (*(d)->lock->condition_signal)(c,__FILE__,__LINE__)
-#define ConditionBroadcast(d,c) if ((d)->lock) \
- (*(d)->lock->condition_broadcast)(c,__FILE__,__LINE__)
-#else
-#define ConditionWait(d,c) if ((d)->lock) \
- (*(d)->lock->condition_wait)(c, (d)->lock->mutex)
-#define ConditionSignal(d,c) if ((d)->lock) \
- (*(d)->lock->condition_signal)(c)
-#define ConditionBroadcast(d,c) if ((d)->lock) \
- (*(d)->lock->condition_broadcast)(c)
-#endif
-
-typedef struct _LockInfoRec {
- xmutex_t lock;
-} LockInfoRec;
-
-/* XOpenDis.c */
-extern int (*_XInitDisplayLock_fn)(Display *dpy);
-extern void (*_XFreeDisplayLock_fn)(Display *dpy);
-
-#endif /* _X_locking_H_ */
diff --git a/nx-X11/lib/X11/mbWMProps.c b/nx-X11/lib/X11/mbWMProps.c
deleted file mode 100644
index 9fb57faca..000000000
--- a/nx-X11/lib/X11/mbWMProps.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xlocale.h>
-
-void
-XmbSetWMProperties (
- Display *dpy,
- Window w,
- _Xconst char *windowName,
- _Xconst char *iconName,
- char **argv,
- int argc,
- XSizeHints *sizeHints,
- XWMHints *wmHints,
- XClassHint *classHints)
-{
- XTextProperty wname, iname;
- XTextProperty *wprop = NULL;
- XTextProperty *iprop = NULL;
-
- if (windowName &&
- XmbTextListToTextProperty(dpy, (char**)&windowName, 1,
- XStdICCTextStyle, &wname) >= Success)
- wprop = &wname;
- if (iconName &&
- XmbTextListToTextProperty(dpy, (char**)&iconName, 1,
- XStdICCTextStyle, &iname) >= Success)
- iprop = &iname;
- XSetWMProperties(dpy, w, wprop, iprop, argv, argc,
- sizeHints, wmHints, classHints);
- if (wprop)
- Xfree(wname.value);
- if (iprop)
- Xfree(iname.value);
-
- /* Note: The WM_LOCALE_NAME property is set by XSetWMProperties. */
-}
diff --git a/nx-X11/lib/X11/mbWrap.c b/nx-X11/lib/X11/mbWrap.c
deleted file mode 100644
index 766b8da01..000000000
--- a/nx-X11/lib/X11/mbWrap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/*
- * Copyright 1991 by the Open Software Foundation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Open Software Foundation
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Open Software
- * Foundation makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OPEN SOFTWARE FOUNDATION DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * M. Collins OSF
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-void
-XmbDrawText(
- Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- XmbTextItem *text_items,
- int nitems)
-{
- register XFontSet fs = NULL;
- register XmbTextItem *p = text_items;
- register int i = nitems;
- register int esc;
-
- /* ignore leading items with no fontset */
- while (i && !p->font_set) {
- i--;
- p++;
- }
-
- for (; --i >= 0; p++) {
- if (p->font_set)
- fs = p->font_set;
- x += p->delta;
- esc = (*fs->methods->mb_draw_string) (dpy, d, fs, gc, x, y,
- p->chars, p->nchars);
- if (!esc)
- esc = fs->methods->mb_escapement (fs, p->chars, p->nchars);
- x += esc;
- }
-}
-
-void
-XmbDrawString(
- Display *dpy,
- Drawable d,
- XFontSet font_set,
- GC gc,
- int x,
- int y,
- _Xconst char *text,
- int text_len)
-{
- (void)(*font_set->methods->mb_draw_string) (dpy, d, font_set, gc, x, y,
- text, text_len);
-}
-
-
-void
-XmbDrawImageString(
- Display *dpy,
- Drawable d,
- XFontSet font_set,
- GC gc,
- int x,
- int y,
- _Xconst char *text,
- int text_len)
-{
- (*font_set->methods->mb_draw_image_string) (dpy, d, font_set, gc, x, y,
- text, text_len);
-}
-
-int
-XmbTextEscapement(
- XFontSet font_set,
- _Xconst char *text,
- int text_len)
-{
- return (*font_set->methods->mb_escapement) (font_set, text, text_len);
-}
-
-int
-XmbTextExtents(
- XFontSet font_set,
- _Xconst char *text,
- int text_len,
- XRectangle *overall_ink_extents,
- XRectangle *overall_logical_extents)
-{
- return (*font_set->methods->mb_extents) (font_set, text, text_len,
- overall_ink_extents,
- overall_logical_extents);
-}
-
-Status
-XmbTextPerCharExtents(
- XFontSet font_set,
- _Xconst char *text,
- int text_len,
- XRectangle *ink_extents_buffer,
- XRectangle *logical_extents_buffer,
- int buffer_size,
- int *num_chars,
- XRectangle *max_ink_extents,
- XRectangle *max_logical_extents)
-{
- return (*font_set->methods->mb_extents_per_char)
- (font_set, text, text_len,
- ink_extents_buffer, logical_extents_buffer,
- buffer_size, num_chars, max_ink_extents, max_logical_extents);
-}
diff --git a/nx-X11/lib/X11/omDefault.c b/nx-X11/lib/X11/omDefault.c
deleted file mode 100644
index 134ef461a..000000000
--- a/nx-X11/lib/X11/omDefault.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * (c) Copyright 1995 FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xatom.h>
-#include <stdio.h>
-
-#define DefineLocalBuf char local_buf[BUFSIZ]
-#define AllocLocalBuf(length) (length > BUFSIZ ? (char *)Xmalloc(length) : local_buf)
-#define FreeLocalBuf(ptr) if (ptr != local_buf) Xfree(ptr)
-
-static Bool
-wcs_to_mbs(
- XOC oc,
- char *to,
- _Xconst wchar_t *from,
- int length)
-{
- XlcConv conv;
- int to_left, ret;
-
- conv = _XomInitConverter(oc, XOMWideChar);
- if (conv == NULL)
- return False;
-
- to_left = length;
- ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
- &to_left, NULL, 0);
- if (ret != 0 || length > 0)
- return False;
-
- return True;
-}
-
-static Bool
-utf8_to_mbs(
- XOC oc,
- char *to,
- _Xconst char *from,
- int length)
-{
- XlcConv conv;
- int to_left, ret;
-
- conv = _XomInitConverter(oc, XOMUtf8String);
- if (conv == NULL)
- return False;
-
- to_left = length;
- ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
- &to_left, NULL, 0);
- if (ret != 0 || length > 0)
- return False;
-
- return True;
-}
-
-int
-_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length)
-{
- return XTextWidth(*oc->core.font_info.font_struct_list, text, length);
-}
-
-int
-_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- int ret;
-
- if (buf == NULL)
- return 0;
-
- if (wcs_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultTextEscapement(oc, buf, length);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-int
-_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- int ret;
-
- if (buf == NULL)
- return 0;
-
- if (utf8_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultTextEscapement(oc, buf, length);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-int
-_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical)
-{
- int direction, logical_ascent, logical_descent;
- XCharStruct overall;
-
- XTextExtents(*oc->core.font_info.font_struct_list, text, length, &direction,
- &logical_ascent, &logical_descent, &overall);
-
- if (overall_ink) {
- overall_ink->x = overall.lbearing;
- overall_ink->y = -(overall.ascent);
- overall_ink->width = overall.rbearing - overall.lbearing;
- overall_ink->height = overall.ascent + overall.descent;
- }
-
- if (overall_logical) {
- overall_logical->x = 0;
- overall_logical->y = -(logical_ascent);
- overall_logical->width = overall.width;
- overall_logical->height = logical_ascent + logical_descent;
- }
-
- return overall.width;
-}
-
-int
-_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- int ret;
-
- if (buf == NULL)
- return 0;
-
- if (wcs_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-int
-_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- int ret;
-
- if (buf == NULL)
- return 0;
-
- if (utf8_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-Status
-_XmbDefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- XFontStruct *font = *oc->core.font_info.font_struct_list;
- XCharStruct *def, *cs, overall;
- Bool first = True;
-
- if (buf_size < length)
- return 0;
-
- bzero((char *) &overall, sizeof(XCharStruct));
- *num_chars = 0;
-
- CI_GET_DEFAULT_INFO_1D(font, def)
-
- while (length-- > 0) {
- CI_GET_CHAR_INFO_1D(font, *text, def, cs)
- text++;
- if (cs == NULL)
- continue;
-
- ink_buf->x = overall.width + cs->lbearing;
- ink_buf->y = -(cs->ascent);
- ink_buf->width = cs->rbearing - cs->lbearing;
- ink_buf->height = cs->ascent + cs->descent;
- ink_buf++;
-
- logical_buf->x = overall.width;
- logical_buf->y = -(font->ascent);
- logical_buf->width = cs->width;
- logical_buf->height = font->ascent + font->descent;
- logical_buf++;
-
- if (first) {
- overall = *cs;
- first = False;
- } else {
- overall.ascent = max(overall.ascent, cs->ascent);
- overall.descent = max(overall.descent, cs->descent);
- overall.lbearing = min(overall.lbearing, overall.width +
- cs->lbearing);
- overall.rbearing = max(overall.rbearing, overall.width +
- cs->rbearing);
- overall.width += cs->width;
- }
-
- (*num_chars)++;
- }
-
- if (overall_ink) {
- overall_ink->x = overall.lbearing;
- overall_ink->y = -(overall.ascent);
- overall_ink->width = overall.rbearing - overall.lbearing;
- overall_ink->height = overall.ascent + overall.descent;
- }
-
- if (overall_logical) {
- overall_logical->x = 0;
- overall_logical->y = -(font->ascent);
- overall_logical->width = overall.width;
- overall_logical->height = font->ascent + font->descent;
- }
-
- return 1;
-}
-
-Status
-_XwcDefaultTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- Status ret;
-
- if (buf == NULL)
- return 0;
-
- if (wcs_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
- buf_size, num_chars, overall_ink,
- overall_logical);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-Status
-_Xutf8DefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- Status ret;
-
- if (buf == NULL)
- return 0;
-
- if (utf8_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
- buf_size, num_chars, overall_ink,
- overall_logical);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-int
-_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length)
-{
- XFontStruct *font = *oc->core.font_info.font_struct_list;
-
- XSetFont(dpy, gc, font->fid);
- XDrawString(dpy, d, gc, x, y, text, length);
-
- return XTextWidth(font, text, length);
-}
-
-int
-_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst wchar_t *text, int length)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- int ret;
-
- if (buf == NULL)
- return 0;
-
- if (wcs_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-int
-_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
- int ret;
-
- if (buf == NULL)
- return 0;
-
- if (utf8_to_mbs(oc, buf, text, length) == False) {
- ret = 0;
- goto err;
- }
-
- ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
-
-err:
- FreeLocalBuf(buf);
-
- return ret;
-}
-
-void
-_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length)
-{
- XSetFont(dpy, gc, (*oc->core.font_info.font_struct_list)->fid);
- XDrawImageString(dpy, d, gc, x, y, text, length);
-}
-
-void
-_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst wchar_t *text, int length)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
-
- if (buf == NULL)
- return;
-
- if (wcs_to_mbs(oc, buf, text, length) == False)
- goto err;
-
- _XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, buf, length);
-
-err:
- FreeLocalBuf(buf);
-}
-
-void
-_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length)
-{
- DefineLocalBuf;
- char *buf = AllocLocalBuf(length);
-
- if (buf == NULL)
- return;
-
- if (utf8_to_mbs(oc, buf, text, length) == False)
- goto err;
-
- _XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, buf, length);
-
-err:
- FreeLocalBuf(buf);
-}
diff --git a/nx-X11/lib/X11/omGeneric.c b/nx-X11/lib/X11/omGeneric.c
deleted file mode 100644
index 68eec01c0..000000000
--- a/nx-X11/lib/X11/omGeneric.c
+++ /dev/null
@@ -1,2100 +0,0 @@
-/* #define FONTDEBUG */
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Takanori Tateno FUJITSU LIMITED
- *
- */
-
-/*
- * Fixed the algorithms in parse_fontname() and parse_fontdata()
- * to improve the logic for determining which font should be
- * returned for a given CharSet. We even added some comments
- * so that you can figure out what in the heck we're doing. We
- * realize this is a departure from the norm, but hey, we're
- * rebels! :-) :-)
- *
- * Modifiers: Jeff Walls, Paul Anderson: HEWLETT-PACKARD
- */
-/*
- * Cleaned up mess, removed some blabla
- * Egbert Eich, SuSE Linux AG
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-#include "XlcGeneric.h"
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xatom.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-
-#define MAXFONTS 100
-#define PIXEL_SIZE_FIELD 7
-#define POINT_SIZE_FIELD 8
-#define CHARSET_ENCODING_FIELD 14
-#define XLFD_MAX_LEN 255
-
-/* For VW/UDC start */
-
-static FontData
-init_fontdata(
- FontData font_data,
- int font_data_count)
-{
- FontData fd;
- int i;
-
- fd = Xcalloc(font_data_count, sizeof(FontDataRec));
- if(fd == (FontData) NULL)
- return False;
-
- for(i = 0 ; i < font_data_count ; i++)
- fd[i] = font_data[i];
-
- return fd;
-}
-
-static VRotate
-init_vrotate(
- FontData font_data,
- int font_data_count,
- int type,
- CodeRange code_range,
- int code_range_num)
-{
- VRotate vrotate;
- int i;
-
- if(type == VROTATE_NONE)
- return (VRotate)NULL;
-
- vrotate = Xcalloc(font_data_count, sizeof(VRotateRec));
- if(vrotate == (VRotate) NULL)
- return False;
-
- for(i = 0 ; i < font_data_count ; i++) {
- vrotate[i].charset_name = font_data[i].name;
- vrotate[i].side = font_data[i].side;
- if(type == VROTATE_PART) {
- vrotate[i].num_cr = code_range_num;
- vrotate[i].code_range = code_range;
- }
- }
-
- return vrotate;
-}
-
-static Bool
-init_fontset(
- XOC oc)
-{
- XOCGenericPart *gen;
- FontSet font_set;
- OMData data;
- int count;
-
- count = XOM_GENERIC(oc->core.om)->data_num;
- data = XOM_GENERIC(oc->core.om)->data;
-
- font_set = Xcalloc(count, sizeof(FontSetRec));
- if (font_set == NULL)
- return False;
-
- gen = XOC_GENERIC(oc);
- gen->font_set_num = count;
- gen->font_set = font_set;
-
- for ( ; count-- > 0; data++, font_set++) {
- font_set->charset_count = data->charset_count;
- font_set->charset_list = data->charset_list;
-
- if((font_set->font_data = init_fontdata(data->font_data,
- data->font_data_count)) == NULL)
- goto err;
- font_set->font_data_count = data->font_data_count;
- if((font_set->substitute = init_fontdata(data->substitute,
- data->substitute_num)) == NULL)
- goto err;
- font_set->substitute_num = data->substitute_num;
- if((font_set->vmap = init_fontdata(data->vmap,
- data->vmap_num)) == NULL)
- goto err;
- font_set->vmap_num = data->vmap_num;
-
- if(data->vrotate_type != VROTATE_NONE) {
- /* A vrotate member is specified primary font data */
- /* as initial value. */
- if((font_set->vrotate = init_vrotate(data->font_data,
- data->font_data_count,
- data->vrotate_type,
- data->vrotate,
- data->vrotate_num)) == NULL)
- goto err;
- font_set->vrotate_num = data->font_data_count;
- }
- }
- return True;
-
-err:
-
- Xfree(font_set->font_data);
- Xfree(font_set->substitute);
- Xfree(font_set->vmap);
- Xfree(font_set->vrotate);
- Xfree(font_set);
- gen->font_set = (FontSet) NULL;
- gen->font_set_num = 0;
- return False;
-}
-
-/* For VW/UDC end */
-
-static char *
-get_prop_name(
- Display *dpy,
- XFontStruct *fs)
-{
- unsigned long fp;
-
- if (XGetFontProperty(fs, XA_FONT, &fp))
- return XGetAtomName(dpy, fp);
-
- return (char *) NULL;
-}
-
-/* For VW/UDC start */
-
-static Bool
-load_fontdata(
- XOC oc,
- FontData font_data,
- int font_data_num)
-{
- Display *dpy = oc->core.om->core.display;
- FontData fd = font_data;
-
- if(font_data == NULL) return(True);
- for( ; font_data_num-- ; fd++) {
- if(fd->xlfd_name != (char *) NULL && fd->font == NULL) {
- fd->font = XLoadQueryFont(dpy, fd->xlfd_name);
- if (fd->font == NULL){
- return False;
- }
- }
- }
- return True;
-}
-
-static Bool
-load_fontset_data(
- XOC oc,
- FontSet font_set)
-{
- Display *dpy = oc->core.om->core.display;
-
- if(font_set->font_name == (char *)NULL) return False ;
-
- /* If font_set->font is not NULL, it contains the *best*
- * match font for this FontSet.
- * -- jjw/pma (HP)
- */
- if(font_set->font == NULL) {
- font_set->font = XLoadQueryFont(dpy, font_set->font_name);
- if (font_set->font == NULL){
- return False;
- }
- }
- return True;
-}
-
-static Bool
-load_font(
- XOC oc)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set = gen->font_set;
- int num = gen->font_set_num;
-
- for ( ; num-- > 0; font_set++) {
- if (font_set->font_name == NULL)
- continue;
-
- if (load_fontset_data (oc, font_set) != True)
- return False;
-#ifndef TESTVERSION
- if(load_fontdata(oc, font_set->font_data,
- font_set->font_data_count) != True)
- return False;
-
- if(load_fontdata(oc, font_set->substitute,
- font_set->substitute_num) != True)
- return False;
-#endif
-
-/* Add 1996.05.20 */
- if( oc->core.orientation == XOMOrientation_TTB_RTL ||
- oc->core.orientation == XOMOrientation_TTB_LTR ){
- if (font_set->vpart_initialize == 0) {
- load_fontdata(oc, font_set->vmap, font_set->vmap_num);
- load_fontdata(oc, (FontData) font_set->vrotate,
- font_set->vrotate_num);
- font_set->vpart_initialize = 1;
- }
- }
-
- if (font_set->font->min_byte1 || font_set->font->max_byte1)
- font_set->is_xchar2b = True;
- else
- font_set->is_xchar2b = False;
- }
-
- return True;
-}
-
-/* For VW/UDC end */
-
-static Bool
-load_font_info(
- XOC oc)
-{
- Display *dpy = oc->core.om->core.display;
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set = gen->font_set;
- char **fn_list;
- int fn_num, num = gen->font_set_num;
-
- for ( ; num-- > 0; font_set++) {
- if (font_set->font_name == NULL)
- continue;
-
- if (font_set->info == NULL) {
- fn_list = XListFontsWithInfo(dpy, font_set->font_name, 1, &fn_num,
- &font_set->info);
- if (font_set->info == NULL)
- return False;
-
- XFreeFontNames(fn_list);
- }
- }
-
- return True;
-}
-
-/* For Vertical Writing start */
-
-static void
-check_fontset_extents(
- XCharStruct *overall,
- int *logical_ascent,
- int *logical_descent,
- XFontStruct *font)
-{
- overall->lbearing = min(overall->lbearing, font->min_bounds.lbearing);
- overall->rbearing = max(overall->rbearing, font->max_bounds.rbearing);
- overall->ascent = max(overall->ascent, font->max_bounds.ascent);
- overall->descent = max(overall->descent, font->max_bounds.descent);
- overall->width = max(overall->width, font->max_bounds.width);
- *logical_ascent = max(*logical_ascent, font->ascent);
- *logical_descent = max(*logical_descent, font->descent);
-}
-
-/* For Vertical Writing end */
-
-static void
-set_fontset_extents(
- XOC oc)
-{
- XRectangle *ink = &oc->core.font_set_extents.max_ink_extent;
- XRectangle *logical = &oc->core.font_set_extents.max_logical_extent;
- XFontStruct **font_list, *font;
- XCharStruct overall;
- int logical_ascent, logical_descent;
- int num = oc->core.font_info.num_font;
-
- font_list = oc->core.font_info.font_struct_list;
- font = *font_list++;
- overall = font->max_bounds;
- overall.lbearing = font->min_bounds.lbearing;
- logical_ascent = font->ascent;
- logical_descent = font->descent;
-
- /* For Vertical Writing start */
-
- while (--num > 0) {
- font = *font_list++;
- check_fontset_extents(&overall, &logical_ascent, &logical_descent,
- font);
- }
-
- {
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set = gen->font_set;
- FontData font_data;
- int font_set_num = gen->font_set_num;
- int font_data_count;
-
- for( ; font_set_num-- ; font_set++) {
- if(font_set->vmap_num > 0) {
- font_data = font_set->vmap;
- font_data_count = font_set->vmap_num;
- for( ; font_data_count-- ; font_data++) {
- if(font_data->font != NULL) {
- check_fontset_extents(&overall, &logical_ascent,
- &logical_descent,
- font_data->font);
- }
- }
- }
-
- if(font_set->vrotate_num > 0 && font_set->vrotate != NULL) {
- font_data = (FontData) font_set->vrotate;
- font_data_count = font_set->vrotate_num;
- for( ; font_data_count-- ; font_data++) {
- if(font_data->font != NULL) {
- check_fontset_extents(&overall, &logical_ascent,
- &logical_descent,
- font_data->font);
- }
- }
- }
- }
- }
-
- /* For Vertical Writing start */
-
- ink->x = overall.lbearing;
- ink->y = -(overall.ascent);
- ink->width = overall.rbearing - overall.lbearing;
- ink->height = overall.ascent + overall.descent;
-
- logical->x = 0;
- logical->y = -(logical_ascent);
- logical->width = overall.width;
- logical->height = logical_ascent + logical_descent;
-}
-
-static Bool
-init_core_part(
- XOC oc)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- int font_set_num;
- XFontStruct **font_struct_list;
- char **font_name_list, *font_name_buf;
- int count, length;
-
- font_set = gen->font_set;
- font_set_num = gen->font_set_num;
- count = length = 0;
-
- for ( ; font_set_num-- > 0; font_set++) {
- if (font_set->font_name == NULL)
- continue;
-
- length += strlen(font_set->font_name) + 1;
-
- count++;
- }
- if (count == 0)
- return False;
-
- font_struct_list = Xmalloc(sizeof(XFontStruct *) * count);
- if (font_struct_list == NULL)
- return False;
-
- font_name_list = Xmalloc(sizeof(char *) * count);
- if (font_name_list == NULL)
- goto err;
-
- font_name_buf = Xmalloc(length);
- if (font_name_buf == NULL)
- goto err;
-
- oc->core.font_info.num_font = count;
- oc->core.font_info.font_name_list = font_name_list;
- oc->core.font_info.font_struct_list = font_struct_list;
-
- font_set = gen->font_set;
- font_set_num = gen->font_set_num;
-
- for (count = 0; font_set_num-- > 0; font_set++) {
- if (font_set->font_name == NULL)
- continue;
-
- font_set->id = count;
- if (font_set->font)
- *font_struct_list++ = font_set->font;
- else
- *font_struct_list++ = font_set->info;
- strcpy(font_name_buf, font_set->font_name);
- Xfree(font_set->font_name);
- *font_name_list++ = font_set->font_name = font_name_buf;
- font_name_buf += strlen(font_name_buf) + 1;
-
- count++;
- }
-
- set_fontset_extents(oc);
-
- return True;
-
-err:
-
- Xfree(font_name_list);
- Xfree(font_struct_list);
-
- return False;
-}
-
-static char *
-get_font_name(
- XOC oc,
- char *pattern)
-{
- char **list, *name;
- int count = 0;
-
- list = XListFonts(oc->core.om->core.display, pattern, 1, &count);
- if (list == NULL)
- return NULL;
-
- name = strdup(*list);
-
- XFreeFontNames(list);
-
- return name;
-}
-
-/* For VW/UDC start*/
-
-static char *
-get_rotate_fontname(
- char *font_name)
-{
- char *pattern = NULL, *ptr = NULL;
- char *fields[CHARSET_ENCODING_FIELD];
- char str_pixel[32], str_point[4];
- char *rotate_font_ptr = NULL;
- int pixel_size = 0;
- int field_num = 0, len = 0;
-
- if(font_name == (char *) NULL || (len = strlen(font_name)) <= 0
- || len > XLFD_MAX_LEN)
- return NULL;
-
- pattern = strdup(font_name);
- if(!pattern)
- return NULL;
-
- memset(fields, 0, sizeof(char *) * 14);
- ptr = pattern;
- while(isspace(*ptr)) {
- ptr++;
- }
- if(*ptr == '-')
- ptr++;
-
- for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD && ptr && *ptr ;
- ptr++, field_num++) {
- fields[field_num] = ptr;
-
- if((ptr = strchr(ptr, '-'))) {
- *ptr = '\0';
- } else {
- field_num++; /* Count last field */
- break;
- }
- }
-
- if(field_num < CHARSET_ENCODING_FIELD)
- goto free_pattern;
-
- /* Pixel Size field : fields[6] */
- for(ptr = fields[PIXEL_SIZE_FIELD - 1] ; ptr && *ptr; ptr++) {
- if(!isdigit(*ptr)) {
- if(*ptr == '['){ /* 960730 */
- strcpy(pattern, font_name);
- return(pattern);
- }
- goto free_pattern;
- }
- }
- pixel_size = atoi(fields[PIXEL_SIZE_FIELD - 1]);
- snprintf(str_pixel, sizeof(str_pixel),
- "[ 0 ~%d %d 0 ]", pixel_size, pixel_size);
- fields[6] = str_pixel;
-
- /* Point Size field : fields[7] */
- strcpy(str_point, "*");
- fields[POINT_SIZE_FIELD - 1] = str_point;
-
- len = 0;
- for (field_num = 0; field_num < CHARSET_ENCODING_FIELD &&
- fields[field_num]; field_num++) {
- len += 1 + strlen(fields[field_num]);
- }
-
- /* Max XLFD length is 255 */
- if (len > XLFD_MAX_LEN)
- goto free_pattern;
-
- rotate_font_ptr = Xmalloc(len + 1);
- if(!rotate_font_ptr)
- goto free_pattern;
-
- rotate_font_ptr[0] = '\0';
-
- for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD &&
- fields[field_num] ; field_num++) {
- strcat(rotate_font_ptr, "-");
- strcat(rotate_font_ptr, fields[field_num]);
- }
-
-free_pattern:
- Xfree(pattern);
-
- return rotate_font_ptr;
-}
-
-static Bool
-is_match_charset(
- FontData font_data,
- char *font_name)
-{
- char *last;
- int length, name_len;
-
- name_len = strlen(font_name);
- last = font_name + name_len;
-
- length = strlen(font_data->name);
- if (length > name_len)
- return False;
-
- if (_XlcCompareISOLatin1(last - length, font_data->name) == 0)
- return True;
-
- return False;
-}
-
-static int
-parse_all_name(
- XOC oc,
- FontData font_data,
- char *pattern)
-{
-
-#ifdef OLDCODE
- if(is_match_charset(font_data, pattern) != True)
- return False;
-
- font_data->xlfd_name = strdup(pattern);
- if(font_data->xlfd_name == NULL)
- return (-1);
-
- return True;
-#else /* OLDCODE */
- Display *dpy = oc->core.om->core.display;
- char **fn_list = NULL, *prop_fname = NULL;
- int list_num;
- XFontStruct *fs_list;
- if(is_match_charset(font_data, pattern) != True) {
- /*
- * pattern should not contain any wildcard (execpt '?')
- * this was probably added to make this case insensitive.
- */
- if ((fn_list = XListFontsWithInfo(dpy, pattern,
- MAXFONTS,
- &list_num, &fs_list)) == NULL) {
- return False;
- }
- /* shouldn't we loop here ? */
- else if ((prop_fname = get_prop_name(dpy, fs_list)) == NULL) {
- XFreeFontInfo(fn_list, fs_list, list_num);
- return False;
- }
- else if ((is_match_charset(font_data, prop_fname) != True)) {
- XFree(prop_fname);
- XFreeFontInfo(fn_list, fs_list, list_num);
- return False;
- }
- else {
- font_data->xlfd_name = prop_fname;
- XFreeFontInfo(fn_list, fs_list, list_num);
- return True;
- }
- }
-
- font_data->xlfd_name = strdup(pattern);
- if(font_data->xlfd_name == NULL)
- return (-1);
-
- return True;
-#endif /* OLDCODE */
-}
-
-static int
-parse_omit_name(
- XOC oc,
- FontData font_data,
- char *pattern)
-{
- char* last = (char *) NULL;
- char* base_name;
- char buf[XLFD_MAX_LEN + 1];
- int length = 0;
- int num_fields;
- /*
- * If the font specified by "pattern" is expandable to be
- * a member of "font_data"'s FontSet, we've found a match.
- */
- if(is_match_charset(font_data, pattern) == True) {
- if ((font_data->xlfd_name = get_font_name(oc, pattern)) != NULL) {
- return True;
- }
- }
-
- length = strlen (pattern);
-
- if (length > XLFD_MAX_LEN)
- return -1;
-
- strcpy(buf, pattern);
- last = buf + length - 1;
-
- /* Replace the original encoding with the encoding for this FontSet. */
-
- /* Figure out how many fields have been specified in this xlfd. */
- for (num_fields = 0, base_name = buf; *base_name != '\0'; base_name++)
- if (*base_name == '-') num_fields++;
-
- switch (num_fields) {
- case 12:
- /* This is the best way to have specifed the fontset. In this
- * case, there is no original encoding. E.g.,
- * -*-*-*-*-*-*-14-*-*-*-*-*
- * To this, we'll append a dash:
- * -*-*-*-*-*-*-14-*-*-*-*-*-
- * then append the encoding to get:
- * -*-*-*-*-*-*-14-*-*-*-*-*-JISX0208.1990-0
- */
- /*
- * Take care of:
- * -*-*-*-*-*-*-14-*-*-*-*-
- */
- if (*(last) == '-')
- *++last = '*';
-
- *++last = '-';
- break;
- case 13:
- /* Got the charset, not the encoding, zap the charset In this
- * case, there is no original encoding, but there is a charset. E.g.,
- * -*-*-*-*-*-*-14-*-*-*-*-*-jisx0212.1990
- * To this, we remove the charset:
- * -*-*-*-*-*-*-14-*-*-*-*-*-
- * then append the new encoding to get:
- * -*-*-*-*-*-*-14-*-*-*-*-*-JISX0208.1990-0
- */
- last = strrchr (buf, '-');
- num_fields = 12;
- break;
- case 14:
- /* Both the charset and the encoding are specified. Get rid
- * of them so that we can append the new charset encoding. E.g.,
- * -*-*-*-*-*-*-14-*-*-*-*-*-jisx0212.1990-0
- * To this, we'll remove the encoding and charset to get:
- * -*-*-*-*-*-*-14-*-*-*-*-*-
- * then append the new encoding to get:
- * -*-*-*-*-*-*-14-*-*-*-*-*-JISX0208.1990-0
- */
- last = strrchr (buf, '-');
- *last = '\0';
- last = strrchr (buf, '-');
- num_fields = 12;
- break;
- default:
- if (*last != '-')
- *++last = '-';
- break;
- }
-
- /* At this point, "last" is pointing to the last "-" in the
- * xlfd, and all xlfd's at this point take a form similar to:
- * -*-*-*-*-*-*-14-*-*-*-*-*-
- * (i.e., no encoding).
- * After the strcpy, we'll end up with something similar to:
- * -*-*-*-*-*-*-14-*-*-*-*-*-JISX0208.1990-0
- *
- * If the modified font is found in the current FontSet,
- * we've found a match.
- */
-
- last++;
-
- if ((last - buf) + strlen(font_data->name) > XLFD_MAX_LEN)
- return -1;
-
- strcpy(last, font_data->name);
- if ((font_data->xlfd_name = get_font_name(oc, buf)) != NULL)
- return True;
-
- /* This may mot be needed anymore as XListFonts() takes care of this */
- if (num_fields < 12) {
- if ((last - buf) > (XLFD_MAX_LEN - 2))
- return -1;
- *last = '*';
- *(last + 1) = '-';
- strcpy(last + 2, font_data->name);
- num_fields++;
- last+=2;
- if ((font_data->xlfd_name = get_font_name(oc, buf)) != NULL)
- return True;
- }
-
-
- return False;
-}
-
-
-typedef enum{C_PRIMARY, C_SUBSTITUTE, C_VMAP, C_VROTATE } ClassType;
-
-static int
-parse_fontdata(
- XOC oc,
- FontSet font_set,
- FontData font_data,
- int font_data_count,
- char **name_list,
- int name_list_count,
- ClassType class,
- FontDataRec *font_data_return)
-{
-
- char **cur_name_list = name_list;
- char *font_name = (char *) NULL;
- char *pattern = (char *) NULL;
- int found_num = 0, ret = 0;
- int count = name_list_count;
-
- if(name_list == NULL || count <= 0) {
- return False;
- }
-
- if(font_data == NULL || font_data_count <= 0) {
- return False;
- }
-
- /* Loop through each font encoding defined in the "font_data" FontSet. */
- for ( ; font_data_count-- > 0; font_data++) {
- Bool is_found = False;
- font_name = (char *) NULL;
- count = name_list_count;
- cur_name_list = name_list;
-
- /*
- * Loop through each font specified by the user
- * in the call to XCreateFontset().
- */
- while (count-- > 0) {
- pattern = *cur_name_list++;
- if (pattern == NULL || *pattern == '\0')
- continue;
-#ifdef FONTDEBUG
- fprintf(stderr,"Font pattern: %s %s\n",
- pattern,font_data->name);
-#endif
-
- /*
- * If the current font is fully specified (i.e., the
- * xlfd contains no wildcards) and the font exists on
- * the X Server, we have a match.
- */
- if (strchr(pattern, '*') == NULL &&
- (font_name = get_font_name(oc, pattern))) {
- /*
- * Find the full xlfd name for this font. If the font is
- * already in xlfd format, it is simply returned. If the
- * font is an alias for another font, the xlfd of the
- * aliased font is returned.
- */
- ret = parse_all_name(oc, font_data, font_name);
- Xfree(font_name);
-
- if (ret == -1) return -1;
- if (ret == False) continue;
- /*
- * Since there was an exact match of a fully-specified font
- * or a font alias, we can return now since the desired font
- * was found for the current font encoding for this FontSet.
- *
- * Previous implementations of this algorithm would
- * not return here. Instead, they continued searching
- * through the font encodings for this FontSet. The side-effect
- * of that behavior is you may return a "substitute" match
- * instead of an "exact" match. We believe there should be a
- * preference on exact matches. Therefore, as soon as we
- * find one, we bail.
- *
- * Also, previous implementations seemed to think it was
- * important to find either a primary or substitute font
- * for each Font encoding in the FontSet before returning an
- * acceptable font. We don't believe this is necessary.
- * All the client cares about is finding a reasonable font
- * for what was passed in. If we find an exact match,
- * there's no reason to look any further.
- *
- * -- jjw/pma (HP)
- */
- if (font_data_return) {
- font_data_return->xlfd_name = strdup(font_data->xlfd_name);
- if (!font_data_return->xlfd_name) return -1;
-
- font_data_return->side = font_data->side;
- }
-#ifdef FONTDEBUG
- fprintf(stderr,"XLFD name: %s\n",font_data->xlfd_name);
-#endif
-
- return True;
- }
- /*
- * If the font name is not fully specified
- * (i.e., it has wildcards), we have more work to do.
- * See the comments in parse_omit_name()
- * for the list of things to do.
- */
- ret = parse_omit_name(oc, font_data, pattern);
-
- if (ret == -1) return -1;
- if (ret == False) continue;
-
- /*
- * A font which matched the wild-carded specification was found.
- * Only update the return data if a font has not yet been found.
- * This maintains the convention that FontSets listed higher in
- * a CodeSet in the Locale Database have higher priority than
- * those FontSets listed lower in the CodeSet. In the following
- * example:
- *
- * fs1 {
- * charset HP-JIS:GR
- * font JISX0208.1990-0:GL;\
- * JISX0208.1990-1:GR;\
- * JISX0208.1983-0:GL;\
- * JISX0208.1983-1:GR
- * }
- *
- * a font found in the JISX0208.1990-0 FontSet will have a
- * higher priority than a font found in the JISX0208.1983-0
- * FontSet.
- */
- if (font_data_return && font_data_return->xlfd_name == NULL) {
-
-#ifdef FONTDEBUG
- fprintf(stderr,"XLFD name: %s\n",font_data->xlfd_name);
-#endif
- font_data_return->xlfd_name = strdup(font_data->xlfd_name);
- if (!font_data_return->xlfd_name) return -1;
-
- font_data_return->side = font_data->side;
- }
-
- found_num++;
- is_found = True;
-
- break;
- }
-
- switch(class) {
- case C_PRIMARY:
- if(is_found == False) {
- /*
- * Did not find a font for the current FontSet. Check the
- * FontSet's "substitute" font for a match. If we find a
- * match, we'll keep searching in hopes of finding an exact
- * match later down the FontSet list.
- *
- * when we return and we have found a font font_data_return
- * contains the first (ie. best) match no matter if this
- * is a C_PRIMARY or a C_SUBSTITUTE font
- */
- ret = parse_fontdata(oc, font_set, font_set->substitute,
- font_set->substitute_num, name_list,
- name_list_count, C_SUBSTITUTE,
- font_data_return);
- if (ret == -1) return -1;
- if (ret == False) continue;
-
- found_num++;
- is_found = True;
- }
-#ifdef TESTVERSION
- else
- return True;
-#endif
- break;
-
- case C_SUBSTITUTE:
- case C_VMAP:
- if(is_found == True)
- return True;
- break;
-
- case C_VROTATE:
- if(is_found == True) {
- char *rotate_name;
-
- if((rotate_name = get_rotate_fontname(font_data->xlfd_name))
- != NULL) {
- Xfree(font_data->xlfd_name);
- font_data->xlfd_name = rotate_name;
-
- return True;
- }
- Xfree(font_data->xlfd_name);
- font_data->xlfd_name = NULL;
- return False;
- }
- break;
- }
- }
-
- if(class == C_PRIMARY && found_num >= 1)
- return True;
-
- return False;
-}
-
-
-static int
-parse_vw(
- XOC oc,
- FontSet font_set,
- char **name_list,
- int count)
-{
- FontData vmap = font_set->vmap;
- VRotate vrotate = font_set->vrotate;
- int vmap_num = font_set->vmap_num;
- int vrotate_num = font_set->vrotate_num;
- int ret = 0, i = 0;
-
- if(vmap_num > 0) {
- if(parse_fontdata(oc, font_set, vmap, vmap_num, name_list,
- count, C_VMAP,NULL) == -1)
- return (-1);
- }
-
- if(vrotate_num > 0) {
- ret = parse_fontdata(oc, font_set, (FontData) vrotate, vrotate_num,
- name_list, count, C_VROTATE, NULL);
- if(ret == -1) {
- return (-1);
- } else if(ret == False) {
- CodeRange code_range;
- int num_cr;
- int sub_num = font_set->substitute_num;
-
- code_range = vrotate[0].code_range; /* ? */
- num_cr = vrotate[0].num_cr; /* ? */
- for(i = 0 ; i < vrotate_num ; i++) {
- if(vrotate[i].xlfd_name)
- Xfree(vrotate[i].xlfd_name);
- }
- Xfree(vrotate);
-
- if(sub_num > 0) {
- vrotate = font_set->vrotate = Xcalloc(sub_num,
- sizeof(VRotateRec));
- if(font_set->vrotate == (VRotate)NULL)
- return (-1);
-
- for(i = 0 ; i < sub_num ; i++) {
- vrotate[i].charset_name = font_set->substitute[i].name;
- vrotate[i].side = font_set->substitute[i].side;
- vrotate[i].code_range = code_range;
- vrotate[i].num_cr = num_cr;
- }
- vrotate_num = font_set->vrotate_num = sub_num;
- } else {
- vrotate = font_set->vrotate = (VRotate)NULL;
- }
-
- ret = parse_fontdata(oc, font_set, (FontData) vrotate, vrotate_num,
- name_list, count, C_VROTATE, NULL);
- if(ret == -1)
- return (-1);
- }
- }
-
- return True;
-}
-
-static int
-parse_fontname(
- XOC oc)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- FontDataRec font_data_return;
- char *base_name, **name_list;
- int font_set_num = 0;
- int found_num = 0;
- int count = 0;
- int ret;
- int i;
-
- name_list = _XParseBaseFontNameList(oc->core.base_name_list, &count);
- if (name_list == NULL)
- return -1;
-
- font_set = gen->font_set;
- font_set_num = gen->font_set_num;
-
- /* Loop through all of the CharSets defined in the Locale
- * database for the current Locale.
- */
- for( ; font_set_num-- > 0 ; font_set++) {
- if(font_set->font_name)
- continue;
-
- if(font_set->font_data_count > 0) {
-
- /*
- * If there are a non-zero number of FontSets defined
- * for this CharSet.
- * Try to find a font for this CharSet. If we find an
- * acceptable font, we save the information for return
- * to the client. If we do not find an acceptable font,
- * a "missing_charset" will be reported to the client
- * for this CharSet.
- */
- font_data_return.xlfd_name = NULL;
- font_data_return.side = XlcUnknown;
-
- ret = parse_fontdata(oc, font_set, font_set->font_data,
- font_set->font_data_count,
- name_list, count, C_PRIMARY,
- &font_data_return);
- if(ret == -1) {
- goto err;
- } else if(ret == True) {
- /*
- * We can't just loop thru fontset->font_data to
- * find the first (ie. best) match: parse_fontdata
- * will try a substitute font if no primary one could
- * be matched. It returns the required information in
- * font_data_return.
- */
- font_set->font_name = strdup(font_data_return.xlfd_name);
- if(font_set->font_name == (char *) NULL)
- goto err;
-
- font_set->side = font_data_return.side;
-
- Xfree (font_data_return.xlfd_name);
- font_data_return.xlfd_name = NULL;
-
- if(parse_vw(oc, font_set, name_list, count) == -1)
- goto err;
- found_num++;
- }
-
- } else if(font_set->substitute_num > 0) {
- /*
- * If there are no FontSets defined for this
- * CharSet. We can only find "substitute" fonts.
- */
- ret = parse_fontdata(oc, font_set, font_set->substitute,
- font_set->substitute_num,
- name_list, count, C_SUBSTITUTE, NULL);
- if(ret == -1) {
- goto err;
- } else if(ret == True) {
- for(i=0;i<font_set->substitute_num;i++){
- if(font_set->substitute[i].xlfd_name != NULL){
- break;
- }
- }
- font_set->font_name = strdup(font_set->substitute[i].xlfd_name);
- if(font_set->font_name == (char *) NULL)
- goto err;
-
- font_set->side = font_set->substitute[i].side;
- if(parse_vw(oc, font_set, name_list, count) == -1)
- goto err;
-
- found_num++;
- }
- }
- }
-
- base_name = strdup(oc->core.base_name_list);
- if (base_name == NULL)
- goto err;
-
- oc->core.base_name_list = base_name;
-
- XFreeStringList(name_list);
-
- return found_num;
-
-err:
- XFreeStringList(name_list);
- /* Prevent this from being freed twice */
- oc->core.base_name_list = NULL;
-
- return -1;
-}
-
-/* For VW/UDC end*/
-
-static Bool
-set_missing_list(
- XOC oc)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- char **charset_list, *charset_buf;
- int count, length, font_set_num;
- int result = 1;
-
- font_set = gen->font_set;
- font_set_num = gen->font_set_num;
- count = length = 0;
-
- for ( ; font_set_num-- > 0; font_set++) {
- if (font_set->info || font_set->font) {
- continue;
- }
-
- /* Change 1996.01.23 start */
- if(font_set->font_data_count <= 0 ||
- font_set->font_data == (FontData)NULL) {
- if(font_set->substitute_num <= 0 ||
- font_set->substitute == (FontData)NULL) {
- if(font_set->charset_list != NULL){
- length +=
- strlen(font_set->charset_list[0]->encoding_name) + 1;
- } else {
- length += 1;
- }
- } else {
- length += strlen(font_set->substitute->name) + 1;
- }
- } else {
- length += strlen(font_set->font_data->name) + 1;
- }
- /* Change 1996.01.23 end */
- count++;
- }
-
- if (count < 1) {
- return True;
- }
-
- charset_list = Xmalloc(sizeof(char *) * count);
- if (charset_list == NULL) {
- return False;
- }
-
- charset_buf = Xmalloc(length);
- if (charset_buf == NULL) {
- Xfree(charset_list);
- return False;
- }
-
- oc->core.missing_list.charset_list = charset_list;
- oc->core.missing_list.charset_count = count;
-
- font_set = gen->font_set;
- font_set_num = gen->font_set_num;
-
- for ( ; font_set_num-- > 0; font_set++) {
- if (font_set->info || font_set->font) {
- continue;
- }
-
- /* Change 1996.01.23 start */
- if(font_set->font_data_count <= 0 ||
- font_set->font_data == (FontData)NULL) {
- if(font_set->substitute_num <= 0 ||
- font_set->substitute == (FontData)NULL) {
- if(font_set->charset_list != NULL){
- strcpy(charset_buf,
- font_set->charset_list[0]->encoding_name);
- } else {
- strcpy(charset_buf, "");
- }
- result = 0;
- } else {
- strcpy(charset_buf, font_set->substitute->name);
- }
- } else {
- strcpy(charset_buf, font_set->font_data->name);
- }
- /* Change 1996.01.23 end */
- *charset_list++ = charset_buf;
- charset_buf += strlen(charset_buf) + 1;
- }
-
- if(result == 0) {
- return(False);
- }
-
- return True;
-}
-
-static Bool
-create_fontset(
- XOC oc)
-{
- XOMGenericPart *gen = XOM_GENERIC(oc->core.om);
- int found_num;
-
- if (init_fontset(oc) == False)
- return False;
-
- found_num = parse_fontname(oc);
- if (found_num <= 0) {
- if (found_num == 0)
- set_missing_list(oc);
- return False;
- }
-
- if (gen->on_demand_loading == True) {
- if (load_font_info(oc) == False)
- return False;
- } else {
- if (load_font(oc) == False)
- return False;
- }
-
- if (init_core_part(oc) == False)
- return False;
-
- if (set_missing_list(oc) == False)
- return False;
-
- return True;
-}
-
-/* For VW/UDC start */
-static void
-free_fontdataOC(
- Display *dpy,
- FontData font_data,
- int font_data_count)
-{
- for( ; font_data_count-- ; font_data++) {
- if(font_data->xlfd_name){
- Xfree(font_data->xlfd_name);
- font_data->xlfd_name = NULL;
- }
- if(font_data->font){ /* ADD 1996.01.7 */
- if(font_data->font->fid) /* Add 1996.01.23 */
- XFreeFont(dpy,font_data->font); /* ADD 1996.01.7 */
- else /* Add 1996.01.23 */
- XFreeFontInfo(NULL, font_data->font, 1);/* Add 1996.01.23 */
- font_data->font = NULL;
- }
-/*
- * font_data->name and font_data->scopes belong to the OM not OC.
- * To save space this data is shared between OM and OC. We are
- * not allowed to free it here.
- * It has been moved to free_fontdataOM()
- */
-/*
- if(font_data->scopes){
- Xfree(font_data->scopes);
- font_data->scopes = NULL;
- }
- if(font_data->name){
- Xfree(font_data->name);
- font_data->name = NULL;
- }
-*/
- }
-}
-
-static void destroy_fontdata(
- XOCGenericPart *gen,
- Display *dpy)
-{
- FontSet font_set = (FontSet) NULL;
- int font_set_num = 0;
-
- if (gen->font_set) {
- font_set = gen->font_set;
- font_set_num = gen->font_set_num;
- for( ; font_set_num-- ; font_set++) {
- if (font_set->font) {
- if(font_set->font->fid)
- XFreeFont(dpy,font_set->font);
- else
- XFreeFontInfo(NULL, font_set->font, 1);
- font_set->font = NULL;
- }
- if(font_set->font_data) {
- if (font_set->info)
- XFreeFontInfo(NULL, font_set->info, 1);
- free_fontdataOC(dpy,
- font_set->font_data, font_set->font_data_count);
- Xfree(font_set->font_data);
- font_set->font_data = NULL;
- }
- if(font_set->substitute) {
- free_fontdataOC(dpy,
- font_set->substitute, font_set->substitute_num);
- Xfree(font_set->substitute);
- font_set->substitute = NULL;
- }
- if(font_set->vmap) {
- free_fontdataOC(dpy,
- font_set->vmap, font_set->vmap_num);
- Xfree(font_set->vmap);
- font_set->vmap = NULL;
- }
- if(font_set->vrotate) {
- free_fontdataOC(dpy,
- (FontData)font_set->vrotate,
- font_set->vrotate_num);
- Xfree(font_set->vrotate);
- font_set->vrotate = NULL;
- }
- }
- Xfree(gen->font_set);
- gen->font_set = NULL;
- }
-}
-/* For VW/UDC end */
-
-static void
-destroy_oc(
- XOC oc)
-{
- Display *dpy = oc->core.om->core.display;
- XOCGenericPart *gen = XOC_GENERIC(oc);
-
- if (gen->mbs_to_cs)
- _XlcCloseConverter(gen->mbs_to_cs);
-
- if (gen->wcs_to_cs)
- _XlcCloseConverter(gen->wcs_to_cs);
-
- if (gen->utf8_to_cs)
- _XlcCloseConverter(gen->utf8_to_cs);
-
-/* For VW/UDC start */ /* Change 1996.01.8 */
- destroy_fontdata(gen,dpy);
-/*
-*/
-/* For VW/UDC end */
-
- Xfree(oc->core.base_name_list);
- XFreeStringList(oc->core.font_info.font_name_list);
- Xfree(oc->core.font_info.font_struct_list);
- XFreeStringList(oc->core.missing_list.charset_list);
-
-#ifdef notdef
-
- Xfree(oc->core.res_name);
- Xfree(oc->core.res_class);
-#endif
-
- Xfree(oc);
-}
-
-static char *
-set_oc_values(
- XOC oc,
- XlcArgList args,
- int num_args)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set = gen->font_set;
- char *ret;
- int num = gen->font_set_num;
-
- if (oc->core.resources == NULL)
- return NULL;
-
- ret = _XlcSetValues((XPointer) oc, oc->core.resources,
- oc->core.num_resources, args, num_args, XlcSetMask);
- if(ret != NULL){
- return(ret);
- } else {
- for ( ; num-- > 0; font_set++) {
- if (font_set->font_name == NULL)
- continue;
- if (font_set->vpart_initialize != 0)
- continue;
- if( oc->core.orientation == XOMOrientation_TTB_RTL ||
- oc->core.orientation == XOMOrientation_TTB_LTR ){
- load_fontdata(oc, font_set->vmap, font_set->vmap_num);
- load_fontdata(oc, (FontData) font_set->vrotate,
- font_set->vrotate_num);
- font_set->vpart_initialize = 1;
- }
- }
- return(NULL);
- }
-}
-
-static char *
-get_oc_values(
- XOC oc,
- XlcArgList args,
- int num_args)
-{
- if (oc->core.resources == NULL)
- return NULL;
-
- return _XlcGetValues((XPointer) oc, oc->core.resources,
- oc->core.num_resources, args, num_args, XlcGetMask);
-}
-
-static XOCMethodsRec oc_default_methods = {
- destroy_oc,
- set_oc_values,
- get_oc_values,
- _XmbDefaultTextEscapement,
- _XmbDefaultTextExtents,
- _XmbDefaultTextPerCharExtents,
- _XmbDefaultDrawString,
- _XmbDefaultDrawImageString,
- _XwcDefaultTextEscapement,
- _XwcDefaultTextExtents,
- _XwcDefaultTextPerCharExtents,
- _XwcDefaultDrawString,
- _XwcDefaultDrawImageString,
- _Xutf8DefaultTextEscapement,
- _Xutf8DefaultTextExtents,
- _Xutf8DefaultTextPerCharExtents,
- _Xutf8DefaultDrawString,
- _Xutf8DefaultDrawImageString
-};
-
-static XOCMethodsRec oc_generic_methods = {
- destroy_oc,
- set_oc_values,
- get_oc_values,
- _XmbGenericTextEscapement,
- _XmbGenericTextExtents,
- _XmbGenericTextPerCharExtents,
- _XmbGenericDrawString,
- _XmbGenericDrawImageString,
- _XwcGenericTextEscapement,
- _XwcGenericTextExtents,
- _XwcGenericTextPerCharExtents,
- _XwcGenericDrawString,
- _XwcGenericDrawImageString,
- _Xutf8GenericTextEscapement,
- _Xutf8GenericTextExtents,
- _Xutf8GenericTextPerCharExtents,
- _Xutf8GenericDrawString,
- _Xutf8GenericDrawImageString
-};
-
-typedef struct _XOCMethodsListRec {
- const char *name;
- XOCMethods methods;
-} XOCMethodsListRec, *XOCMethodsList;
-
-static XOCMethodsListRec oc_methods_list[] = {
- { "default", &oc_default_methods },
- { "generic", &oc_generic_methods }
-};
-
-static XlcResource oc_resources[] = {
- { XNBaseFontName, NULLQUARK, sizeof(char *),
- XOffsetOf(XOCRec, core.base_name_list), XlcCreateMask | XlcGetMask },
- { XNOMAutomatic, NULLQUARK, sizeof(Bool),
- XOffsetOf(XOCRec, core.om_automatic), XlcGetMask },
- { XNMissingCharSet, NULLQUARK, sizeof(XOMCharSetList),
- XOffsetOf(XOCRec, core.missing_list), XlcGetMask },
- { XNDefaultString, NULLQUARK, sizeof(char *),
- XOffsetOf(XOCRec, core.default_string), XlcGetMask },
- { XNOrientation, NULLQUARK, sizeof(XOrientation),
- XOffsetOf(XOCRec, core.orientation), XlcDefaultMask | XlcSetMask | XlcGetMask },
- { XNResourceName, NULLQUARK, sizeof(char *),
- XOffsetOf(XOCRec, core.res_name), XlcSetMask | XlcGetMask },
- { XNResourceClass, NULLQUARK, sizeof(char *),
- XOffsetOf(XOCRec, core.res_class), XlcSetMask | XlcGetMask },
- { XNFontInfo, NULLQUARK, sizeof(XOMFontInfo),
- XOffsetOf(XOCRec, core.font_info), XlcGetMask }
-};
-
-static XOC
-create_oc(
- XOM om,
- XlcArgList args,
- int num_args)
-{
- XOC oc;
- XOMGenericPart *gen = XOM_GENERIC(om);
- XOCMethodsList methods_list = oc_methods_list;
- int count;
-
- oc = Xcalloc(1, sizeof(XOCGenericRec));
- if (oc == NULL)
- return (XOC) NULL;
-
- oc->core.om = om;
-
- if (oc_resources[0].xrm_name == NULLQUARK)
- _XlcCompileResourceList(oc_resources, XlcNumber(oc_resources));
-
- if (_XlcSetValues((XPointer) oc, oc_resources, XlcNumber(oc_resources),
- args, num_args, XlcCreateMask | XlcDefaultMask))
- goto err;
-
- if (oc->core.base_name_list == NULL)
- goto err;
-
- oc->core.resources = oc_resources;
- oc->core.num_resources = XlcNumber(oc_resources);
-
- if (create_fontset(oc) == False)
- goto err;
-
- oc->methods = &oc_generic_methods;
-
- if (gen->object_name) {
- count = XlcNumber(oc_methods_list);
-
- for ( ; count-- > 0; methods_list++) {
- if (!_XlcCompareISOLatin1(gen->object_name, methods_list->name)) {
- oc->methods = methods_list->methods;
- break;
- }
- }
- }
-
- return oc;
-
-err:
- destroy_oc(oc);
-
- return (XOC) NULL;
-}
-
-static void
-free_fontdataOM(
- FontData font_data,
- int font_data_count)
-{
- for( ; font_data_count-- ; font_data++) {
- if(font_data->name){
- Xfree(font_data->name);
- font_data->name = NULL;
- }
- if(font_data->scopes){
- Xfree(font_data->scopes);
- font_data->scopes = NULL;
- }
- }
-}
-
-static Status
-close_om(
- XOM om)
-{
- XOMGenericPart *gen = XOM_GENERIC(om);
- OMData data;
- int count;
-
- if ((data = gen->data)) {
- for (count = gen->data_num; count-- > 0; data++) {
- if (data->charset_list){
- Xfree(data->charset_list);
- data->charset_list = NULL;
- }
- /* free font_data for om */
- if (data->font_data) {
- free_fontdataOM(data->font_data,data->font_data_count);
- Xfree(data->font_data);
- data->font_data = NULL;
- }
- /* free substitute for om */
- if (data->substitute) {
- free_fontdataOM(data->substitute,data->substitute_num);
- Xfree(data->substitute);
- data->substitute = NULL;
- }
- /* free vmap for om */
- if (data->vmap) {
- free_fontdataOM(data->vmap,data->vmap_num);
- Xfree(data->vmap);
- data->vmap = NULL;
- }
- /* free vrotate for om */
- if (data->vrotate) {
- Xfree(data->vrotate);
- data->vrotate = NULL;
- }
- }
- Xfree(gen->data);
- gen->data = NULL;
- }
-
- if (gen->object_name){
- Xfree(gen->object_name);
- gen->object_name = NULL;
- }
-
- if (om->core.res_name){
- Xfree(om->core.res_name);
- om->core.res_name = NULL;
- }
- if (om->core.res_class){
- Xfree(om->core.res_class);
- om->core.res_class = NULL;
- }
- if (om->core.required_charset.charset_list &&
- om->core.required_charset.charset_count > 0){
- XFreeStringList(om->core.required_charset.charset_list);
- om->core.required_charset.charset_list = NULL;
- } else {
- Xfree((char*)om->core.required_charset.charset_list);
- om->core.required_charset.charset_list = NULL;
- }
- if (om->core.orientation_list.orientation){
- Xfree(om->core.orientation_list.orientation);
- om->core.orientation_list.orientation = NULL;
- }
-
- Xfree(om);
-
- return 1;
-}
-
-static char *
-set_om_values(
- XOM om,
- XlcArgList args,
- int num_args)
-{
- if (om->core.resources == NULL)
- return NULL;
-
- return _XlcSetValues((XPointer) om, om->core.resources,
- om->core.num_resources, args, num_args, XlcSetMask);
-}
-
-static char *
-get_om_values(
- XOM om,
- XlcArgList args,
- int num_args)
-{
- if (om->core.resources == NULL)
- return NULL;
-
- return _XlcGetValues((XPointer) om, om->core.resources,
- om->core.num_resources, args, num_args, XlcGetMask);
-}
-
-static XOMMethodsRec methods = {
- close_om,
- set_om_values,
- get_om_values,
- create_oc
-};
-
-static XlcResource om_resources[] = {
- { XNRequiredCharSet, NULLQUARK, sizeof(XOMCharSetList),
- XOffsetOf(XOMRec, core.required_charset), XlcGetMask },
- { XNQueryOrientation, NULLQUARK, sizeof(XOMOrientation),
- XOffsetOf(XOMRec, core.orientation_list), XlcGetMask },
- { XNDirectionalDependentDrawing, NULLQUARK, sizeof(Bool),
- XOffsetOf(XOMRec, core.directional_dependent), XlcGetMask },
- { XNContextualDrawing, NULLQUARK, sizeof(Bool),
- XOffsetOf(XOMRec, core.contextual_drawing), XlcGetMask }
-};
-
-static XOM
-create_om(
- XLCd lcd,
- Display *dpy,
- XrmDatabase rdb,
- _Xconst char *res_name,
- _Xconst char *res_class)
-{
- XOM om;
-
- om = Xcalloc(1, sizeof(XOMGenericRec));
- if (om == NULL)
- return (XOM) NULL;
-
- om->methods = &methods;
- om->core.lcd = lcd;
- om->core.display = dpy;
- om->core.rdb = rdb;
- if (res_name) {
- om->core.res_name = strdup(res_name);
- if (om->core.res_name == NULL)
- goto err;
- }
- if (res_class) {
- om->core.res_class = strdup(res_class);
- if (om->core.res_class == NULL)
- goto err;
- }
-
- if (om_resources[0].xrm_name == NULLQUARK)
- _XlcCompileResourceList(om_resources, XlcNumber(om_resources));
-
- om->core.resources = om_resources;
- om->core.num_resources = XlcNumber(om_resources);
-
- return om;
-
-err:
- close_om(om);
-
- return (XOM) NULL;
-}
-
-static OMData
-add_data(
- XOM om)
-{
- XOMGenericPart *gen = XOM_GENERIC(om);
- OMData new;
- int num;
-
- if ((num = gen->data_num))
- new = Xrealloc(gen->data, (num + 1) * sizeof(OMDataRec));
- else
- new = Xmalloc(sizeof(OMDataRec));
-
- if (new == NULL)
- return NULL;
-
- gen->data_num = num + 1;
- gen->data = new;
-
- new += num;
- bzero((char *) new, sizeof(OMDataRec));
-
- return new;
-}
-
-/* For VW/UDC */
-
-FontData
-read_EncodingInfo(
- int count,
- char **value)
-{
- FontData font_data,ret;
- char *buf, *bufptr,*scp;
- int len, i;
- font_data = Xcalloc(count, sizeof(FontDataRec));
- if (font_data == NULL)
- return NULL;
-
- ret = font_data;
- for (i = 0; i < count; i++, font_data++) {
-/*
- strcpy(buf, *value++);
-*/
- buf = *value; value++;
- if ((bufptr = strchr(buf, ':'))) {
- len = (int)(bufptr - buf);
- bufptr++ ;
- } else
- len = strlen(buf);
- font_data->name = Xmalloc(len + 1);
- if (font_data->name == NULL) {
- free_fontdataOM(ret, i + 1);
- Xfree(ret);
- return NULL;
- }
- strncpy(font_data->name, buf,len);
- font_data->name[len] = 0;
- if (bufptr && _XlcCompareISOLatin1(bufptr, "GL") == 0)
- font_data->side = XlcGL;
- else if (bufptr && _XlcCompareISOLatin1(bufptr, "GR") == 0)
- font_data->side = XlcGR;
- else
- font_data->side = XlcGLGR;
-
- if (bufptr && (scp = strchr(bufptr, '['))){
- font_data->scopes = _XlcParse_scopemaps(scp,&(font_data->scopes_num));
- }
- }
- return(ret);
-}
-
-static CodeRange read_vrotate(
- int count,
- char **value,
- int *type,
- int *vrotate_num)
-{
- CodeRange range;
- if(!strcmp(value[0],"all")){
- *type = VROTATE_ALL ;
- *vrotate_num = 0 ;
- return (NULL);
- } else if(*(value[0]) == '['){
- *type = VROTATE_PART ;
- range = (CodeRange) _XlcParse_scopemaps(value[0],vrotate_num);
- return (range);
- } else {
- *type = VROTATE_NONE ;
- *vrotate_num = 0 ;
- return (NULL);
- }
-}
-
-static void read_vw(
- XLCd lcd,
- OMData font_set,
- int num)
-{
- char **value, buf[BUFSIZ];
- int count;
-
- snprintf(buf, sizeof(buf), "fs%d.font.vertical_map", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count > 0){
- _XlcDbg_printValue(buf,value,count);
- font_set->vmap_num = count;
- font_set->vmap = read_EncodingInfo(count,value);
- }
-
- snprintf(buf, sizeof(buf), "fs%d.font.vertical_rotate", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count > 0){
- _XlcDbg_printValue(buf,value,count);
- font_set->vrotate = read_vrotate(count,value,&(font_set->vrotate_type),
- &(font_set->vrotate_num));
- }
-}
-/* VW/UDC end */
-static Bool
-init_om(
- XOM om)
-{
- XLCd lcd = om->core.lcd;
- XOMGenericPart *gen = XOM_GENERIC(om);
- OMData data;
- XlcCharSet *charset_list;
- FontData font_data;
- char **required_list;
- XOrientation *orientation;
- char **value, buf[BUFSIZ], *bufptr;
- int count = 0, num = 0, length = 0;
-
- _XlcGetResource(lcd, "XLC_FONTSET", "on_demand_loading", &value, &count);
- if (count > 0 && _XlcCompareISOLatin1(*value, "True") == 0)
- gen->on_demand_loading = True;
-
- _XlcGetResource(lcd, "XLC_FONTSET", "object_name", &value, &count);
- if (count > 0) {
- gen->object_name = strdup(*value);
- if (gen->object_name == NULL)
- return False;
- }
-
- for (num = 0; ; num++) {
-
- snprintf(buf, sizeof(buf), "fs%d.charset.name", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
-
- if( count < 1){
- snprintf(buf, sizeof(buf), "fs%d.charset", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1)
- break;
- }
-
- data = add_data(om);
- if (data == NULL)
- return False;
-
- charset_list = Xmalloc(sizeof(XlcCharSet) * count);
- if (charset_list == NULL)
- return False;
- data->charset_list = charset_list;
- data->charset_count = count;
-
- while (count-- > 0){
- *charset_list++ = _XlcGetCharSet(*value++);
- }
- snprintf(buf, sizeof(buf), "fs%d.charset.udc_area", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if( count > 0){
- UDCArea udc;
- int i,flag = 0;
- udc = Xmalloc(count * sizeof(UDCAreaRec));
- if (udc == NULL)
- return False;
- for(i=0;i<count;i++){
- sscanf(value[i],"\\x%lx,\\x%lx", &(udc[i].start),
- &(udc[i].end));
- }
- for(i=0;i<data->charset_count;i++){
- if(data->charset_list[i]->udc_area == NULL){
- data->charset_list[i]->udc_area = udc;
- data->charset_list[i]->udc_area_num = count;
- flag = 1;
- }
- }
- if(flag == 0){
- Xfree(udc);
- }
- }
-
- snprintf(buf, sizeof(buf), "fs%d.font.primary", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1){
- snprintf(buf, sizeof(buf), "fs%d.font", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1)
- return False;
- }
-
- font_data = read_EncodingInfo(count,value);
- if (font_data == NULL)
- return False;
-
- data->font_data = font_data;
- data->font_data_count = count;
-
- snprintf(buf, sizeof(buf), "fs%d.font.substitute", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count > 0){
- font_data = read_EncodingInfo(count,value);
- if (font_data == NULL)
- return False;
- data->substitute = font_data;
- data->substitute_num = count;
- } else {
- snprintf(buf, sizeof(buf), "fs%d.font", num);
- _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
- if (count < 1) {
- data->substitute = NULL;
- data->substitute_num = 0;
- } else {
- font_data = read_EncodingInfo(count,value);
- data->substitute = font_data;
- data->substitute_num = count;
- }
- }
- read_vw(lcd,data,num);
- length += strlen(data->font_data->name) + 1;
- }
-
- /* required charset list */
- required_list = Xmalloc(sizeof(char *) * gen->data_num);
- if (required_list == NULL)
- return False;
-
- om->core.required_charset.charset_list = required_list;
- om->core.required_charset.charset_count = gen->data_num;
-
- count = gen->data_num;
- data = gen->data;
-
- if (count > 0) {
- bufptr = Xmalloc(length);
- if (bufptr == NULL) {
- Xfree(required_list);
- return False;
- }
-
- for ( ; count-- > 0; data++) {
- strcpy(bufptr, data->font_data->name);
- *required_list++ = bufptr;
- bufptr += strlen(bufptr) + 1;
- }
- }
-
- /* orientation list */
- orientation = Xmalloc(sizeof(XOrientation) * 2);
- if (orientation == NULL)
- return False;
-
- orientation[0] = XOMOrientation_LTR_TTB;
- orientation[1] = XOMOrientation_TTB_RTL;
- om->core.orientation_list.orientation = orientation;
- om->core.orientation_list.num_orientation = 2;
-
- /* directional dependent drawing */
- om->core.directional_dependent = False;
-
- /* contexual drawing */
- om->core.contextual_drawing = False;
-
- /* context dependent */
- om->core.context_dependent = False;
-
- return True;
-}
-
-XOM
-_XomGenericOpenOM(XLCd lcd, Display *dpy, XrmDatabase rdb,
- _Xconst char *res_name, _Xconst char *res_class)
-{
- XOM om;
-
- om = create_om(lcd, dpy, rdb, res_name, res_class);
- if (om == NULL)
- return (XOM) NULL;
-
- if (init_om(om) == False)
- goto err;
-
- return om;
-
-err:
- close_om(om);
-
- return (XOM) NULL;
-}
-
-Bool
-_XInitOM(
- XLCd lcd)
-{
- lcd->methods->open_om = _XomGenericOpenOM;
-
- return True;
-}
diff --git a/nx-X11/lib/X11/omImText.c b/nx-X11/lib/X11/omImText.c
deleted file mode 100644
index 9cfb5497d..000000000
--- a/nx-X11/lib/X11/omImText.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-
-#define GET_VALUE_MASK (GCFunction | GCForeground | GCBackground | GCFillStyle)
-#define SET_VALUE_MASK (GCFunction | GCForeground | GCFillStyle)
-
-static void
-_XomGenericDrawImageString(
- Display *dpy,
- Drawable d,
- XOC oc,
- GC gc,
- int x, int y,
- XOMTextType type,
- XPointer text,
- int length)
-{
- XGCValues values;
- XRectangle extent;
-
- XGetGCValues(dpy, gc, GET_VALUE_MASK, &values);
-
- XSetFunction(dpy, gc, GXcopy);
- XSetForeground(dpy, gc, values.background);
- XSetFillStyle(dpy, gc, FillSolid);
-
- _XomGenericTextExtents(oc, type, text, length, 0, &extent);
- XFillRectangle(dpy, d, gc, x + extent.x, y + extent.y, extent.width,
- extent.height);
-
- XChangeGC(dpy, gc, SET_VALUE_MASK, &values);
-
- _XomGenericDrawString(dpy, d, oc, gc, x, y, type, text, length);
-}
-
-void
-_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length)
-{
- _XomGenericDrawImageString(dpy, d, oc, gc, x, y, XOMMultiByte,
- (XPointer) text, length);
-}
-
-void
-_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst wchar_t *text, int length)
-{
- _XomGenericDrawImageString(dpy, d, oc, gc, x, y, XOMWideChar,
- (XPointer) text, length);
-}
-
-void
-_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
- int y, _Xconst char *text, int length)
-{
- _XomGenericDrawImageString(dpy, d, oc, gc, x, y, XOMUtf8String,
- (XPointer) text, length);
-}
diff --git a/nx-X11/lib/X11/omText.c b/nx-X11/lib/X11/omText.c
deleted file mode 100644
index bfceca96e..000000000
--- a/nx-X11/lib/X11/omText.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-/*
- * Modifiers: Jeff Walls, Paul Anderson (HEWLETT-PACKARD)
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-#include <stdio.h>
-
-/* For VW/UDC */
-
-static int
-is_rotate(
- XOC oc,
- XFontStruct *font)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- VRotate vrotate;
- int font_set_count;
- int vrotate_num;
-
- font_set = gen->font_set;
- font_set_count = gen->font_set_num;
- for( ; font_set_count-- ; font_set++) {
- if((font_set->vrotate_num > 0) && (font_set->vrotate)) {
- vrotate = font_set->vrotate;
- vrotate_num = font_set->vrotate_num;
- for( ; vrotate_num-- ; vrotate++)
- if(vrotate->font == font)
- return True;
- }
- }
- return False;
-}
-
-static int
-is_codemap(
- XOC oc,
- XFontStruct *font)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- FontData vmap;
- int font_set_count;
- int vmap_num;
-
- font_set = gen->font_set;
- font_set_count = gen->font_set_num;
- for( ; font_set_count-- ; font_set++) {
- if(font_set->vmap_num > 0) {
- vmap = font_set->vmap;
- vmap_num = font_set->vmap_num;
- for( ; vmap_num-- ; vmap++)
- if(vmap->font == font)
- return True;
- }
- }
- return False;
-}
-
-static int
-draw_vertical(
- Display *dpy,
- Drawable d,
- XOC oc,
- GC gc,
- XFontStruct *font,
- Bool is_xchar2b,
- int x, int y,
- XPointer text,
- int length)
-{
- XChar2b *buf2b;
- char *buf;
- int wx = 0, wy = 0;
- int direction = 0;
- int font_ascent_return = 0, font_descent_return = 0;
- int i;
- XCharStruct overall;
-
- wy = y;
- if (is_xchar2b) {
- for(i = 0, buf2b = (XChar2b *) text ; i < length ; i++, buf2b++) {
- if(is_rotate(oc, font) == True) {
- XTextExtents16(font, buf2b, 1,
- &direction, &font_ascent_return,
- &font_descent_return, &overall);
- wx = x - (int)((overall.rbearing - overall.lbearing) >> 1) -
- (int) overall.lbearing;
- wy += overall.ascent;
- XDrawString16(dpy, d, gc, wx, wy, buf2b, 1);
- wy += overall.descent;
- } else {
- wx = x - (int)((font->max_bounds.rbearing -
- font->min_bounds.lbearing) >> 1) -
- (int) font->min_bounds.lbearing;
- wy += font->max_bounds.ascent;
- XDrawString16(dpy, d, gc, wx, wy, buf2b, 1);
- wy += font->max_bounds.descent;
- }
- }
- } else {
- for(i = 0, buf = (char *)text ; i < length && *buf ; i++, buf++) {
- if(is_rotate(oc, font) == True) {
- XTextExtents(font, buf, 1,
- &direction, &font_ascent_return,
- &font_descent_return, &overall);
- wx = x - (int)((overall.rbearing - overall.lbearing) >> 1) -
- (int) overall.lbearing;
- wy += overall.ascent;
- XDrawString(dpy, d, gc, wx, wy, buf, 1);
- wy += overall.descent;
- } else {
- wx = x - (int)((font->max_bounds.rbearing -
- font->min_bounds.lbearing) >> 1) -
- (int) font->min_bounds.lbearing;
- wy += font->max_bounds.ascent;
- XDrawString(dpy, d, gc, wx, wy, buf, 1);
- wy += font->max_bounds.descent;
- }
- }
- }
- return wy;
-}
-
-#define VMAP 0
-#define VROTATE 1
-#define FONTSCOPE 2
-
-static int
-DrawStringWithFontSet(
- Display *dpy,
- Drawable d,
- XOC oc,
- FontSet fs,
- GC gc,
- int x, int y,
- XPointer text,
- int length)
-{
- XFontStruct *font;
- Bool is_xchar2b;
- unsigned char *ptr;
- int ptr_len, char_len = 0;
- FontData fd;
- int ret = 0;
-
- ptr = (unsigned char *)text;
- is_xchar2b = fs->is_xchar2b;
-
- while (length > 0) {
- fd = _XomGetFontDataFromFontSet(fs,
- ptr,length,&ptr_len,is_xchar2b,FONTSCOPE);
- if(ptr_len <= 0)
- break;
-
- /* First, see if the "Best Match" font for the FontSet was set.
- * If it was, use that font. If it was not set, then use the
- * font defined by font_set->font_data[0] (which is what
- * _XomGetFontDataFromFontSet() always seems to return for
- * non-VW text). Note that given the new algorithm in
- * parse_fontname() and parse_fontdata(), fs->font will
- * *always* contain good data. We should probably remove
- * the check for "fd->font", but we won't :-) -- jjw/pma (HP)
- */
- if((font = fs->font) == (XFontStruct *) NULL){
-
- if(fd == (FontData) NULL ||
- (font = fd->font) == (XFontStruct *) NULL)
- break;
- }
-
- switch(oc->core.orientation) {
- case XOMOrientation_LTR_TTB:
- case XOMOrientation_RTL_TTB:
- XSetFont(dpy, gc, font->fid);
-
- if (is_xchar2b) {
- char_len = ptr_len / sizeof(XChar2b);
- XDrawString16(dpy, d, gc, x, y, (XChar2b *)ptr, char_len);
- x += XTextWidth16(font, (XChar2b *)ptr, char_len);
- } else {
- char_len = ptr_len;
- XDrawString(dpy, d, gc, x, y, (char *)ptr, char_len);
- x += XTextWidth(font, (char *)ptr, char_len);
- }
- break;
- case XOMOrientation_TTB_RTL:
- case XOMOrientation_TTB_LTR:
- if(fs->font == font) {
- fd = _XomGetFontDataFromFontSet(fs,
- ptr,length,&ptr_len,is_xchar2b,VMAP);
- if(ptr_len <= 0)
- break;
- if(fd == (FontData) NULL ||
- (font = fd->font) == (XFontStruct *) NULL)
- break;
-
- if(is_codemap(oc, fd->font) == False) {
- fd = _XomGetFontDataFromFontSet(fs,
- ptr,length,&ptr_len,is_xchar2b,VROTATE);
- if(ptr_len <= 0)
- break;
- if(fd == (FontData) NULL ||
- (font = fd->font) == (XFontStruct *) NULL)
- break;
- }
- }
-
- if(is_xchar2b)
- char_len = ptr_len / sizeof(XChar2b);
- else
- char_len = ptr_len;
- XSetFont(dpy, gc, font->fid);
- y = draw_vertical(dpy, d, oc, gc, font, is_xchar2b, x, y,
- (char *)ptr, char_len);
- break;
-
- case XOMOrientation_Context:
- /* never used? */
- break;
- }
-
- if(char_len <= 0)
- break;
-
- length -= char_len;
- ptr += ptr_len;
- }
-
- switch(oc->core.orientation) {
- case XOMOrientation_LTR_TTB:
- case XOMOrientation_RTL_TTB:
- ret = x;
- break;
- case XOMOrientation_TTB_RTL:
- case XOMOrientation_TTB_LTR:
- ret = y;
- break;
- case XOMOrientation_Context:
- /* not used? */
- break;
- }
- return ret;
-}
-
-/* For VW/UDC */
-
-int
-_XomGenericDrawString(
- Display *dpy,
- Drawable d,
- XOC oc,
- GC gc,
- int x, int y,
- XOMTextType type,
- XPointer text,
- int length)
-{
- XlcConv conv;
- XFontStruct *font;
- Bool is_xchar2b;
-/* VW/UDC */
- XPointer args[3];
- FontSet fs;
-/* VW/UDC */
- XChar2b xchar2b_buf[BUFSIZ], *buf;
- int start_x = x;
- int start_y = y;
- int left = 0, buf_len = 0;
- int next = 0;
-
- conv = _XomInitConverter(oc, type);
- if (conv == NULL)
- return -1;
-
- args[0] = (XPointer) &font;
- args[1] = (XPointer) &is_xchar2b;
- args[2] = (XPointer) &fs;
-
- while (length > 0) {
- buf = xchar2b_buf;
- left = buf_len = BUFSIZ;
-
- if (_XomConvert(oc, conv, (XPointer *) &text, &length,
- (XPointer *) &buf, &left, args, 3) < 0)
- break;
- buf_len -= left;
-
-/* For VW/UDC */
- next = DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y,
- (XPointer)xchar2b_buf, buf_len);
-
- switch(oc->core.orientation) {
- case XOMOrientation_LTR_TTB:
- case XOMOrientation_RTL_TTB:
- x = next;
- break;
- case XOMOrientation_TTB_RTL:
- case XOMOrientation_TTB_LTR:
- y = next;
- break;
- case XOMOrientation_Context:
- /* not used */
- break;
- }
-/* For VW/UDC */
- }
-
- x -= start_x;
- y -= start_y;
-
- return x;
-}
-
-int
-_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length)
-{
- return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMMultiByte,
- (XPointer) text, length);
-}
-
-int
-_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst wchar_t *text, int length)
-{
- return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMWideChar,
- (XPointer) text, length);
-}
-
-int
-_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
- _Xconst char *text, int length)
-{
- return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMUtf8String,
- (XPointer) text, length);
-}
diff --git a/nx-X11/lib/X11/omTextEsc.c b/nx-X11/lib/X11/omTextEsc.c
deleted file mode 100644
index df1fb10c0..000000000
--- a/nx-X11/lib/X11/omTextEsc.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-#include <stdio.h>
-
-/* For VW/UDC start */
-
-#define VMAP 0
-#define VROTATE 1
-#define FONTSCOPE 2
-
-static int
-is_rotate(
- XOC oc,
- XFontStruct *font)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- VRotate vrotate;
- int font_set_count;
- int vrotate_num;
-
- font_set = gen->font_set;
- font_set_count = gen->font_set_num;
- for( ; font_set_count-- ; font_set++) {
- if((font_set->vrotate_num > 0) && (font_set->vrotate != NULL)) {
- vrotate = font_set->vrotate;
- vrotate_num = font_set->vrotate_num;
- for( ; vrotate_num-- ; vrotate++)
- if(vrotate->font == font)
- return True;
- }
- }
- return False;
-}
-
-static int
-is_codemap(
- XOC oc,
- XFontStruct *font)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- FontSet font_set;
- FontData vmap;
- int font_set_count;
- int vmap_num;
-
- font_set = gen->font_set;
- font_set_count = gen->font_set_num;
- for( ; font_set_count-- ; font_set++) {
- if(font_set->vmap_num > 0) {
- vmap = font_set->vmap;
- vmap_num = font_set->vmap_num;
- for( ; vmap_num-- ; vmap++)
- if(vmap->font == font)
- return True;
- }
- }
- return False;
-}
-
-static int
-escapement_vertical(
- XOC oc,
- XFontStruct *font,
- Bool is_xchar2b,
- XPointer text,
- int length)
-{
- XChar2b *buf2b;
- char *buf;
- int escapement = 0, i;
-
- if(is_xchar2b) {
- for(i = 0, buf2b = (XChar2b *) text ; i < length ; i++, buf2b++) {
- if(is_rotate(oc, font) == True) {
- escapement += _XTextHeight16(font, buf2b, 1);
- } else {
- escapement += (int) (font->max_bounds.ascent +
- font->max_bounds.descent);
- }
- }
- } else {
- for(i = 0, buf = (char *)text ; i < length && *buf ; i++, buf++) {
- if(is_rotate(oc, font) == True) {
- escapement += _XTextHeight(font, buf, 1);
- } else {
- escapement += (int) (font->max_bounds.ascent +
- font->max_bounds.descent);
- }
- }
- }
- return escapement;
-}
-
-
-static int
-TextWidthWithFontSet(
- FontSet font_set,
- XOC oc,
- XPointer text,
- int length)
-{
- FontData fd;
- XFontStruct *font;
- unsigned char *ptr = (unsigned char *)text;
- Bool is_xchar2b;
- int ptr_len = length;
- int escapement = 0, char_len = 0;
-
- if(font_set == (FontSet) NULL)
- return escapement;
-
- is_xchar2b = font_set->is_xchar2b;
-
- while(length > 0) {
- fd = _XomGetFontDataFromFontSet(font_set, ptr, length, &ptr_len,
- is_xchar2b, FONTSCOPE);
- if(ptr_len <= 0)
- break;
-
- /*
- * First, see if the "Best Match" font for the FontSet was set.
- * If it was, use that font. If it was not set, then use the
- * font defined by font_set->font_data[0] (which is what
- * _XomGetFontDataFromFontSet() always seems to return for
- * non-VW text). Note that given the new algorithm in
- * parse_fontname() and parse_fontdata(), fs->font will
- * *always* contain good data. We should probably remove
- * the check for "fd->font", but we won't :-) -- jjw/pma (HP)
- *
- * Above comment and way this is done propagated from omText.c
- * Note that fd->font is junk so using the result of the
- * above call /needs/ to be ignored.
- *
- * Owen Taylor <otaylor@redhat.com> 12 Jul 2000
- *
- */
-
- if(fd == (FontData) NULL ||
- (font = font_set->font) == (XFontStruct *) NULL) {
-
- if((font = fd->font) == (XFontStruct *) NULL)
- break;
- }
-
- switch(oc->core.orientation) {
- case XOMOrientation_LTR_TTB:
- case XOMOrientation_RTL_TTB:
- if (is_xchar2b) {
- char_len = ptr_len / sizeof(XChar2b);
- escapement += XTextWidth16(font, (XChar2b *)ptr, char_len);
- } else {
- char_len = ptr_len;
- escapement += XTextWidth(font, (char *)ptr, char_len);
- }
- break;
-
- case XOMOrientation_TTB_LTR:
- case XOMOrientation_TTB_RTL:
- if(font_set->font == font) {
- fd = _XomGetFontDataFromFontSet(font_set, ptr, length, &ptr_len,
- is_xchar2b, VMAP);
- if(ptr_len <= 0)
- break;
- if(fd == (FontData) NULL ||
- (font = fd->font) == (XFontStruct *) NULL)
- break;
-
- if(is_codemap(oc, fd->font) == False) {
- fd = _XomGetFontDataFromFontSet(font_set, ptr, length,
- &ptr_len, is_xchar2b,
- VROTATE);
- if(ptr_len <= 0)
- break;
- if(fd == (FontData) NULL ||
- (font = fd->font) == (XFontStruct *) NULL)
- break;
- }
- }
-
- if(is_xchar2b)
- char_len = ptr_len / sizeof(XChar2b);
- else
- char_len = ptr_len;
- escapement += escapement_vertical(oc, font, is_xchar2b,
- (XPointer) ptr, char_len);
- break;
-
- case XOMOrientation_Context:
- /* not used? */
- break;
- }
-
- if(char_len <= 0)
- break;
-
- length -= char_len;
- ptr += ptr_len;
- }
-
- return escapement;
-}
-
-/* For VW/UDC end */
-
-static int
-_XomGenericTextEscapement(
- XOC oc,
- XOMTextType type,
- XPointer text,
- int length)
-{
- XlcConv conv;
- XFontStruct *font;
- Bool is_xchar2b;
-/* VW/UDC */
- XPointer args[3];
- FontSet font_set;
-/* VW/UDC */
- XChar2b xchar2b_buf[BUFSIZ], *buf;
- int escapement = 0;
- int buf_len = 0, left = 0;
-
- conv = _XomInitConverter(oc, type);
- if (conv == NULL)
- return escapement;
-
- args[0] = (XPointer) &font;
- args[1] = (XPointer) &is_xchar2b;
- args[2] = (XPointer) &font_set;
-
- while (length > 0) {
- buf = xchar2b_buf;
- left = buf_len = BUFSIZ;
-
- if (_XomConvert(oc, conv, (XPointer *) &text, &length,
- (XPointer *) &buf, &left, args, 3) < 0)
- break;
- buf_len -= left;
-
-/* VW/UDC */
- escapement += TextWidthWithFontSet(font_set, oc,
- (XPointer) xchar2b_buf, buf_len);
-/* VW/UDC */
- }
-
- return escapement;
-}
-
-int
-_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length)
-{
- return _XomGenericTextEscapement(oc, XOMMultiByte, (XPointer) text, length);
-}
-
-int
-_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
-{
- return _XomGenericTextEscapement(oc, XOMWideChar, (XPointer) text, length);
-}
-
-int
-_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length)
-{
- return _XomGenericTextEscapement(oc, XOMUtf8String, (XPointer) text,
- length);
-}
diff --git a/nx-X11/lib/X11/omTextExt.c b/nx-X11/lib/X11/omTextExt.c
deleted file mode 100644
index baeadf6b0..000000000
--- a/nx-X11/lib/X11/omTextExt.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-#include <stdio.h>
-
-int
-_XomGenericTextExtents(
- XOC oc,
- XOMTextType type,
- XPointer text,
- int length,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- XlcConv conv;
- XFontStruct *font;
- Bool is_xchar2b;
- XPointer args[2];
- XChar2b xchar2b_buf[BUFSIZ], *buf;
- int direction, logical_ascent, logical_descent, tmp_ascent, tmp_descent;
- XCharStruct overall, tmp_overall;
- int buf_len, left;
- Bool first = True;
-
- conv = _XomInitConverter(oc, type);
- if (conv == NULL)
- return 0;
-
- bzero((char *) &overall, sizeof(XCharStruct));
- logical_ascent = logical_descent = 0;
-
- args[0] = (XPointer) &font;
- args[1] = (XPointer) &is_xchar2b;
-
- while (length > 0) {
- buf = xchar2b_buf;
- left = buf_len = BUFSIZ;
-
- if (_XomConvert(oc, conv, (XPointer *) &text, &length,
- (XPointer *) &buf, &left, args, 2) < 0)
- break;
- buf_len -= left;
-
- if (is_xchar2b)
- XTextExtents16(font, xchar2b_buf, buf_len, &direction,
- &tmp_ascent, &tmp_descent, &tmp_overall);
- else
- XTextExtents(font, (char *) xchar2b_buf, buf_len, &direction,
- &tmp_ascent, &tmp_descent, &tmp_overall);
-
- if (first) { /* initialize overall */
- overall = tmp_overall;
- logical_ascent = tmp_ascent;
- logical_descent = tmp_descent;
- first = False;
- } else {
- overall.lbearing = min(overall.lbearing,
- overall.width + tmp_overall.lbearing);
- overall.rbearing = max(overall.rbearing,
- overall.width + tmp_overall.rbearing);
- overall.ascent = max(overall.ascent, tmp_overall.ascent);
- overall.descent = max(overall.descent, tmp_overall.descent);
- overall.width += tmp_overall.width;
- logical_ascent = max(logical_ascent, tmp_ascent);
- logical_descent = max(logical_descent, tmp_descent);
- }
- }
-
- if (overall_ink) {
- overall_ink->x = overall.lbearing;
- overall_ink->y = -(overall.ascent);
- overall_ink->width = overall.rbearing - overall.lbearing;
- overall_ink->height = overall.ascent + overall.descent;
- }
-
- if (overall_logical) {
- overall_logical->x = 0;
- overall_logical->y = -(logical_ascent);
- overall_logical->width = overall.width;
- overall_logical->height = logical_ascent + logical_descent;
- }
-
- return overall.width;
-}
-
-int
-_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical)
-{
- return _XomGenericTextExtents(oc, XOMMultiByte, (XPointer) text, length,
- overall_ink, overall_logical);
-}
-
-int
-_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical)
-{
- return _XomGenericTextExtents(oc, XOMWideChar, (XPointer) text, length,
- overall_ink, overall_logical);
-}
-
-int
-_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *overall_ink, XRectangle *overall_logical)
-{
- return _XomGenericTextExtents(oc, XOMUtf8String, (XPointer) text, length,
- overall_ink, overall_logical);
-}
diff --git a/nx-X11/lib/X11/omTextPer.c b/nx-X11/lib/X11/omTextPer.c
deleted file mode 100644
index ae08fe6a4..000000000
--- a/nx-X11/lib/X11/omTextPer.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XomGeneric.h"
-#include <stdio.h>
-
-static Status
-_XomGenericTextPerCharExtents(
- XOC oc,
- XOMTextType type,
- XPointer text,
- int length,
- XRectangle *ink_buf,
- XRectangle *logical_buf,
- int buf_size,
- int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- XlcConv conv;
- XFontStruct *font;
- Bool is_xchar2b;
- XPointer args[2];
- XChar2b xchar2b_buf[BUFSIZ], *xchar2b_ptr;
- char *xchar_ptr = NULL;
- XCharStruct *def, *cs, overall;
- int buf_len, left, require_num;
- int logical_ascent, logical_descent;
- Bool first = True;
-
- conv = _XomInitConverter(oc, type);
- if (conv == NULL)
- return 0;
-
- bzero((char *) &overall, sizeof(XCharStruct));
- logical_ascent = logical_descent = require_num = *num_chars = 0;
-
- args[0] = (XPointer) &font;
- args[1] = (XPointer) &is_xchar2b;
-
- while (length > 0) {
- xchar2b_ptr = xchar2b_buf;
- left = buf_len = BUFSIZ;
-
- if (_XomConvert(oc, conv, (XPointer *) &text, &length,
- (XPointer *) &xchar2b_ptr, &left, args, 2) < 0)
- break;
- buf_len -= left;
-
- if (require_num) {
- require_num += buf_len;
- continue;
- }
- if (buf_size < buf_len) {
- require_num = *num_chars + buf_len;
- continue;
- }
- buf_size -= buf_len;
-
- if (first) {
- logical_ascent = font->ascent;
- logical_descent = font->descent;
- } else {
- logical_ascent = max(logical_ascent, font->ascent);
- logical_descent = max(logical_descent, font->descent);
- }
-
- if (is_xchar2b) {
- CI_GET_DEFAULT_INFO_2D(font, def)
- xchar2b_ptr = xchar2b_buf;
- } else {
- CI_GET_DEFAULT_INFO_1D(font, def)
- xchar_ptr = (char *) xchar2b_buf;
- }
-
- while (buf_len-- > 0) {
- if (is_xchar2b) {
- CI_GET_CHAR_INFO_2D(font, xchar2b_ptr->byte1,
- xchar2b_ptr->byte2, def, cs)
- xchar2b_ptr++;
- } else {
- CI_GET_CHAR_INFO_1D(font, *xchar_ptr, def, cs)
- xchar_ptr++;
- }
- if (cs == NULL)
- continue;
-
- ink_buf->x = overall.width + cs->lbearing;
- ink_buf->y = -(cs->ascent);
- ink_buf->width = cs->rbearing - cs->lbearing;
- ink_buf->height = cs->ascent + cs->descent;
- ink_buf++;
-
- logical_buf->x = overall.width;
- logical_buf->y = -(font->ascent);
- logical_buf->width = cs->width;
- logical_buf->height = font->ascent + font->descent;
- logical_buf++;
-
- if (first) {
- overall = *cs;
- first = False;
- } else {
- overall.ascent = max(overall.ascent, cs->ascent);
- overall.descent = max(overall.descent, cs->descent);
- overall.lbearing = min(overall.lbearing,
- overall.width + cs->lbearing);
- overall.rbearing = max(overall.rbearing,
- overall.width + cs->rbearing);
- overall.width += cs->width;
- }
-
- (*num_chars)++;
- }
- }
-
- if (require_num) {
- *num_chars = require_num;
- return 0;
- } else {
- if (overall_ink) {
- overall_ink->x = overall.lbearing;
- overall_ink->y = -(overall.ascent);
- overall_ink->width = overall.rbearing - overall.lbearing;
- overall_ink->height = overall.ascent + overall.descent;
- }
-
- if (overall_logical) {
- overall_logical->x = 0;
- overall_logical->y = -(logical_ascent);
- overall_logical->width = overall.width;
- overall_logical->height = logical_ascent + logical_descent;
- }
- }
-
- return 1;
-}
-
-Status
-_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- return _XomGenericTextPerCharExtents(oc, XOMMultiByte, (XPointer) text,
- length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink,
- overall_logical);
-}
-
-Status
-_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- return _XomGenericTextPerCharExtents(oc, XOMWideChar, (XPointer) text,
- length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink,
- overall_logical);
-}
-
-Status
-_Xutf8GenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
- XRectangle *ink_buf, XRectangle *logical_buf,
- int buf_size, int *num_chars,
- XRectangle *overall_ink,
- XRectangle *overall_logical)
-{
- return _XomGenericTextPerCharExtents(oc, XOMUtf8String, (XPointer) text,
- length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink,
- overall_logical);
-}
diff --git a/nx-X11/lib/X11/omXChar.c b/nx-X11/lib/X11/omXChar.c
deleted file mode 100644
index c9bbb8e88..000000000
--- a/nx-X11/lib/X11/omXChar.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright 1992, 1993 by TOSHIBA Corp.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of TOSHIBA not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission. TOSHIBA make no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- * Author: Katsuhisa Yano TOSHIBA Corp.
- * mopi@osa.ilab.toshiba.co.jp
- */
-/*
- * Copyright 1995 by FUJITSU LIMITED
- * This is source code modified by FUJITSU LIMITED under the Joint
- * Development Agreement for the CDE/Motif PST.
- *
- * Modifier: Takanori Tateno FUJITSU LIMITED
- *
- */
-/*
- * Modifiers: Jeff Walls, Paul Anderson (HEWLETT-PACKARD)
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "XlcPublic.h"
-#include "XomGeneric.h"
-#include <stdio.h>
-
-/* for VW/UDC start */
-static Bool
-ismatch_scopes(
- FontData fontdata,
- unsigned long *value,
- Bool is_shift)
-{
- register int scopes_num = fontdata->scopes_num;
- FontScope scopes = fontdata->scopes;
- if (!scopes_num)
- return False;
-
- if(fontdata->font == NULL)
- return False;
-
- for(;scopes_num--;scopes++)
- if ((scopes->start <= (*value & 0x7f7f)) &&
- ((scopes->end) >= (*value & 0x7f7f))){
- if(is_shift == True) {
- if(scopes->shift){
- if(scopes->shift_direction == '+'){
- *value += scopes->shift ;
- } else if( scopes->shift_direction == '-'){
- *value -= scopes->shift ;
- }
- }
- }
- return True;
- }
-
- return False;
-}
-
-static int
-check_vertical_fonttype(
- char *name)
-{
- char *ptr;
- int type = 0;
-
- if(name == (char *)NULL || (int) strlen(name) <= 0)
- return False;
-
- /* Obtains the pointer of CHARSET_ENCODING_FIELD. */
- if((ptr = strchr(name, '-')) == (char *) NULL)
- return False;
- ptr++;
-
- /* Obtains the pointer of vertical_map font type. */
- if((ptr = strchr(ptr, '.')) == (char *) NULL)
- return False;
- ptr++;
-
- switch(*ptr) {
- case '1':
- type = 1; break;
- case '2':
- type = 2; break;
- case '3':
- type = 3; break;
- }
- return type;
-}
-
-/*
-*/
-#define VMAP 0
-#define VROTATE 1
-#define FONTSCOPE 2
-
-FontData
-_XomGetFontDataFromFontSet(
- FontSet fs,
- unsigned char *str,
- int len,
- int *len_ret,
- int is2b,
- int type) /* VMAP , VROTATE , else */
-{
- unsigned long value;
- int num,i,hit,csize;
- FontData fontdata;
- unsigned char *c;
- int vfont_type;
-
- c = str;
- hit = -1;
- if(type == VMAP){
- fontdata = fs->vmap;
- num = fs->vmap_num;
- } else if(type == VROTATE){
- fontdata = (FontData)fs->vrotate;
- num = fs->vrotate_num;
- } else {
- if(fs->font_data_count <= 0 || fs->font_data == (FontData)NULL) {
- fontdata = fs->substitute;
- num = fs->substitute_num;
- }else {
- fontdata = fs->font_data;
- num = fs->font_data_count;
- }
- /* CDExc20229 fix */
- if(fontdata == NULL || num == 0){
- return(NULL);
- }
- }
-
-
- if(is2b){
- csize = 2;
- } else {
- csize = 1;
- }
-
- for(;len;len--){
- if(is2b){
- value = (((unsigned long)*c) << 8)|(unsigned long)*(c + 1);
- } else {
- value = (unsigned long)*c;
- }
-
- /* ### NOTE: This routine DOES NOT WORK!
- * ### We can work around the problem in the calling routine,
- * ### but we really need to understand this better. As it
- * ### stands, the algorithm ALWAYS returns "fontdata[0]"
- * ### for non-VW text! This is clearly wrong. In fact,
- * ### given the new parse_font[name|data]() algorithms,
- * ### we may not even need this routine to do anything
- * ### for non-VW text (since font_set->font always contains
- * ### the best font for this fontset). -- jjw/pma (HP)
- */
- for (i=0;i<num;i++) {
- if(type == VROTATE) {
- if(fontdata[i].font) {
- /* If the num_cr equal zero, all character is rotated. */
- if(fontdata[i].scopes_num == 0) {
- break;
- } else {
- /* The vertical rotate glyph is not have code shift. */
- if (ismatch_scopes(&(fontdata[i]),&value,False)) {
- break;
- }
- }
- }
- } else if(type == VMAP) {
- if(fontdata[i].font) {
- vfont_type = check_vertical_fonttype(fontdata[i].name);
- if(vfont_type == 0 || vfont_type == 1) {
- break;
- } else if(vfont_type == 2 || vfont_type == 3) {
- if(fontdata[i].scopes_num <= 0)
- break;
-
- if (ismatch_scopes(&(fontdata[i]),&value,True)) {
- break;
- }
- }
- }
- } else { /* FONTSCOPE */
- if(fontdata[i].font) {
- if(fontdata[i].scopes_num <= 0)
- break;
- if (ismatch_scopes(&(fontdata[i]),&value,True)){
- break;
- }
- }
- }
- }
- if((hit != -1) && (i != hit)){
- break;
- }
- if(i == num){
- if( type == VROTATE || type == VMAP){
- /* Change 1996.01.23 start */
- if(fs->font_data_count <= 0 ||
- fs->font_data == (FontData)NULL)
- fontdata = fs->substitute;
- else
- fontdata = fs->font_data;
- /* Change 1996.01.23 end */
- }
- hit = 0;
- c += csize;
- break;
- }
- if( hit == -1 ) hit = i;
- if(is2b){
- *c = (unsigned char)(value >> 8);
- *(c + 1) = (unsigned char)(value);
- } else {
- *c = (unsigned char)value;
- }
- c += csize;
- }
- *len_ret = (c - str);
- return(&(fontdata[hit]));
-}
-/* for VW/UDC end */
-
-static FontSet
-_XomGetFontSetFromCharSet(
- XOC oc,
- XlcCharSet charset)
-{
- register FontSet font_set = XOC_GENERIC(oc)->font_set;
- register int num = XOC_GENERIC(oc)->font_set_num;
- XlcCharSet *charset_list;
- int charset_count;
-
- for ( ; num-- > 0; font_set++) {
- charset_count = font_set->charset_count;
- charset_list = font_set->charset_list;
- for ( ; charset_count-- > 0; charset_list++)
- if (*charset_list == charset)
- return font_set;
- }
-
- return (FontSet) NULL;
-}
-
-static void
-shift_to_gl(
- register char *text,
- register int length)
-{
- while (length-- > 0)
- *text++ &= 0x7f;
-}
-
-static void
-shift_to_gr(
- register char *text,
- register int length)
-{
- while (length-- > 0)
- *text++ |= 0x80;
-}
-
-static Bool
-load_font(
- XOC oc,
- FontSet font_set)
-{
- font_set->font = XLoadQueryFont(oc->core.om->core.display,
- oc->core.font_info.font_name_list[font_set->id]);
- if (font_set->font == NULL)
- return False;
-
- oc->core.font_info.font_struct_list[font_set->id] = font_set->font;
- XFreeFontInfo(NULL, font_set->info, 1);
- font_set->info = NULL;
-
- if (font_set->font->min_byte1 || font_set->font->max_byte1)
- font_set->is_xchar2b = True;
- else
- font_set->is_xchar2b = False;
-
- return True;
-}
-
-int
-_XomConvert(
- XOC oc,
- XlcConv conv,
- XPointer *from,
- int *from_left,
- XPointer *to,
- int *to_left,
- XPointer *args,
- int num_args)
-{
- XPointer cs, lc_args[1];
- XlcCharSet charset;
- int length, cs_left, ret;
- FontSet font_set;
-
- cs = *to;
- cs_left = *to_left;
- lc_args[0] = (XPointer) &charset;
-
- ret = _XlcConvert(conv, from, from_left, &cs, &cs_left, lc_args, 1);
- if (ret < 0)
- return -1;
-
- font_set = _XomGetFontSetFromCharSet(oc, charset);
- if (font_set == NULL)
- return -1;
-
- if (font_set->font == NULL && load_font(oc, font_set) == False)
- return -1;
-
- length = *to_left - cs_left;
-
- if (font_set->side != charset->side) {
- if (font_set->side == XlcGL)
- shift_to_gl(*to, length);
- else if (font_set->side == XlcGR)
- shift_to_gr(*to, length);
- }
-
- if (font_set->is_xchar2b)
- length >>= 1;
- *to = cs;
- *to_left -= length;
-
- *((XFontStruct **) args[0]) = font_set->font;
- *((Bool *) args[1]) = font_set->is_xchar2b;
- if(num_args >= 3){
- *((FontSet *) args[2]) = font_set;
- }
-
- return ret;
-}
-
-XlcConv
-_XomInitConverter(
- XOC oc,
- XOMTextType type)
-{
- XOCGenericPart *gen = XOC_GENERIC(oc);
- XlcConv *convp;
- const char *conv_type;
- XlcConv conv;
- XLCd lcd;
-
- switch (type) {
- case XOMWideChar:
- convp = &gen->wcs_to_cs;
- conv_type = XlcNWideChar;
- break;
- case XOMMultiByte:
- convp = &gen->mbs_to_cs;
- conv_type = XlcNMultiByte;
- break;
- case XOMUtf8String:
- convp = &gen->utf8_to_cs;
- conv_type = XlcNUtf8String;
- break;
- default:
- return (XlcConv) NULL;
- }
-
- conv = *convp;
- if (conv) {
- _XlcResetConverter(conv);
- return conv;
- }
-
- lcd = oc->core.om->core.lcd;
-
- conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNFontCharSet);
- if (conv == (XlcConv) NULL) {
- conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNCharSet);
- if (conv == (XlcConv) NULL)
- return (XlcConv) NULL;
- }
-
- *convp = conv;
- return conv;
-}
diff --git a/nx-X11/lib/X11/pathmax.h b/nx-X11/lib/X11/pathmax.h
deleted file mode 100644
index 86e65fadf..000000000
--- a/nx-X11/lib/X11/pathmax.h
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/***********************************************************
-
-Copyright 1987, 1988, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-/*
- * Provides a single definition of PATH_MAX instead of replicating this mess
- * in multiple files
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xos.h>
-
-#ifndef X_NOT_POSIX
-#ifdef _POSIX_SOURCE
-#include <limits.h>
-#else
-#define _POSIX_SOURCE
-#include <limits.h>
-#undef _POSIX_SOURCE
-#endif
-#endif
-#ifndef PATH_MAX
-#ifdef WIN32
-#define PATH_MAX 512
-#else
-#include <sys/param.h>
-#endif
-#ifndef PATH_MAX
-#ifdef MAXPATHLEN
-#define PATH_MAX MAXPATHLEN
-#else
-#define PATH_MAX 1024
-#endif
-#endif
-#endif
diff --git a/nx-X11/lib/X11/poly.h b/nx-X11/lib/X11/poly.h
deleted file mode 100644
index e064783d7..000000000
--- a/nx-X11/lib/X11/poly.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/************************************************************************
-
-Copyright 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-************************************************************************/
-
-/*
- * This file contains a few macros to help track
- * the edge of a filled object. The object is assumed
- * to be filled in scanline order, and thus the
- * algorithm used is an extension of Bresenham's line
- * drawing algorithm which assumes that y is always the
- * major axis.
- * Since these pieces of code are the same for any filled shape,
- * it is more convenient to gather the library in one
- * place, but since these pieces of code are also in
- * the inner loops of output primitives, procedure call
- * overhead is out of the question.
- * See the author for a derivation if needed.
- */
-
-
-/*
- * In scan converting polygons, we want to choose those pixels
- * which are inside the polygon. Thus, we add .5 to the starting
- * x coordinate for both left and right edges. Now we choose the
- * first pixel which is inside the pgon for the left edge and the
- * first pixel which is outside the pgon for the right edge.
- * Draw the left pixel, but not the right.
- *
- * How to add .5 to the starting x coordinate:
- * If the edge is moving to the right, then subtract dy from the
- * error term from the general form of the algorithm.
- * If the edge is moving to the left, then add dy to the error term.
- *
- * The reason for the difference between edges moving to the left
- * and edges moving to the right is simple: If an edge is moving
- * to the right, then we want the algorithm to flip immediately.
- * If it is moving to the left, then we don't want it to flip until
- * we traverse an entire pixel.
- */
-#define BRESINITPGON(dy, x1, x2, xStart, d, m, m1, incr1, incr2) { \
- int dx; /* local storage */ \
-\
- /* \
- * if the edge is horizontal, then it is ignored \
- * and assumed not to be processed. Otherwise, do this stuff. \
- */ \
- if ((dy) != 0) { \
- xStart = (x1); \
- dx = (x2) - xStart; \
- if (dx < 0) { \
- m = dx / (dy); \
- m1 = m - 1; \
- incr1 = -2 * dx + 2 * (dy) * m1; \
- incr2 = -2 * dx + 2 * (dy) * m; \
- d = 2 * m * (dy) - 2 * dx - 2 * (dy); \
- } else { \
- m = dx / (dy); \
- m1 = m + 1; \
- incr1 = 2 * dx - 2 * (dy) * m1; \
- incr2 = 2 * dx - 2 * (dy) * m; \
- d = -2 * m * (dy) + 2 * dx; \
- } \
- } \
-}
-
-#define BRESINCRPGON(d, minval, m, m1, incr1, incr2) { \
- if (m1 > 0) { \
- if (d > 0) { \
- minval += m1; \
- d += incr1; \
- } \
- else { \
- minval += m; \
- d += incr2; \
- } \
- } else {\
- if (d >= 0) { \
- minval += m1; \
- d += incr1; \
- } \
- else { \
- minval += m; \
- d += incr2; \
- } \
- } \
-}
-
-
-/*
- * This structure contains all of the information needed
- * to run the bresenham algorithm.
- * The variables may be hardcoded into the declarations
- * instead of using this structure to make use of
- * register declarations.
- */
-typedef struct {
- int minor_axis; /* minor axis */
- int d; /* decision variable */
- int m, m1; /* slope and slope+1 */
- int incr1, incr2; /* error increments */
-} BRESINFO;
-
-
-#define BRESINITPGONSTRUCT(dmaj, min1, min2, bres) \
- BRESINITPGON(dmaj, min1, min2, bres.minor_axis, bres.d, \
- bres.m, bres.m1, bres.incr1, bres.incr2)
-
-#define BRESINCRPGONSTRUCT(bres) \
- BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2)
-
-
-
-/*
- * These are the data structures needed to scan
- * convert regions. Two different scan conversion
- * methods are available -- the even-odd method, and
- * the winding number method.
- * The even-odd rule states that a point is inside
- * the polygon if a ray drawn from that point in any
- * direction will pass through an odd number of
- * path segments.
- * By the winding number rule, a point is decided
- * to be inside the polygon if a ray drawn from that
- * point in any direction passes through a different
- * number of clockwise and counter-clockwise path
- * segments.
- *
- * These data structures are adapted somewhat from
- * the algorithm in (Foley/Van Dam) for scan converting
- * polygons.
- * The basic algorithm is to start at the top (smallest y)
- * of the polygon, stepping down to the bottom of
- * the polygon by incrementing the y coordinate. We
- * keep a list of edges which the current scanline crosses,
- * sorted by x. This list is called the Active Edge Table (AET)
- * As we change the y-coordinate, we update each entry in
- * in the active edge table to reflect the edges new xcoord.
- * This list must be sorted at each scanline in case
- * two edges intersect.
- * We also keep a data structure known as the Edge Table (ET),
- * which keeps track of all the edges which the current
- * scanline has not yet reached. The ET is basically a
- * list of ScanLineList structures containing a list of
- * edges which are entered at a given scanline. There is one
- * ScanLineList per scanline at which an edge is entered.
- * When we enter a new edge, we move it from the ET to the AET.
- *
- * From the AET, we can implement the even-odd rule as in
- * (Foley/Van Dam).
- * The winding number rule is a little trickier. We also
- * keep the EdgeTableEntries in the AET linked by the
- * nextWETE (winding EdgeTableEntry) link. This allows
- * the edges to be linked just as before for updating
- * purposes, but only uses the edges linked by the nextWETE
- * link as edges representing spans of the polygon to
- * drawn (as with the even-odd rule).
- */
-
-/*
- * for the winding number rule
- */
-#define CLOCKWISE 1
-#define COUNTERCLOCKWISE -1
-
-typedef struct _EdgeTableEntry {
- int ymax; /* ycoord at which we exit this edge. */
- BRESINFO bres; /* Bresenham info to run the edge */
- struct _EdgeTableEntry *next; /* next in the list */
- struct _EdgeTableEntry *back; /* for insertion sort */
- struct _EdgeTableEntry *nextWETE; /* for winding num rule */
- int ClockWise; /* flag for winding number rule */
-} EdgeTableEntry;
-
-
-typedef struct _ScanLineList{
- int scanline; /* the scanline represented */
- EdgeTableEntry *edgelist; /* header node */
- struct _ScanLineList *next; /* next in the list */
-} ScanLineList;
-
-
-typedef struct {
- int ymax; /* ymax for the polygon */
- int ymin; /* ymin for the polygon */
- ScanLineList scanlines; /* header node */
-} EdgeTable;
-
-
-/*
- * Here is a struct to help with storage allocation
- * so we can allocate a big chunk at a time, and then take
- * pieces from this heap when we need to.
- */
-#define SLLSPERBLOCK 25
-
-typedef struct _ScanLineListBlock {
- ScanLineList SLLs[SLLSPERBLOCK];
- struct _ScanLineListBlock *next;
-} ScanLineListBlock;
-
-
-
-/*
- *
- * a few macros for the inner loops of the fill code where
- * performance considerations don't allow a procedure call.
- *
- * Evaluate the given edge at the given scanline.
- * If the edge has expired, then we leave it and fix up
- * the active edge table; otherwise, we increment the
- * x value to be ready for the next scanline.
- * The winding number rule is in effect, so we must notify
- * the caller when the edge has been removed so he
- * can reorder the Winding Active Edge Table.
- */
-#define EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET) { \
- if (pAET->ymax == y) { /* leaving this edge */ \
- pPrevAET->next = pAET->next; \
- pAET = pPrevAET->next; \
- fixWAET = 1; \
- if (pAET) \
- pAET->back = pPrevAET; \
- } \
- else { \
- BRESINCRPGONSTRUCT(pAET->bres); \
- pPrevAET = pAET; \
- pAET = pAET->next; \
- } \
-}
-
-
-/*
- * Evaluate the given edge at the given scanline.
- * If the edge has expired, then we leave it and fix up
- * the active edge table; otherwise, we increment the
- * x value to be ready for the next scanline.
- * The even-odd rule is in effect.
- */
-#define EVALUATEEDGEEVENODD(pAET, pPrevAET, y) { \
- if (pAET->ymax == y) { /* leaving this edge */ \
- pPrevAET->next = pAET->next; \
- pAET = pPrevAET->next; \
- if (pAET) \
- pAET->back = pPrevAET; \
- } \
- else { \
- BRESINCRPGONSTRUCT(pAET->bres); \
- pPrevAET = pAET; \
- pAET = pAET->next; \
- } \
-}
diff --git a/nx-X11/lib/X11/utf8WMProps.c b/nx-X11/lib/X11/utf8WMProps.c
deleted file mode 100644
index 09d643377..000000000
--- a/nx-X11/lib/X11/utf8WMProps.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/*
- * Copyright 2000 by Bruno Haible
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of Bruno Haible not
- * be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Bruno Haible
- * makes no representations about the suitability of this software for
- * any purpose. It is provided "as is" without express or implied
- * warranty.
- *
- * Bruno Haible DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
- * NO EVENT SHALL Bruno Haible BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/Xatom.h>
-#include <nx-X11/Xlocale.h>
-
-void
-Xutf8SetWMProperties (
- Display *dpy,
- Window w,
- _Xconst char *windowName,
- _Xconst char *iconName,
- char **argv,
- int argc,
- XSizeHints *sizeHints,
- XWMHints *wmHints,
- XClassHint *classHints)
-{
- XTextProperty wname, iname;
- XTextProperty *wprop = NULL;
- XTextProperty *iprop = NULL;
-
- if (windowName &&
- Xutf8TextListToTextProperty(dpy, (char**)&windowName, 1,
- XStdICCTextStyle, &wname) >= Success)
- wprop = &wname;
- if (iconName &&
- Xutf8TextListToTextProperty(dpy, (char**)&iconName, 1,
- XStdICCTextStyle, &iname) >= Success)
- iprop = &iname;
- XSetWMProperties(dpy, w, wprop, iprop, argv, argc,
- sizeHints, wmHints, classHints);
- if (wprop)
- Xfree(wname.value);
- if (iprop)
- Xfree(iname.value);
-
- /* Note: The WM_LOCALE_NAME property is set by XSetWMProperties. */
-}
diff --git a/nx-X11/lib/X11/utf8Wrap.c b/nx-X11/lib/X11/utf8Wrap.c
deleted file mode 100644
index 24cb4494c..000000000
--- a/nx-X11/lib/X11/utf8Wrap.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-/*
- * Copyright 1991 by the Open Software Foundation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Open Software Foundation
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Open Software
- * Foundation makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OPEN SOFTWARE FOUNDATION DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * M. Collins OSF
- */
-/*
- * Copyright 2000 by Bruno Haible
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation, and that the name of Bruno Haible not
- * be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Bruno Haible
- * makes no representations about the suitability of this software for
- * any purpose. It is provided "as is" without express or implied
- * warranty.
- *
- * Bruno Haible DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
- * NO EVENT SHALL Bruno Haible BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-void
-Xutf8DrawText(
- Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- XmbTextItem *text_items,
- int nitems)
-{
- register XFontSet fs = NULL;
- register XmbTextItem *p = text_items;
- register int i = nitems;
- register int esc;
-
- /* ignore leading items with no fontset */
- while (i && !p->font_set) {
- i--;
- p++;
- }
-
- for (; --i >= 0; p++) {
- if (p->font_set)
- fs = p->font_set;
- x += p->delta;
- esc = (*fs->methods->utf8_draw_string) (dpy, d, fs, gc, x, y,
- p->chars, p->nchars);
- if (!esc)
- esc = fs->methods->utf8_escapement (fs, p->chars, p->nchars);
- x += esc;
- }
-}
-
-void
-Xutf8DrawString(
- Display *dpy,
- Drawable d,
- XFontSet font_set,
- GC gc,
- int x,
- int y,
- _Xconst char *text,
- int text_len)
-{
- (void)(*font_set->methods->utf8_draw_string) (dpy, d, font_set, gc, x, y,
- text, text_len);
-}
-
-
-void
-Xutf8DrawImageString(
- Display *dpy,
- Drawable d,
- XFontSet font_set,
- GC gc,
- int x,
- int y,
- _Xconst char *text,
- int text_len)
-{
- (*font_set->methods->utf8_draw_image_string) (dpy, d, font_set, gc, x, y,
- text, text_len);
-}
-
-int
-Xutf8TextEscapement(
- XFontSet font_set,
- _Xconst char *text,
- int text_len)
-{
- return (*font_set->methods->utf8_escapement) (font_set, text, text_len);
-}
-
-int
-Xutf8TextExtents(
- XFontSet font_set,
- _Xconst char *text,
- int text_len,
- XRectangle *overall_ink_extents,
- XRectangle *overall_logical_extents)
-{
- return (*font_set->methods->utf8_extents) (font_set, text, text_len,
- overall_ink_extents,
- overall_logical_extents);
-}
-
-Status
-Xutf8TextPerCharExtents(
- XFontSet font_set,
- _Xconst char *text,
- int text_len,
- XRectangle *ink_extents_buffer,
- XRectangle *logical_extents_buffer,
- int buffer_size,
- int *num_chars,
- XRectangle *max_ink_extents,
- XRectangle *max_logical_extents)
-{
- return (*font_set->methods->utf8_extents_per_char)
- (font_set, text, text_len,
- ink_extents_buffer, logical_extents_buffer,
- buffer_size, num_chars, max_ink_extents, max_logical_extents);
-}
diff --git a/nx-X11/lib/X11/util/makekeys.c b/nx-X11/lib/X11/util/makekeys.c
deleted file mode 100644
index 897b882dc..000000000
--- a/nx-X11/lib/X11/util/makekeys.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
-
-Copyright 1990, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/* Constructs hash tables for XStringToKeysym and XKeysymToString. */
-
-#include <nx-X11/X.h>
-#include <nx-X11/Xos.h>
-#include <nx-X11/Xresource.h>
-#include <nx-X11/keysymdef.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "../Xresinternal.h"
-
-#define KTNUM 4000
-
-static struct info {
- char *name;
- KeySym val;
-} info[KTNUM];
-
-#define MIN_REHASH 15
-#define MATCHES 10
-
-static char tab[KTNUM];
-static unsigned short offsets[KTNUM];
-static unsigned short indexes[KTNUM];
-static KeySym values[KTNUM];
-static int ksnum = 0;
-
-static int
-parse_line(const char *buf, char *key, KeySym *val, char *prefix)
-{
- int i;
- char alias[128];
- char *tmp, *tmpa;
-
- /* See if we can catch a straight XK_foo 0x1234-style definition first;
- * the trickery around tmp is to account for prefices. */
- i = sscanf(buf, "#define %127s 0x%lx", key, val);
- if (i == 2 && (tmp = strstr(key, "XK_"))) {
- memcpy(prefix, key, tmp - key);
- prefix[tmp - key] = '\0';
- tmp += 3;
- memmove(key, tmp, strlen(tmp) + 1);
- return 1;
- }
-
- /* Now try to catch alias (XK_foo XK_bar) definitions, and resolve them
- * immediately: if the target is in the form XF86XK_foo, we need to
- * canonicalise this to XF86foo before we do the lookup. */
- i = sscanf(buf, "#define %127s %127s", key, alias);
- if (i == 2 && (tmp = strstr(key, "XK_")) && (tmpa = strstr(alias, "XK_"))) {
- memcpy(prefix, key, tmp - key);
- prefix[tmp - key] = '\0';
- tmp += 3;
- memmove(key, tmp, strlen(tmp) + 1);
- memmove(tmpa, tmpa + 3, strlen(tmpa + 3) + 1);
-
- for (i = ksnum - 1; i >= 0; i--) {
- if (strcmp(info[i].name, alias) == 0) {
- *val = info[i].val;
- return 1;
- }
- }
-
- fprintf(stderr, "can't find matching definition %s for keysym %s%s\n",
- alias, prefix, key);
- }
-
- return 0;
-}
-
-int
-main(int argc, char *argv[])
-{
- int max_rehash;
- Signature sig;
- int i, j, k, l, z;
- FILE *fptr;
- char *name;
- char c;
- int first;
- int best_max_rehash;
- int best_z = 0;
- int num_found;
- KeySym val;
- char key[128], prefix[128];
- static char buf[1024];
-
- for (l = 1; l < argc; l++) {
- fptr = fopen(argv[l], "r");
- if (!fptr) {
- fprintf(stderr, "couldn't open %s\n", argv[l]);
- continue;
- }
-
- while (fgets(buf, sizeof(buf), fptr)) {
- if (!parse_line(buf, key, &val, prefix))
- continue;
-
- if (val == XK_VoidSymbol)
- val = 0;
- if (val > 0x1fffffff) {
- fprintf(stderr, "ignoring illegal keysym (%s, %lx)\n", key,
- val);
- continue;
- }
-
- name = malloc(strlen(prefix) + strlen(key) + 1);
- if (!name) {
- fprintf(stderr, "makekeys: out of memory!\n");
- exit(1);
- }
- sprintf(name, "%s%s", prefix, key);
- info[ksnum].name = name;
- info[ksnum].val = val;
- ksnum++;
- if (ksnum == KTNUM) {
- fprintf(stderr, "makekeys: too many keysyms!\n");
- exit(1);
- }
- }
-
- fclose(fptr);
- }
-
- printf("/* This file is generated from keysymdef.h. */\n");
- printf("/* Do not edit. */\n");
- printf("\n");
-
- best_max_rehash = ksnum;
- num_found = 0;
- for (z = ksnum; z < KTNUM; z++) {
- max_rehash = 0;
- for (name = tab, i = z; --i >= 0;)
- *name++ = 0;
- for (i = 0; i < ksnum; i++) {
- name = info[i].name;
- sig = 0;
- while ((c = *name++))
- sig = (sig << 1) + c;
- first = j = sig % z;
- for (k = 0; tab[j]; k++) {
- j += first + 1;
- if (j >= z)
- j -= z;
- if (j == first)
- goto next1;
- }
- tab[j] = 1;
- if (k > max_rehash)
- max_rehash = k;
- }
- if (max_rehash < MIN_REHASH) {
- if (max_rehash < best_max_rehash) {
- best_max_rehash = max_rehash;
- best_z = z;
- }
- num_found++;
- if (num_found >= MATCHES)
- break;
- }
-next1: ;
- }
-
- z = best_z;
- if (z == 0) {
- fprintf(stderr, "makekeys: failed to find small enough hash!\n"
- "Try increasing KTNUM in makekeys.c\n");
- exit(1);
- }
- printf("#ifdef NEEDKTABLE\n");
- printf("const unsigned char _XkeyTable[] = {\n");
- printf("0,\n");
- k = 1;
- for (i = 0; i < ksnum; i++) {
- name = info[i].name;
- sig = 0;
- while ((c = *name++))
- sig = (sig << 1) + c;
- first = j = sig % z;
- while (offsets[j]) {
- j += first + 1;
- if (j >= z)
- j -= z;
- }
- offsets[j] = k;
- indexes[i] = k;
- val = info[i].val;
- printf("0x%.2"PRIx32", 0x%.2"PRIx32", 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ",
- (sig >> 8) & 0xff, sig & 0xff,
- (val >> 24) & 0xff, (val >> 16) & 0xff,
- (val >> 8) & 0xff, val & 0xff);
- for (name = info[i].name, k += 7; (c = *name++); k++)
- printf("'%c',", c);
- printf((i == (ksnum-1)) ? "0\n" : "0,\n");
- }
- printf("};\n");
- printf("\n");
- printf("#define KTABLESIZE %d\n", z);
- printf("#define KMAXHASH %d\n", best_max_rehash + 1);
- printf("\n");
- printf("static const unsigned short hashString[KTABLESIZE] = {\n");
- for (i = 0; i < z;) {
- printf("0x%.4x", offsets[i]);
- i++;
- if (i == z)
- break;
- printf((i & 7) ? ", " : ",\n");
- }
- printf("\n");
- printf("};\n");
- printf("#endif /* NEEDKTABLE */\n");
-
- best_max_rehash = ksnum;
- num_found = 0;
- for (z = ksnum; z < KTNUM; z++) {
- max_rehash = 0;
- for (name = tab, i = z; --i >= 0;)
- *name++ = 0;
- for (i = 0; i < ksnum; i++) {
- val = info[i].val;
- first = j = val % z;
- for (k = 0; tab[j]; k++) {
- if (values[j] == val)
- goto skip1;
- j += first + 1;
- if (j >= z)
- j -= z;
- if (j == first)
- goto next2;
- }
- tab[j] = 1;
- values[j] = val;
- if (k > max_rehash)
- max_rehash = k;
-skip1: ;
- }
- if (max_rehash < MIN_REHASH) {
- if (max_rehash < best_max_rehash) {
- best_max_rehash = max_rehash;
- best_z = z;
- }
- num_found++;
- if (num_found >= MATCHES)
- break;
- }
-next2: ;
- }
-
- z = best_z;
- if (z == 0) {
- fprintf(stderr, "makekeys: failed to find small enough hash!\n"
- "Try increasing KTNUM in makekeys.c\n");
- exit(1);
- }
- for (i = z; --i >= 0;)
- offsets[i] = 0;
- for (i = 0; i < ksnum; i++) {
- val = info[i].val;
- first = j = val % z;
- while (offsets[j]) {
- if (values[j] == val)
- goto skip2;
- j += first + 1;
- if (j >= z)
- j -= z;
- }
- offsets[j] = indexes[i] + 2;
- values[j] = val;
-skip2: ;
- }
- printf("\n");
- printf("#ifdef NEEDVTABLE\n");
- printf("#define VTABLESIZE %d\n", z);
- printf("#define VMAXHASH %d\n", best_max_rehash + 1);
- printf("\n");
- printf("static const unsigned short hashKeysym[VTABLESIZE] = {\n");
- for (i = 0; i < z;) {
- printf("0x%.4x", offsets[i]);
- i++;
- if (i == z)
- break;
- printf((i & 7) ? ", " : ",\n");
- }
- printf("\n");
- printf("};\n");
- printf("#endif /* NEEDVTABLE */\n");
-
- exit(0);
-}
diff --git a/nx-X11/lib/X11/utlist.h b/nx-X11/lib/X11/utlist.h
deleted file mode 100644
index 215c2c62e..000000000
--- a/nx-X11/lib/X11/utlist.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-Copyright (c) 2007-2009, Troy D. Hanson
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-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.
-*/
-
-#ifndef UTLIST_H
-#define UTLIST_H
-
-#define UTLIST_VERSION 1.7
-
-/* From: http://uthash.sourceforge.net/utlist.html */
-/*
- * This file contains macros to manipulate singly and doubly-linked lists.
- *
- * 1. LL_ macros: singly-linked lists.
- * 2. DL_ macros: doubly-linked lists.
- * 3. CDL_ macros: circular doubly-linked lists.
- *
- * To use singly-linked lists, your structure must have a "next" pointer.
- * To use doubly-linked lists, your structure must "prev" and "next" pointers.
- * Either way, the pointer to the head of the list must be initialized to NULL.
- *
- * ----------------.EXAMPLE -------------------------
- * struct item {
- * int id;
- * struct item *prev, *next;
- * }
- *
- * struct item *list = NULL:
- *
- * int main() {
- * struct item *item;
- * ... allocate and populate item ...
- * DL_APPEND(list, item);
- * }
- * --------------------------------------------------
- *
- * For doubly-linked lists, the append and delete macros are O(1)
- * For singly-linked lists, append and delete are O(n) but prepend is O(1)
- * The sort macro is O(n log(n)) for all types of single/double/circular lists.
- */
-
-
-/******************************************************************************
- * doubly linked list macros (non-circular) *
- *****************************************************************************/
-#define DL_PREPEND(head,add) \
-do { \
- (add)->next = head; \
- if (head) { \
- (add)->prev = (head)->prev; \
- (head)->prev = (add); \
- } else { \
- (add)->prev = (add); \
- } \
- (head) = (add); \
-} while (0)
-
-#define DL_APPEND(head,add) \
-do { \
- if (head) { \
- (add)->prev = (head)->prev; \
- (head)->prev->next = (add); \
- (head)->prev = (add); \
- (add)->next = NULL; \
- } else { \
- (head)=(add); \
- (head)->prev = (head); \
- (head)->next = NULL; \
- } \
-} while (0);
-
-#define DL_DELETE(head,del) \
-do { \
- if ((del)->prev == (del)) { \
- (head)=NULL; \
- } else if ((del)==(head)) { \
- (del)->next->prev = (del)->prev; \
- (head) = (del)->next; \
- } else { \
- (del)->prev->next = (del)->next; \
- if ((del)->next) { \
- (del)->next->prev = (del)->prev; \
- } else { \
- (head)->prev = (del)->prev; \
- } \
- } \
-} while (0);
-
-
-#define DL_FOREACH(head,el) \
- for(el=head;el;el=el->next)
-
-#define DL_FOREACH_SAFE(head,el,tmp) \
- for(el=head,tmp=el->next;el;el=tmp,tmp=(el) ? (el->next) : NULL)
-
-#endif /* UTLIST_H */
-
diff --git a/nx-X11/lib/X11/uvY.c b/nx-X11/lib/X11/uvY.c
deleted file mode 100644
index 19e6c5232..000000000
--- a/nx-X11/lib/X11/uvY.c
+++ /dev/null
@@ -1,423 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of XCMS based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- *
- * NAME
- * CIEuvy.c
- *
- * DESCRIPTION
- * This file contains routines that support the CIE u'v'Y
- * color space to include conversions to and from the CIE
- * XYZ space.
- *
- * DOCUMENTATION
- * "TekColor Color Management System, System Implementor's Manual"
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-#include <stdio.h>
-
-/*
- * FORWARD DECLARATIONS
- */
-static int CIEuvY_ParseString(register char *spec, XcmsColor *pColor);
-
-/*
- * DEFINES
- * Internal definitions that need NOT be exported to any package
- * or program using this package.
- */
-#ifdef DBL_EPSILON
-# define XMY_DBL_EPSILON DBL_EPSILON
-#else
-# define XMY_DBL_EPSILON 0.00001
-#endif
-
-
-/*
- * LOCAL VARIABLES
- */
-
- /*
- * NULL terminated list of functions applied to get from CIEuvY to CIEXYZ
- */
-static XcmsConversionProc Fl_CIEuvY_to_CIEXYZ[] = {
- XcmsCIEuvYToCIEXYZ,
- NULL
-};
-
- /*
- * NULL terminated list of functions applied to get from CIEXYZ to CIEuvY
- */
-static XcmsConversionProc Fl_CIEXYZ_to_CIEuvY[] = {
- XcmsCIEXYZToCIEuvY,
- NULL
-};
-
-
-/*
- * GLOBALS
- */
-
- /*
- * CIE uvY Color Space
- */
-XcmsColorSpace XcmsCIEuvYColorSpace =
- {
- _XcmsCIEuvY_prefix, /* prefix */
- XcmsCIEuvYFormat, /* id */
- CIEuvY_ParseString, /* parseString */
- Fl_CIEuvY_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_CIEuvY, /* from_CIEXYZ */
- 1
- };
-
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CIEuvY_ParseString
- *
- * SYNOPSIS
- */
-static int
-CIEuvY_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsCIEuvYFormat.
- * The assumed CIEuvY string syntax is:
- * CIEuvY:<u>/<v>/<Y>
- * Where u, v, and Y are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- * 0 if failed, non-zero otherwise.
- */
-{
- size_t n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (size_t)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsCIEuvY_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIEuvY.u_prime,
- &pColor->spec.CIEuvY.v_prime,
- &pColor->spec.CIEuvY.Y) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIEuvY.u_prime,
- &pColor->spec.CIEuvY.v_prime,
- &pColor->spec.CIEuvY.Y) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
- pColor->format = XcmsCIEuvYFormat;
- pColor->pixel = 0;
- return(_XcmsCIEuvY_ValidSpec(pColor));
-}
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * XcmsCIEuvY_ValidSpec
- *
- * SYNOPSIS
- */
-Status
-_XcmsCIEuvY_ValidSpec(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks if color specification valid for CIE u'v'Y.
- *
- * RETURNS
- * XcmsFailure if invalid,
- * XcmsSuccess if valid.
- *
- */
-{
- if (pColor->format != XcmsCIEuvYFormat
- ||
- (pColor->spec.CIEuvY.Y < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIEuvY.Y > 1.0 + XMY_DBL_EPSILON)) {
- return(XcmsFailure);
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIEuvYToCIEXYZ - convert CIEuvY to CIEXYZ
- *
- * SYNOPSIS
- */
-Status
-XcmsCIEuvYToCIEXYZ(
- XcmsCCC ccc,
- XcmsColor *puvY_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIEuvY format to CIEXYZ format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsCIEXYZ XYZ_return;
- XcmsColor whitePt;
- unsigned int i;
- XcmsColor *pColor = pColors_in_out;
- XcmsFloat div, x, y, z, Y;
-
- /*
- * Check arguments
- * Postpone checking puvY_WhitePt until it is actually needed
- * otherwise converting between XYZ and uvY will fail.
- */
- if (pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- /* Make sure original format is CIEuvY */
- if (!_XcmsCIEuvY_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- /*
- * Convert to CIEXYZ
- */
-
- Y = pColor->spec.CIEuvY.Y;
-
- /* Convert color u'v' to xyz space */
- div = (6.0 * pColor->spec.CIEuvY.u_prime) - (16.0 * pColor->spec.CIEuvY.v_prime) + 12.0;
- if (div == 0.0) {
- /* use white point since div == 0 */
- if (puvY_WhitePt == NULL ) {
- return(XcmsFailure);
- }
- /*
- * Make sure white point is in CIEuvY form
- */
- if (puvY_WhitePt->format != XcmsCIEuvYFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)puvY_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
- XcmsCIEuvYFormat)) {
- return(XcmsFailure);
- }
- puvY_WhitePt = &whitePt;
- }
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (puvY_WhitePt->spec.CIEuvY.Y != 1.0) {
- return(XcmsFailure);
- }
- div = (6.0 * puvY_WhitePt->spec.CIEuvY.u_prime) -
- (16.0 * puvY_WhitePt->spec.CIEuvY.v_prime) + 12.0;
- if (div == 0) {
- /* internal error */
- return(XcmsFailure);
- }
- x = 9.0 * puvY_WhitePt->spec.CIEuvY.u_prime / div;
- y = 4.0 * puvY_WhitePt->spec.CIEuvY.v_prime / div;
- } else {
- x = 9.0 * pColor->spec.CIEuvY.u_prime / div;
- y = 4.0 * pColor->spec.CIEuvY.v_prime / div;
- }
- z = 1.0 - x - y;
-
- /* Convert from xyz to XYZ */
- /* Conversion uses color normalized lightness based on Y */
- if (y != 0.0) {
- XYZ_return.X = x * Y / y;
- } else {
- XYZ_return.X = x;
- }
- XYZ_return.Y = Y;
- if (y != 0.0) {
- XYZ_return.Z = z * Y / y;
- } else {
- XYZ_return.Z = z;
- }
-
- memcpy((char *)&pColor->spec.CIEXYZ, (char *)&XYZ_return, sizeof(XcmsCIEXYZ));
- /* Identify that format is now CIEXYZ */
- pColor->format = XcmsCIEXYZFormat;
- }
-
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIEXYZToCIEuvY - convert CIEXYZ to CIEuvY
- *
- * SYNOPSIS
- */
-Status
-XcmsCIEXYZToCIEuvY(
- XcmsCCC ccc,
- XcmsColor *puvY_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIEXYZ format to CIEuvY format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsCIEuvY uvY_return;
- XcmsColor whitePt;
- unsigned int i;
- XcmsColor *pColor = pColors_in_out;
- XcmsFloat div;
-
- /*
- * Check arguments
- * Postpone checking puvY_WhitePt until it is actually needed
- * otherwise converting between XYZ and uvY will fail.
- */
- if (pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEuvY form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- /* Make sure original format is CIEXYZ */
- if (!_XcmsCIEXYZ_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- /* Convert to CIEuvY */
- div = pColor->spec.CIEXYZ.X + (15.0 * pColor->spec.CIEXYZ.Y) +
- (3.0 * pColor->spec.CIEXYZ.Z);
- if (div == 0.0) {
- /* Use white point since div == 0.0 */
- if (puvY_WhitePt == NULL ) {
- return(XcmsFailure);
- }
- /*
- * Make sure white point is in CIEuvY form
- */
- if (puvY_WhitePt->format != XcmsCIEuvYFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)puvY_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
- XcmsCIEuvYFormat)) {
- return(XcmsFailure);
- }
- puvY_WhitePt = &whitePt;
- }
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (puvY_WhitePt->spec.CIEuvY.Y != 1.0) {
- return(XcmsFailure);
- }
- uvY_return.Y = pColor->spec.CIEXYZ.Y;
- uvY_return.u_prime = puvY_WhitePt->spec.CIEuvY.u_prime;
- uvY_return.v_prime = puvY_WhitePt->spec.CIEuvY.v_prime;
- } else {
- uvY_return.u_prime = 4.0 * pColor->spec.CIEXYZ.X / div;
- uvY_return.v_prime = 9.0 * pColor->spec.CIEXYZ.Y / div;
- uvY_return.Y = pColor->spec.CIEXYZ.Y;
- }
-
- memcpy((char *)&pColor->spec.CIEuvY, (char *)&uvY_return, sizeof(XcmsCIEuvY));
- /* Identify that format is now CIEuvY */
- pColor->format = XcmsCIEuvYFormat;
- }
-
- return(XcmsSuccess);
-}
diff --git a/nx-X11/lib/X11/wcWrap.c b/nx-X11/lib/X11/wcWrap.c
deleted file mode 100644
index cc3b33f7d..000000000
--- a/nx-X11/lib/X11/wcWrap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
-
-Copyright 1991, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- * Copyright 1991 by the Open Software Foundation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Open Software Foundation
- * not be used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. Open Software
- * Foundation makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- *
- * OPEN SOFTWARE FOUNDATION DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL OPEN SOFTWARE FOUNDATIONN BE
- * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * M. Collins OSF
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "Xlibint.h"
-#include "Xlcint.h"
-
-void
-XwcDrawText(
- Display *dpy,
- Drawable d,
- GC gc,
- int x,
- int y,
- XwcTextItem *text_items,
- int nitems)
-{
- register XFontSet fs = NULL;
- register XwcTextItem *p = text_items;
- register int i = nitems;
- register int esc;
-
- /* ignore leading items with no fontset */
- while (i && !p->font_set) {
- i--;
- p++;
- }
-
- for (; --i >= 0; p++) {
- if (p->font_set)
- fs = p->font_set;
- x += p->delta;
- esc = (*fs->methods->wc_draw_string) (dpy, d, fs, gc, x, y,
- p->chars, p->nchars);
- if (!esc)
- esc = fs->methods->wc_escapement (fs, p->chars, p->nchars);
- x += esc;
- }
-}
-
-void
-XwcDrawString(
- Display *dpy,
- Drawable d,
- XFontSet font_set,
- GC gc,
- int x,
- int y,
- _Xconst wchar_t *text,
- int text_len)
-{
- (void)(*font_set->methods->wc_draw_string) (dpy, d, font_set, gc, x, y,
- text, text_len);
-}
-
-void
-XwcDrawImageString(
- Display *dpy,
- Drawable d,
- XFontSet font_set,
- GC gc,
- int x,
- int y,
- _Xconst wchar_t *text,
- int text_len)
-{
- (*font_set->methods->wc_draw_image_string) (dpy, d, font_set, gc, x, y,
- text, text_len);
-}
-
-int
-XwcTextEscapement(
- XFontSet font_set,
- _Xconst wchar_t *text,
- int text_len)
-{
- return (*font_set->methods->wc_escapement) (font_set, text, text_len);
-}
-
-int
-XwcTextExtents(
- XFontSet font_set,
- _Xconst wchar_t *text,
- int text_len,
- XRectangle *overall_ink_extents,
- XRectangle *overall_logical_extents)
-{
- return (*font_set->methods->wc_extents) (font_set, text, text_len,
- overall_ink_extents,
- overall_logical_extents);
-}
-
-Status
-XwcTextPerCharExtents(
- XFontSet font_set,
- _Xconst wchar_t *text,
- int text_len,
- XRectangle *ink_extents_buffer,
- XRectangle *logical_extents_buffer,
- int buffer_size,
- int *num_chars,
- XRectangle *max_ink_extents,
- XRectangle *max_logical_extents)
-{
- return (*font_set->methods->wc_extents_per_char)
- (font_set, text, text_len,
- ink_extents_buffer, logical_extents_buffer,
- buffer_size, num_chars, max_ink_extents, max_logical_extents);
-}
diff --git a/nx-X11/lib/X11/x11_trans.c b/nx-X11/lib/X11/x11_trans.c
deleted file mode 100644
index 40df7b9b1..000000000
--- a/nx-X11/lib/X11/x11_trans.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright © 2003 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Keith Packard makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#define X11_t 1
-#define TRANS_CLIENT 1
-#include <nx-X11/Xtrans/transport.c>
-
diff --git a/nx-X11/lib/X11/xim_trans.c b/nx-X11/lib/X11/xim_trans.c
deleted file mode 100644
index 928038ae2..000000000
--- a/nx-X11/lib/X11/xim_trans.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright © 2003 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Keith Packard makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#define XIM_t 1
-#define TRANS_CLIENT 1
-
-#include <nx-X11/Xtrans/transport.c>
diff --git a/nx-X11/lib/X11/xyY.c b/nx-X11/lib/X11/xyY.c
deleted file mode 100644
index e85b8d249..000000000
--- a/nx-X11/lib/X11/xyY.c
+++ /dev/null
@@ -1,395 +0,0 @@
-
-/*
- * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
- * All Rights Reserved
- *
- * This file is a component of an X Window System-specific implementation
- * of Xcms based on the TekColor Color Management System. Permission is
- * hereby granted to use, copy, modify, sell, and otherwise distribute this
- * software and its documentation for any purpose and without fee, provided
- * that this copyright, permission, and disclaimer notice is reproduced in
- * all copies of this software and in supporting documentation. TekColor
- * is a trademark of Tektronix, Inc.
- *
- * Tektronix makes no representation about the suitability of this software
- * for any purpose. It is provided "as is" and with all faults.
- *
- * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
- * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
- *
- * NAME
- * CIExyY.c
- *
- * DESCRIPTION
- * This file contains routines that support the CIE xyY
- * color space to include conversions to and from the CIE
- * XYZ space.
- *
- * DOCUMENTATION
- * "TekColor Color Management System, System Implementor's Manual"
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <nx-X11/Xos.h>
-#include "Xlibint.h"
-#include "Xcmsint.h"
-#include "Cv.h"
-
-/*
- * DEFINES
- */
-#define EPS 0.00001 /* some extremely small number */
-#ifdef DBL_EPSILON
-# define XMY_DBL_EPSILON DBL_EPSILON
-#else
-# define XMY_DBL_EPSILON 0.00001
-#endif
-
-/*
- * FORWARD DECLARATIONS
- */
-
-static int CIExyY_ParseString(register char *spec, XcmsColor *pColor);
-static Status XcmsCIExyY_ValidSpec(XcmsColor *pColor);
-
-
-/*
- * LOCAL VARIABLES
- */
-
- /*
- * NULL terminated list of functions applied to get from CIExyY to CIEXYZ
- */
-static XcmsConversionProc Fl_CIExyY_to_CIEXYZ[] = {
- XcmsCIExyYToCIEXYZ,
- NULL
-};
-
- /*
- * NULL terminated list of functions applied to get from CIEXYZ to CIExyY
- */
-static XcmsConversionProc Fl_CIEXYZ_to_CIExyY[] = {
- XcmsCIEXYZToCIExyY,
- NULL
-};
-
-
-/*
- * GLOBALS
- */
-
- /*
- * CIE xyY Color Space
- */
-XcmsColorSpace XcmsCIExyYColorSpace =
- {
- _XcmsCIExyY_prefix, /* prefix */
- XcmsCIExyYFormat, /* id */
- CIExyY_ParseString, /* parseString */
- Fl_CIExyY_to_CIEXYZ, /* to_CIEXYZ */
- Fl_CIEXYZ_to_CIExyY, /* from_CIEXYZ */
- 1
- };
-
-
-
-/************************************************************************
- * *
- * PRIVATE ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CIExyY_ParseString
- *
- * SYNOPSIS
- */
-static int
-CIExyY_ParseString(
- register char *spec,
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * This routines takes a string and attempts to convert
- * it into a XcmsColor structure with XcmsCIExyYFormat.
- * The assumed CIExyY string syntax is:
- * CIExyY:<x>/<y>/<Y>
- * Where x, y, and Y are in string input format for floats
- * consisting of:
- * a. an optional sign
- * b. a string of numbers possibly containing a decimal point,
- * c. an optional exponent field containing an 'E' or 'e'
- * followed by a possibly signed integer string.
- *
- * RETURNS
- * 0 if failed, non-zero otherwise.
- */
-{
- int n;
- char *pchar;
-
- if ((pchar = strchr(spec, ':')) == NULL) {
- return(XcmsFailure);
- }
- n = (int)(pchar - spec);
-
- /*
- * Check for proper prefix.
- */
- if (strncmp(spec, _XcmsCIExyY_prefix, n) != 0) {
- return(XcmsFailure);
- }
-
- /*
- * Attempt to parse the value portion.
- */
- if (sscanf(spec + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIExyY.x,
- &pColor->spec.CIExyY.y,
- &pColor->spec.CIExyY.Y) != 3) {
- char *s; /* Maybe failed due to locale */
- int f;
- if ((s = strdup(spec))) {
- for (f = 0; s[f]; ++f)
- if (s[f] == '.')
- s[f] = ',';
- else if (s[f] == ',')
- s[f] = '.';
- if (sscanf(s + n + 1, "%lf/%lf/%lf",
- &pColor->spec.CIExyY.x,
- &pColor->spec.CIExyY.y,
- &pColor->spec.CIExyY.Y) != 3) {
- free(s);
- return(XcmsFailure);
- }
- free(s);
- } else
- return(XcmsFailure);
- }
- pColor->format = XcmsCIExyYFormat;
- pColor->pixel = 0;
- return(XcmsCIExyY_ValidSpec(pColor));
-}
-
-
-
-/************************************************************************
- * *
- * PUBLIC ROUTINES *
- * *
- ************************************************************************/
-
-/*
- * NAME
- * CIExyY_ValidSpec()
- *
- * SYNOPSIS
- */
-static Status
-XcmsCIExyY_ValidSpec(
- XcmsColor *pColor)
-/*
- * DESCRIPTION
- * Checks a valid CIExyY color specification.
- *
- * RETURNS
- * XcmsFailure if invalid.
- * XcmsSuccess if valid.
- *
- */
-{
- if (pColor->format != XcmsCIExyYFormat
- ||
- (pColor->spec.CIExyY.x < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIExyY.x > 1.0 + XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIExyY.y < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIExyY.y > 1.0 + XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIExyY.Y < 0.0 - XMY_DBL_EPSILON)
- ||
- (pColor->spec.CIExyY.Y > 1.0 + XMY_DBL_EPSILON)) {
- return(XcmsFailure);
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIExyYToCIEXYZ - convert CIExyY to CIEXYZ
- *
- * SYNOPSIS
- */
-Status
-XcmsCIExyYToCIEXYZ(
- XcmsCCC ccc,
- XcmsColor *pxyY_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIExyY format to CIEXYZ format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- */
-{
- XcmsColor *pColor = pColors_in_out;
- XcmsColor whitePt;
- XcmsCIEXYZ XYZ_return;
- XcmsFloat div; /* temporary storage in case divisor is zero */
- XcmsFloat u, v, x, y, z; /* temporary storage */
- unsigned int i;
-
- /*
- * Check arguments
- */
- if (pxyY_WhitePt == NULL || pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
- /* Make sure original format is CIExyY and valid */
- if (!XcmsCIExyY_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
-
- if ((div = (-2 * pColor->spec.CIExyY.x) + (12 * pColor->spec.CIExyY.y) + 3) == 0.0) {
- /* Note that the divisor is zero */
- /* This return is abitrary. */
- XYZ_return.X = 0;
- XYZ_return.Y = 0;
- XYZ_return.Z = 0;
- } else {
- /*
- * Make sure white point is in CIEXYZ form
- */
- if (pxyY_WhitePt->format != XcmsCIEXYZFormat) {
- /* Make copy of the white point because we're going to modify it */
- memcpy((char *)&whitePt, (char *)pxyY_WhitePt, sizeof(XcmsColor));
- if (!_XcmsDIConvertColors(ccc, &whitePt, (XcmsColor *)NULL, 1,
- XcmsCIEXYZFormat)) {
- return(XcmsFailure);
- }
- pxyY_WhitePt = &whitePt;
- }
-
- /* Make sure it is a white point, i.e., Y == 1.0 */
- if (pxyY_WhitePt->spec.CIEXYZ.Y != 1.0) {
- return(XcmsFailure);
- }
-
- /* Convert from xyY to uvY to XYZ */
- u = (4 * pColor->spec.CIExyY.x) / div;
- v = (9 * pColor->spec.CIExyY.y) / div;
- div = (6.0 * u) - (16.0 * v) + 12.0;
- if (div == 0.0) {
- /* Note that the divisor is zero */
- /* This return is abitrary. */
- if ((div = (6.0 * whitePt.spec.CIEuvY.u_prime) -
- (16.0 * whitePt.spec.CIEuvY.v_prime) + 12.0) == 0.0) {
- div = EPS;
- }
- x = 9.0 * whitePt.spec.CIEuvY.u_prime / div;
- y = 4.0 * whitePt.spec.CIEuvY.u_prime / div;
- } else {
- /* convert u, v to small xyz */
- x = 9.0 * u / div;
- y = 4.0 * v / div;
- }
- z = 1.0 - x - y;
- if (y == 0.0) y = EPS; /* Have to worry about divide by 0 */
- XYZ_return.Y = pColor->spec.CIExyY.Y;
- XYZ_return.X = x * XYZ_return.Y / y;
- XYZ_return.Z = z * XYZ_return.Y / y;
- }
-
- /* Copy result to pColor */
- memcpy ((char *)&pColor->spec, (char *)&XYZ_return, sizeof(XcmsCIEXYZ));
-
- /* Identify that the format is now CIEXYZ */
- pColor->format = XcmsCIEXYZFormat;
- }
- return(XcmsSuccess);
-}
-
-
-/*
- * NAME
- * XcmsCIEXYZToCIExyY - convert CIEXYZ to CIExyY
- *
- * SYNOPSIS
- */
-/* ARGSUSED */
-Status
-XcmsCIEXYZToCIExyY(
- XcmsCCC ccc,
- XcmsColor *pxyY_WhitePt,
- XcmsColor *pColors_in_out,
- unsigned int nColors)
-/*
- * DESCRIPTION
- * Converts color specifications in an array of XcmsColor
- * structures from CIEXYZ format to CIExyY format.
- *
- * RETURNS
- * XcmsFailure if failed,
- * XcmsSuccess if succeeded.
- *
- */
-{
- XcmsColor *pColor = pColors_in_out;
- XcmsCIExyY xyY_return;
- XcmsFloat div; /* temporary storage in case divisor is zero */
- unsigned int i;
-
- /*
- * Check arguments
- * pxyY_WhitePt ignored
- */
- if (pColors_in_out == NULL) {
- return(XcmsFailure);
- }
-
- /*
- * Now convert each XcmsColor structure to CIEXYZ form
- */
- for (i = 0; i < nColors; i++, pColor++) {
-
- if (!_XcmsCIEXYZ_ValidSpec(pColor)) {
- return(XcmsFailure);
- }
- /* Now convert for XYZ to xyY */
- if ((div = pColor->spec.CIEXYZ.X + pColor->spec.CIEXYZ.Y + pColor->spec.CIEXYZ.Z) == 0.0) {
- div = EPS;
- }
- xyY_return.x = pColor->spec.CIEXYZ.X / div;
- xyY_return.y = pColor->spec.CIEXYZ.Y / div;
- xyY_return.Y = pColor->spec.CIEXYZ.Y;
-
- /* Copy result to pColor */
- memcpy ((char *)&pColor->spec, (char *)&xyY_return, sizeof(XcmsCIExyY));
-
- /* Identify that the format is now CIEXYZ */
- pColor->format = XcmsCIExyYFormat;
- }
- return(XcmsSuccess);
-}