]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/zebra/fq/fziffx.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / fq / fziffx.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.2  1996/04/18 16:10:33  mclareni
6 * Incorporate changes from J.Zoll for version 3.77
7 *
8 * Revision 1.1.1.1  1996/03/06 10:47:13  mclareni
9 * Zebra
10 *
11 *
12 #include "zebra/pilot.h"
13       SUBROUTINE FZIFFX (JSTAGE)
14
15 C-    Service routine to FZIN for exchange mode
16
17 #include "zebra/zbcd.inc"
18 #include "zebra/zmach.inc"
19 #include "zebra/zunit.inc"
20 #include "zebra/mqsys.inc"
21 #include "zebra/eqlqf.inc"
22 #include "zebra/mzcn.inc"
23 #include "zebra/mzct.inc"
24 #include "zebra/mzioc.inc"
25 #include "zebra/mzcwk.inc"
26 #include "zebra/fzci.inc"
27 #include "zebra/fzcseg.inc"
28 #include "zebra/fzcocc.inc"
29 C--------------    End CDE                             --------------
30       DIMENSION    MPILOT(10)
31       REAL         CHDATA
32 #if defined(CERNLIB_QMVDS)
33       SAVE         CHDATA
34 #endif
35       EQUIVALENCE (MPILOT(1),IPILI(1))
36       EQUIVALENCE (LRTYP,IDI(2)), (ICHDAT,CHDATA)
37 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
38       DIMENSION    NAMESR(2)
39       DATA  NAMESR / 4HFZIF, 4HFX   /
40 #endif
41 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
42       DATA  NAMESR / 6HFZIFFX /
43 #endif
44 #if !defined(CERNLIB_QTRHOLL)
45       CHARACTER    NAMESR*8
46       PARAMETER   (NAMESR = 'FZIFFX  ')
47 #endif
48       DATA  CHDATA / 12345.0 /
49
50 #include "zebra/q_jbyt.inc"
51
52 #include "zebra/qtrace.inc"
53
54       GO TO (101,201,301), JSTAGE
55
56 C-----------------------------------------------------
57 C-                 OBTAIN AND DIGEST NEXT PILOT RECORD
58 C-----------------------------------------------------
59
60   100 CONTINUE
61   101 ISTENI = 1
62       LBPARI = LQFI + INCBPI
63 #if defined(CERNLIB_FZCHANNEL)
64       IF (IACMOI.EQ.3)  THEN
65           IF (IADOPI.EQ.0)         GO TO 740
66         ENDIF
67 #endif
68 #if defined(CERNLIB_FZMEMORY)
69       IF (IFIFOI.EQ.3)  THEN
70           IADOPI = IQ(KQSP+LQFI+8)
71           IQ(KQSP+LQFI+1) = IADOPI
72           IF (IADOPI.EQ.0)         GO TO 740
73           CALL VZERO (IQ(KQSP+LBPARI-9),9)
74 #endif
75 #if (defined(CERNLIB_QDEVZE))&&(defined(CERNLIB_FZMEMORY))
76           IF (LOGLVI.GE.3)  WRITE (IQLOG,9142) IADOPI
77  9142         FORMAT (' DEVZE FZIN, relative buffer adr =',I9)
78 #endif
79 #if defined(CERNLIB_FZMEMORY)
80         ENDIF
81 #endif
82 #if defined(CERNLIB_QDEBPRI)
83       IF (LOGLVI.GE.3)  WRITE (IQLOG,9101) IOPTIR,IOPTIE
84  9101 FORMAT (' FZIFFX-  Hunt for pilot, options RUN/EVENT =',2I2)
85 #endif
86
87       IFLAGI = 1
88       CALL FZIREC
89       IF (IFLAGI.NE.0)             GO TO 999
90 #if defined(CERNLIB_QDEBPRI)
91       IF (LOGLVI.GE.3)  WRITE (IQLOG,9102) NRECAI,IDI
92  9102 FORMAT (' FZIFFX-  Seen LR #',I7,' with NWRL/LRTYP=',I7,I3)
93 #endif
94       ISTENI = 0
95       IF (LRTYP.GE.4)              GO TO 100
96       IF (LRTYP.EQ.1)              GO TO 422
97
98 #if defined(CERNLIB_FQXISN)
99       CALL FZITRN (IPILI,10)
100 #endif
101 #if !defined(CERNLIB_FQXISN)
102       IF (IDAFOI.EQ.0)  THEN
103           CALL FZITRN (IPILI,10)
104         ELSE
105           MFO(1) = 3
106           MFO(2) = 1
107           MFO(3) = 1
108           MFO(4) = -1
109           JFOEND = 4
110           CALL FZITRX (IPILI,10)
111         ENDIF
112 #endif
113       IF (IFLAGI.NE.0)             GO TO 999
114
115       IACTVI = 2
116       IEVFLI = 3 - LRTYP
117       IQ(KQSP+LQFI+15) = IQ(KQSP+LQFI+15) + 1
118
119 C--       check values in pilot head
120
121       IF (IPILI(1).NE.ICHDAT)      GO TO 741
122       IF (NWTXI .LT.0)             GO TO 743
123       IF (NWSEGI.GE.61)            GO TO 743
124       IF (NWSEGI.LT.0)             GO TO 743
125       IF (NWTABI.LT.0)             GO TO 744
126       IF (NWBKI .LT.0)             GO TO 744
127       IF (NWUHCI.LT.0)             GO TO 745
128
129 C--       skip to start/end of run
130       IF (IOPTIR.NE.0)  THEN
131           IQ(KQSP+LQFI+26) = 0
132           GO TO 100
133         ENDIF
134
135       IF (IEVFLI.LT.IOPTIE)        GO TO 100
136
137 #if defined(CERNLIB_QDEBPRI)
138       IF (LOGLVI.GE.3)  WRITE (IQLOG,9107,ERR=107) MPILOT,MPILOT
139   107 CONTINUE
140  9107 FORMAT (10X,'The 10 pilot control words : ',
141 #endif
142 #if (defined(CERNLIB_QDEBPRI))&&(!defined(CERNLIB_HEX))
143      F/1X,4O23/1X,4O23/1X,2O23
144      F/1H0,9X,F13.1,3(9X,I14)/1X,4(9X,I14)/1X,2(9X,I14))
145 #endif
146 #if (defined(CERNLIB_QDEBPRI))&&(defined(CERNLIB_HEX))
147      F/10X,4Z17/10X,4Z17/10X,2Z17
148      F/1H0,9X,F17.1,3I17/10X,4I17/10X,2I17)
149 #endif
150
151 C--                Read I/O char. for User Header Vector
152
153       NWIOI  = 0
154       NWUHI  = 0
155       LFIIOC = LQFI + JAUIOC
156       IQ(KQSP+LFIIOC) = 0
157       IF (NWUHCI.EQ.0)             GO TO 121
158
159 #if defined(CERNLIB_FQXISN)
160       CALL FZITRN (IOCHI,1)
161 #endif
162 #if !defined(CERNLIB_FQXISN)
163       IF (IDAFOI.EQ.0)  THEN
164           CALL FZITRN (IOCHI,1)
165         ELSE
166           MFO(1) = 1
167           MFO(2) = -1
168           JFOEND = 2
169           CALL FZITRX (IOCHI,1)
170         ENDIF
171 #endif
172       IF (IFLAGI.NE.0)             GO TO 999
173
174       NWIOI = JBYT (IOCHI(1),7,5)
175       IF (NWIOI.EQ.0)   THEN
176           NWIOI = 1
177           IF (IOCHI(1).GE.8)       GO TO 742
178           IF (IOCHI(1).LT.0)       GO TO 742
179           IF (IOCHI(1).EQ.0)  IOCHI(1)=1
180         ELSE
181           J = JBYT (IOCHI(1),12,5)
182           IF (J+1.NE.NWIOI)        GO TO 742
183         ENDIF
184       IF (NWIOI.LT.2)              GO TO 116
185
186 #if defined(CERNLIB_FQXISN)
187       CALL FZITRN (IQ(KQSP+LFIIOC+2),NWIOI-1)
188 #endif
189 #if !defined(CERNLIB_FQXISN)
190       IF (IDAFOI.EQ.0)  THEN
191           CALL FZITRN (IQ(KQSP+LFIIOC+2),NWIOI-1)
192         ELSE
193           MFO(1) = 1
194           MFO(2) = -1
195           JFOEND = 2
196           CALL FZITRX (IOCHI(2),NWIOI-1)
197           CALL UCOPY (IOCHI(2),IQ(KQSP+LFIIOC+2),NWIOI-1)
198         ENDIF
199 #endif
200       IF (IFLAGI.NE.0)             GO TO 999
201
202   116 IQ(KQSP+LFIIOC)   = NWIOI
203       IQ(KQSP+LFIIOC+1) = IOCHI(1)
204
205 C--                Read User Header Vector
206
207       LUHEAI = LQWKFZ
208       NWUHA  = NWUHCI - NWIOI
209       NWUHI  = MIN (NWUHA,NWUMXI)
210 #if defined(CERNLIB_FQXISN)
211       CALL FZITRN (LQ(LUHEAI),NWUHI)
212 #endif
213 #if !defined(CERNLIB_FQXISN)
214       IF (IDAFOI.EQ.0)  THEN
215           CALL FZITRN (LQ(LUHEAI),NWUHI)
216         ELSE
217           CALL MZIOCR (IOCHI)
218           CALL FZITRX (LQ(LUHEAI),NWUHI)
219         ENDIF
220 #endif
221       IF (IFLAGI.NE.0)             GO TO 999
222       N4SKII = NWUHA - NWUHI
223
224 #if defined(CERNLIB_QDEBPRI)
225       IF (LOGLVI.GE.3)  THEN
226           N = MIN (8,NWUHI)
227           IF (LOGLVI.GE.4)  THEN
228               WRITE (IQLOG,9113) NWIOI
229               WRITE (IQLOG,9115) (IOCHI(J),J=1,NWIOI)
230               N = NWUHI
231             ENDIF
232           WRITE (IQLOG,9114) NWUHI,N
233           WRITE (IQLOG,9115) (LQ(LUHEAI+J),J=0,N-1)
234         ENDIF
235  9113 FORMAT (10X,I2,' words I/O characteristic for UHV =')
236  9114 FORMAT (10X,I4,' words of User Header accepted, dump the first'
237      F,I5)
238 #endif
239 #if (defined(CERNLIB_QDEBPRI))&&(!defined(CERNLIB_HEX))
240  9115 FORMAT (1X,4O23)
241 #endif
242 #if (defined(CERNLIB_QDEBPRI))&&(defined(CERNLIB_HEX))
243  9115 FORMAT (10X,4Z17)
244 #endif
245
246
247 C----              Read the Segment Table
248
249   121 LFISEG = LQFI + JAUSEG
250       IF (NWSEGI.EQ.0)             GO TO 124
251
252 #if defined(CERNLIB_FQXISN)
253       CALL FZITRN (IQ(KQSP+LFISEG+1),NWSEGI)
254 #endif
255 #if !defined(CERNLIB_FQXISN)
256       IF (IDAFOI.EQ.0)  THEN
257           CALL FZITRN (IQ(KQSP+LFISEG+1),NWSEGI)
258         ELSE
259           NSEG = NWSEGI / 3
260           MFO(1) = 5
261           MFO(2) = -1
262           JFOEND = 2
263           CALL FZITRX (IQ(KQSP+LFISEG+1),2*NSEG)
264           IF (IFLAGI.NE.0)         GO TO 999
265           MFO(1) = 1
266           MFO(2) = -1
267           CALL FZITRX (IQ(KQSP+LFISEG+1+2*NSEG),NSEG)
268         ENDIF
269 #endif
270       IF (IFLAGI.NE.0)             GO TO 999
271
272   124 IQ(KQSP+LFISEG) = NWSEGI
273
274 C----              Read the Text Vector
275
276       LTEXT = LQ(KQSP+LQFI-2)
277       IF (LTEXT.NE.0)  IQ(KQSP+LTEXT+1)=0
278       IF (NWTXI.EQ.0)              GO TO 141
279
280       IF (LTEXT.EQ.0)  THEN
281           N4SKII = N4SKII + NWTXI
282           GO TO 141
283         ENDIF
284
285 C--       increase the size of the text buffer if necessary
286
287       NINC = NWTXI + 4 - IQ(KQSP+LTEXT-1)
288       IF (NINC.GT.0)  THEN
289           CALL FZIREC
290           CALL MZPUSH (JQPDVS,LTEXT,0,NINC,'.')
291           L4STAI = 0
292           CALL FZIREC
293         ENDIF
294
295 C--       transmit to text buffer
296
297 #if defined(CERNLIB_FQXISN)
298       CALL FZITRN (IQ(KQSP+LTEXT+5),NWTXI)
299 #endif
300 #if !defined(CERNLIB_FQXISN)
301       IF (IDAFOI.EQ.0)  THEN
302           CALL FZITRN (IQ(KQSP+LTEXT+5),NWTXI)
303         ELSE
304           MFO(1) = 5
305           MFO(2) = 0
306           JFOEND = 2
307           JFOREP = 0
308           CALL FZITRX (IQ(KQSP+LTEXT+5),NWTXI)
309         ENDIF
310 #endif
311       IF (IFLAGI.NE.0)             GO TO 999
312       IQ(KQSP+LTEXT+1) = NWTXI
313
314 C----              No early table words
315
316   141 LFIEAR = LQFI + JAUEAR
317       IQ(KQSP+LFIEAR) = 0
318
319       CALL FZIREC
320       GO TO 999
321
322 C-------------------------------------------------
323 C-                 READ TABLE
324 C-------------------------------------------------
325
326   201 L4STAI = 0
327       IFLAGI = 0
328       CALL FZIREC
329       LIN = LQTA + NWTABI
330 #if defined(CERNLIB_FQXISN)
331       CALL FZITRN (LQ(LIN),NWTABI)
332 #endif
333 #if !defined(CERNLIB_FQXISN)
334       IF (IDAFOI.EQ.0)  THEN
335           CALL FZITRN (LQ(LIN),NWTABI)
336         ELSE
337           MFO(1) = 1
338           MFO(2) = -1
339           JFOEND = 2
340           CALL FZITRX (LQ(LIN),NWTABI)
341         ENDIF
342 #endif
343       IF (IFLAGI.NE.0)             GO TO 999
344       CALL FZIREC
345       GO TO 999
346
347 C-------------------------------------------------
348 C-                 READ THE DATA
349 C-------------------------------------------------
350
351   301 L4STAI = 0
352       IFLAGI = 0
353       CALL FZIREC
354       LMT  = LQMTA
355   302 IF (LQ(LMT+1).NE.0)          GO TO 311
356
357 C----              Skip segment to be ignored
358
359       N4SKII = N4SKII - LQ(LMT+3)
360       GO TO 348
361
362 C--------          Read segment to accept
363
364   311 LSTA = LQ(LMT+3)
365       LEND = LQ(LMT+4)
366 #if !defined(CERNLIB_FQXISN)
367       IF (IDAFOI.EQ.0)             GO TO 341
368
369 C------            Read segment in exchange mode, bank-by-bank
370
371       LIN = LSTA
372
373 C-       Next bank : first word
374   322 MFO(1) = 1
375       MFO(2) = -1
376       JFOEND = 2
377       CALL FZITRX (LQ(KQS+LIN),1)
378       IF (IFLAGI.NE.0)             GO TO 999
379       IWD  = LQ(KQS+LIN)
380       NST  = JBYT (IWD,1,16) - 12
381 #endif
382 #if (!defined(CERNLIB_FQXISN))&&(defined(CERNLIB_QDEBPRI))
383       IF (LOGLVI.GE.4)  WRITE (IQLOG,9322) LIN,L4CURI-L4STAI-1,NST
384  9322 FORMAT (' FZIFFX-  Next bank : Lst, NWdone, NIO+NL =',I9,2I6)
385 #endif
386 #if !defined(CERNLIB_FQXISN)
387       IF (NST.LT.0)                GO TO 326
388
389 C--                True bank
390
391       IQLN  = LIN
392       IQLS  = LIN + NST + 1
393       IF (IQLS+8.GE.LEND)          GO TO 752
394
395 C-       I/O words, links, next-link, up-link
396       MFO(1) = 1
397       MFO(2) = NST + 2
398
399 C-       origin, numeric ID
400       MFO(3) = 2
401       MFO(4) = 2
402
403 C-       Hollerith ID
404       MFO(5) = 5
405       MFO(6) = 1
406
407 C-       NL, NS, ND, status
408       MFO(7) = 1
409       MFO(8) = -1
410       JFOEND = 8
411       CALL FZITRX (LQ(KQS+LIN+1), NST+9)
412       IF (IFLAGI.NE.0)             GO TO 999
413       IQNIO = JBYT (IQ(KQS+IQLS),19,4)
414       IQNL  = IQ(KQS+IQLS-3)
415       IQND  = IQ(KQS+IQLS-1)
416 #endif
417 #if (!defined(CERNLIB_FQXISN))&&(defined(CERNLIB_QDEBPRI))
418       IF (LOGLVI.GE.4)  THEN
419           IQID  = IQ(KQS+IQLS-4)
420           WRITE (IQLOG,9323) IQID,IQNL,IQND,IQNIO
421         ENDIF
422  9323 FORMAT (' FZIFFX-       ID,NL,ND,NIO = ',A4,2I8,I4)
423 #endif
424 #if !defined(CERNLIB_FQXISN)
425       IF (IQNIO+IQNL.NE.NST)       GO TO 751
426       IF (IQND.LT.0)               GO TO 751
427
428 C-       data words
429       LIN   = IQLS + IQND + 9
430       IF (IQND.EQ.0)               GO TO 324
431       IF (LIN.GT.LEND)             GO TO 753
432
433       CALL MZIOCR (LQ(KQS+IQLN))
434       CALL FZITRX (IQ(KQS+IQLS+1), IQND)
435       IF (IFLAGI.NE.0)             GO TO 999
436   324 IF (LIN.LT.LEND)             GO TO 322
437       GO TO 348
438
439 C--                Short dead region
440
441   326 NWD = JBYT (IWD,17,IQDROP-17)
442       IF (NWD.EQ.0)                GO TO 751
443       IF (NWD.NE.NST+12)           GO TO 751
444       IF (JBYT(IWD,IQDROP,IQBITW-IQDROP).NE.1)  GO TO 751
445       IF (NWD.GT.1)  THEN
446           IF (LIN+NWD.GT.LEND)     GO TO 754
447           MFO(1) = 0
448           MFO(2) = -1
449           JFOEND = 2
450           CALL FZITRX (LQ(KQS+LIN+1), NWD-1)
451           IF (IFLAGI.NE.0)         GO TO 999
452         ENDIF
453       LIN = LIN + NWD
454       IF (LIN.LT.LEND)             GO TO 322
455       GO TO 348
456 #endif
457
458 C------            Read segment in native mode
459
460   341 CALL FZITRN (LQ(KQS+LSTA),LEND-LSTA)
461       IF (IFLAGI.NE.0)             GO TO 999
462
463 C--                Verify bank chaining
464
465       LIN  = LSTA
466   344 IWD  = LQ(KQS+LIN)
467       NST  = JBYT (IWD,1,16) - 12
468       IF (NST.LT.0)                GO TO 346
469
470 C--                True bank
471
472       IQLN  = LIN
473       IQLS  = LIN + NST + 1
474       IF (IQLS+8.GE.LEND)          GO TO 752
475
476       IQNIO = JBYT (IQ(KQS+IQLS),19,4)
477       IQNL  = IQ(KQS+IQLS-3)
478       IQND  = IQ(KQS+IQLS-1)
479       IF (IQNIO+IQNL.NE.NST)       GO TO 751
480       IF (IQND.LT.0)               GO TO 751
481
482       LIN   = IQLS + IQND + 9
483       IF   (LEND-LIN)        753, 348, 344
484
485 C--                Short dead region
486
487   346 NWD = JBYT (IWD,17,IQDROP-17)
488       IF (NWD.EQ.0)                GO TO 751
489       IF (NWD.NE.NST+12)           GO TO 751
490       IF (JBYT(IWD,IQDROP,IQBITW-IQDROP).NE.1)  GO TO 751
491       LIN = LIN + NWD
492       IF   (LEND-LIN)        754, 348, 344
493
494 C----              End of segment
495
496   348 LMT = LMT + 8
497       IF (LMT.LT.LQMTE)            GO TO 302
498
499       IF (N4SKII.NE.0)  THEN
500 #if defined(CERNLIB_FQXISN)
501           CALL FZITRN (IPILI,0)
502 #endif
503 #if !defined(CERNLIB_FQXISN)
504           IF (IDAFOI.EQ.0)  THEN
505               CALL FZITRN (IPILI,0)
506             ELSE
507               CALL FZITRX (IPILI,0)
508             ENDIF
509 #endif
510           IF (IFLAGI.NE.0)         GO TO 999
511         ENDIF
512       CALL FZIREC
513       IF (N4RESI.NE.0)             GO TO 755
514       GO TO 999
515
516 C-------------------------------------------------
517 C-                 START / END-OF-RUN
518 C-------------------------------------------------
519
520   422 LUHEAI = LQWKFZ
521       NWUHI  = MIN (IDI(1), NQWKTT)
522 #if defined(CERNLIB_FQXISN)
523       CALL FZITRN (LQ(LUHEAI),NWUHI)
524 #endif
525 #if !defined(CERNLIB_FQXISN)
526       IF (IDAFOI.EQ.0)  THEN
527           CALL FZITRN (LQ(LUHEAI),NWUHI)
528         ELSE
529           MFO(1) = 2
530           MFO(2) = -1
531           JFOEND = 2
532           CALL FZITRX (LQ(LUHEAI),NWUHI)
533         ENDIF
534 #endif
535       IF (IFLAGI.NE.0)             GO TO 999
536
537       CALL FZIREC
538       JRETCD = -2
539       IQ(KQSP+LBPARI-7) = 0
540       GO TO 999
541
542 C-------------------------------------------------
543 C-                 ERROR CONDITIONS
544 C-------------------------------------------------
545
546 #if defined(CERNLIB_FZMEMORY)||defined(CERNLIB_FZCHANNEL)
547 C-    JERROR = 240  user routine or buffer not connected for C/M mode
548   740 JERROR = 240
549       JRETCD = 4
550       GO TO 999
551 #endif
552
553 C--                Bad construction
554
555 C-    JERROR = 241  check-word which should be 12345.0 is wrong
556   741 JERROR = 241
557       IQUEST(14)= 0
558       IQUEST(15)= 0
559       IQUEST(16)= IPILI(1)
560       IQUEST(17)= ICHDAT
561       NWERR  = 4
562       GO TO 749
563
564 C-    JERROR = 242  control wd of I/O char. for user header invalid
565   742 JERROR = 242
566       IQUEST(14)= NWUHCI
567       IQUEST(15)= 0
568       IQUEST(16)= IOCHI(1)
569       NWERR  = 3
570       GO TO 749
571
572 C-    JERROR = 243  NWSEGI or NWTXI wrong
573   743 JERROR = 243
574       IQUEST(14)= NWSEGI
575       IQUEST(15)= NWTXI
576       NWERR  = 2
577       GO TO 749
578
579 C-    JERROR = 244  NWTABI or NWBKI wrong
580   744 JERROR = 244
581       IQUEST(14)= NWTABI
582       IQUEST(15)= NWBKI
583       NWERR  = 2
584       GO TO 749
585
586 C-    JERROR = 245  NWUHCI wrong
587   745 JERROR = 245
588       IQUEST(14)= NWUHCI
589       NWERR  = 2
590
591   749 JRETCD = 6
592       GO TO 780
593
594 C--                Bad data
595
596 C-    JERROR = 251  inconsistent bank parameters
597   751 JERROR = 251
598       GO TO 759
599
600 C-    JERROR = 252  link part of bank overshoots segment end
601   752 JERROR = 252
602       GO TO 759
603
604 C-    JERROR = 253  data part of bank overshoots segment end
605   753 JERROR = 253
606       GO TO 759
607
608 C-    JERROR = 254  short dead region overshoots segment end
609   754 JERROR = 254
610       GO TO 759
611
612 C-    JERROR = 255  bank material does not end exactly with LR
613   755 JERROR = 255
614
615   759 JRETCD = 5
616
617   780 IQ(KQSP+LBPARI-9) = -3
618       IQ(KQSP+LBPARI-1) = 0
619 #include "zebra/qtrace99.inc"
620       RETURN
621       END
622 *      ==================================================
623 #include "zebra/qcardl.inc"