PageRenderTime 26ms CodeModel.GetById 1ms app.highlight 21ms RepoModel.GetById 1ms app.codeStats 0ms

/zmqgen_4_0.go

http://github.com/alecthomas/gozmq
Go | 627 lines | 252 code | 78 blank | 297 comment | 10 complexity | 1b368cb96f7b91c874f9adafedc6c6c7 MD5 | raw file
  1// +build zmq_4_x
  2//
  3
  4package gozmq
  5
  6import (
  7	"time"
  8)
  9
 10// This file was generated automatically.  Changes made here will be lost.
 11
 12// Socket Option Getters
 13
 14// ZMQ_TYPE: Retrieve socket type.
 15//
 16// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc3
 17//
 18func (s *Socket) Type() (SocketType, error) {
 19	value, err := s.GetSockOptUInt64(TYPE)
 20	return SocketType(value), err
 21}
 22
 23// ZMQ_RCVMORE: More message data parts to follow.
 24//
 25// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc4
 26//
 27func (s *Socket) RcvMore() (bool, error) {
 28	value, err := s.GetSockOptInt(RCVMORE)
 29	return value != 0, err
 30}
 31
 32// ZMQ_SNDHWM: Retrieves high water mark for outbound messages.
 33//
 34// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc5
 35//
 36func (s *Socket) SndHWM() (int, error) {
 37	return s.GetSockOptInt(SNDHWM)
 38}
 39
 40// ZMQ_RCVHWM: Retrieve high water mark for inbound messages.
 41//
 42// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc6
 43//
 44func (s *Socket) RcvHWM() (int, error) {
 45	return s.GetSockOptInt(RCVHWM)
 46}
 47
 48// ZMQ_AFFINITY: Retrieve I/O thread affinity.
 49//
 50// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc7
 51//
 52func (s *Socket) Affinity() (uint64, error) {
 53	return s.GetSockOptUInt64(AFFINITY)
 54}
 55
 56// ZMQ_IDENTITY: Retrieve socket identity.
 57//
 58// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc8
 59//
 60func (s *Socket) Identity() (string, error) {
 61	return s.GetSockOptString(IDENTITY)
 62}
 63
 64// ZMQ_RATE: Retrieve multicast data rate.
 65//
 66// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc9
 67//
 68func (s *Socket) Rate() (int64, error) {
 69	return s.GetSockOptInt64(RATE)
 70}
 71
 72// ZMQ_RECOVERY_IVL: Get multicast recovery interval.
 73//
 74// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc10
 75//
 76func (s *Socket) RecoveryIvl() (time.Duration, error) {
 77	ms, err := s.GetSockOptInt64(RECOVERY_IVL)
 78	return time.Duration(ms) * time.Millisecond, err
 79}
 80
 81// ZMQ_SNDBUF: Retrieve kernel transmit buffer size.
 82//
 83// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc11
 84//
 85func (s *Socket) SndBuf() (uint64, error) {
 86	return s.GetSockOptUInt64(SNDBUF)
 87}
 88
 89// ZMQ_RCVBUF: Retrieve kernel receive buffer size.
 90//
 91// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc12
 92//
 93func (s *Socket) RcvBuf() (uint64, error) {
 94	return s.GetSockOptUInt64(RCVBUF)
 95}
 96
 97// ZMQ_LINGER: Retrieve linger period for socket shutdown.
 98//
 99// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc13
100//
101func (s *Socket) Linger() (time.Duration, error) {
102	ms, err := s.GetSockOptInt(LINGER)
103	return time.Duration(ms) * time.Millisecond, err
104}
105
106// ZMQ_RECONNECT_IVL: Retrieve reconnection interval.
107//
108// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc14
109//
110func (s *Socket) ReconnectIvl() (time.Duration, error) {
111	ms, err := s.GetSockOptInt(RECONNECT_IVL)
112	return time.Duration(ms) * time.Millisecond, err
113}
114
115// ZMQ_RECONNECT_IVL_MAX: Retrieve maximum reconnection interval.
116//
117// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc15
118//
119func (s *Socket) ReconnectIvlMax() (time.Duration, error) {
120	ms, err := s.GetSockOptInt(RECONNECT_IVL_MAX)
121	return time.Duration(ms) * time.Millisecond, err
122}
123
124// ZMQ_BACKLOG: Retrieve maximum length of the queue of outstanding connections.
125//
126// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc16
127//
128func (s *Socket) Backlog() (int, error) {
129	return s.GetSockOptInt(BACKLOG)
130}
131
132// ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size.
133//
134// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc17
135//
136func (s *Socket) MaxMsgSize() (int64, error) {
137	return s.GetSockOptInt64(MAXMSGSIZE)
138}
139
140// ZMQ_RCVTIMEO: Maximum time before a socket operation returns with EAGAIN.
141//
142// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc19
143//
144func (s *Socket) RcvTimeout() (time.Duration, error) {
145	ms, err := s.GetSockOptInt(RCVTIMEO)
146	return time.Duration(ms) * time.Millisecond, err
147}
148
149// ZMQ_SNDTIMEO: Maximum time before a socket operation returns with EAGAIN.
150//
151// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc20
152//
153func (s *Socket) SndTimeout() (time.Duration, error) {
154	ms, err := s.GetSockOptInt(SNDTIMEO)
155	return time.Duration(ms) * time.Millisecond, err
156}
157
158// ZMQ_IPV6: Retrieve IPv6 socket status.
159//
160// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc21
161//
162func (s *Socket) Ipv6() (bool, error) {
163	value, err := s.GetSockOptInt(IPV6)
164	return value != 0, err
165}
166
167// ZMQ_IPV4ONLY: Retrieve IPv4-only socket override status.
168//
169// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc22
170//
171func (s *Socket) IPv4Only() (bool, error) {
172	value, err := s.GetSockOptInt(IPV4ONLY)
173	return value != 0, err
174}
175
176// ZMQ_IMMEDIATE: Retrieve attach-on-connect value.
177//
178// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc23
179//
180func (s *Socket) Immediate() (bool, error) {
181	value, err := s.GetSockOptInt(IMMEDIATE)
182	return value != 0, err
183}
184
185// ZMQ_EVENTS: Retrieve socket event state.
186//
187// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc25
188//
189func (s *Socket) Events() (uint64, error) {
190	return s.GetSockOptUInt64(EVENTS)
191}
192
193// ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option.
194//
195// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc27
196//
197func (s *Socket) TCPKeepalive() (int, error) {
198	return s.GetSockOptInt(TCP_KEEPALIVE)
199}
200
201// ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT(or TCP_KEEPALIVE on some OS).
202//
203// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc28
204//
205func (s *Socket) TCPKeepaliveIdle() (int, error) {
206	return s.GetSockOptInt(TCP_KEEPALIVE_IDLE)
207}
208
209// ZMQ_TCP_KEEPALIVE_CNT: Override TCP_KEEPCNT socket option.
210//
211// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc29
212//
213func (s *Socket) TCPKeepaliveCnt() (int, error) {
214	return s.GetSockOptInt(TCP_KEEPALIVE_CNT)
215}
216
217// ZMQ_TCP_KEEPALIVE_INTVL: Override TCP_KEEPINTVL socket option.
218//
219// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc30
220//
221func (s *Socket) TCPKeepaliveIntvl() (int, error) {
222	return s.GetSockOptInt(TCP_KEEPALIVE_INTVL)
223}
224
225// ZMQ_MECHANISM: Retrieve current security mechanism.
226//
227// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc31
228//
229func (s *Socket) Mechanism() (int, error) {
230	return s.GetSockOptInt(MECHANISM)
231}
232
233// ZMQ_PLAIN_SERVER: Retrieve current PLAIN server role.
234//
235// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc32
236//
237func (s *Socket) PlainServer() (int, error) {
238	return s.GetSockOptInt(PLAIN_SERVER)
239}
240
241// ZMQ_PLAIN_USERNAME: Retrieve current PLAIN username.
242//
243// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc33
244//
245func (s *Socket) PlainUsername() (string, error) {
246	return s.GetSockOptString(PLAIN_USERNAME)
247}
248
249// ZMQ_PLAIN_PASSWORD: Retrieve current password.
250//
251// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc34
252//
253func (s *Socket) PlainPassword() (string, error) {
254	return s.GetSockOptString(PLAIN_PASSWORD)
255}
256
257// ZMQ_CURVE_PUBLICKEY: Retrieve current CURVE public key.
258//
259// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc35
260//
261func (s *Socket) CurvePublickey() (string, error) {
262	return s.GetSockOptString(CURVE_PUBLICKEY)
263}
264
265// ZMQ_CURVE_SECRETKEY: Retrieve current CURVE secret key.
266//
267// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc36
268//
269func (s *Socket) CurveSecretkey() (string, error) {
270	return s.GetSockOptString(CURVE_SECRETKEY)
271}
272
273// ZMQ_CURVE_SERVERKEY: Retrieve current CURVE server key.
274//
275// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc37
276//
277func (s *Socket) CurveServerkey() (string, error) {
278	return s.GetSockOptString(CURVE_SERVERKEY)
279}
280
281// ZMQ_ZAP_DOMAIN: Retrieve RFC 27 authentication domain.
282//
283// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc38
284//
285func (s *Socket) ZapDomain() (string, error) {
286	return s.GetSockOptString(ZAP_DOMAIN)
287}
288
289// Socket Option Setters
290
291// ZMQ_SNDHWM: Set high water mark for outbound messages.
292//
293// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc3
294//
295func (s *Socket) SetSndHWM(value int) error {
296	return s.SetSockOptInt(SNDHWM, value)
297}
298
299// ZMQ_RCVHWM: Set high water mark for inbound messages.
300//
301// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc4
302//
303func (s *Socket) SetRcvHWM(value int) error {
304	return s.SetSockOptInt(RCVHWM, value)
305}
306
307// ZMQ_AFFINITY: Set I/O thread affinity.
308//
309// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc5
310//
311func (s *Socket) SetAffinity(value uint64) error {
312	return s.SetSockOptUInt64(AFFINITY, value)
313}
314
315// ZMQ_SUBSCRIBE: Establish message filter.
316//
317// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc6
318//
319func (s *Socket) SetSubscribe(value string) error {
320	return s.SetSockOptString(SUBSCRIBE, value)
321}
322
323// ZMQ_UNSUBSCRIBE: Remove message filter.
324//
325// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc7
326//
327func (s *Socket) SetUnsubscribe(value string) error {
328	return s.SetSockOptString(UNSUBSCRIBE, value)
329}
330
331// ZMQ_IDENTITY: Set socket identity.
332//
333// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc8
334//
335func (s *Socket) SetIdentity(value string) error {
336	return s.SetSockOptString(IDENTITY, value)
337}
338
339// ZMQ_RATE: Set multicast data rate.
340//
341// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc9
342//
343func (s *Socket) SetRate(value int64) error {
344	return s.SetSockOptInt64(RATE, value)
345}
346
347// ZMQ_RECOVERY_IVL: Set multicast recovery interval.
348//
349// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc10
350//
351func (s *Socket) SetRecoveryIvl(value time.Duration) error {
352	return s.SetSockOptInt64(RECOVERY_IVL, int64(value/time.Millisecond))
353}
354
355// ZMQ_SNDBUF: Set kernel transmit buffer size.
356//
357// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc11
358//
359func (s *Socket) SetSndBuf(value uint64) error {
360	return s.SetSockOptUInt64(SNDBUF, value)
361}
362
363// ZMQ_RCVBUF: Set kernel receive buffer size.
364//
365// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc12
366//
367func (s *Socket) SetRcvBuf(value uint64) error {
368	return s.SetSockOptUInt64(RCVBUF, value)
369}
370
371// ZMQ_LINGER: Set linger period for socket shutdown.
372//
373// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc13
374//
375func (s *Socket) SetLinger(value time.Duration) error {
376	return s.SetSockOptInt(LINGER, int(value/time.Millisecond))
377}
378
379// ZMQ_RECONNECT_IVL: Set reconnection interval.
380//
381// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc14
382//
383func (s *Socket) SetReconnectIvl(value time.Duration) error {
384	return s.SetSockOptInt(RECONNECT_IVL, int(value/time.Millisecond))
385}
386
387// ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval.
388//
389// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc15
390//
391func (s *Socket) SetReconnectIvlMax(value time.Duration) error {
392	return s.SetSockOptInt(RECONNECT_IVL_MAX, int(value/time.Millisecond))
393}
394
395// ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections.
396//
397// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc16
398//
399func (s *Socket) SetBacklog(value int) error {
400	return s.SetSockOptInt(BACKLOG, value)
401}
402
403// ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size.
404//
405// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc17
406//
407func (s *Socket) SetMaxMsgSize(value int64) error {
408	return s.SetSockOptInt64(MAXMSGSIZE, value)
409}
410
411// ZMQ_RCVTIMEO: Maximum time before a recv operation returns with EAGAIN.
412//
413// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc19
414//
415func (s *Socket) SetRcvTimeout(value time.Duration) error {
416	return s.SetSockOptInt(RCVTIMEO, int(value/time.Millisecond))
417}
418
419// ZMQ_SNDTIMEO: Maximum time before a send operation returns with EAGAIN.
420//
421// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc20
422//
423func (s *Socket) SetSndTimeout(value time.Duration) error {
424	return s.SetSockOptInt(SNDTIMEO, int(value/time.Millisecond))
425}
426
427// ZMQ_IPV6: Enable IPv6 on socket.
428//
429// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc21
430//
431func (s *Socket) SetIpv6(value bool) error {
432	if value {
433		return s.SetSockOptInt(IPV6, 1)
434	}
435	return s.SetSockOptInt(IPV6, 0)
436}
437
438// ZMQ_IPV4ONLY: Use IPv4-only on socket.
439//
440// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc22
441//
442func (s *Socket) SetIPv4Only(value bool) error {
443	if value {
444		return s.SetSockOptInt(IPV4ONLY, 1)
445	}
446	return s.SetSockOptInt(IPV4ONLY, 0)
447}
448
449// ZMQ_IMMEDIATE: Queue messages only to completed connections.
450//
451// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc23
452//
453func (s *Socket) SetImmediate(value bool) error {
454	if value {
455		return s.SetSockOptInt(IMMEDIATE, 1)
456	}
457	return s.SetSockOptInt(IMMEDIATE, 0)
458}
459
460// ZMQ_ROUTER_MANDATORY: accept only routable messages on ROUTER sockets.
461//
462// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc24
463//
464func (s *Socket) SetROUTERMandatory(value bool) error {
465	if value {
466		return s.SetSockOptInt(ROUTER_MANDATORY, 1)
467	}
468	return s.SetSockOptInt(ROUTER_MANDATORY, 0)
469}
470
471// ZMQ_ROUTER_RAW: switch ROUTER socket to raw mode.
472//
473// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc25
474//
475func (s *Socket) SetROUTERRaw(value int) error {
476	return s.SetSockOptInt(ROUTER_RAW, value)
477}
478
479// ZMQ_PROBE_ROUTER: bootstrap connections to ROUTER sockets.
480//
481// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc26
482//
483func (s *Socket) SetProbeROUTER(value int) error {
484	return s.SetSockOptInt(PROBE_ROUTER, value)
485}
486
487// ZMQ_XPUB_VERBOSE: provide all subscription messages on XPUB sockets.
488//
489// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc27
490//
491func (s *Socket) SetXPUBVerbose(value bool) error {
492	if value {
493		return s.SetSockOptInt(XPUB_VERBOSE, 1)
494	}
495	return s.SetSockOptInt(XPUB_VERBOSE, 0)
496}
497
498// ZMQ_REQ_CORRELATE: match replies with requests.
499//
500// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc28
501//
502func (s *Socket) SetReqCorrelate(value int) error {
503	return s.SetSockOptInt(REQ_CORRELATE, value)
504}
505
506// ZMQ_REQ_RELAXED: relax strict alternation between request and reply.
507//
508// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc29
509//
510func (s *Socket) SetReqRelaxed(value int) error {
511	return s.SetSockOptInt(REQ_RELAXED, value)
512}
513
514// ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option.
515//
516// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc30
517//
518func (s *Socket) SetTCPKeepalive(value int) error {
519	return s.SetSockOptInt(TCP_KEEPALIVE, value)
520}
521
522// ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT (or TCP_KEEPALIVE on some OS).
523//
524// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc31
525//
526func (s *Socket) SetTCPKeepaliveIdle(value int) error {
527	return s.SetSockOptInt(TCP_KEEPALIVE_IDLE, value)
528}
529
530// ZMQ_TCP_KEEPALIVE_CNT: Override TCP_KEEPCNT socket option.
531//
532// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc32
533//
534func (s *Socket) SetTCPKeepaliveCnt(value int) error {
535	return s.SetSockOptInt(TCP_KEEPALIVE_CNT, value)
536}
537
538// ZMQ_TCP_KEEPALIVE_INTVL: Override TCP_KEEPINTVL socket option.
539//
540// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc33
541//
542func (s *Socket) SetTCPKeepaliveIntvl(value int) error {
543	return s.SetSockOptInt(TCP_KEEPALIVE_INTVL, value)
544}
545
546// ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections.
547//
548// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc34
549//
550func (s *Socket) SetTCPAcceptFilter(value string) error {
551	return s.SetSockOptString(TCP_ACCEPT_FILTER, value)
552}
553
554// ZMQ_PLAIN_SERVER: Set PLAIN server role.
555//
556// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc35
557//
558func (s *Socket) SetPlainServer(value int) error {
559	return s.SetSockOptInt(PLAIN_SERVER, value)
560}
561
562// ZMQ_PLAIN_USERNAME: Set PLAIN security username.
563//
564// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc36
565//
566func (s *Socket) SetPlainUsername(value string) error {
567	return s.SetSockOptString(PLAIN_USERNAME, value)
568}
569
570// ZMQ_PLAIN_PASSWORD: Set PLAIN security password.
571//
572// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc37
573//
574func (s *Socket) SetPlainPassword(value string) error {
575	return s.SetSockOptString(PLAIN_PASSWORD, value)
576}
577
578// ZMQ_CURVE_SERVER: Set CURVE server role.
579//
580// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc38
581//
582func (s *Socket) SetCurveServer(value int) error {
583	return s.SetSockOptInt(CURVE_SERVER, value)
584}
585
586// ZMQ_CURVE_PUBLICKEY: Set CURVE public key.
587//
588// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc39
589//
590func (s *Socket) SetCurvePublickey(value string) error {
591	return s.SetSockOptString(CURVE_PUBLICKEY, value)
592}
593
594// ZMQ_CURVE_SECRETKEY: Set CURVE secret key.
595//
596// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc40
597//
598func (s *Socket) SetCurveSecretkey(value string) error {
599	return s.SetSockOptString(CURVE_SECRETKEY, value)
600}
601
602// ZMQ_CURVE_SERVERKEY: Set CURVE server key.
603//
604// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc41
605//
606func (s *Socket) SetCurveServerkey(value string) error {
607	return s.SetSockOptString(CURVE_SERVERKEY, value)
608}
609
610// ZMQ_ZAP_DOMAIN: Set RFC 27 authentication domain.
611//
612// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc42
613//
614func (s *Socket) SetZapDomain(value string) error {
615	return s.SetSockOptString(ZAP_DOMAIN, value)
616}
617
618// ZMQ_CONFLATE: Keep only last message.
619//
620// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc43
621//
622func (s *Socket) SetConflate(value bool) error {
623	if value {
624		return s.SetSockOptInt(CONFLATE, 1)
625	}
626	return s.SetSockOptInt(CONFLATE, 0)
627}