Index: src/tests/.expect/32/sched-ext-parse.txt
===================================================================
--- src/tests/.expect/32/sched-ext-parse.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/.expect/32/sched-ext-parse.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,1599 @@
+__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
+__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
+extern signed int printf(const char *__restrict __format, ...);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert_fail(const char *__assertion, const char *__file, unsigned int __line, const char *__function);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert_perror_fail(signed int __errnum, const char *__file, unsigned int __line, const char *__function);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert(const char *__assertion, const char *__file, signed int __line);
+__attribute__ ((noreturn,format(printf, 5, 6))) void __assert_fail_f(const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ...);
+struct spinlock {
+    volatile signed int lock;
+    const char *prev_name;
+    void *prev_thrd;
+};
+static inline void ___constructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1);
+static inline void ___constructor__F_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1);
+static inline void ___destructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1);
+static inline struct spinlock ___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1);
+static inline void ___constructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
+}
+static inline void ___constructor__F_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=___src__9sspinlock_1.lock) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name=___src__9sspinlock_1.prev_name) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd=___src__9sspinlock_1.prev_thrd) /* ?{} */);
+}
+static inline void ___destructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1){
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ^?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name) /* ^?{} */);
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))) /* ^?{} */);
+}
+static inline struct spinlock ___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1){
+    struct spinlock ___ret__9sspinlock_1;
+    ((void)((*___dst__R9sspinlock_1).lock=___src__9sspinlock_1.lock));
+    ((void)((*___dst__R9sspinlock_1).prev_name=___src__9sspinlock_1.prev_name));
+    ((void)((*___dst__R9sspinlock_1).prev_thrd=___src__9sspinlock_1.prev_thrd));
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&___ret__9sspinlock_1), ___src__9sspinlock_1));
+    return ((struct spinlock )___ret__9sspinlock_1);
+}
+static inline void ___constructor__F_R9sspinlockVi_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
+}
+static inline void ___constructor__F_R9sspinlockViPCc_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1, const char *__prev_name__PCc_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name=__prev_name__PCc_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
+}
+static inline void ___constructor__F_R9sspinlockViPCcPv_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1, const char *__prev_name__PCc_1, void *__prev_thrd__Pv_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name=__prev_name__PCc_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd=__prev_thrd__Pv_1) /* ?{} */);
+}
+struct __thread_queue_t {
+    struct thread_desc *head;
+    struct thread_desc **tail;
+};
+static inline void ___constructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1);
+static inline void ___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1);
+static inline void ___destructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1);
+static inline struct __thread_queue_t ___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1);
+static inline void ___constructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head=___src__17s__thread_queue_t_1.head) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail=___src__17s__thread_queue_t_1.tail) /* ?{} */);
+}
+static inline void ___destructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ^?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).head) /* ^?{} */);
+}
+static inline struct __thread_queue_t ___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1){
+    struct __thread_queue_t ___ret__17s__thread_queue_t_1;
+    ((void)((*___dst__R17s__thread_queue_t_1).head=___src__17s__thread_queue_t_1.head));
+    ((void)((*___dst__R17s__thread_queue_t_1).tail=___src__17s__thread_queue_t_1.tail));
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&___ret__17s__thread_queue_t_1), ___src__17s__thread_queue_t_1));
+    return ((struct __thread_queue_t )___ret__17s__thread_queue_t_1);
+}
+static inline void ___constructor__F_R17s__thread_queue_tP12sthread_desc_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct thread_desc *__head__P12sthread_desc_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head=__head__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__thread_queue_tP12sthread_descPP12sthread_desc_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct thread_desc *__head__P12sthread_desc_1, struct thread_desc **__tail__PP12sthread_desc_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head=__head__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail=__tail__PP12sthread_desc_1) /* ?{} */);
+}
+struct __condition_stack_t {
+    struct __condition_criterion_t *top;
+};
+static inline void ___constructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1);
+static inline void ___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1);
+static inline void ___destructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1);
+static inline struct __condition_stack_t ___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1);
+static inline void ___constructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top) /* ?{} */);
+}
+static inline void ___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top=___src__20s__condition_stack_t_1.top) /* ?{} */);
+}
+static inline void ___destructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top) /* ^?{} */);
+}
+static inline struct __condition_stack_t ___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1){
+    struct __condition_stack_t ___ret__20s__condition_stack_t_1;
+    ((void)((*___dst__R20s__condition_stack_t_1).top=___src__20s__condition_stack_t_1.top));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&___ret__20s__condition_stack_t_1), ___src__20s__condition_stack_t_1));
+    return ((struct __condition_stack_t )___ret__20s__condition_stack_t_1);
+}
+static inline void ___constructor__F_R20s__condition_stack_tP24s__condition_criterion_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_criterion_t *__top__P24s__condition_criterion_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top=__top__P24s__condition_criterion_t_1) /* ?{} */);
+}
+void ___constructor__F_R17s__thread_queue_t__1(struct __thread_queue_t *__anonymous_object0);
+void __append__F_P17s__thread_queue_tP12sthread_desc__1(struct __thread_queue_t *__anonymous_object1, struct thread_desc *__anonymous_object2);
+struct thread_desc *__pop_head__FP12sthread_desc_P17s__thread_queue_t__1(struct __thread_queue_t *__anonymous_object3);
+struct thread_desc *__remove__FP12sthread_desc_P17s__thread_queue_tPP12sthread_desc__1(struct __thread_queue_t *__anonymous_object4, struct thread_desc **__anonymous_object5);
+void ___constructor__F_R20s__condition_stack_t__1(struct __condition_stack_t *__anonymous_object6);
+void __push__F_P20s__condition_stack_tP24s__condition_criterion_t__1(struct __condition_stack_t *__anonymous_object7, struct __condition_criterion_t *__anonymous_object8);
+struct __condition_criterion_t *__pop__FP24s__condition_criterion_t_P20s__condition_stack_t__1(struct __condition_stack_t *__anonymous_object9);
+void ___constructor__F_R9sspinlock__1(struct spinlock *__this__R9sspinlock_1);
+void ___destructor__F_R9sspinlock__1(struct spinlock *__this__R9sspinlock_1);
+struct coStack_t {
+    unsigned int size;
+    void *storage;
+    void *limit;
+    void *base;
+    void *context;
+    void *top;
+    _Bool userStack;
+};
+static inline void ___constructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1);
+static inline void ___constructor__F_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1);
+static inline void ___destructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1);
+static inline struct coStack_t ___operator_assign__F10scoStack_t_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1);
+static inline void ___constructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1){
+    ((void)((*___dst__R10scoStack_t_1).size) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1){
+    ((void)((*___dst__R10scoStack_t_1).size=___src__10scoStack_t_1.size) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=___src__10scoStack_t_1.storage) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=___src__10scoStack_t_1.limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=___src__10scoStack_t_1.base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=___src__10scoStack_t_1.context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top=___src__10scoStack_t_1.top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack=___src__10scoStack_t_1.userStack) /* ?{} */);
+}
+static inline void ___destructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1){
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).size) /* ^?{} */);
+}
+static inline struct coStack_t ___operator_assign__F10scoStack_t_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1){
+    struct coStack_t ___ret__10scoStack_t_1;
+    ((void)((*___dst__R10scoStack_t_1).size=___src__10scoStack_t_1.size));
+    ((void)((*___dst__R10scoStack_t_1).storage=___src__10scoStack_t_1.storage));
+    ((void)((*___dst__R10scoStack_t_1).limit=___src__10scoStack_t_1.limit));
+    ((void)((*___dst__R10scoStack_t_1).base=___src__10scoStack_t_1.base));
+    ((void)((*___dst__R10scoStack_t_1).context=___src__10scoStack_t_1.context));
+    ((void)((*___dst__R10scoStack_t_1).top=___src__10scoStack_t_1.top));
+    ((void)((*___dst__R10scoStack_t_1).userStack=___src__10scoStack_t_1.userStack));
+    ((void)___constructor__F_R10scoStack_t10scoStack_t_autogen___1((&___ret__10scoStack_t_1), ___src__10scoStack_t_1));
+    return ((struct coStack_t )___ret__10scoStack_t_1);
+}
+static inline void ___constructor__F_R10scoStack_tUi_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1, void *__top__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top=__top__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPvPvPvb_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1, void *__top__Pv_1, _Bool __userStack__b_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top=__top__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack=__userStack__b_1) /* ?{} */);
+}
+enum coroutine_state {
+    Halted,
+    Start,
+    Inactive,
+    Active,
+    Primed,
+};
+struct coroutine_desc {
+    struct coStack_t stack;
+    const char *name;
+    signed int errno_;
+    enum coroutine_state state;
+    struct coroutine_desc *starter;
+    struct coroutine_desc *last;
+};
+struct __waitfor_mask_t {
+    signed short int *accepted;
+    struct __acceptable_t *clauses;
+    signed short int size;
+};
+static inline void ___constructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1);
+static inline void ___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1);
+static inline void ___destructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1);
+static inline struct __waitfor_mask_t ___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1);
+static inline void ___constructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=___src__17s__waitfor_mask_t_1.accepted) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=___src__17s__waitfor_mask_t_1.clauses) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size=___src__17s__waitfor_mask_t_1.size) /* ?{} */);
+}
+static inline void ___destructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ^?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ^?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted) /* ^?{} */);
+}
+static inline struct __waitfor_mask_t ___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1){
+    struct __waitfor_mask_t ___ret__17s__waitfor_mask_t_1;
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=___src__17s__waitfor_mask_t_1.accepted));
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=___src__17s__waitfor_mask_t_1.clauses));
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size=___src__17s__waitfor_mask_t_1.size));
+    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&___ret__17s__waitfor_mask_t_1), ___src__17s__waitfor_mask_t_1));
+    return ((struct __waitfor_mask_t )___ret__17s__waitfor_mask_t_1);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_tPs_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_tPsP15s__acceptable_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1, struct __acceptable_t *__clauses__P15s__acceptable_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=__clauses__P15s__acceptable_t_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_tPsP15s__acceptable_ts_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1, struct __acceptable_t *__clauses__P15s__acceptable_t_1, signed short int __size__s_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=__clauses__P15s__acceptable_t_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size=__size__s_1) /* ?{} */);
+}
+struct monitor_desc {
+    struct spinlock lock;
+    struct thread_desc *owner;
+    struct __thread_queue_t entry_queue;
+    struct __condition_stack_t signal_stack;
+    unsigned int recursion;
+    struct __waitfor_mask_t mask;
+};
+static inline void ___constructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1);
+static inline void ___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1);
+static inline void ___destructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1);
+static inline struct monitor_desc ___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1);
+static inline void ___constructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1){
+    ((void)___constructor__F_R9sspinlock__1((&(*___dst__R13smonitor_desc_1).lock)));
+    ((void)((*___dst__R13smonitor_desc_1).owner) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), ___src__13smonitor_desc_1.lock));
+    ((void)((*___dst__R13smonitor_desc_1).owner=___src__13smonitor_desc_1.owner) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), ___src__13smonitor_desc_1.entry_queue));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), ___src__13smonitor_desc_1.signal_stack));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=___src__13smonitor_desc_1.recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), ___src__13smonitor_desc_1.mask));
+}
+static inline void ___destructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1){
+    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ^?{} */);
+    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)((*___dst__R13smonitor_desc_1).owner) /* ^?{} */);
+    ((void)___destructor__F_R9sspinlock__1((&(*___dst__R13smonitor_desc_1).lock)));
+}
+static inline struct monitor_desc ___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1){
+    struct monitor_desc ___ret__13smonitor_desc_1;
+    struct spinlock _tmp_cp0;
+    struct spinlock _tmp_cp_ret0;
+    ((void)(((void)(_tmp_cp_ret0=___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), (((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&_tmp_cp0), ___src__13smonitor_desc_1.lock)) , _tmp_cp0)))) , _tmp_cp_ret0));
+    ((void)___destructor__F_R9sspinlock__1((&_tmp_cp_ret0)));
+    ((void)___destructor__F_R9sspinlock__1((&_tmp_cp0)));
+    ((void)((*___dst__R13smonitor_desc_1).owner=___src__13smonitor_desc_1.owner));
+    struct __thread_queue_t _tmp_cp1;
+    struct __thread_queue_t _tmp_cp_ret1;
+    ((void)(((void)(_tmp_cp_ret1=___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), (((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&_tmp_cp1), ___src__13smonitor_desc_1.entry_queue)) , _tmp_cp1)))) , _tmp_cp_ret1));
+    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&_tmp_cp_ret1)));
+    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&_tmp_cp1)));
+    struct __condition_stack_t _tmp_cp2;
+    struct __condition_stack_t _tmp_cp_ret2;
+    ((void)(((void)(_tmp_cp_ret2=___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), (((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&_tmp_cp2), ___src__13smonitor_desc_1.signal_stack)) , _tmp_cp2)))) , _tmp_cp_ret2));
+    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&_tmp_cp_ret2)));
+    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&_tmp_cp2)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=___src__13smonitor_desc_1.recursion));
+    struct __waitfor_mask_t _tmp_cp3;
+    struct __waitfor_mask_t _tmp_cp_ret3;
+    ((void)(((void)(_tmp_cp_ret3=___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), (((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&_tmp_cp3), ___src__13smonitor_desc_1.mask)) , _tmp_cp3)))) , _tmp_cp_ret3));
+    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&_tmp_cp_ret3)));
+    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&_tmp_cp3)));
+    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&___ret__13smonitor_desc_1), ___src__13smonitor_desc_1));
+    return ((struct monitor_desc )___ret__13smonitor_desc_1);
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlock_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_tUi_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1, unsigned int __recursion__Ui_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=__recursion__Ui_1) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_tUi17s__waitfor_mask_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1, unsigned int __recursion__Ui_1, struct __waitfor_mask_t __mask__17s__waitfor_mask_t_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=__recursion__Ui_1) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), __mask__17s__waitfor_mask_t_1));
+}
+struct __monitor_group_t {
+    struct monitor_desc **list;
+    signed short int size;
+    void (*func)();
+};
+static inline void ___constructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1);
+static inline void ___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1);
+static inline void ___destructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1);
+static inline struct __monitor_group_t ___operator_assign__F18s__monitor_group_t_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1);
+static inline void ___constructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
+}
+static inline void ___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=___src__18s__monitor_group_t_1.list) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size=___src__18s__monitor_group_t_1.size) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func=___src__18s__monitor_group_t_1.func) /* ?{} */);
+}
+static inline void ___destructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ^?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ^?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).list) /* ^?{} */);
+}
+static inline struct __monitor_group_t ___operator_assign__F18s__monitor_group_t_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1){
+    struct __monitor_group_t ___ret__18s__monitor_group_t_1;
+    ((void)((*___dst__R18s__monitor_group_t_1).list=___src__18s__monitor_group_t_1.list));
+    ((void)((*___dst__R18s__monitor_group_t_1).size=___src__18s__monitor_group_t_1.size));
+    ((void)((*___dst__R18s__monitor_group_t_1).func=___src__18s__monitor_group_t_1.func));
+    ((void)___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1((&___ret__18s__monitor_group_t_1), ___src__18s__monitor_group_t_1));
+    return ((struct __monitor_group_t )___ret__18s__monitor_group_t_1);
+}
+static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_desc_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
+}
+static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_descs_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1, signed short int __size__s_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size=__size__s_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
+}
+static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_descsPF___autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1, signed short int __size__s_1, void (*__func__PF___1)()){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size=__size__s_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func=__func__PF___1) /* ?{} */);
+}
+struct thread_desc {
+    struct coroutine_desc self_cor;
+    struct monitor_desc self_mon;
+    struct monitor_desc *self_mon_p;
+    struct __monitor_group_t monitors;
+    struct thread_desc *next;
+};
+static inline struct monitor_desc *___operator_index__FP13smonitor_desc_RC18s__monitor_group_ti__1(const struct __monitor_group_t *__this__RC18s__monitor_group_t_1, signed int __index__i_1){
+    __attribute__ ((unused)) struct monitor_desc *___retval__operator_index__P13smonitor_desc_1;
+    ((void)(___retval__operator_index__P13smonitor_desc_1=(*__this__RC18s__monitor_group_t_1).list[__index__i_1]) /* ?{} */);
+    return ((struct monitor_desc *)___retval__operator_index__P13smonitor_desc_1);
+}
+static inline _Bool ___operator_equal__Fb_RC18s__monitor_group_tRC18s__monitor_group_t__1(const struct __monitor_group_t *__lhs__RC18s__monitor_group_t_1, const struct __monitor_group_t *__rhs__RC18s__monitor_group_t_1){
+    __attribute__ ((unused)) _Bool ___retval__operator_equal__b_1;
+    if ( ((signed int )((((*__lhs__RC18s__monitor_group_t_1).list!=((struct monitor_desc **)0))!=((*__rhs__RC18s__monitor_group_t_1).list!=((struct monitor_desc **)0)))!=((signed int )0))) ) {
+        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+        return ((_Bool )___retval__operator_equal__b_1);
+    }
+
+    if ( ((signed int )(((*__lhs__RC18s__monitor_group_t_1).size!=(*__rhs__RC18s__monitor_group_t_1).size)!=((signed int )0))) ) {
+        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+        return ((_Bool )___retval__operator_equal__b_1);
+    }
+
+    if ( ((signed int )(((*__lhs__RC18s__monitor_group_t_1).func!=(*__rhs__RC18s__monitor_group_t_1).func)!=((signed int )0))) ) {
+        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+        return ((_Bool )___retval__operator_equal__b_1);
+    }
+
+    {
+        signed int __i__i_3 = ((signed int )0);
+        for (;((signed int )((__i__i_3<((signed int )(*__lhs__RC18s__monitor_group_t_1).size))!=((signed int )0)));((void)__i__i_3++)) {
+            struct monitor_desc *_tmp_cp_ret4;
+            struct monitor_desc *_tmp_cp_ret5;
+            if ( ((signed int )(((((void)(_tmp_cp_ret4=___operator_index__FP13smonitor_desc_RC18s__monitor_group_ti__1(__lhs__RC18s__monitor_group_t_1, __i__i_3))) , _tmp_cp_ret4)!=(((void)(_tmp_cp_ret5=___operator_index__FP13smonitor_desc_RC18s__monitor_group_ti__1(__rhs__RC18s__monitor_group_t_1, __i__i_3))) , _tmp_cp_ret5))!=((signed int )0))) ) {
+                ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+                return ((_Bool )___retval__operator_equal__b_1);
+            }
+
+            ((void)(_tmp_cp_ret4) /* ^?{} */);
+            ((void)(_tmp_cp_ret5) /* ^?{} */);
+        }
+
+    }
+
+    ((void)(___retval__operator_equal__b_1=((_Bool )1)) /* ?{} */);
+    return ((_Bool )___retval__operator_equal__b_1);
+}
+static inline void *__malloc__A0_1_0_0__FPd0___1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT){
+    __attribute__ ((unused)) void *___retval_malloc__P2tT_1;
+    void *_tmp_cp_ret6;
+    ((void)(___retval_malloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret6=malloc(((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret6)))) /* ?{} */);
+    ((void)(_tmp_cp_ret6) /* ^?{} */);
+    return ((void *)___retval_malloc__P2tT_1);
+}
+void *calloc(unsigned int dim, unsigned int size);
+static inline void *__calloc__A0_1_0_0__FPd0_Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __dim__Ui_1){
+    __attribute__ ((unused)) void *___retval_calloc__P2tT_1;
+    void *_tmp_cp_ret7;
+    ((void)(___retval_calloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret7=calloc(__dim__Ui_1, ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret7)))) /* ?{} */);
+    ((void)(_tmp_cp_ret7) /* ^?{} */);
+    return ((void *)___retval_calloc__P2tT_1);
+}
+void *realloc(void *ptr, unsigned int size);
+static inline void *__realloc__A0_1_0_0__FPd0_Pd0Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned int __size__Ui_1){
+    __attribute__ ((unused)) void *___retval_realloc__P2tT_1;
+    void *_tmp_cp_ret8;
+    ((void)(___retval_realloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret8=realloc(((void *)__ptr__P2tT_1), __size__Ui_1))) , _tmp_cp_ret8)))) /* ?{} */);
+    ((void)(_tmp_cp_ret8) /* ^?{} */);
+    return ((void *)___retval_realloc__P2tT_1);
+}
+void *memalign(unsigned int align, unsigned int size);
+static inline void *__memalign__A0_1_0_0__FPd0_Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __align__Ui_1){
+    __attribute__ ((unused)) void *___retval_memalign__P2tT_1;
+    void *_tmp_cp_ret9;
+    ((void)(___retval_memalign__P2tT_1=((void *)(((void)(_tmp_cp_ret9=memalign(__align__Ui_1, ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret9))) /* ?{} */);
+    ((void)(_tmp_cp_ret9) /* ^?{} */);
+    return ((void *)___retval_memalign__P2tT_1);
+}
+static inline void *__aligned_alloc__A0_1_0_0__FPd0_Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __align__Ui_1){
+    __attribute__ ((unused)) void *___retval_aligned_alloc__P2tT_1;
+    void *_tmp_cp_ret10;
+    ((void)(___retval_aligned_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret10=memalign(__align__Ui_1, ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret10))) /* ?{} */);
+    ((void)(_tmp_cp_ret10) /* ^?{} */);
+    return ((void *)___retval_aligned_alloc__P2tT_1);
+}
+signed int posix_memalign(void **ptr, unsigned int align, unsigned int size);
+static inline signed int __posix_memalign__A0_1_0_0__Fi_PPd0Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void **__ptr__PP2tT_1, unsigned int __align__Ui_1){
+    __attribute__ ((unused)) signed int ___retval_posix_memalign__i_1;
+    signed int _tmp_cp_ret11;
+    ((void)(___retval_posix_memalign__i_1=(((void)(_tmp_cp_ret11=posix_memalign(((void **)__ptr__PP2tT_1), __align__Ui_1, ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret11)) /* ?{} */);
+    ((void)(_tmp_cp_ret11) /* ^?{} */);
+    return ((signed int )___retval_posix_memalign__i_1);
+}
+void *memset(void *dest, signed int c, unsigned int size);
+static inline void *__alloc__A0_1_0_0__FPd0___1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret12;
+    ((void)(___retval_alloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret12=malloc(((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret12)))) /* ?{} */);
+    ((void)(_tmp_cp_ret12) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_c__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret13;
+    void *__ptr__P2tT_2 = ((void *)((void *)((void *)(((void)(_tmp_cp_ret13=malloc(((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret13))));
+    ((void)(_tmp_cp_ret13) /* ^?{} */);
+    void *_tmp_cp_ret14;
+    ((void)(___retval_alloc__P2tT_1=(((void)(_tmp_cp_ret14=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret14)) /* ?{} */);
+    ((void)(_tmp_cp_ret14) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __dim__Ui_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret15;
+    ((void)(___retval_alloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret15=malloc((__dim__Ui_1*((unsigned int )_sizeof_2tT))))) , _tmp_cp_ret15)))) /* ?{} */);
+    ((void)(_tmp_cp_ret15) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_Uic__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __dim__Ui_1, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret16;
+    void *__ptr__P2tT_2 = ((void *)((void *)((void *)(((void)(_tmp_cp_ret16=malloc((__dim__Ui_1*((unsigned int )_sizeof_2tT))))) , _tmp_cp_ret16))));
+    ((void)(_tmp_cp_ret16) /* ^?{} */);
+    void *_tmp_cp_ret17;
+    ((void)(___retval_alloc__P2tT_1=(((void)(_tmp_cp_ret17=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), ((unsigned int )(((unsigned long int )__dim__Ui_1)*_sizeof_2tT))))) , _tmp_cp_ret17)) /* ?{} */);
+    ((void)(_tmp_cp_ret17) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_Pd0Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned int __dim__Ui_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret18;
+    ((void)(___retval_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret18=realloc(((void *)__ptr__P2tT_1), (__dim__Ui_1*((unsigned int )_sizeof_2tT))))) , _tmp_cp_ret18))) /* ?{} */);
+    ((void)(_tmp_cp_ret18) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+void *__alloc__A0_1_0_0__FPd0_Pd0Uic__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned int __dim__Ui_1, char __fill__c_1);
+static inline void *__align_alloc__A0_1_0_0__FPd0_Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __align__Ui_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret19;
+    ((void)(___retval_align_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret19=memalign(__align__Ui_1, ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret19))) /* ?{} */);
+    ((void)(_tmp_cp_ret19) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__align_alloc__A0_1_0_0__FPd0_Uic__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __align__Ui_1, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret20;
+    void *__ptr__P2tT_2 = ((void *)((void *)(((void)(_tmp_cp_ret20=memalign(__align__Ui_1, ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret20)));
+    ((void)(_tmp_cp_ret20) /* ^?{} */);
+    void *_tmp_cp_ret21;
+    ((void)(___retval_align_alloc__P2tT_1=(((void)(_tmp_cp_ret21=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret21)) /* ?{} */);
+    ((void)(_tmp_cp_ret21) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__align_alloc__A0_1_0_0__FPd0_UiUi__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __align__Ui_1, unsigned int __dim__Ui_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret22;
+    ((void)(___retval_align_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret22=memalign(__align__Ui_1, ((unsigned int )(((unsigned long int )__dim__Ui_1)*_sizeof_2tT))))) , _tmp_cp_ret22))) /* ?{} */);
+    ((void)(_tmp_cp_ret22) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__align_alloc__A0_1_0_0__FPd0_UiUic__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned int __align__Ui_1, unsigned int __dim__Ui_1, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret23;
+    void *__ptr__P2tT_2 = ((void *)((void *)(((void)(_tmp_cp_ret23=memalign(__align__Ui_1, ((unsigned int )(((unsigned long int )__dim__Ui_1)*_sizeof_2tT))))) , _tmp_cp_ret23)));
+    ((void)(_tmp_cp_ret23) /* ^?{} */);
+    void *_tmp_cp_ret24;
+    ((void)(___retval_align_alloc__P2tT_1=(((void)(_tmp_cp_ret24=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), ((unsigned int )(((unsigned long int )__dim__Ui_1)*_sizeof_2tT))))) , _tmp_cp_ret24)) /* ?{} */);
+    ((void)(_tmp_cp_ret24) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__memset__A0_1_0_0__FPd0_Pd0c__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, char __c__c_1){
+    __attribute__ ((unused)) void *___retval_memset__P2tT_1;
+    void *_tmp_cp_ret25;
+    ((void)(___retval_memset__P2tT_1=(((void)(_tmp_cp_ret25=memset(((void *)__dest__P2tT_1), ((signed int )__c__c_1), ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret25)) /* ?{} */);
+    ((void)(_tmp_cp_ret25) /* ^?{} */);
+    return ((void *)___retval_memset__P2tT_1);
+}
+void *memcpy(void *dest, const void *src, unsigned int size);
+static inline void *__memcpy__A0_1_0_0__FPd0_Pd0PCd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, const void *__src__PC2tT_1){
+    __attribute__ ((unused)) void *___retval_memcpy__P2tT_1;
+    void *_tmp_cp_ret26;
+    ((void)(___retval_memcpy__P2tT_1=(((void)(_tmp_cp_ret26=memcpy(((void *)__dest__P2tT_1), ((const void *)__src__PC2tT_1), ((unsigned int )_sizeof_2tT)))) , _tmp_cp_ret26)) /* ?{} */);
+    ((void)(_tmp_cp_ret26) /* ^?{} */);
+    return ((void *)___retval_memcpy__P2tT_1);
+}
+static inline void *__memset__A0_1_0_0__FPd0_Pd0Uic__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, unsigned int __dim__Ui_1, char __c__c_1){
+    __attribute__ ((unused)) void *___retval_memset__P2tT_1;
+    void *_tmp_cp_ret27;
+    ((void)(___retval_memset__P2tT_1=((void *)(((void)(_tmp_cp_ret27=memset(((void *)__dest__P2tT_1), ((signed int )__c__c_1), ((unsigned int )(((unsigned long int )__dim__Ui_1)*_sizeof_2tT))))) , _tmp_cp_ret27))) /* ?{} */);
+    ((void)(_tmp_cp_ret27) /* ^?{} */);
+    return ((void *)___retval_memset__P2tT_1);
+}
+static inline void *__memcpy__A0_1_0_0__FPd0_Pd0PCd0Ui__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, const void *__src__PC2tT_1, unsigned int __dim__Ui_1){
+    __attribute__ ((unused)) void *___retval_memcpy__P2tT_1;
+    void *_tmp_cp_ret28;
+    ((void)(___retval_memcpy__P2tT_1=((void *)(((void)(_tmp_cp_ret28=memcpy(((void *)__dest__P2tT_1), ((const void *)__src__PC2tT_1), ((unsigned int )(((unsigned long int )__dim__Ui_1)*_sizeof_2tT))))) , _tmp_cp_ret28))) /* ?{} */);
+    ((void)(_tmp_cp_ret28) /* ^?{} */);
+    return ((void *)___retval_memcpy__P2tT_1);
+}
+void *__new__A0_1_0_1____constructor__PF_Rd0tVARGS1__FPd0_tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_P2tT7tParams__MP)(void (*__anonymous_object10)(), void *__anonymous_object11, void *__anonymous_object12), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___constructor__PF_R2tT7tParams__1)(void *__anonymous_object13, void *__anonymous_object14), void *__p__7tParams_1);
+void __delete__A0_1_0_0____destructor__PF_Rd0__F_Pd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object15), void *__ptr__P2tT_1);
+void __delete__A0_1_0_1____destructor__PF_Rd0___delete__PF_tVARGS1__F_Pd0tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_7tParams__P)(void (*__anonymous_object16)(), void *__anonymous_object17), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object18), __attribute__ ((unused)) void (*__delete__PF_7tParams__1)(void *__anonymous_object19), void *__ptr__P2tT_1, void *__rest__7tParams_1);
+void *__anew__A0_1_0_1____constructor__PF_Rd0tVARGS1__FPd0_UitVARGS1__1(__attribute__ ((unused)) void (*_adapterF_P2tT7tParams__MP)(void (*__anonymous_object20)(), void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___constructor__PF_R2tT7tParams__1)(void *__anonymous_object23, void *__anonymous_object24), unsigned int __dim__Ui_1, void *__p__7tParams_1);
+void __adelete__A0_1_0_0____destructor__PF_Rd0__F_UiPd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object25), unsigned int __dim__Ui_1, void *__arr__P2tT_1);
+void __adelete__A0_1_0_1____destructor__PF_Rd0___adelete__PF_tVARGS1__F_UiPd0tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_7tParams__P)(void (*__anonymous_object26)(), void *__anonymous_object27), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object28), __attribute__ ((unused)) void (*__adelete__PF_7tParams__1)(void *__anonymous_object29), unsigned int __dim__Ui_1, void *__arr__P2tT_1, void *__rest__7tParams_1);
+signed int __ato__Fi_PCc__1(const char *__ptr__PCc_1);
+unsigned int __ato__FUi_PCc__1(const char *__ptr__PCc_1);
+signed long int __ato__Fl_PCc__1(const char *__ptr__PCc_1);
+unsigned long int __ato__FUl_PCc__1(const char *__ptr__PCc_1);
+signed long long int __ato__Fq_PCc__1(const char *__ptr__PCc_1);
+unsigned long long int __ato__FUq_PCc__1(const char *__ptr__PCc_1);
+float __ato__Ff_PCc__1(const char *__ptr__PCc_1);
+double __ato__Fd_PCc__1(const char *__ptr__PCc_1);
+long double __ato__Fr_PCc__1(const char *__ptr__PCc_1);
+float _Complex __ato__FXf_PCc__1(const char *__ptr__PCc_1);
+double _Complex __ato__FXd_PCc__1(const char *__ptr__PCc_1);
+long double _Complex __ato__FXr_PCc__1(const char *__ptr__PCc_1);
+signed int __strto__Fi_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+unsigned int __strto__FUi_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+signed long int __strto__Fl_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+unsigned long int __strto__FUl_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+signed long long int __strto__Fq_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+unsigned long long int __strto__FUq_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+float __strto__Ff_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+double __strto__Fd_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+long double __strto__Fr_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+float _Complex __strto__FXf_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+double _Complex __strto__FXd_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+long double _Complex __strto__FXr_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+void *__bsearch__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__FPt0_t0PCt0Ui__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object30)(), void *__anonymous_object31, void *__anonymous_object32), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object33)(), void *__anonymous_object34, void *__anonymous_object35), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object36)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object39, void *__anonymous_object40), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object41), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object42, void *__anonymous_object43), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object44), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object45, void *__anonymous_object46), void *__key__2tT_1, const void *__arr__PC2tT_1, unsigned int __dim__Ui_1);
+unsigned int __bsearch__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__FUi_t0PCt0Ui__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object47)(), void *__anonymous_object48, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object56, void *__anonymous_object57), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object58), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object59, void *__anonymous_object60), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object61), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object62, void *__anonymous_object63), void *__key__2tT_1, const void *__arr__PC2tT_1, unsigned int __dim__Ui_1);
+void __qsort__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__F_PCt0Ui__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object64)(), void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object67)(), void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object70)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object73, void *__anonymous_object74), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object75), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object78), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object79, void *__anonymous_object80), const void *__arr__PC2tT_1, unsigned int __dim__Ui_1);
+struct _tuple2_ {
+};
+static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_16ttuple_param_2_0, unsigned long int _alignof_16ttuple_param_2_0, unsigned long int _sizeof_16ttuple_param_2_1, unsigned long int _alignof_16ttuple_param_2_1){
+    ((void)((*_sizeof__tuple2_)=0));
+    ((void)((*_alignof__tuple2_)=1));
+    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_0));
+    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_0));
+
+    if ( ((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_16ttuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)))));
+
+    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_1));
+    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_1));
+
+    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
+
+}
+struct _conc__tuple2_0 {
+    signed int field_0;
+    signed int field_1;
+};
+struct _conc__tuple2_0 __div__FTii__ii__1(signed int __num__i_1, signed int __denom__i_1);
+struct _conc__tuple2_1 {
+    signed long int field_0;
+    signed long int field_1;
+};
+struct _conc__tuple2_1 __div__FTll__ll__1(signed long int __num__l_1, signed long int __denom__l_1);
+struct _conc__tuple2_2 {
+    signed long long int field_0;
+    signed long long int field_1;
+};
+struct _conc__tuple2_2 __div__FTqq__qq__1(signed long long int __num__q_1, signed long long int __denom__q_1);
+void __div__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_divide__PFt0_t0t0____operator_modulus__PFt0_t0t0__FTt0t0__t0t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT2tT_P_PP)(void (*__anonymous_object81)(), __attribute__ ((unused)) void *___retval__operator_divide__2tT_1, void *__anonymous_object82, void *__anonymous_object83), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object84)(), void *__anonymous_object85, void *__anonymous_object86), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object87)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object88, void *__anonymous_object89), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object90, void *__anonymous_object91), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object92), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object93, void *__anonymous_object94), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object95), __attribute__ ((unused)) void *(*___operator_divide__PF2tT_2tT2tT__1)(void *__anonymous_object96, void *__anonymous_object97), __attribute__ ((unused)) void *(*___operator_modulus__PF2tT_2tT2tT__1)(void *__anonymous_object98, void *__anonymous_object99), __attribute__ ((unused)) void *___retval_div__T2tT2tT__1, void *__num__2tT_1, void *__demon__2tT_1);
+unsigned char __abs__FUc_Sc__1(signed char __anonymous_object100);
+signed int abs(signed int __anonymous_object101);
+unsigned long int __abs__FUl_l__1(signed long int __anonymous_object102);
+unsigned long long int __abs__FUq_q__1(signed long long int __anonymous_object103);
+float __abs__Ff_f__1(float __anonymous_object104);
+double __abs__Fd_d__1(double __anonymous_object105);
+long double __abs__Fr_r__1(long double __anonymous_object106);
+float __abs__Ff_Xf__1(float _Complex __anonymous_object107);
+double __abs__Fd_Xd__1(double _Complex __anonymous_object108);
+long double __abs__Fr_Xr__1(long double _Complex __anonymous_object109);
+void __abs__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____constructor__PF_Rt0Z____operator_less__PFi_t0t0____operator_unaryminus__PFt0_t0__Ft0_t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT_P_P)(void (*__anonymous_object110)(), __attribute__ ((unused)) void *___retval__operator_unaryminus__2tT_1, void *__anonymous_object111), __attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object112)(), void *__anonymous_object113, void *__anonymous_object114), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object115)(), void *__anonymous_object116, void *__anonymous_object117), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object118)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object119, void *__anonymous_object120), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object121, void *__anonymous_object122), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object123), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object124, void *__anonymous_object125), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object126), __attribute__ ((unused)) void (*___constructor__PF_R2tTZ__1)(void *__anonymous_object127, long int __anonymous_object128), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object129, void *__anonymous_object130), __attribute__ ((unused)) void *(*___operator_unaryminus__PF2tT_2tT__1)(void *__anonymous_object131), __attribute__ ((unused)) void *___retval_abs__2tT_1, void *__anonymous_object132);
+void __rand48seed__F_l__1(signed long int __s__l_1);
+char __rand48__Fc___1(void);
+signed int __rand48__Fi___1(void);
+unsigned int __rand48__FUi___1(void);
+signed long int __rand48__Fl___1(void);
+unsigned long int __rand48__FUl___1(void);
+float __rand48__Ff___1(void);
+double __rand48__Fd___1(void);
+float _Complex __rand48__FXf___1(void);
+double _Complex __rand48__FXd___1(void);
+long double _Complex __rand48__FXr___1(void);
+void __min__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__Ft0_t0t0__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object133)(), void *__anonymous_object134, void *__anonymous_object135), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object136)(), void *__anonymous_object137, void *__anonymous_object138), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object139)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object140, void *__anonymous_object141), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object142, void *__anonymous_object143), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object144), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object145, void *__anonymous_object146), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object147), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object148, void *__anonymous_object149), __attribute__ ((unused)) void *___retval_min__2tT_1, void *__t1__2tT_1, void *__t2__2tT_1);
+void __max__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_greater__PFi_t0t0__Ft0_t0t0__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object150)(), void *__anonymous_object151, void *__anonymous_object152), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object153)(), void *__anonymous_object154, void *__anonymous_object155), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object156)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object157, void *__anonymous_object158), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object159, void *__anonymous_object160), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object161), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object162, void *__anonymous_object163), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object164), __attribute__ ((unused)) signed int (*___operator_greater__PFi_2tT2tT__1)(void *__anonymous_object165, void *__anonymous_object166), __attribute__ ((unused)) void *___retval_max__2tT_1, void *__t1__2tT_1, void *__t2__2tT_1);
+void __clamp__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0___min__PFt0_t0t0___max__PFt0_t0t0__Ft0_t0t0t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT2tT_P_PP)(void (*__anonymous_object167)(), __attribute__ ((unused)) void *___retval_min__2tT_1, void *__anonymous_object168, void *__anonymous_object169), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object170)(), void *__anonymous_object171, void *__anonymous_object172), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object173)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object174, void *__anonymous_object175), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object176, void *__anonymous_object177), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object178), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object179, void *__anonymous_object180), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object181), __attribute__ ((unused)) void *(*__min__PF2tT_2tT2tT__1)(void *__anonymous_object182, void *__anonymous_object183), __attribute__ ((unused)) void *(*__max__PF2tT_2tT2tT__1)(void *__anonymous_object184, void *__anonymous_object185), __attribute__ ((unused)) void *___retval_clamp__2tT_1, void *__value__2tT_1, void *__min_val__2tT_1, void *__max_val__2tT_1);
+void __swap__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0__F_Rt0Rt0__1(__attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object186)(), void *__anonymous_object187, void *__anonymous_object188), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object189)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object190, void *__anonymous_object191), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object192, void *__anonymous_object193), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object194), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object195, void *__anonymous_object196), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object197), void *__t1__R2tT_1, void *__t2__R2tT_1);
+static inline void ___constructor__F_R13smonitor_desc__1(struct monitor_desc *__this__R13smonitor_desc_1){
+    ((void)((*__this__R13smonitor_desc_1).owner) /* ?{} */);
+    ((void)((*__this__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*__this__R13smonitor_desc_1).mask)));
+    struct spinlock *_tmp_ctor_expr0;
+    ((void)(((void)(_tmp_ctor_expr0=(&(*__this__R13smonitor_desc_1).lock))) , (((void)___constructor__F_R9sspinlock__1(_tmp_ctor_expr0)) , _tmp_ctor_expr0)));
+    ((void)((*__this__R13smonitor_desc_1).owner=((void *)0)));
+    struct __thread_queue_t *_tmp_ctor_expr1;
+    ((void)(((void)(_tmp_ctor_expr1=(&(*__this__R13smonitor_desc_1).entry_queue))) , (((void)___constructor__F_R17s__thread_queue_t__1(_tmp_ctor_expr1)) , _tmp_ctor_expr1)));
+    struct __condition_stack_t *_tmp_ctor_expr2;
+    ((void)(((void)(_tmp_ctor_expr2=(&(*__this__R13smonitor_desc_1).signal_stack))) , (((void)___constructor__F_R20s__condition_stack_t__1(_tmp_ctor_expr2)) , _tmp_ctor_expr2)));
+    ((void)((*__this__R13smonitor_desc_1).recursion=((unsigned int )0)));
+    ((void)((*__this__R13smonitor_desc_1).mask.accepted=((void *)0)));
+    ((void)((*__this__R13smonitor_desc_1).mask.clauses=((void *)0)));
+    ((void)((*__this__R13smonitor_desc_1).mask.size=((signed short int )0)));
+}
+struct monitor_guard_t {
+    struct monitor_desc **__m__PP13smonitor_desc_1;
+    signed int __count__i_1;
+    struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1;
+    unsigned short int __prev_count__Us_1;
+    void (*__prev_func__PF___1)();
+};
+static inline void ___constructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1);
+static inline void ___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1);
+static inline void ___destructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1);
+static inline struct monitor_guard_t ___operator_assign__F16smonitor_guard_t_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1);
+static inline void ___constructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=___src__16smonitor_guard_t_1.__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=___src__16smonitor_guard_t_1.__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=___src__16smonitor_guard_t_1.__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___destructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1) /* ^?{} */);
+}
+static inline struct monitor_guard_t ___operator_assign__F16smonitor_guard_t_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1){
+    struct monitor_guard_t ___ret__16smonitor_guard_t_1;
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__m__PP13smonitor_desc_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=___src__16smonitor_guard_t_1.__count__i_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__prev_mntrs__PP13smonitor_desc_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=___src__16smonitor_guard_t_1.__prev_count__Us_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=___src__16smonitor_guard_t_1.__prev_func__PF___1));
+    ((void)___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1((&___ret__16smonitor_guard_t_1), ___src__16smonitor_guard_t_1));
+    return ((struct monitor_guard_t )___ret__16smonitor_guard_t_1);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desc_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desci_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_desc_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_descUs_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1, unsigned short int __prev_count__Us_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_descUsPF___autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1, unsigned short int __prev_count__Us_1, void (*__prev_func__PF___1)()){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=__prev_func__PF___1) /* ?{} */);
+}
+static inline signed int ___operator_less__Fi_P13smonitor_descP13smonitor_desc__1(struct monitor_desc *__lhs__P13smonitor_desc_1, struct monitor_desc *__rhs__P13smonitor_desc_1){
+    __attribute__ ((unused)) signed int ___retval__operator_less__i_1;
+    ((void)(___retval__operator_less__i_1=(((signed int )__lhs__P13smonitor_desc_1)<((signed int )__rhs__P13smonitor_desc_1))) /* ?{} */);
+    return ((signed int )___retval__operator_less__i_1);
+}
+void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPF____1(struct monitor_guard_t *__this__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, void (*__func__PF___1)());
+void ___destructor__F_R16smonitor_guard_t__1(struct monitor_guard_t *__this__R16smonitor_guard_t_1);
+struct __condition_criterion_t {
+    _Bool __ready__b_1;
+    struct monitor_desc *__target__P13smonitor_desc_1;
+    struct __condition_node_t *__owner__P19s__condition_node_t_1;
+    struct __condition_criterion_t *__next__P24s__condition_criterion_t_1;
+};
+static inline void ___constructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1);
+static inline void ___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1);
+static inline void ___destructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1);
+static inline struct __condition_criterion_t ___operator_assign__F24s__condition_criterion_t_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1);
+static inline void ___constructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=___src__24s__condition_criterion_t_1.__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=___src__24s__condition_criterion_t_1.__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=___src__24s__condition_criterion_t_1.__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=___src__24s__condition_criterion_t_1.__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___destructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ^?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ^?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ^?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1) /* ^?{} */);
+}
+static inline struct __condition_criterion_t ___operator_assign__F24s__condition_criterion_t_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1){
+    struct __condition_criterion_t ___ret__24s__condition_criterion_t_1;
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=___src__24s__condition_criterion_t_1.__ready__b_1));
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=___src__24s__condition_criterion_t_1.__target__P13smonitor_desc_1));
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=___src__24s__condition_criterion_t_1.__owner__P19s__condition_node_t_1));
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=___src__24s__condition_criterion_t_1.__next__P24s__condition_criterion_t_1));
+    ((void)___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1((&___ret__24s__condition_criterion_t_1), ___src__24s__condition_criterion_t_1));
+    return ((struct __condition_criterion_t )___ret__24s__condition_criterion_t_1);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tb_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_desc_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_descP19s__condition_node_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1, struct __condition_node_t *__owner__P19s__condition_node_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_descP19s__condition_node_tP24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1, struct __condition_node_t *__owner__P19s__condition_node_t_1, struct __condition_criterion_t *__next__P24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+struct __condition_node_t {
+    struct thread_desc *__waiting_thread__P12sthread_desc_1;
+    struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1;
+    unsigned short int __count__Us_1;
+    struct __condition_node_t *__next__P19s__condition_node_t_1;
+    unsigned int __user_info__Ui_1;
+};
+static inline void ___constructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1);
+static inline void ___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1);
+static inline void ___destructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1);
+static inline struct __condition_node_t ___operator_assign__F19s__condition_node_t_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1);
+static inline void ___constructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=___src__19s__condition_node_t_1.__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=___src__19s__condition_node_t_1.__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=___src__19s__condition_node_t_1.__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=___src__19s__condition_node_t_1.__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1=___src__19s__condition_node_t_1.__user_info__Ui_1) /* ?{} */);
+}
+static inline void ___destructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1) /* ^?{} */);
+}
+static inline struct __condition_node_t ___operator_assign__F19s__condition_node_t_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1){
+    struct __condition_node_t ___ret__19s__condition_node_t_1;
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=___src__19s__condition_node_t_1.__waiting_thread__P12sthread_desc_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=___src__19s__condition_node_t_1.__criteria__P24s__condition_criterion_t_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=___src__19s__condition_node_t_1.__count__Us_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=___src__19s__condition_node_t_1.__next__P19s__condition_node_t_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1=___src__19s__condition_node_t_1.__user_info__Ui_1));
+    ((void)___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1((&___ret__19s__condition_node_t_1), ___src__19s__condition_node_t_1));
+    return ((struct __condition_node_t )___ret__19s__condition_node_t_1);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_desc_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUs_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUsP19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1, struct __condition_node_t *__next__P19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUsP19s__condition_node_tUi_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1, struct __condition_node_t *__next__P19s__condition_node_t_1, unsigned int __user_info__Ui_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ui_1=__user_info__Ui_1) /* ?{} */);
+}
+struct __condition_blocked_queue_t {
+    struct __condition_node_t *__head__P19s__condition_node_t_1;
+    struct __condition_node_t **__tail__PP19s__condition_node_t_1;
+};
+static inline void ___constructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1);
+static inline void ___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1);
+static inline void ___destructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1);
+static inline struct __condition_blocked_queue_t ___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1);
+static inline void ___constructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+static inline void ___destructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ^?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1) /* ^?{} */);
+}
+static inline struct __condition_blocked_queue_t ___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1){
+    struct __condition_blocked_queue_t ___ret__28s__condition_blocked_queue_t_1;
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1));
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__tail__PP19s__condition_node_t_1));
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&___ret__28s__condition_blocked_queue_t_1), ___src__28s__condition_blocked_queue_t_1));
+    return ((struct __condition_blocked_queue_t )___ret__28s__condition_blocked_queue_t_1);
+}
+static inline void ___constructor__F_R28s__condition_blocked_queue_tP19s__condition_node_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_node_t *__head__P19s__condition_node_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R28s__condition_blocked_queue_tP19s__condition_node_tPP19s__condition_node_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_node_t *__head__P19s__condition_node_t_1, struct __condition_node_t **__tail__PP19s__condition_node_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+void ___constructor__F_R28s__condition_blocked_queue_t__1(struct __condition_blocked_queue_t *__anonymous_object198);
+void __append__F_P28s__condition_blocked_queue_tP19s__condition_node_t__1(struct __condition_blocked_queue_t *__anonymous_object199, struct __condition_node_t *__anonymous_object200);
+struct __condition_node_t *__pop_head__FP19s__condition_node_t_P28s__condition_blocked_queue_t__1(struct __condition_blocked_queue_t *__anonymous_object201);
+struct condition {
+    struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1;
+    struct monitor_desc **__monitors__PP13smonitor_desc_1;
+    unsigned short int __monitor_count__Us_1;
+};
+static inline void ___constructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1);
+static inline void ___constructor__F_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1);
+static inline void ___destructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1);
+static inline struct condition ___operator_assign__F10scondition_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1);
+static inline void ___constructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t__1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), ___src__10scondition_1.__blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=___src__10scondition_1.__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=___src__10scondition_1.__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___destructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1){
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ^?{} */);
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ^?{} */);
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+}
+static inline struct condition ___operator_assign__F10scondition_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1){
+    struct condition ___ret__10scondition_1;
+    struct __condition_blocked_queue_t _tmp_cp56;
+    struct __condition_blocked_queue_t _tmp_cp_ret29;
+    ((void)(((void)(_tmp_cp_ret29=___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), (((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&_tmp_cp56), ___src__10scondition_1.__blocked__28s__condition_blocked_queue_t_1)) , _tmp_cp56)))) , _tmp_cp_ret29));
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&_tmp_cp_ret29)));
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&_tmp_cp56)));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=___src__10scondition_1.__monitors__PP13smonitor_desc_1));
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=___src__10scondition_1.__monitor_count__Us_1));
+    ((void)___constructor__F_R10scondition10scondition_autogen___1((&___ret__10scondition_1), ___src__10scondition_1));
+    return ((struct condition )___ret__10scondition_1);
+}
+static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_t_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_tPP13smonitor_desc_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1, struct monitor_desc **__monitors__PP13smonitor_desc_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_tPP13smonitor_descUs_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1, struct monitor_desc **__monitors__PP13smonitor_desc_1, unsigned short int __monitor_count__Us_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition__1(struct condition *__this__R10scondition_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t__1((&(*__this__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*__this__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1=((void *)0)));
+    ((void)((*__this__R10scondition_1).__monitor_count__Us_1=((unsigned short int )0)));
+}
+static inline void ___destructor__F_R10scondition__1(struct condition *__this__R10scondition_1){
+    ((void)free(((void *)(*__this__R10scondition_1).__monitors__PP13smonitor_desc_1)));
+    ((void)((*__this__R10scondition_1).__monitor_count__Us_1) /* ^?{} */);
+    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ^?{} */);
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&(*__this__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+}
+void __wait__F_P10sconditionUi__1(struct condition *__this__P10scondition_1, unsigned int __user_info__Ui_1);
+_Bool __signal__Fb_P10scondition__1(struct condition *__this__P10scondition_1);
+_Bool __signal_block__Fb_P10scondition__1(struct condition *__this__P10scondition_1);
+static inline _Bool __is_empty__Fb_P10scondition__1(struct condition *__this__P10scondition_1){
+    __attribute__ ((unused)) _Bool ___retval_is_empty__b_1;
+    ((void)(___retval_is_empty__b_1=((_Bool )(!(*__this__P10scondition_1).__blocked__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1))) /* ?{} */);
+    return ((_Bool )___retval_is_empty__b_1);
+}
+unsigned int __front__FUi_P10scondition__1(struct condition *__this__P10scondition_1);
+struct __acceptable_t {
+    struct __monitor_group_t __anonymous_object202;
+    _Bool __is_dtor__b_1;
+};
+static inline void ___constructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1);
+static inline void ___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1);
+static inline void ___destructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1);
+static inline struct __acceptable_t ___operator_assign__F15s__acceptable_t_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1);
+static inline void ___constructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1) /* ?{} */);
+}
+static inline void ___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=___src__15s__acceptable_t_1.__is_dtor__b_1) /* ?{} */);
+}
+static inline void ___destructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1) /* ^?{} */);
+}
+static inline struct __acceptable_t ___operator_assign__F15s__acceptable_t_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1){
+    struct __acceptable_t ___ret__15s__acceptable_t_1;
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=___src__15s__acceptable_t_1.__is_dtor__b_1));
+    ((void)___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1((&___ret__15s__acceptable_t_1), ___src__15s__acceptable_t_1));
+    return ((struct __acceptable_t )___ret__15s__acceptable_t_1);
+}
+static inline void ___constructor__F_R15s__acceptable_tb_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, _Bool __is_dtor__b_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=__is_dtor__b_1) /* ?{} */);
+}
+void ____waitfor_internal__F_RC17s__waitfor_mask_ti__1(const struct __waitfor_mask_t *__mask__RC17s__waitfor_mask_t_1, signed int __duration__i_1);
+struct M;
+static inline struct monitor_desc *__get_monitor__FP13smonitor_desc_R2sM__1(struct M *__this__R2sM_1);
+struct M {
+    struct monitor_desc ____mon__13smonitor_desc_1;
+};
+static inline void ___constructor__F_R2sM_autogen___1(struct M *___dst__R2sM_1);
+static inline void ___constructor__F_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1);
+static inline void ___destructor__F_MR2sM_autogen___1(struct M *___dst__MR2sM_1);
+static inline struct M ___operator_assign__F2sM_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1);
+static inline void ___constructor__F_R2sM_autogen___1(struct M *___dst__R2sM_1){
+    ((void)___constructor__F_R13smonitor_desc__1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1)));
+}
+static inline void ___constructor__F_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1){
+    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), ___src__2sM_1.____mon__13smonitor_desc_1));
+}
+static inline void ___destructor__F_MR2sM_autogen___1(struct M *___dst__MR2sM_1){
+    struct monitor_desc *_tmp_cp_ret30;
+    struct monitor_desc *____monitors__A0P13smonitor_desc_2[((unsigned int )1)] = { ((struct monitor_desc *)(((void)(_tmp_cp_ret30=__get_monitor__FP13smonitor_desc_R2sM__1(((struct M *)___dst__MR2sM_1)))) , _tmp_cp_ret30)) };
+    ((void)(_tmp_cp_ret30) /* ^?{} */);
+    struct monitor_guard_t ____guard__16smonitor_guard_t_2;
+    ((void)___constructor__F_R16smonitor_guard_tPP13smonitor_desciPF____1((&____guard__16smonitor_guard_t_2), ____monitors__A0P13smonitor_desc_2, ((signed int )1), ((void (*)())((void (*)())___destructor__F_MR2sM_autogen___1))));
+    ((void)___destructor__F_R13smonitor_desc_autogen___1((&(*___dst__MR2sM_1).____mon__13smonitor_desc_1)));
+    ((void)___destructor__F_R16smonitor_guard_t__1((&____guard__16smonitor_guard_t_2)));
+}
+static inline struct M ___operator_assign__F2sM_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1){
+    struct M ___ret__2sM_1;
+    struct monitor_desc _tmp_cp60;
+    struct monitor_desc _tmp_cp_ret31;
+    ((void)(((void)(_tmp_cp_ret31=___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), (((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&_tmp_cp60), ___src__2sM_1.____mon__13smonitor_desc_1)) , _tmp_cp60)))) , _tmp_cp_ret31));
+    ((void)___destructor__F_R13smonitor_desc_autogen___1((&_tmp_cp_ret31)));
+    ((void)___destructor__F_R13smonitor_desc_autogen___1((&_tmp_cp60)));
+    ((void)___constructor__F_R2sM2sM_autogen___1((&___ret__2sM_1), ___src__2sM_1));
+    return ((struct M )___ret__2sM_1);
+}
+static inline void ___constructor__F_R2sM13smonitor_desc_autogen___1(struct M *___dst__R2sM_1, struct monitor_desc ____mon__13smonitor_desc_1){
+    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), ____mon__13smonitor_desc_1));
+}
+static inline struct monitor_desc *__get_monitor__FP13smonitor_desc_R2sM__1(struct M *__this__R2sM_1){
+    struct monitor_desc *__ret__P13smonitor_desc_1;
+    ((void)(__ret__P13smonitor_desc_1=(&(*__this__R2sM_1).____mon__13smonitor_desc_1)) /* ?{} */);
+    return ((struct monitor_desc *)__ret__P13smonitor_desc_1);
+}
+struct M __a__2sM_1;
+void __f1__F_MR2sM__1(struct M *__a__MR2sM_1);
+void __f2__F_MR2sM__1(struct M *__a__MR2sM_1);
+void __f2__F_MR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1);
+void __f3__F_MR2sM__1(struct M *__a__MR2sM_1);
+void __f3__F_MR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1);
+void __f3__F_MR2sMMR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1, struct M *__c__MR2sM_1);
+void __foo__F___1(){
+    {
+        struct __acceptable_t __acceptables_0[1];
+        ((void)__builtin_memset(((void *)__acceptables_0), 0, sizeof(__acceptables_0)));
+        _Bool __do_run_0 = 0;
+        struct monitor_desc *__monitors_0[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_0[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_0[((signed int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_0[((signed int )0)].__anonymous_object202.list=__monitors_0));
+            ((void)(__acceptables_0[((signed int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_0=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_0 = -1;
+        if ( __do_run_0 ) {
+            signed short int __index_0 = -1;
+            struct __waitfor_mask_t __mask_0 = { (&__index_0), __acceptables_0, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_0), __timeout_0));
+            switch ( __index_0 ) {
+                case 0:
+                    {
+                        ((void)1);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_1[1];
+        ((void)__builtin_memset(((void *)__acceptables_1), 0, sizeof(__acceptables_1)));
+        _Bool __do_run_1 = 0;
+        struct monitor_desc *__monitors_1[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_1[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_1[((signed int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_1[((signed int )0)].__anonymous_object202.list=__monitors_1));
+            ((void)(__acceptables_1[((signed int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_1=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_1 = -1;
+        if ( __do_run_1 ) {
+            signed short int __index_1 = -1;
+            struct __waitfor_mask_t __mask_1 = { (&__index_1), __acceptables_1, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_1), __timeout_1));
+            switch ( __index_1 ) {
+                case 0:
+                    {
+                        ((void)2);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_2[1];
+        ((void)__builtin_memset(((void *)__acceptables_2), 0, sizeof(__acceptables_2)));
+        _Bool __do_run_2 = 0;
+        struct monitor_desc *__monitors_2[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_2[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_2[((signed int )0)].__anonymous_object202.func=((void (*)())__f2__F_MR2sM__1)));
+            ((void)(__acceptables_2[((signed int )0)].__anonymous_object202.list=__monitors_2));
+            ((void)(__acceptables_2[((signed int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_2=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_2 = -1;
+        if ( __do_run_2 ) {
+            signed short int __index_2 = -1;
+            struct __waitfor_mask_t __mask_2 = { (&__index_2), __acceptables_2, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_2), __timeout_2));
+            switch ( __index_2 ) {
+                case 0:
+                    {
+                        ((void)3);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_3[1];
+        ((void)__builtin_memset(((void *)__acceptables_3), 0, sizeof(__acceptables_3)));
+        _Bool __do_run_3 = 0;
+        struct monitor_desc *__monitors_3[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((((signed int )1)<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_3[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_3[((signed int )0)].__anonymous_object202.func=((void (*)())__f2__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_3[((signed int )0)].__anonymous_object202.list=__monitors_3));
+            ((void)(__acceptables_3[((signed int )0)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_3=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_3 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_3=((unsigned long long int )100)));
+            ((void)(__do_run_3=((_Bool )1)));
+        }
+
+        if ( __do_run_3 ) {
+            signed short int __index_3 = -1;
+            struct __waitfor_mask_t __mask_3 = { (&__index_3), __acceptables_3, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_3), __timeout_3));
+            switch ( __index_3 ) {
+                case 0:
+                    {
+                        ((void)4);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)5);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_4[1];
+        ((void)__builtin_memset(((void *)__acceptables_4), 0, sizeof(__acceptables_4)));
+        _Bool __do_run_4 = 0;
+        struct monitor_desc *__monitors_4[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((2<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_4[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_4[((signed int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sM__1)));
+            ((void)(__acceptables_4[((signed int )0)].__anonymous_object202.list=__monitors_4));
+            ((void)(__acceptables_4[((signed int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_4=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_4 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_4=0));
+            ((void)(__do_run_4=((_Bool )1)));
+        }
+
+        if ( __do_run_4 ) {
+            signed short int __index_4 = -1;
+            struct __waitfor_mask_t __mask_4 = { (&__index_4), __acceptables_4, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_4), __timeout_4));
+            switch ( __index_4 ) {
+                case 0:
+                    {
+                        ((void)5);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)6);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_5[1];
+        ((void)__builtin_memset(((void *)__acceptables_5), 0, sizeof(__acceptables_5)));
+        _Bool __do_run_5 = 0;
+        struct monitor_desc *__monitors_5[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((3<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_5[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_5[((signed int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_5[((signed int )0)].__anonymous_object202.list=__monitors_5));
+            ((void)(__acceptables_5[((signed int )0)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_5=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_5 = -1;
+        if ( ((signed int )((4<3)!=((signed int )0))) ) {
+            ((void)(__timeout_5=((unsigned long long int )101)));
+            ((void)(__do_run_5=((_Bool )1)));
+        }
+
+        if ( ((signed int )((5<3)!=((signed int )0))) ) {
+            ((void)(__timeout_5=0));
+            ((void)(__do_run_5=((_Bool )1)));
+        }
+
+        if ( __do_run_5 ) {
+            signed short int __index_5 = -1;
+            struct __waitfor_mask_t __mask_5 = { (&__index_5), __acceptables_5, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_5), __timeout_5));
+            switch ( __index_5 ) {
+                case 0:
+                    {
+                        ((void)7);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)8);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)9);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_6[2];
+        ((void)__builtin_memset(((void *)__acceptables_6), 0, sizeof(__acceptables_6)));
+        _Bool __do_run_6 = 0;
+        struct monitor_desc *__monitors_6[3] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((6<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_6[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_6[((signed int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sMMR2sM__1)));
+            ((void)(__acceptables_6[((signed int )0)].__anonymous_object202.list=__monitors_6));
+            ((void)(__acceptables_6[((signed int )0)].__anonymous_object202.size=((signed short int )3)));
+            ((void)(__do_run_6=((_Bool )1)));
+        }
+
+        struct monitor_desc *__monitors_7[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((7<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_6[((signed int )1)].__is_dtor__b_1=0));
+            ((void)(__acceptables_6[((signed int )1)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_6[((signed int )1)].__anonymous_object202.list=__monitors_7));
+            ((void)(__acceptables_6[((signed int )1)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_6=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_6 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_6=0));
+            ((void)(__do_run_6=((_Bool )1)));
+        }
+
+        if ( __do_run_6 ) {
+            signed short int __index_6 = -1;
+            struct __waitfor_mask_t __mask_6 = { (&__index_6), __acceptables_6, 2 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_6), __timeout_6));
+            switch ( __index_6 ) {
+                case 0:
+                    {
+                        ((void)10);
+                    }
+                    break;
+                case 1:
+                    {
+                        ((void)11);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)12);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_7[2];
+        ((void)__builtin_memset(((void *)__acceptables_7), 0, sizeof(__acceptables_7)));
+        _Bool __do_run_7 = 0;
+        struct monitor_desc *__monitors_8[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((8<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_7[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_7[((signed int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_7[((signed int )0)].__anonymous_object202.list=__monitors_8));
+            ((void)(__acceptables_7[((signed int )0)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_7=((_Bool )1)));
+        }
+
+        struct monitor_desc *__monitors_9[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_7[((signed int )1)].__is_dtor__b_1=0));
+            ((void)(__acceptables_7[((signed int )1)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_7[((signed int )1)].__anonymous_object202.list=__monitors_9));
+            ((void)(__acceptables_7[((signed int )1)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_7=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_7 = -1;
+        if ( ((signed int )((9<3)!=((signed int )0))) ) {
+            ((void)(__timeout_7=((unsigned long long int )102)));
+            ((void)(__do_run_7=((_Bool )1)));
+        }
+
+        if ( __do_run_7 ) {
+            signed short int __index_7 = -1;
+            struct __waitfor_mask_t __mask_7 = { (&__index_7), __acceptables_7, 2 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_7), __timeout_7));
+            switch ( __index_7 ) {
+                case 0:
+                    {
+                        ((void)13);
+                    }
+                    break;
+                case 1:
+                    {
+                        ((void)14);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)15);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_8[2];
+        ((void)__builtin_memset(((void *)__acceptables_8), 0, sizeof(__acceptables_8)));
+        _Bool __do_run_8 = 0;
+        struct monitor_desc *__monitors_10[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((10<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_8[((signed int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_8[((signed int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_8[((signed int )0)].__anonymous_object202.list=__monitors_10));
+            ((void)(__acceptables_8[((signed int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        struct monitor_desc *__monitors_11[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_8[((signed int )1)].__is_dtor__b_1=0));
+            ((void)(__acceptables_8[((signed int )1)].__anonymous_object202.func=((void (*)())__f2__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_8[((signed int )1)].__anonymous_object202.list=__monitors_11));
+            ((void)(__acceptables_8[((signed int )1)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_8 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_8=((unsigned long long int )103)));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        if ( ((signed int )((11<3)!=((signed int )0))) ) {
+            ((void)(__timeout_8=0));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        if ( __do_run_8 ) {
+            signed short int __index_8 = -1;
+            struct __waitfor_mask_t __mask_8 = { (&__index_8), __acceptables_8, 2 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_8), __timeout_8));
+            switch ( __index_8 ) {
+                case 0:
+                    {
+                        ((void)16);
+                    }
+                    break;
+                case 1:
+                    {
+                        ((void)17);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)18);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)19);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+}
+signed int __main__Fi___1(){
+    __attribute__ ((unused)) signed int ___retval_main__i_1;
+    ((void)(___retval_main__i_1=0) /* ?{} */);
+    return ((signed int )___retval_main__i_1);
+}
+__attribute__ ((constructor)) static void _init_sched_ext_parse(void){
+    ((void)___constructor__F_R2sM_autogen___1((&__a__2sM_1)));
+}
+__attribute__ ((destructor)) static void _destroy_sched_ext_parse(void){
+    ((void)___destructor__F_MR2sM_autogen___1((&__a__2sM_1)));
+}
+static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi___1(); }
+__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
+__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
+extern signed int printf(const char *__restrict __format, ...);
+static inline signed int invoke_main(signed int argc, char **argv, char **envp);
+signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
+    __attribute__ ((unused)) signed int ___retval_main__i_1;
+    signed int _tmp_cp_ret0;
+    ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */);
+    ((void)(_tmp_cp_ret0) /* ^?{} */);
+    return ((signed int )___retval_main__i_1);
+}
Index: src/tests/.expect/64/sched-ext-parse.txt
===================================================================
--- src/tests/.expect/64/sched-ext-parse.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/.expect/64/sched-ext-parse.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,1599 @@
+__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
+__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
+extern signed int printf(const char *__restrict __format, ...);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert_fail(const char *__assertion, const char *__file, unsigned int __line, const char *__function);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert_perror_fail(signed int __errnum, const char *__file, unsigned int __line, const char *__function);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert(const char *__assertion, const char *__file, signed int __line);
+__attribute__ ((noreturn,format(printf, 5, 6))) void __assert_fail_f(const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ...);
+struct spinlock {
+    volatile signed int lock;
+    const char *prev_name;
+    void *prev_thrd;
+};
+static inline void ___constructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1);
+static inline void ___constructor__F_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1);
+static inline void ___destructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1);
+static inline struct spinlock ___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1);
+static inline void ___constructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
+}
+static inline void ___constructor__F_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=___src__9sspinlock_1.lock) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name=___src__9sspinlock_1.prev_name) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd=___src__9sspinlock_1.prev_thrd) /* ?{} */);
+}
+static inline void ___destructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1){
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ^?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name) /* ^?{} */);
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))) /* ^?{} */);
+}
+static inline struct spinlock ___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1){
+    struct spinlock ___ret__9sspinlock_1;
+    ((void)((*___dst__R9sspinlock_1).lock=___src__9sspinlock_1.lock));
+    ((void)((*___dst__R9sspinlock_1).prev_name=___src__9sspinlock_1.prev_name));
+    ((void)((*___dst__R9sspinlock_1).prev_thrd=___src__9sspinlock_1.prev_thrd));
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&___ret__9sspinlock_1), ___src__9sspinlock_1));
+    return ((struct spinlock )___ret__9sspinlock_1);
+}
+static inline void ___constructor__F_R9sspinlockVi_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
+}
+static inline void ___constructor__F_R9sspinlockViPCc_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1, const char *__prev_name__PCc_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name=__prev_name__PCc_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
+}
+static inline void ___constructor__F_R9sspinlockViPCcPv_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1, const char *__prev_name__PCc_1, void *__prev_thrd__Pv_1){
+    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_name=__prev_name__PCc_1) /* ?{} */);
+    ((void)((*___dst__R9sspinlock_1).prev_thrd=__prev_thrd__Pv_1) /* ?{} */);
+}
+struct __thread_queue_t {
+    struct thread_desc *head;
+    struct thread_desc **tail;
+};
+static inline void ___constructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1);
+static inline void ___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1);
+static inline void ___destructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1);
+static inline struct __thread_queue_t ___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1);
+static inline void ___constructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head=___src__17s__thread_queue_t_1.head) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail=___src__17s__thread_queue_t_1.tail) /* ?{} */);
+}
+static inline void ___destructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ^?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).head) /* ^?{} */);
+}
+static inline struct __thread_queue_t ___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1){
+    struct __thread_queue_t ___ret__17s__thread_queue_t_1;
+    ((void)((*___dst__R17s__thread_queue_t_1).head=___src__17s__thread_queue_t_1.head));
+    ((void)((*___dst__R17s__thread_queue_t_1).tail=___src__17s__thread_queue_t_1.tail));
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&___ret__17s__thread_queue_t_1), ___src__17s__thread_queue_t_1));
+    return ((struct __thread_queue_t )___ret__17s__thread_queue_t_1);
+}
+static inline void ___constructor__F_R17s__thread_queue_tP12sthread_desc_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct thread_desc *__head__P12sthread_desc_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head=__head__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__thread_queue_tP12sthread_descPP12sthread_desc_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct thread_desc *__head__P12sthread_desc_1, struct thread_desc **__tail__PP12sthread_desc_1){
+    ((void)((*___dst__R17s__thread_queue_t_1).head=__head__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R17s__thread_queue_t_1).tail=__tail__PP12sthread_desc_1) /* ?{} */);
+}
+struct __condition_stack_t {
+    struct __condition_criterion_t *top;
+};
+static inline void ___constructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1);
+static inline void ___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1);
+static inline void ___destructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1);
+static inline struct __condition_stack_t ___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1);
+static inline void ___constructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top) /* ?{} */);
+}
+static inline void ___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top=___src__20s__condition_stack_t_1.top) /* ?{} */);
+}
+static inline void ___destructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top) /* ^?{} */);
+}
+static inline struct __condition_stack_t ___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1){
+    struct __condition_stack_t ___ret__20s__condition_stack_t_1;
+    ((void)((*___dst__R20s__condition_stack_t_1).top=___src__20s__condition_stack_t_1.top));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&___ret__20s__condition_stack_t_1), ___src__20s__condition_stack_t_1));
+    return ((struct __condition_stack_t )___ret__20s__condition_stack_t_1);
+}
+static inline void ___constructor__F_R20s__condition_stack_tP24s__condition_criterion_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_criterion_t *__top__P24s__condition_criterion_t_1){
+    ((void)((*___dst__R20s__condition_stack_t_1).top=__top__P24s__condition_criterion_t_1) /* ?{} */);
+}
+void ___constructor__F_R17s__thread_queue_t__1(struct __thread_queue_t *__anonymous_object0);
+void __append__F_P17s__thread_queue_tP12sthread_desc__1(struct __thread_queue_t *__anonymous_object1, struct thread_desc *__anonymous_object2);
+struct thread_desc *__pop_head__FP12sthread_desc_P17s__thread_queue_t__1(struct __thread_queue_t *__anonymous_object3);
+struct thread_desc *__remove__FP12sthread_desc_P17s__thread_queue_tPP12sthread_desc__1(struct __thread_queue_t *__anonymous_object4, struct thread_desc **__anonymous_object5);
+void ___constructor__F_R20s__condition_stack_t__1(struct __condition_stack_t *__anonymous_object6);
+void __push__F_P20s__condition_stack_tP24s__condition_criterion_t__1(struct __condition_stack_t *__anonymous_object7, struct __condition_criterion_t *__anonymous_object8);
+struct __condition_criterion_t *__pop__FP24s__condition_criterion_t_P20s__condition_stack_t__1(struct __condition_stack_t *__anonymous_object9);
+void ___constructor__F_R9sspinlock__1(struct spinlock *__this__R9sspinlock_1);
+void ___destructor__F_R9sspinlock__1(struct spinlock *__this__R9sspinlock_1);
+struct coStack_t {
+    unsigned int size;
+    void *storage;
+    void *limit;
+    void *base;
+    void *context;
+    void *top;
+    _Bool userStack;
+};
+static inline void ___constructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1);
+static inline void ___constructor__F_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1);
+static inline void ___destructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1);
+static inline struct coStack_t ___operator_assign__F10scoStack_t_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1);
+static inline void ___constructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1){
+    ((void)((*___dst__R10scoStack_t_1).size) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1){
+    ((void)((*___dst__R10scoStack_t_1).size=___src__10scoStack_t_1.size) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=___src__10scoStack_t_1.storage) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=___src__10scoStack_t_1.limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=___src__10scoStack_t_1.base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=___src__10scoStack_t_1.context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top=___src__10scoStack_t_1.top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack=___src__10scoStack_t_1.userStack) /* ?{} */);
+}
+static inline void ___destructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1){
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage) /* ^?{} */);
+    ((void)((*___dst__R10scoStack_t_1).size) /* ^?{} */);
+}
+static inline struct coStack_t ___operator_assign__F10scoStack_t_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1){
+    struct coStack_t ___ret__10scoStack_t_1;
+    ((void)((*___dst__R10scoStack_t_1).size=___src__10scoStack_t_1.size));
+    ((void)((*___dst__R10scoStack_t_1).storage=___src__10scoStack_t_1.storage));
+    ((void)((*___dst__R10scoStack_t_1).limit=___src__10scoStack_t_1.limit));
+    ((void)((*___dst__R10scoStack_t_1).base=___src__10scoStack_t_1.base));
+    ((void)((*___dst__R10scoStack_t_1).context=___src__10scoStack_t_1.context));
+    ((void)((*___dst__R10scoStack_t_1).top=___src__10scoStack_t_1.top));
+    ((void)((*___dst__R10scoStack_t_1).userStack=___src__10scoStack_t_1.userStack));
+    ((void)___constructor__F_R10scoStack_t10scoStack_t_autogen___1((&___ret__10scoStack_t_1), ___src__10scoStack_t_1));
+    return ((struct coStack_t )___ret__10scoStack_t_1);
+}
+static inline void ___constructor__F_R10scoStack_tUi_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1, void *__top__Pv_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top=__top__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
+}
+static inline void ___constructor__F_R10scoStack_tUiPvPvPvPvPvb_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1, void *__top__Pv_1, _Bool __userStack__b_1){
+    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).top=__top__Pv_1) /* ?{} */);
+    ((void)((*___dst__R10scoStack_t_1).userStack=__userStack__b_1) /* ?{} */);
+}
+enum coroutine_state {
+    Halted,
+    Start,
+    Inactive,
+    Active,
+    Primed,
+};
+struct coroutine_desc {
+    struct coStack_t stack;
+    const char *name;
+    signed int errno_;
+    enum coroutine_state state;
+    struct coroutine_desc *starter;
+    struct coroutine_desc *last;
+};
+struct __waitfor_mask_t {
+    signed short int *accepted;
+    struct __acceptable_t *clauses;
+    signed short int size;
+};
+static inline void ___constructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1);
+static inline void ___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1);
+static inline void ___destructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1);
+static inline struct __waitfor_mask_t ___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1);
+static inline void ___constructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=___src__17s__waitfor_mask_t_1.accepted) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=___src__17s__waitfor_mask_t_1.clauses) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size=___src__17s__waitfor_mask_t_1.size) /* ?{} */);
+}
+static inline void ___destructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ^?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ^?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted) /* ^?{} */);
+}
+static inline struct __waitfor_mask_t ___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1){
+    struct __waitfor_mask_t ___ret__17s__waitfor_mask_t_1;
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=___src__17s__waitfor_mask_t_1.accepted));
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=___src__17s__waitfor_mask_t_1.clauses));
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size=___src__17s__waitfor_mask_t_1.size));
+    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&___ret__17s__waitfor_mask_t_1), ___src__17s__waitfor_mask_t_1));
+    return ((struct __waitfor_mask_t )___ret__17s__waitfor_mask_t_1);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_tPs_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_tPsP15s__acceptable_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1, struct __acceptable_t *__clauses__P15s__acceptable_t_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=__clauses__P15s__acceptable_t_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
+}
+static inline void ___constructor__F_R17s__waitfor_mask_tPsP15s__acceptable_ts_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1, struct __acceptable_t *__clauses__P15s__acceptable_t_1, signed short int __size__s_1){
+    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=__clauses__P15s__acceptable_t_1) /* ?{} */);
+    ((void)((*___dst__R17s__waitfor_mask_t_1).size=__size__s_1) /* ?{} */);
+}
+struct monitor_desc {
+    struct spinlock lock;
+    struct thread_desc *owner;
+    struct __thread_queue_t entry_queue;
+    struct __condition_stack_t signal_stack;
+    unsigned int recursion;
+    struct __waitfor_mask_t mask;
+};
+static inline void ___constructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1);
+static inline void ___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1);
+static inline void ___destructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1);
+static inline struct monitor_desc ___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1);
+static inline void ___constructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1){
+    ((void)___constructor__F_R9sspinlock__1((&(*___dst__R13smonitor_desc_1).lock)));
+    ((void)((*___dst__R13smonitor_desc_1).owner) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), ___src__13smonitor_desc_1.lock));
+    ((void)((*___dst__R13smonitor_desc_1).owner=___src__13smonitor_desc_1.owner) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), ___src__13smonitor_desc_1.entry_queue));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), ___src__13smonitor_desc_1.signal_stack));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=___src__13smonitor_desc_1.recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), ___src__13smonitor_desc_1.mask));
+}
+static inline void ___destructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1){
+    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ^?{} */);
+    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)((*___dst__R13smonitor_desc_1).owner) /* ^?{} */);
+    ((void)___destructor__F_R9sspinlock__1((&(*___dst__R13smonitor_desc_1).lock)));
+}
+static inline struct monitor_desc ___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1){
+    struct monitor_desc ___ret__13smonitor_desc_1;
+    struct spinlock _tmp_cp0;
+    struct spinlock _tmp_cp_ret0;
+    ((void)(((void)(_tmp_cp_ret0=___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), (((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&_tmp_cp0), ___src__13smonitor_desc_1.lock)) , _tmp_cp0)))) , _tmp_cp_ret0));
+    ((void)___destructor__F_R9sspinlock__1((&_tmp_cp_ret0)));
+    ((void)___destructor__F_R9sspinlock__1((&_tmp_cp0)));
+    ((void)((*___dst__R13smonitor_desc_1).owner=___src__13smonitor_desc_1.owner));
+    struct __thread_queue_t _tmp_cp1;
+    struct __thread_queue_t _tmp_cp_ret1;
+    ((void)(((void)(_tmp_cp_ret1=___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), (((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&_tmp_cp1), ___src__13smonitor_desc_1.entry_queue)) , _tmp_cp1)))) , _tmp_cp_ret1));
+    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&_tmp_cp_ret1)));
+    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&_tmp_cp1)));
+    struct __condition_stack_t _tmp_cp2;
+    struct __condition_stack_t _tmp_cp_ret2;
+    ((void)(((void)(_tmp_cp_ret2=___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), (((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&_tmp_cp2), ___src__13smonitor_desc_1.signal_stack)) , _tmp_cp2)))) , _tmp_cp_ret2));
+    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&_tmp_cp_ret2)));
+    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&_tmp_cp2)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=___src__13smonitor_desc_1.recursion));
+    struct __waitfor_mask_t _tmp_cp3;
+    struct __waitfor_mask_t _tmp_cp_ret3;
+    ((void)(((void)(_tmp_cp_ret3=___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), (((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&_tmp_cp3), ___src__13smonitor_desc_1.mask)) , _tmp_cp3)))) , _tmp_cp_ret3));
+    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&_tmp_cp_ret3)));
+    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&_tmp_cp3)));
+    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&___ret__13smonitor_desc_1), ___src__13smonitor_desc_1));
+    return ((struct monitor_desc )___ret__13smonitor_desc_1);
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlock_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
+    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_tUi_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1, unsigned int __recursion__Ui_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=__recursion__Ui_1) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
+}
+static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_tUi17s__waitfor_mask_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1, unsigned int __recursion__Ui_1, struct __waitfor_mask_t __mask__17s__waitfor_mask_t_1){
+    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
+    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
+    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
+    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
+    ((void)((*___dst__R13smonitor_desc_1).recursion=__recursion__Ui_1) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), __mask__17s__waitfor_mask_t_1));
+}
+struct __monitor_group_t {
+    struct monitor_desc **list;
+    signed short int size;
+    void (*func)();
+};
+static inline void ___constructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1);
+static inline void ___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1);
+static inline void ___destructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1);
+static inline struct __monitor_group_t ___operator_assign__F18s__monitor_group_t_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1);
+static inline void ___constructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
+}
+static inline void ___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=___src__18s__monitor_group_t_1.list) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size=___src__18s__monitor_group_t_1.size) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func=___src__18s__monitor_group_t_1.func) /* ?{} */);
+}
+static inline void ___destructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ^?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ^?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).list) /* ^?{} */);
+}
+static inline struct __monitor_group_t ___operator_assign__F18s__monitor_group_t_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1){
+    struct __monitor_group_t ___ret__18s__monitor_group_t_1;
+    ((void)((*___dst__R18s__monitor_group_t_1).list=___src__18s__monitor_group_t_1.list));
+    ((void)((*___dst__R18s__monitor_group_t_1).size=___src__18s__monitor_group_t_1.size));
+    ((void)((*___dst__R18s__monitor_group_t_1).func=___src__18s__monitor_group_t_1.func));
+    ((void)___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1((&___ret__18s__monitor_group_t_1), ___src__18s__monitor_group_t_1));
+    return ((struct __monitor_group_t )___ret__18s__monitor_group_t_1);
+}
+static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_desc_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
+}
+static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_descs_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1, signed short int __size__s_1){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size=__size__s_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
+}
+static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_descsPF___autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1, signed short int __size__s_1, void (*__func__PF___1)()){
+    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).size=__size__s_1) /* ?{} */);
+    ((void)((*___dst__R18s__monitor_group_t_1).func=__func__PF___1) /* ?{} */);
+}
+struct thread_desc {
+    struct coroutine_desc self_cor;
+    struct monitor_desc self_mon;
+    struct monitor_desc *self_mon_p;
+    struct __monitor_group_t monitors;
+    struct thread_desc *next;
+};
+static inline struct monitor_desc *___operator_index__FP13smonitor_desc_RC18s__monitor_group_tl__1(const struct __monitor_group_t *__this__RC18s__monitor_group_t_1, signed long int __index__l_1){
+    __attribute__ ((unused)) struct monitor_desc *___retval__operator_index__P13smonitor_desc_1;
+    ((void)(___retval__operator_index__P13smonitor_desc_1=(*__this__RC18s__monitor_group_t_1).list[__index__l_1]) /* ?{} */);
+    return ((struct monitor_desc *)___retval__operator_index__P13smonitor_desc_1);
+}
+static inline _Bool ___operator_equal__Fb_RC18s__monitor_group_tRC18s__monitor_group_t__1(const struct __monitor_group_t *__lhs__RC18s__monitor_group_t_1, const struct __monitor_group_t *__rhs__RC18s__monitor_group_t_1){
+    __attribute__ ((unused)) _Bool ___retval__operator_equal__b_1;
+    if ( ((signed int )((((*__lhs__RC18s__monitor_group_t_1).list!=((struct monitor_desc **)0))!=((*__rhs__RC18s__monitor_group_t_1).list!=((struct monitor_desc **)0)))!=((signed int )0))) ) {
+        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+        return ((_Bool )___retval__operator_equal__b_1);
+    }
+
+    if ( ((signed int )(((*__lhs__RC18s__monitor_group_t_1).size!=(*__rhs__RC18s__monitor_group_t_1).size)!=((signed int )0))) ) {
+        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+        return ((_Bool )___retval__operator_equal__b_1);
+    }
+
+    if ( ((signed int )(((*__lhs__RC18s__monitor_group_t_1).func!=(*__rhs__RC18s__monitor_group_t_1).func)!=((signed int )0))) ) {
+        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+        return ((_Bool )___retval__operator_equal__b_1);
+    }
+
+    {
+        signed int __i__i_3 = ((signed int )0);
+        for (;((signed int )((__i__i_3<((signed int )(*__lhs__RC18s__monitor_group_t_1).size))!=((signed int )0)));((void)__i__i_3++)) {
+            struct monitor_desc *_tmp_cp_ret4;
+            struct monitor_desc *_tmp_cp_ret5;
+            if ( ((signed int )(((((void)(_tmp_cp_ret4=___operator_index__FP13smonitor_desc_RC18s__monitor_group_tl__1(__lhs__RC18s__monitor_group_t_1, ((signed long int )__i__i_3)))) , _tmp_cp_ret4)!=(((void)(_tmp_cp_ret5=___operator_index__FP13smonitor_desc_RC18s__monitor_group_tl__1(__rhs__RC18s__monitor_group_t_1, ((signed long int )__i__i_3)))) , _tmp_cp_ret5))!=((signed int )0))) ) {
+                ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
+                return ((_Bool )___retval__operator_equal__b_1);
+            }
+
+            ((void)(_tmp_cp_ret4) /* ^?{} */);
+            ((void)(_tmp_cp_ret5) /* ^?{} */);
+        }
+
+    }
+
+    ((void)(___retval__operator_equal__b_1=((_Bool )1)) /* ?{} */);
+    return ((_Bool )___retval__operator_equal__b_1);
+}
+static inline void *__malloc__A0_1_0_0__FPd0___1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT){
+    __attribute__ ((unused)) void *___retval_malloc__P2tT_1;
+    void *_tmp_cp_ret6;
+    ((void)(___retval_malloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret6=malloc(((unsigned long int )_sizeof_2tT)))) , _tmp_cp_ret6)))) /* ?{} */);
+    ((void)(_tmp_cp_ret6) /* ^?{} */);
+    return ((void *)___retval_malloc__P2tT_1);
+}
+void *calloc(unsigned long int dim, unsigned long int size);
+static inline void *__calloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __dim__Ul_1){
+    __attribute__ ((unused)) void *___retval_calloc__P2tT_1;
+    void *_tmp_cp_ret7;
+    ((void)(___retval_calloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret7=calloc(__dim__Ul_1, _sizeof_2tT))) , _tmp_cp_ret7)))) /* ?{} */);
+    ((void)(_tmp_cp_ret7) /* ^?{} */);
+    return ((void *)___retval_calloc__P2tT_1);
+}
+void *realloc(void *ptr, unsigned long int size);
+static inline void *__realloc__A0_1_0_0__FPd0_Pd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned long int __size__Ul_1){
+    __attribute__ ((unused)) void *___retval_realloc__P2tT_1;
+    void *_tmp_cp_ret8;
+    ((void)(___retval_realloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret8=realloc(((void *)__ptr__P2tT_1), __size__Ul_1))) , _tmp_cp_ret8)))) /* ?{} */);
+    ((void)(_tmp_cp_ret8) /* ^?{} */);
+    return ((void *)___retval_realloc__P2tT_1);
+}
+void *memalign(unsigned long int align, unsigned long int size);
+static inline void *__memalign__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1){
+    __attribute__ ((unused)) void *___retval_memalign__P2tT_1;
+    void *_tmp_cp_ret9;
+    ((void)(___retval_memalign__P2tT_1=((void *)(((void)(_tmp_cp_ret9=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret9))) /* ?{} */);
+    ((void)(_tmp_cp_ret9) /* ^?{} */);
+    return ((void *)___retval_memalign__P2tT_1);
+}
+static inline void *__aligned_alloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1){
+    __attribute__ ((unused)) void *___retval_aligned_alloc__P2tT_1;
+    void *_tmp_cp_ret10;
+    ((void)(___retval_aligned_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret10=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret10))) /* ?{} */);
+    ((void)(_tmp_cp_ret10) /* ^?{} */);
+    return ((void *)___retval_aligned_alloc__P2tT_1);
+}
+signed int posix_memalign(void **ptr, unsigned long int align, unsigned long int size);
+static inline signed int __posix_memalign__A0_1_0_0__Fi_PPd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void **__ptr__PP2tT_1, unsigned long int __align__Ul_1){
+    __attribute__ ((unused)) signed int ___retval_posix_memalign__i_1;
+    signed int _tmp_cp_ret11;
+    ((void)(___retval_posix_memalign__i_1=(((void)(_tmp_cp_ret11=posix_memalign(((void **)__ptr__PP2tT_1), __align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret11)) /* ?{} */);
+    ((void)(_tmp_cp_ret11) /* ^?{} */);
+    return ((signed int )___retval_posix_memalign__i_1);
+}
+void *memset(void *dest, signed int c, unsigned long int size);
+static inline void *__alloc__A0_1_0_0__FPd0___1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret12;
+    ((void)(___retval_alloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret12=malloc(((unsigned long int )_sizeof_2tT)))) , _tmp_cp_ret12)))) /* ?{} */);
+    ((void)(_tmp_cp_ret12) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_c__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret13;
+    void *__ptr__P2tT_2 = ((void *)((void *)((void *)(((void)(_tmp_cp_ret13=malloc(((unsigned long int )_sizeof_2tT)))) , _tmp_cp_ret13))));
+    ((void)(_tmp_cp_ret13) /* ^?{} */);
+    void *_tmp_cp_ret14;
+    ((void)(___retval_alloc__P2tT_1=(((void)(_tmp_cp_ret14=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), _sizeof_2tT))) , _tmp_cp_ret14)) /* ?{} */);
+    ((void)(_tmp_cp_ret14) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __dim__Ul_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret15;
+    ((void)(___retval_alloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret15=malloc((__dim__Ul_1*((unsigned long int )_sizeof_2tT))))) , _tmp_cp_ret15)))) /* ?{} */);
+    ((void)(_tmp_cp_ret15) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __dim__Ul_1, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret16;
+    void *__ptr__P2tT_2 = ((void *)((void *)((void *)(((void)(_tmp_cp_ret16=malloc((__dim__Ul_1*((unsigned long int )_sizeof_2tT))))) , _tmp_cp_ret16))));
+    ((void)(_tmp_cp_ret16) /* ^?{} */);
+    void *_tmp_cp_ret17;
+    ((void)(___retval_alloc__P2tT_1=(((void)(_tmp_cp_ret17=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret17)) /* ?{} */);
+    ((void)(_tmp_cp_ret17) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+static inline void *__alloc__A0_1_0_0__FPd0_Pd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned long int __dim__Ul_1){
+    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
+    void *_tmp_cp_ret18;
+    ((void)(___retval_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret18=realloc(((void *)__ptr__P2tT_1), (__dim__Ul_1*((unsigned long int )_sizeof_2tT))))) , _tmp_cp_ret18))) /* ?{} */);
+    ((void)(_tmp_cp_ret18) /* ^?{} */);
+    return ((void *)___retval_alloc__P2tT_1);
+}
+void *__alloc__A0_1_0_0__FPd0_Pd0Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned long int __dim__Ul_1, char __fill__c_1);
+static inline void *__align_alloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret19;
+    ((void)(___retval_align_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret19=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret19))) /* ?{} */);
+    ((void)(_tmp_cp_ret19) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__align_alloc__A0_1_0_0__FPd0_Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret20;
+    void *__ptr__P2tT_2 = ((void *)((void *)(((void)(_tmp_cp_ret20=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret20)));
+    ((void)(_tmp_cp_ret20) /* ^?{} */);
+    void *_tmp_cp_ret21;
+    ((void)(___retval_align_alloc__P2tT_1=(((void)(_tmp_cp_ret21=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), _sizeof_2tT))) , _tmp_cp_ret21)) /* ?{} */);
+    ((void)(_tmp_cp_ret21) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__align_alloc__A0_1_0_0__FPd0_UlUl__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1, unsigned long int __dim__Ul_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret22;
+    ((void)(___retval_align_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret22=memalign(__align__Ul_1, (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret22))) /* ?{} */);
+    ((void)(_tmp_cp_ret22) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__align_alloc__A0_1_0_0__FPd0_UlUlc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1, unsigned long int __dim__Ul_1, char __fill__c_1){
+    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
+    void *_tmp_cp_ret23;
+    void *__ptr__P2tT_2 = ((void *)((void *)(((void)(_tmp_cp_ret23=memalign(__align__Ul_1, (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret23)));
+    ((void)(_tmp_cp_ret23) /* ^?{} */);
+    void *_tmp_cp_ret24;
+    ((void)(___retval_align_alloc__P2tT_1=(((void)(_tmp_cp_ret24=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret24)) /* ?{} */);
+    ((void)(_tmp_cp_ret24) /* ^?{} */);
+    return ((void *)___retval_align_alloc__P2tT_1);
+}
+static inline void *__memset__A0_1_0_0__FPd0_Pd0c__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, char __c__c_1){
+    __attribute__ ((unused)) void *___retval_memset__P2tT_1;
+    void *_tmp_cp_ret25;
+    ((void)(___retval_memset__P2tT_1=(((void)(_tmp_cp_ret25=memset(((void *)__dest__P2tT_1), ((signed int )__c__c_1), _sizeof_2tT))) , _tmp_cp_ret25)) /* ?{} */);
+    ((void)(_tmp_cp_ret25) /* ^?{} */);
+    return ((void *)___retval_memset__P2tT_1);
+}
+void *memcpy(void *dest, const void *src, unsigned long int size);
+static inline void *__memcpy__A0_1_0_0__FPd0_Pd0PCd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, const void *__src__PC2tT_1){
+    __attribute__ ((unused)) void *___retval_memcpy__P2tT_1;
+    void *_tmp_cp_ret26;
+    ((void)(___retval_memcpy__P2tT_1=(((void)(_tmp_cp_ret26=memcpy(((void *)__dest__P2tT_1), ((const void *)__src__PC2tT_1), _sizeof_2tT))) , _tmp_cp_ret26)) /* ?{} */);
+    ((void)(_tmp_cp_ret26) /* ^?{} */);
+    return ((void *)___retval_memcpy__P2tT_1);
+}
+static inline void *__memset__A0_1_0_0__FPd0_Pd0Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, unsigned long int __dim__Ul_1, char __c__c_1){
+    __attribute__ ((unused)) void *___retval_memset__P2tT_1;
+    void *_tmp_cp_ret27;
+    ((void)(___retval_memset__P2tT_1=((void *)(((void)(_tmp_cp_ret27=memset(((void *)__dest__P2tT_1), ((signed int )__c__c_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret27))) /* ?{} */);
+    ((void)(_tmp_cp_ret27) /* ^?{} */);
+    return ((void *)___retval_memset__P2tT_1);
+}
+static inline void *__memcpy__A0_1_0_0__FPd0_Pd0PCd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, const void *__src__PC2tT_1, unsigned long int __dim__Ul_1){
+    __attribute__ ((unused)) void *___retval_memcpy__P2tT_1;
+    void *_tmp_cp_ret28;
+    ((void)(___retval_memcpy__P2tT_1=((void *)(((void)(_tmp_cp_ret28=memcpy(((void *)__dest__P2tT_1), ((const void *)__src__PC2tT_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret28))) /* ?{} */);
+    ((void)(_tmp_cp_ret28) /* ^?{} */);
+    return ((void *)___retval_memcpy__P2tT_1);
+}
+void *__new__A0_1_0_1____constructor__PF_Rd0tVARGS1__FPd0_tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_P2tT7tParams__MP)(void (*__anonymous_object10)(), void *__anonymous_object11, void *__anonymous_object12), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___constructor__PF_R2tT7tParams__1)(void *__anonymous_object13, void *__anonymous_object14), void *__p__7tParams_1);
+void __delete__A0_1_0_0____destructor__PF_Rd0__F_Pd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object15), void *__ptr__P2tT_1);
+void __delete__A0_1_0_1____destructor__PF_Rd0___delete__PF_tVARGS1__F_Pd0tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_7tParams__P)(void (*__anonymous_object16)(), void *__anonymous_object17), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object18), __attribute__ ((unused)) void (*__delete__PF_7tParams__1)(void *__anonymous_object19), void *__ptr__P2tT_1, void *__rest__7tParams_1);
+void *__anew__A0_1_0_1____constructor__PF_Rd0tVARGS1__FPd0_UltVARGS1__1(__attribute__ ((unused)) void (*_adapterF_P2tT7tParams__MP)(void (*__anonymous_object20)(), void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___constructor__PF_R2tT7tParams__1)(void *__anonymous_object23, void *__anonymous_object24), unsigned long int __dim__Ul_1, void *__p__7tParams_1);
+void __adelete__A0_1_0_0____destructor__PF_Rd0__F_UlPd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object25), unsigned long int __dim__Ul_1, void *__arr__P2tT_1);
+void __adelete__A0_1_0_1____destructor__PF_Rd0___adelete__PF_tVARGS1__F_UlPd0tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_7tParams__P)(void (*__anonymous_object26)(), void *__anonymous_object27), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object28), __attribute__ ((unused)) void (*__adelete__PF_7tParams__1)(void *__anonymous_object29), unsigned long int __dim__Ul_1, void *__arr__P2tT_1, void *__rest__7tParams_1);
+signed int __ato__Fi_PCc__1(const char *__ptr__PCc_1);
+unsigned int __ato__FUi_PCc__1(const char *__ptr__PCc_1);
+signed long int __ato__Fl_PCc__1(const char *__ptr__PCc_1);
+unsigned long int __ato__FUl_PCc__1(const char *__ptr__PCc_1);
+signed long long int __ato__Fq_PCc__1(const char *__ptr__PCc_1);
+unsigned long long int __ato__FUq_PCc__1(const char *__ptr__PCc_1);
+float __ato__Ff_PCc__1(const char *__ptr__PCc_1);
+double __ato__Fd_PCc__1(const char *__ptr__PCc_1);
+long double __ato__Fr_PCc__1(const char *__ptr__PCc_1);
+float _Complex __ato__FXf_PCc__1(const char *__ptr__PCc_1);
+double _Complex __ato__FXd_PCc__1(const char *__ptr__PCc_1);
+long double _Complex __ato__FXr_PCc__1(const char *__ptr__PCc_1);
+signed int __strto__Fi_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+unsigned int __strto__FUi_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+signed long int __strto__Fl_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+unsigned long int __strto__FUl_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+signed long long int __strto__Fq_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+unsigned long long int __strto__FUq_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
+float __strto__Ff_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+double __strto__Fd_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+long double __strto__Fr_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+float _Complex __strto__FXf_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+double _Complex __strto__FXd_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+long double _Complex __strto__FXr_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
+void *__bsearch__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__FPt0_t0PCt0Ul__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object30)(), void *__anonymous_object31, void *__anonymous_object32), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object33)(), void *__anonymous_object34, void *__anonymous_object35), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object36)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object39, void *__anonymous_object40), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object41), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object42, void *__anonymous_object43), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object44), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object45, void *__anonymous_object46), void *__key__2tT_1, const void *__arr__PC2tT_1, unsigned long int __dim__Ul_1);
+unsigned int __bsearch__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__FUi_t0PCt0Ul__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object47)(), void *__anonymous_object48, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object56, void *__anonymous_object57), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object58), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object59, void *__anonymous_object60), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object61), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object62, void *__anonymous_object63), void *__key__2tT_1, const void *__arr__PC2tT_1, unsigned long int __dim__Ul_1);
+void __qsort__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__F_PCt0Ul__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object64)(), void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object67)(), void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object70)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object73, void *__anonymous_object74), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object75), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object78), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object79, void *__anonymous_object80), const void *__arr__PC2tT_1, unsigned long int __dim__Ul_1);
+struct _tuple2_ {
+};
+static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_16ttuple_param_2_0, unsigned long int _alignof_16ttuple_param_2_0, unsigned long int _sizeof_16ttuple_param_2_1, unsigned long int _alignof_16ttuple_param_2_1){
+    ((void)((*_sizeof__tuple2_)=0));
+    ((void)((*_alignof__tuple2_)=1));
+    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_0));
+    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_0));
+
+    if ( ((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_16ttuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)))));
+
+    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_1));
+    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_1));
+
+    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
+
+}
+struct _conc__tuple2_0 {
+    signed int field_0;
+    signed int field_1;
+};
+struct _conc__tuple2_0 __div__FTii__ii__1(signed int __num__i_1, signed int __denom__i_1);
+struct _conc__tuple2_1 {
+    signed long int field_0;
+    signed long int field_1;
+};
+struct _conc__tuple2_1 __div__FTll__ll__1(signed long int __num__l_1, signed long int __denom__l_1);
+struct _conc__tuple2_2 {
+    signed long long int field_0;
+    signed long long int field_1;
+};
+struct _conc__tuple2_2 __div__FTqq__qq__1(signed long long int __num__q_1, signed long long int __denom__q_1);
+void __div__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_divide__PFt0_t0t0____operator_modulus__PFt0_t0t0__FTt0t0__t0t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT2tT_P_PP)(void (*__anonymous_object81)(), __attribute__ ((unused)) void *___retval__operator_divide__2tT_1, void *__anonymous_object82, void *__anonymous_object83), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object84)(), void *__anonymous_object85, void *__anonymous_object86), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object87)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object88, void *__anonymous_object89), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object90, void *__anonymous_object91), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object92), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object93, void *__anonymous_object94), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object95), __attribute__ ((unused)) void *(*___operator_divide__PF2tT_2tT2tT__1)(void *__anonymous_object96, void *__anonymous_object97), __attribute__ ((unused)) void *(*___operator_modulus__PF2tT_2tT2tT__1)(void *__anonymous_object98, void *__anonymous_object99), __attribute__ ((unused)) void *___retval_div__T2tT2tT__1, void *__num__2tT_1, void *__demon__2tT_1);
+unsigned char __abs__FUc_Sc__1(signed char __anonymous_object100);
+signed int abs(signed int __anonymous_object101);
+unsigned long int __abs__FUl_l__1(signed long int __anonymous_object102);
+unsigned long long int __abs__FUq_q__1(signed long long int __anonymous_object103);
+float __abs__Ff_f__1(float __anonymous_object104);
+double __abs__Fd_d__1(double __anonymous_object105);
+long double __abs__Fr_r__1(long double __anonymous_object106);
+float __abs__Ff_Xf__1(float _Complex __anonymous_object107);
+double __abs__Fd_Xd__1(double _Complex __anonymous_object108);
+long double __abs__Fr_Xr__1(long double _Complex __anonymous_object109);
+void __abs__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____constructor__PF_Rt0Z____operator_less__PFi_t0t0____operator_unaryminus__PFt0_t0__Ft0_t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT_P_P)(void (*__anonymous_object110)(), __attribute__ ((unused)) void *___retval__operator_unaryminus__2tT_1, void *__anonymous_object111), __attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object112)(), void *__anonymous_object113, void *__anonymous_object114), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object115)(), void *__anonymous_object116, void *__anonymous_object117), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object118)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object119, void *__anonymous_object120), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object121, void *__anonymous_object122), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object123), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object124, void *__anonymous_object125), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object126), __attribute__ ((unused)) void (*___constructor__PF_R2tTZ__1)(void *__anonymous_object127, long int __anonymous_object128), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object129, void *__anonymous_object130), __attribute__ ((unused)) void *(*___operator_unaryminus__PF2tT_2tT__1)(void *__anonymous_object131), __attribute__ ((unused)) void *___retval_abs__2tT_1, void *__anonymous_object132);
+void __rand48seed__F_l__1(signed long int __s__l_1);
+char __rand48__Fc___1(void);
+signed int __rand48__Fi___1(void);
+unsigned int __rand48__FUi___1(void);
+signed long int __rand48__Fl___1(void);
+unsigned long int __rand48__FUl___1(void);
+float __rand48__Ff___1(void);
+double __rand48__Fd___1(void);
+float _Complex __rand48__FXf___1(void);
+double _Complex __rand48__FXd___1(void);
+long double _Complex __rand48__FXr___1(void);
+void __min__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__Ft0_t0t0__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object133)(), void *__anonymous_object134, void *__anonymous_object135), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object136)(), void *__anonymous_object137, void *__anonymous_object138), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object139)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object140, void *__anonymous_object141), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object142, void *__anonymous_object143), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object144), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object145, void *__anonymous_object146), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object147), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object148, void *__anonymous_object149), __attribute__ ((unused)) void *___retval_min__2tT_1, void *__t1__2tT_1, void *__t2__2tT_1);
+void __max__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_greater__PFi_t0t0__Ft0_t0t0__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object150)(), void *__anonymous_object151, void *__anonymous_object152), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object153)(), void *__anonymous_object154, void *__anonymous_object155), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object156)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object157, void *__anonymous_object158), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object159, void *__anonymous_object160), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object161), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object162, void *__anonymous_object163), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object164), __attribute__ ((unused)) signed int (*___operator_greater__PFi_2tT2tT__1)(void *__anonymous_object165, void *__anonymous_object166), __attribute__ ((unused)) void *___retval_max__2tT_1, void *__t1__2tT_1, void *__t2__2tT_1);
+void __clamp__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0___min__PFt0_t0t0___max__PFt0_t0t0__Ft0_t0t0t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT2tT_P_PP)(void (*__anonymous_object167)(), __attribute__ ((unused)) void *___retval_min__2tT_1, void *__anonymous_object168, void *__anonymous_object169), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object170)(), void *__anonymous_object171, void *__anonymous_object172), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object173)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object174, void *__anonymous_object175), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object176, void *__anonymous_object177), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object178), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object179, void *__anonymous_object180), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object181), __attribute__ ((unused)) void *(*__min__PF2tT_2tT2tT__1)(void *__anonymous_object182, void *__anonymous_object183), __attribute__ ((unused)) void *(*__max__PF2tT_2tT2tT__1)(void *__anonymous_object184, void *__anonymous_object185), __attribute__ ((unused)) void *___retval_clamp__2tT_1, void *__value__2tT_1, void *__min_val__2tT_1, void *__max_val__2tT_1);
+void __swap__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0__F_Rt0Rt0__1(__attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object186)(), void *__anonymous_object187, void *__anonymous_object188), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object189)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object190, void *__anonymous_object191), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object192, void *__anonymous_object193), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object194), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object195, void *__anonymous_object196), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object197), void *__t1__R2tT_1, void *__t2__R2tT_1);
+static inline void ___constructor__F_R13smonitor_desc__1(struct monitor_desc *__this__R13smonitor_desc_1){
+    ((void)((*__this__R13smonitor_desc_1).owner) /* ?{} */);
+    ((void)((*__this__R13smonitor_desc_1).recursion) /* ?{} */);
+    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*__this__R13smonitor_desc_1).mask)));
+    struct spinlock *_tmp_ctor_expr0;
+    ((void)(((void)(_tmp_ctor_expr0=(&(*__this__R13smonitor_desc_1).lock))) , (((void)___constructor__F_R9sspinlock__1(_tmp_ctor_expr0)) , _tmp_ctor_expr0)));
+    ((void)((*__this__R13smonitor_desc_1).owner=((void *)0)));
+    struct __thread_queue_t *_tmp_ctor_expr1;
+    ((void)(((void)(_tmp_ctor_expr1=(&(*__this__R13smonitor_desc_1).entry_queue))) , (((void)___constructor__F_R17s__thread_queue_t__1(_tmp_ctor_expr1)) , _tmp_ctor_expr1)));
+    struct __condition_stack_t *_tmp_ctor_expr2;
+    ((void)(((void)(_tmp_ctor_expr2=(&(*__this__R13smonitor_desc_1).signal_stack))) , (((void)___constructor__F_R20s__condition_stack_t__1(_tmp_ctor_expr2)) , _tmp_ctor_expr2)));
+    ((void)((*__this__R13smonitor_desc_1).recursion=((unsigned int )0)));
+    ((void)((*__this__R13smonitor_desc_1).mask.accepted=((void *)0)));
+    ((void)((*__this__R13smonitor_desc_1).mask.clauses=((void *)0)));
+    ((void)((*__this__R13smonitor_desc_1).mask.size=((signed short int )0)));
+}
+struct monitor_guard_t {
+    struct monitor_desc **__m__PP13smonitor_desc_1;
+    signed int __count__i_1;
+    struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1;
+    unsigned short int __prev_count__Us_1;
+    void (*__prev_func__PF___1)();
+};
+static inline void ___constructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1);
+static inline void ___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1);
+static inline void ___destructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1);
+static inline struct monitor_guard_t ___operator_assign__F16smonitor_guard_t_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1);
+static inline void ___constructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=___src__16smonitor_guard_t_1.__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=___src__16smonitor_guard_t_1.__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=___src__16smonitor_guard_t_1.__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___destructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ^?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1) /* ^?{} */);
+}
+static inline struct monitor_guard_t ___operator_assign__F16smonitor_guard_t_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1){
+    struct monitor_guard_t ___ret__16smonitor_guard_t_1;
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__m__PP13smonitor_desc_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=___src__16smonitor_guard_t_1.__count__i_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__prev_mntrs__PP13smonitor_desc_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=___src__16smonitor_guard_t_1.__prev_count__Us_1));
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=___src__16smonitor_guard_t_1.__prev_func__PF___1));
+    ((void)___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1((&___ret__16smonitor_guard_t_1), ___src__16smonitor_guard_t_1));
+    return ((struct monitor_guard_t )___ret__16smonitor_guard_t_1);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desc_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desci_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_desc_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_descUs_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1, unsigned short int __prev_count__Us_1){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
+}
+static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_descUsPF___autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1, unsigned short int __prev_count__Us_1, void (*__prev_func__PF___1)()){
+    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=__prev_count__Us_1) /* ?{} */);
+    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=__prev_func__PF___1) /* ?{} */);
+}
+static inline signed int ___operator_less__Fi_P13smonitor_descP13smonitor_desc__1(struct monitor_desc *__lhs__P13smonitor_desc_1, struct monitor_desc *__rhs__P13smonitor_desc_1){
+    __attribute__ ((unused)) signed int ___retval__operator_less__i_1;
+    ((void)(___retval__operator_less__i_1=(((signed long int )__lhs__P13smonitor_desc_1)<((signed long int )__rhs__P13smonitor_desc_1))) /* ?{} */);
+    return ((signed int )___retval__operator_less__i_1);
+}
+void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPF____1(struct monitor_guard_t *__this__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, void (*__func__PF___1)());
+void ___destructor__F_R16smonitor_guard_t__1(struct monitor_guard_t *__this__R16smonitor_guard_t_1);
+struct __condition_criterion_t {
+    _Bool __ready__b_1;
+    struct monitor_desc *__target__P13smonitor_desc_1;
+    struct __condition_node_t *__owner__P19s__condition_node_t_1;
+    struct __condition_criterion_t *__next__P24s__condition_criterion_t_1;
+};
+static inline void ___constructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1);
+static inline void ___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1);
+static inline void ___destructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1);
+static inline struct __condition_criterion_t ___operator_assign__F24s__condition_criterion_t_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1);
+static inline void ___constructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=___src__24s__condition_criterion_t_1.__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=___src__24s__condition_criterion_t_1.__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=___src__24s__condition_criterion_t_1.__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=___src__24s__condition_criterion_t_1.__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___destructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ^?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ^?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ^?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1) /* ^?{} */);
+}
+static inline struct __condition_criterion_t ___operator_assign__F24s__condition_criterion_t_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1){
+    struct __condition_criterion_t ___ret__24s__condition_criterion_t_1;
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=___src__24s__condition_criterion_t_1.__ready__b_1));
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=___src__24s__condition_criterion_t_1.__target__P13smonitor_desc_1));
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=___src__24s__condition_criterion_t_1.__owner__P19s__condition_node_t_1));
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=___src__24s__condition_criterion_t_1.__next__P24s__condition_criterion_t_1));
+    ((void)___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1((&___ret__24s__condition_criterion_t_1), ___src__24s__condition_criterion_t_1));
+    return ((struct __condition_criterion_t )___ret__24s__condition_criterion_t_1);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tb_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_desc_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_descP19s__condition_node_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1, struct __condition_node_t *__owner__P19s__condition_node_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_descP19s__condition_node_tP24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1, struct __condition_node_t *__owner__P19s__condition_node_t_1, struct __condition_criterion_t *__next__P24s__condition_criterion_t_1){
+    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=__owner__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=__next__P24s__condition_criterion_t_1) /* ?{} */);
+}
+struct __condition_node_t {
+    struct thread_desc *__waiting_thread__P12sthread_desc_1;
+    struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1;
+    unsigned short int __count__Us_1;
+    struct __condition_node_t *__next__P19s__condition_node_t_1;
+    unsigned long int __user_info__Ul_1;
+};
+static inline void ___constructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1);
+static inline void ___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1);
+static inline void ___destructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1);
+static inline struct __condition_node_t ___operator_assign__F19s__condition_node_t_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1);
+static inline void ___constructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=___src__19s__condition_node_t_1.__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=___src__19s__condition_node_t_1.__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=___src__19s__condition_node_t_1.__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=___src__19s__condition_node_t_1.__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1=___src__19s__condition_node_t_1.__user_info__Ul_1) /* ?{} */);
+}
+static inline void ___destructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ^?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1) /* ^?{} */);
+}
+static inline struct __condition_node_t ___operator_assign__F19s__condition_node_t_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1){
+    struct __condition_node_t ___ret__19s__condition_node_t_1;
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=___src__19s__condition_node_t_1.__waiting_thread__P12sthread_desc_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=___src__19s__condition_node_t_1.__criteria__P24s__condition_criterion_t_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=___src__19s__condition_node_t_1.__count__Us_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=___src__19s__condition_node_t_1.__next__P19s__condition_node_t_1));
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1=___src__19s__condition_node_t_1.__user_info__Ul_1));
+    ((void)___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1((&___ret__19s__condition_node_t_1), ___src__19s__condition_node_t_1));
+    return ((struct __condition_node_t )___ret__19s__condition_node_t_1);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_desc_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUs_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUsP19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1, struct __condition_node_t *__next__P19s__condition_node_t_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
+}
+static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUsP19s__condition_node_tUl_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1, struct __condition_node_t *__next__P19s__condition_node_t_1, unsigned long int __user_info__Ul_1){
+    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=__next__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1=__user_info__Ul_1) /* ?{} */);
+}
+struct __condition_blocked_queue_t {
+    struct __condition_node_t *__head__P19s__condition_node_t_1;
+    struct __condition_node_t **__tail__PP19s__condition_node_t_1;
+};
+static inline void ___constructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1);
+static inline void ___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1);
+static inline void ___destructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1);
+static inline struct __condition_blocked_queue_t ___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1);
+static inline void ___constructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+static inline void ___destructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ^?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1) /* ^?{} */);
+}
+static inline struct __condition_blocked_queue_t ___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1){
+    struct __condition_blocked_queue_t ___ret__28s__condition_blocked_queue_t_1;
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1));
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__tail__PP19s__condition_node_t_1));
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&___ret__28s__condition_blocked_queue_t_1), ___src__28s__condition_blocked_queue_t_1));
+    return ((struct __condition_blocked_queue_t )___ret__28s__condition_blocked_queue_t_1);
+}
+static inline void ___constructor__F_R28s__condition_blocked_queue_tP19s__condition_node_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_node_t *__head__P19s__condition_node_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+static inline void ___constructor__F_R28s__condition_blocked_queue_tP19s__condition_node_tPP19s__condition_node_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_node_t *__head__P19s__condition_node_t_1, struct __condition_node_t **__tail__PP19s__condition_node_t_1){
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=__head__P19s__condition_node_t_1) /* ?{} */);
+    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=__tail__PP19s__condition_node_t_1) /* ?{} */);
+}
+void ___constructor__F_R28s__condition_blocked_queue_t__1(struct __condition_blocked_queue_t *__anonymous_object198);
+void __append__F_P28s__condition_blocked_queue_tP19s__condition_node_t__1(struct __condition_blocked_queue_t *__anonymous_object199, struct __condition_node_t *__anonymous_object200);
+struct __condition_node_t *__pop_head__FP19s__condition_node_t_P28s__condition_blocked_queue_t__1(struct __condition_blocked_queue_t *__anonymous_object201);
+struct condition {
+    struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1;
+    struct monitor_desc **__monitors__PP13smonitor_desc_1;
+    unsigned short int __monitor_count__Us_1;
+};
+static inline void ___constructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1);
+static inline void ___constructor__F_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1);
+static inline void ___destructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1);
+static inline struct condition ___operator_assign__F10scondition_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1);
+static inline void ___constructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t__1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), ___src__10scondition_1.__blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=___src__10scondition_1.__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=___src__10scondition_1.__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___destructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1){
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ^?{} */);
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ^?{} */);
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+}
+static inline struct condition ___operator_assign__F10scondition_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1){
+    struct condition ___ret__10scondition_1;
+    struct __condition_blocked_queue_t _tmp_cp4;
+    struct __condition_blocked_queue_t _tmp_cp_ret29;
+    ((void)(((void)(_tmp_cp_ret29=___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), (((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&_tmp_cp4), ___src__10scondition_1.__blocked__28s__condition_blocked_queue_t_1)) , _tmp_cp4)))) , _tmp_cp_ret29));
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&_tmp_cp_ret29)));
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&_tmp_cp4)));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=___src__10scondition_1.__monitors__PP13smonitor_desc_1));
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=___src__10scondition_1.__monitor_count__Us_1));
+    ((void)___constructor__F_R10scondition10scondition_autogen___1((&___ret__10scondition_1), ___src__10scondition_1));
+    return ((struct condition )___ret__10scondition_1);
+}
+static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_t_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_tPP13smonitor_desc_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1, struct monitor_desc **__monitors__PP13smonitor_desc_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_tPP13smonitor_descUs_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1, struct monitor_desc **__monitors__PP13smonitor_desc_1, unsigned short int __monitor_count__Us_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
+    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=__monitor_count__Us_1) /* ?{} */);
+}
+static inline void ___constructor__F_R10scondition__1(struct condition *__this__R10scondition_1){
+    ((void)___constructor__F_R28s__condition_blocked_queue_t__1((&(*__this__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
+    ((void)((*__this__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
+    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1=((void *)0)));
+    ((void)((*__this__R10scondition_1).__monitor_count__Us_1=((unsigned short int )0)));
+}
+static inline void ___destructor__F_R10scondition__1(struct condition *__this__R10scondition_1){
+    ((void)free(((void *)(*__this__R10scondition_1).__monitors__PP13smonitor_desc_1)));
+    ((void)((*__this__R10scondition_1).__monitor_count__Us_1) /* ^?{} */);
+    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ^?{} */);
+    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&(*__this__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
+}
+void __wait__F_P10sconditionUl__1(struct condition *__this__P10scondition_1, unsigned long int __user_info__Ul_1);
+_Bool __signal__Fb_P10scondition__1(struct condition *__this__P10scondition_1);
+_Bool __signal_block__Fb_P10scondition__1(struct condition *__this__P10scondition_1);
+static inline _Bool __is_empty__Fb_P10scondition__1(struct condition *__this__P10scondition_1){
+    __attribute__ ((unused)) _Bool ___retval_is_empty__b_1;
+    ((void)(___retval_is_empty__b_1=((_Bool )(!(*__this__P10scondition_1).__blocked__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1))) /* ?{} */);
+    return ((_Bool )___retval_is_empty__b_1);
+}
+unsigned long int __front__FUl_P10scondition__1(struct condition *__this__P10scondition_1);
+struct __acceptable_t {
+    struct __monitor_group_t __anonymous_object202;
+    _Bool __is_dtor__b_1;
+};
+static inline void ___constructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1);
+static inline void ___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1);
+static inline void ___destructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1);
+static inline struct __acceptable_t ___operator_assign__F15s__acceptable_t_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1);
+static inline void ___constructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1) /* ?{} */);
+}
+static inline void ___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=___src__15s__acceptable_t_1.__is_dtor__b_1) /* ?{} */);
+}
+static inline void ___destructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1) /* ^?{} */);
+}
+static inline struct __acceptable_t ___operator_assign__F15s__acceptable_t_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1){
+    struct __acceptable_t ___ret__15s__acceptable_t_1;
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=___src__15s__acceptable_t_1.__is_dtor__b_1));
+    ((void)___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1((&___ret__15s__acceptable_t_1), ___src__15s__acceptable_t_1));
+    return ((struct __acceptable_t )___ret__15s__acceptable_t_1);
+}
+static inline void ___constructor__F_R15s__acceptable_tb_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, _Bool __is_dtor__b_1){
+    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=__is_dtor__b_1) /* ?{} */);
+}
+void ____waitfor_internal__F_RC17s__waitfor_mask_ti__1(const struct __waitfor_mask_t *__mask__RC17s__waitfor_mask_t_1, signed int __duration__i_1);
+struct M;
+static inline struct monitor_desc *__get_monitor__FP13smonitor_desc_R2sM__1(struct M *__this__R2sM_1);
+struct M {
+    struct monitor_desc ____mon__13smonitor_desc_1;
+};
+static inline void ___constructor__F_R2sM_autogen___1(struct M *___dst__R2sM_1);
+static inline void ___constructor__F_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1);
+static inline void ___destructor__F_MR2sM_autogen___1(struct M *___dst__MR2sM_1);
+static inline struct M ___operator_assign__F2sM_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1);
+static inline void ___constructor__F_R2sM_autogen___1(struct M *___dst__R2sM_1){
+    ((void)___constructor__F_R13smonitor_desc__1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1)));
+}
+static inline void ___constructor__F_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1){
+    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), ___src__2sM_1.____mon__13smonitor_desc_1));
+}
+static inline void ___destructor__F_MR2sM_autogen___1(struct M *___dst__MR2sM_1){
+    struct monitor_desc *_tmp_cp_ret30;
+    struct monitor_desc *____monitors__A0P13smonitor_desc_2[((unsigned long int )1)] = { ((struct monitor_desc *)(((void)(_tmp_cp_ret30=__get_monitor__FP13smonitor_desc_R2sM__1(((struct M *)___dst__MR2sM_1)))) , _tmp_cp_ret30)) };
+    ((void)(_tmp_cp_ret30) /* ^?{} */);
+    struct monitor_guard_t ____guard__16smonitor_guard_t_2;
+    ((void)___constructor__F_R16smonitor_guard_tPP13smonitor_desciPF____1((&____guard__16smonitor_guard_t_2), ____monitors__A0P13smonitor_desc_2, ((signed int )1), ((void (*)())((void (*)())___destructor__F_MR2sM_autogen___1))));
+    ((void)___destructor__F_R13smonitor_desc_autogen___1((&(*___dst__MR2sM_1).____mon__13smonitor_desc_1)));
+    ((void)___destructor__F_R16smonitor_guard_t__1((&____guard__16smonitor_guard_t_2)));
+}
+static inline struct M ___operator_assign__F2sM_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1){
+    struct M ___ret__2sM_1;
+    struct monitor_desc _tmp_cp5;
+    struct monitor_desc _tmp_cp_ret31;
+    ((void)(((void)(_tmp_cp_ret31=___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), (((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&_tmp_cp5), ___src__2sM_1.____mon__13smonitor_desc_1)) , _tmp_cp5)))) , _tmp_cp_ret31));
+    ((void)___destructor__F_R13smonitor_desc_autogen___1((&_tmp_cp_ret31)));
+    ((void)___destructor__F_R13smonitor_desc_autogen___1((&_tmp_cp5)));
+    ((void)___constructor__F_R2sM2sM_autogen___1((&___ret__2sM_1), ___src__2sM_1));
+    return ((struct M )___ret__2sM_1);
+}
+static inline void ___constructor__F_R2sM13smonitor_desc_autogen___1(struct M *___dst__R2sM_1, struct monitor_desc ____mon__13smonitor_desc_1){
+    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), ____mon__13smonitor_desc_1));
+}
+static inline struct monitor_desc *__get_monitor__FP13smonitor_desc_R2sM__1(struct M *__this__R2sM_1){
+    struct monitor_desc *__ret__P13smonitor_desc_1;
+    ((void)(__ret__P13smonitor_desc_1=(&(*__this__R2sM_1).____mon__13smonitor_desc_1)) /* ?{} */);
+    return ((struct monitor_desc *)__ret__P13smonitor_desc_1);
+}
+struct M __a__2sM_1;
+void __f1__F_MR2sM__1(struct M *__a__MR2sM_1);
+void __f2__F_MR2sM__1(struct M *__a__MR2sM_1);
+void __f2__F_MR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1);
+void __f3__F_MR2sM__1(struct M *__a__MR2sM_1);
+void __f3__F_MR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1);
+void __f3__F_MR2sMMR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1, struct M *__c__MR2sM_1);
+void __foo__F___1(){
+    {
+        struct __acceptable_t __acceptables_0[1];
+        ((void)__builtin_memset(((void *)__acceptables_0), 0, sizeof(__acceptables_0)));
+        _Bool __do_run_0 = 0;
+        struct monitor_desc *__monitors_0[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_0[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_0[((signed long int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_0[((signed long int )0)].__anonymous_object202.list=__monitors_0));
+            ((void)(__acceptables_0[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_0=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_0 = -1;
+        if ( __do_run_0 ) {
+            signed short int __index_0 = -1;
+            struct __waitfor_mask_t __mask_0 = { (&__index_0), __acceptables_0, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_0), __timeout_0));
+            switch ( __index_0 ) {
+                case 0:
+                    {
+                        ((void)1);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_1[1];
+        ((void)__builtin_memset(((void *)__acceptables_1), 0, sizeof(__acceptables_1)));
+        _Bool __do_run_1 = 0;
+        struct monitor_desc *__monitors_1[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_1[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_1[((signed long int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_1[((signed long int )0)].__anonymous_object202.list=__monitors_1));
+            ((void)(__acceptables_1[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_1=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_1 = -1;
+        if ( __do_run_1 ) {
+            signed short int __index_1 = -1;
+            struct __waitfor_mask_t __mask_1 = { (&__index_1), __acceptables_1, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_1), __timeout_1));
+            switch ( __index_1 ) {
+                case 0:
+                    {
+                        ((void)2);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_2[1];
+        ((void)__builtin_memset(((void *)__acceptables_2), 0, sizeof(__acceptables_2)));
+        _Bool __do_run_2 = 0;
+        struct monitor_desc *__monitors_2[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_2[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_2[((signed long int )0)].__anonymous_object202.func=((void (*)())__f2__F_MR2sM__1)));
+            ((void)(__acceptables_2[((signed long int )0)].__anonymous_object202.list=__monitors_2));
+            ((void)(__acceptables_2[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_2=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_2 = -1;
+        if ( __do_run_2 ) {
+            signed short int __index_2 = -1;
+            struct __waitfor_mask_t __mask_2 = { (&__index_2), __acceptables_2, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_2), __timeout_2));
+            switch ( __index_2 ) {
+                case 0:
+                    {
+                        ((void)3);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_3[1];
+        ((void)__builtin_memset(((void *)__acceptables_3), 0, sizeof(__acceptables_3)));
+        _Bool __do_run_3 = 0;
+        struct monitor_desc *__monitors_3[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((((signed int )1)<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_3[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_3[((signed long int )0)].__anonymous_object202.func=((void (*)())__f2__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_3[((signed long int )0)].__anonymous_object202.list=__monitors_3));
+            ((void)(__acceptables_3[((signed long int )0)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_3=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_3 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_3=((unsigned long long int )100)));
+            ((void)(__do_run_3=((_Bool )1)));
+        }
+
+        if ( __do_run_3 ) {
+            signed short int __index_3 = -1;
+            struct __waitfor_mask_t __mask_3 = { (&__index_3), __acceptables_3, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_3), __timeout_3));
+            switch ( __index_3 ) {
+                case 0:
+                    {
+                        ((void)4);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)5);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_4[1];
+        ((void)__builtin_memset(((void *)__acceptables_4), 0, sizeof(__acceptables_4)));
+        _Bool __do_run_4 = 0;
+        struct monitor_desc *__monitors_4[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((2<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_4[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_4[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sM__1)));
+            ((void)(__acceptables_4[((signed long int )0)].__anonymous_object202.list=__monitors_4));
+            ((void)(__acceptables_4[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_4=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_4 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_4=0));
+            ((void)(__do_run_4=((_Bool )1)));
+        }
+
+        if ( __do_run_4 ) {
+            signed short int __index_4 = -1;
+            struct __waitfor_mask_t __mask_4 = { (&__index_4), __acceptables_4, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_4), __timeout_4));
+            switch ( __index_4 ) {
+                case 0:
+                    {
+                        ((void)5);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)6);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_5[1];
+        ((void)__builtin_memset(((void *)__acceptables_5), 0, sizeof(__acceptables_5)));
+        _Bool __do_run_5 = 0;
+        struct monitor_desc *__monitors_5[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((3<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_5[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_5[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_5[((signed long int )0)].__anonymous_object202.list=__monitors_5));
+            ((void)(__acceptables_5[((signed long int )0)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_5=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_5 = -1;
+        if ( ((signed int )((4<3)!=((signed int )0))) ) {
+            ((void)(__timeout_5=((unsigned long long int )101)));
+            ((void)(__do_run_5=((_Bool )1)));
+        }
+
+        if ( ((signed int )((5<3)!=((signed int )0))) ) {
+            ((void)(__timeout_5=0));
+            ((void)(__do_run_5=((_Bool )1)));
+        }
+
+        if ( __do_run_5 ) {
+            signed short int __index_5 = -1;
+            struct __waitfor_mask_t __mask_5 = { (&__index_5), __acceptables_5, 1 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_5), __timeout_5));
+            switch ( __index_5 ) {
+                case 0:
+                    {
+                        ((void)7);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)8);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)9);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_6[2];
+        ((void)__builtin_memset(((void *)__acceptables_6), 0, sizeof(__acceptables_6)));
+        _Bool __do_run_6 = 0;
+        struct monitor_desc *__monitors_6[3] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((6<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_6[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_6[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sMMR2sM__1)));
+            ((void)(__acceptables_6[((signed long int )0)].__anonymous_object202.list=__monitors_6));
+            ((void)(__acceptables_6[((signed long int )0)].__anonymous_object202.size=((signed short int )3)));
+            ((void)(__do_run_6=((_Bool )1)));
+        }
+
+        struct monitor_desc *__monitors_7[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((7<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_6[((signed long int )1)].__is_dtor__b_1=0));
+            ((void)(__acceptables_6[((signed long int )1)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_6[((signed long int )1)].__anonymous_object202.list=__monitors_7));
+            ((void)(__acceptables_6[((signed long int )1)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_6=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_6 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_6=0));
+            ((void)(__do_run_6=((_Bool )1)));
+        }
+
+        if ( __do_run_6 ) {
+            signed short int __index_6 = -1;
+            struct __waitfor_mask_t __mask_6 = { (&__index_6), __acceptables_6, 2 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_6), __timeout_6));
+            switch ( __index_6 ) {
+                case 0:
+                    {
+                        ((void)10);
+                    }
+                    break;
+                case 1:
+                    {
+                        ((void)11);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)12);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_7[2];
+        ((void)__builtin_memset(((void *)__acceptables_7), 0, sizeof(__acceptables_7)));
+        _Bool __do_run_7 = 0;
+        struct monitor_desc *__monitors_8[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((8<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_7[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_7[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_7[((signed long int )0)].__anonymous_object202.list=__monitors_8));
+            ((void)(__acceptables_7[((signed long int )0)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_7=((_Bool )1)));
+        }
+
+        struct monitor_desc *__monitors_9[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_7[((signed long int )1)].__is_dtor__b_1=0));
+            ((void)(__acceptables_7[((signed long int )1)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_7[((signed long int )1)].__anonymous_object202.list=__monitors_9));
+            ((void)(__acceptables_7[((signed long int )1)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_7=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_7 = -1;
+        if ( ((signed int )((9<3)!=((signed int )0))) ) {
+            ((void)(__timeout_7=((unsigned long long int )102)));
+            ((void)(__do_run_7=((_Bool )1)));
+        }
+
+        if ( __do_run_7 ) {
+            signed short int __index_7 = -1;
+            struct __waitfor_mask_t __mask_7 = { (&__index_7), __acceptables_7, 2 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_7), __timeout_7));
+            switch ( __index_7 ) {
+                case 0:
+                    {
+                        ((void)13);
+                    }
+                    break;
+                case 1:
+                    {
+                        ((void)14);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)15);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+    {
+        struct __acceptable_t __acceptables_8[2];
+        ((void)__builtin_memset(((void *)__acceptables_8), 0, sizeof(__acceptables_8)));
+        _Bool __do_run_8 = 0;
+        struct monitor_desc *__monitors_10[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( ((signed int )((10<3)!=((signed int )0))) ) {
+            ((void)(__acceptables_8[((signed long int )0)].__is_dtor__b_1=0));
+            ((void)(__acceptables_8[((signed long int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
+            ((void)(__acceptables_8[((signed long int )0)].__anonymous_object202.list=__monitors_10));
+            ((void)(__acceptables_8[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        struct monitor_desc *__monitors_11[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
+        if ( 1 ) {
+            ((void)(__acceptables_8[((signed long int )1)].__is_dtor__b_1=0));
+            ((void)(__acceptables_8[((signed long int )1)].__anonymous_object202.func=((void (*)())__f2__F_MR2sMMR2sM__1)));
+            ((void)(__acceptables_8[((signed long int )1)].__anonymous_object202.list=__monitors_11));
+            ((void)(__acceptables_8[((signed long int )1)].__anonymous_object202.size=((signed short int )2)));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        unsigned long long int __timeout_8 = -1;
+        if ( 1 ) {
+            ((void)(__timeout_8=((unsigned long long int )103)));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        if ( ((signed int )((11<3)!=((signed int )0))) ) {
+            ((void)(__timeout_8=0));
+            ((void)(__do_run_8=((_Bool )1)));
+        }
+
+        if ( __do_run_8 ) {
+            signed short int __index_8 = -1;
+            struct __waitfor_mask_t __mask_8 = { (&__index_8), __acceptables_8, 2 };
+            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_8), __timeout_8));
+            switch ( __index_8 ) {
+                case 0:
+                    {
+                        ((void)16);
+                    }
+                    break;
+                case 1:
+                    {
+                        ((void)17);
+                    }
+                    break;
+                case -2:
+                    {
+                        ((void)18);
+                    }
+                    break;
+                case -1:
+                    {
+                        ((void)19);
+                    }
+                    break;
+            }
+
+        }
+
+    }
+
+}
+signed int __main__Fi___1(){
+    __attribute__ ((unused)) signed int ___retval_main__i_1;
+    ((void)(___retval_main__i_1=0) /* ?{} */);
+    return ((signed int )___retval_main__i_1);
+}
+__attribute__ ((constructor)) static void _init_sched_ext_parse(void){
+    ((void)___constructor__F_R2sM_autogen___1((&__a__2sM_1)));
+}
+__attribute__ ((destructor)) static void _destroy_sched_ext_parse(void){
+    ((void)___destructor__F_MR2sM_autogen___1((&__a__2sM_1)));
+}
+static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi___1(); }
+__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
+__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
+__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
+extern signed int printf(const char *__restrict __format, ...);
+static inline signed int invoke_main(signed int argc, char **argv, char **envp);
+signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
+    __attribute__ ((unused)) signed int ___retval_main__i_1;
+    signed int _tmp_cp_ret0;
+    ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */);
+    ((void)(_tmp_cp_ret0) /* ^?{} */);
+    return ((signed int )___retval_main__i_1);
+}
Index: src/tests/.expect/concurrent/sched-ext-barge.txt
===================================================================
--- src/tests/.expect/concurrent/sched-ext-barge.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/.expect/concurrent/sched-ext-barge.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,5002 @@
+Starting
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
+627
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+640
+641
+642
+643
+644
+645
+646
+647
+648
+649
+650
+651
+652
+653
+654
+655
+656
+657
+658
+659
+660
+661
+662
+663
+664
+665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
+699
+700
+701
+702
+703
+704
+705
+706
+707
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+720
+721
+722
+723
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+736
+737
+738
+739
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+752
+753
+754
+755
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+768
+769
+770
+771
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+784
+785
+786
+787
+788
+789
+790
+791
+792
+793
+794
+795
+796
+797
+798
+799
+800
+801
+802
+803
+804
+805
+806
+807
+808
+809
+810
+811
+812
+813
+814
+815
+816
+817
+818
+819
+820
+821
+822
+823
+824
+825
+826
+827
+828
+829
+830
+831
+832
+833
+834
+835
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+848
+849
+850
+851
+852
+853
+854
+855
+856
+857
+858
+859
+860
+861
+862
+863
+864
+865
+866
+867
+868
+869
+870
+871
+872
+873
+874
+875
+876
+877
+878
+879
+880
+881
+882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921
+922
+923
+924
+925
+926
+927
+928
+929
+930
+931
+932
+933
+934
+935
+936
+937
+938
+939
+940
+941
+942
+943
+944
+945
+946
+947
+948
+949
+950
+951
+952
+953
+954
+955
+956
+957
+958
+959
+960
+961
+962
+963
+964
+965
+966
+967
+968
+969
+970
+971
+972
+973
+974
+975
+976
+977
+978
+979
+980
+981
+982
+983
+984
+985
+986
+987
+988
+989
+990
+991
+992
+993
+994
+995
+996
+997
+998
+999
+1000
+1001
+1002
+1003
+1004
+1005
+1006
+1007
+1008
+1009
+1010
+1011
+1012
+1013
+1014
+1015
+1016
+1017
+1018
+1019
+1020
+1021
+1022
+1023
+1024
+1025
+1026
+1027
+1028
+1029
+1030
+1031
+1032
+1033
+1034
+1035
+1036
+1037
+1038
+1039
+1040
+1041
+1042
+1043
+1044
+1045
+1046
+1047
+1048
+1049
+1050
+1051
+1052
+1053
+1054
+1055
+1056
+1057
+1058
+1059
+1060
+1061
+1062
+1063
+1064
+1065
+1066
+1067
+1068
+1069
+1070
+1071
+1072
+1073
+1074
+1075
+1076
+1077
+1078
+1079
+1080
+1081
+1082
+1083
+1084
+1085
+1086
+1087
+1088
+1089
+1090
+1091
+1092
+1093
+1094
+1095
+1096
+1097
+1098
+1099
+1100
+1101
+1102
+1103
+1104
+1105
+1106
+1107
+1108
+1109
+1110
+1111
+1112
+1113
+1114
+1115
+1116
+1117
+1118
+1119
+1120
+1121
+1122
+1123
+1124
+1125
+1126
+1127
+1128
+1129
+1130
+1131
+1132
+1133
+1134
+1135
+1136
+1137
+1138
+1139
+1140
+1141
+1142
+1143
+1144
+1145
+1146
+1147
+1148
+1149
+1150
+1151
+1152
+1153
+1154
+1155
+1156
+1157
+1158
+1159
+1160
+1161
+1162
+1163
+1164
+1165
+1166
+1167
+1168
+1169
+1170
+1171
+1172
+1173
+1174
+1175
+1176
+1177
+1178
+1179
+1180
+1181
+1182
+1183
+1184
+1185
+1186
+1187
+1188
+1189
+1190
+1191
+1192
+1193
+1194
+1195
+1196
+1197
+1198
+1199
+1200
+1201
+1202
+1203
+1204
+1205
+1206
+1207
+1208
+1209
+1210
+1211
+1212
+1213
+1214
+1215
+1216
+1217
+1218
+1219
+1220
+1221
+1222
+1223
+1224
+1225
+1226
+1227
+1228
+1229
+1230
+1231
+1232
+1233
+1234
+1235
+1236
+1237
+1238
+1239
+1240
+1241
+1242
+1243
+1244
+1245
+1246
+1247
+1248
+1249
+1250
+1251
+1252
+1253
+1254
+1255
+1256
+1257
+1258
+1259
+1260
+1261
+1262
+1263
+1264
+1265
+1266
+1267
+1268
+1269
+1270
+1271
+1272
+1273
+1274
+1275
+1276
+1277
+1278
+1279
+1280
+1281
+1282
+1283
+1284
+1285
+1286
+1287
+1288
+1289
+1290
+1291
+1292
+1293
+1294
+1295
+1296
+1297
+1298
+1299
+1300
+1301
+1302
+1303
+1304
+1305
+1306
+1307
+1308
+1309
+1310
+1311
+1312
+1313
+1314
+1315
+1316
+1317
+1318
+1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
+1329
+1330
+1331
+1332
+1333
+1334
+1335
+1336
+1337
+1338
+1339
+1340
+1341
+1342
+1343
+1344
+1345
+1346
+1347
+1348
+1349
+1350
+1351
+1352
+1353
+1354
+1355
+1356
+1357
+1358
+1359
+1360
+1361
+1362
+1363
+1364
+1365
+1366
+1367
+1368
+1369
+1370
+1371
+1372
+1373
+1374
+1375
+1376
+1377
+1378
+1379
+1380
+1381
+1382
+1383
+1384
+1385
+1386
+1387
+1388
+1389
+1390
+1391
+1392
+1393
+1394
+1395
+1396
+1397
+1398
+1399
+1400
+1401
+1402
+1403
+1404
+1405
+1406
+1407
+1408
+1409
+1410
+1411
+1412
+1413
+1414
+1415
+1416
+1417
+1418
+1419
+1420
+1421
+1422
+1423
+1424
+1425
+1426
+1427
+1428
+1429
+1430
+1431
+1432
+1433
+1434
+1435
+1436
+1437
+1438
+1439
+1440
+1441
+1442
+1443
+1444
+1445
+1446
+1447
+1448
+1449
+1450
+1451
+1452
+1453
+1454
+1455
+1456
+1457
+1458
+1459
+1460
+1461
+1462
+1463
+1464
+1465
+1466
+1467
+1468
+1469
+1470
+1471
+1472
+1473
+1474
+1475
+1476
+1477
+1478
+1479
+1480
+1481
+1482
+1483
+1484
+1485
+1486
+1487
+1488
+1489
+1490
+1491
+1492
+1493
+1494
+1495
+1496
+1497
+1498
+1499
+1500
+1501
+1502
+1503
+1504
+1505
+1506
+1507
+1508
+1509
+1510
+1511
+1512
+1513
+1514
+1515
+1516
+1517
+1518
+1519
+1520
+1521
+1522
+1523
+1524
+1525
+1526
+1527
+1528
+1529
+1530
+1531
+1532
+1533
+1534
+1535
+1536
+1537
+1538
+1539
+1540
+1541
+1542
+1543
+1544
+1545
+1546
+1547
+1548
+1549
+1550
+1551
+1552
+1553
+1554
+1555
+1556
+1557
+1558
+1559
+1560
+1561
+1562
+1563
+1564
+1565
+1566
+1567
+1568
+1569
+1570
+1571
+1572
+1573
+1574
+1575
+1576
+1577
+1578
+1579
+1580
+1581
+1582
+1583
+1584
+1585
+1586
+1587
+1588
+1589
+1590
+1591
+1592
+1593
+1594
+1595
+1596
+1597
+1598
+1599
+1600
+1601
+1602
+1603
+1604
+1605
+1606
+1607
+1608
+1609
+1610
+1611
+1612
+1613
+1614
+1615
+1616
+1617
+1618
+1619
+1620
+1621
+1622
+1623
+1624
+1625
+1626
+1627
+1628
+1629
+1630
+1631
+1632
+1633
+1634
+1635
+1636
+1637
+1638
+1639
+1640
+1641
+1642
+1643
+1644
+1645
+1646
+1647
+1648
+1649
+1650
+1651
+1652
+1653
+1654
+1655
+1656
+1657
+1658
+1659
+1660
+1661
+1662
+1663
+1664
+1665
+1666
+1667
+1668
+1669
+1670
+1671
+1672
+1673
+1674
+1675
+1676
+1677
+1678
+1679
+1680
+1681
+1682
+1683
+1684
+1685
+1686
+1687
+1688
+1689
+1690
+1691
+1692
+1693
+1694
+1695
+1696
+1697
+1698
+1699
+1700
+1701
+1702
+1703
+1704
+1705
+1706
+1707
+1708
+1709
+1710
+1711
+1712
+1713
+1714
+1715
+1716
+1717
+1718
+1719
+1720
+1721
+1722
+1723
+1724
+1725
+1726
+1727
+1728
+1729
+1730
+1731
+1732
+1733
+1734
+1735
+1736
+1737
+1738
+1739
+1740
+1741
+1742
+1743
+1744
+1745
+1746
+1747
+1748
+1749
+1750
+1751
+1752
+1753
+1754
+1755
+1756
+1757
+1758
+1759
+1760
+1761
+1762
+1763
+1764
+1765
+1766
+1767
+1768
+1769
+1770
+1771
+1772
+1773
+1774
+1775
+1776
+1777
+1778
+1779
+1780
+1781
+1782
+1783
+1784
+1785
+1786
+1787
+1788
+1789
+1790
+1791
+1792
+1793
+1794
+1795
+1796
+1797
+1798
+1799
+1800
+1801
+1802
+1803
+1804
+1805
+1806
+1807
+1808
+1809
+1810
+1811
+1812
+1813
+1814
+1815
+1816
+1817
+1818
+1819
+1820
+1821
+1822
+1823
+1824
+1825
+1826
+1827
+1828
+1829
+1830
+1831
+1832
+1833
+1834
+1835
+1836
+1837
+1838
+1839
+1840
+1841
+1842
+1843
+1844
+1845
+1846
+1847
+1848
+1849
+1850
+1851
+1852
+1853
+1854
+1855
+1856
+1857
+1858
+1859
+1860
+1861
+1862
+1863
+1864
+1865
+1866
+1867
+1868
+1869
+1870
+1871
+1872
+1873
+1874
+1875
+1876
+1877
+1878
+1879
+1880
+1881
+1882
+1883
+1884
+1885
+1886
+1887
+1888
+1889
+1890
+1891
+1892
+1893
+1894
+1895
+1896
+1897
+1898
+1899
+1900
+1901
+1902
+1903
+1904
+1905
+1906
+1907
+1908
+1909
+1910
+1911
+1912
+1913
+1914
+1915
+1916
+1917
+1918
+1919
+1920
+1921
+1922
+1923
+1924
+1925
+1926
+1927
+1928
+1929
+1930
+1931
+1932
+1933
+1934
+1935
+1936
+1937
+1938
+1939
+1940
+1941
+1942
+1943
+1944
+1945
+1946
+1947
+1948
+1949
+1950
+1951
+1952
+1953
+1954
+1955
+1956
+1957
+1958
+1959
+1960
+1961
+1962
+1963
+1964
+1965
+1966
+1967
+1968
+1969
+1970
+1971
+1972
+1973
+1974
+1975
+1976
+1977
+1978
+1979
+1980
+1981
+1982
+1983
+1984
+1985
+1986
+1987
+1988
+1989
+1990
+1991
+1992
+1993
+1994
+1995
+1996
+1997
+1998
+1999
+2000
+2001
+2002
+2003
+2004
+2005
+2006
+2007
+2008
+2009
+2010
+2011
+2012
+2013
+2014
+2015
+2016
+2017
+2018
+2019
+2020
+2021
+2022
+2023
+2024
+2025
+2026
+2027
+2028
+2029
+2030
+2031
+2032
+2033
+2034
+2035
+2036
+2037
+2038
+2039
+2040
+2041
+2042
+2043
+2044
+2045
+2046
+2047
+2048
+2049
+2050
+2051
+2052
+2053
+2054
+2055
+2056
+2057
+2058
+2059
+2060
+2061
+2062
+2063
+2064
+2065
+2066
+2067
+2068
+2069
+2070
+2071
+2072
+2073
+2074
+2075
+2076
+2077
+2078
+2079
+2080
+2081
+2082
+2083
+2084
+2085
+2086
+2087
+2088
+2089
+2090
+2091
+2092
+2093
+2094
+2095
+2096
+2097
+2098
+2099
+2100
+2101
+2102
+2103
+2104
+2105
+2106
+2107
+2108
+2109
+2110
+2111
+2112
+2113
+2114
+2115
+2116
+2117
+2118
+2119
+2120
+2121
+2122
+2123
+2124
+2125
+2126
+2127
+2128
+2129
+2130
+2131
+2132
+2133
+2134
+2135
+2136
+2137
+2138
+2139
+2140
+2141
+2142
+2143
+2144
+2145
+2146
+2147
+2148
+2149
+2150
+2151
+2152
+2153
+2154
+2155
+2156
+2157
+2158
+2159
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+2170
+2171
+2172
+2173
+2174
+2175
+2176
+2177
+2178
+2179
+2180
+2181
+2182
+2183
+2184
+2185
+2186
+2187
+2188
+2189
+2190
+2191
+2192
+2193
+2194
+2195
+2196
+2197
+2198
+2199
+2200
+2201
+2202
+2203
+2204
+2205
+2206
+2207
+2208
+2209
+2210
+2211
+2212
+2213
+2214
+2215
+2216
+2217
+2218
+2219
+2220
+2221
+2222
+2223
+2224
+2225
+2226
+2227
+2228
+2229
+2230
+2231
+2232
+2233
+2234
+2235
+2236
+2237
+2238
+2239
+2240
+2241
+2242
+2243
+2244
+2245
+2246
+2247
+2248
+2249
+2250
+2251
+2252
+2253
+2254
+2255
+2256
+2257
+2258
+2259
+2260
+2261
+2262
+2263
+2264
+2265
+2266
+2267
+2268
+2269
+2270
+2271
+2272
+2273
+2274
+2275
+2276
+2277
+2278
+2279
+2280
+2281
+2282
+2283
+2284
+2285
+2286
+2287
+2288
+2289
+2290
+2291
+2292
+2293
+2294
+2295
+2296
+2297
+2298
+2299
+2300
+2301
+2302
+2303
+2304
+2305
+2306
+2307
+2308
+2309
+2310
+2311
+2312
+2313
+2314
+2315
+2316
+2317
+2318
+2319
+2320
+2321
+2322
+2323
+2324
+2325
+2326
+2327
+2328
+2329
+2330
+2331
+2332
+2333
+2334
+2335
+2336
+2337
+2338
+2339
+2340
+2341
+2342
+2343
+2344
+2345
+2346
+2347
+2348
+2349
+2350
+2351
+2352
+2353
+2354
+2355
+2356
+2357
+2358
+2359
+2360
+2361
+2362
+2363
+2364
+2365
+2366
+2367
+2368
+2369
+2370
+2371
+2372
+2373
+2374
+2375
+2376
+2377
+2378
+2379
+2380
+2381
+2382
+2383
+2384
+2385
+2386
+2387
+2388
+2389
+2390
+2391
+2392
+2393
+2394
+2395
+2396
+2397
+2398
+2399
+2400
+2401
+2402
+2403
+2404
+2405
+2406
+2407
+2408
+2409
+2410
+2411
+2412
+2413
+2414
+2415
+2416
+2417
+2418
+2419
+2420
+2421
+2422
+2423
+2424
+2425
+2426
+2427
+2428
+2429
+2430
+2431
+2432
+2433
+2434
+2435
+2436
+2437
+2438
+2439
+2440
+2441
+2442
+2443
+2444
+2445
+2446
+2447
+2448
+2449
+2450
+2451
+2452
+2453
+2454
+2455
+2456
+2457
+2458
+2459
+2460
+2461
+2462
+2463
+2464
+2465
+2466
+2467
+2468
+2469
+2470
+2471
+2472
+2473
+2474
+2475
+2476
+2477
+2478
+2479
+2480
+2481
+2482
+2483
+2484
+2485
+2486
+2487
+2488
+2489
+2490
+2491
+2492
+2493
+2494
+2495
+2496
+2497
+2498
+2499
+2500
+2501
+2502
+2503
+2504
+2505
+2506
+2507
+2508
+2509
+2510
+2511
+2512
+2513
+2514
+2515
+2516
+2517
+2518
+2519
+2520
+2521
+2522
+2523
+2524
+2525
+2526
+2527
+2528
+2529
+2530
+2531
+2532
+2533
+2534
+2535
+2536
+2537
+2538
+2539
+2540
+2541
+2542
+2543
+2544
+2545
+2546
+2547
+2548
+2549
+2550
+2551
+2552
+2553
+2554
+2555
+2556
+2557
+2558
+2559
+2560
+2561
+2562
+2563
+2564
+2565
+2566
+2567
+2568
+2569
+2570
+2571
+2572
+2573
+2574
+2575
+2576
+2577
+2578
+2579
+2580
+2581
+2582
+2583
+2584
+2585
+2586
+2587
+2588
+2589
+2590
+2591
+2592
+2593
+2594
+2595
+2596
+2597
+2598
+2599
+2600
+2601
+2602
+2603
+2604
+2605
+2606
+2607
+2608
+2609
+2610
+2611
+2612
+2613
+2614
+2615
+2616
+2617
+2618
+2619
+2620
+2621
+2622
+2623
+2624
+2625
+2626
+2627
+2628
+2629
+2630
+2631
+2632
+2633
+2634
+2635
+2636
+2637
+2638
+2639
+2640
+2641
+2642
+2643
+2644
+2645
+2646
+2647
+2648
+2649
+2650
+2651
+2652
+2653
+2654
+2655
+2656
+2657
+2658
+2659
+2660
+2661
+2662
+2663
+2664
+2665
+2666
+2667
+2668
+2669
+2670
+2671
+2672
+2673
+2674
+2675
+2676
+2677
+2678
+2679
+2680
+2681
+2682
+2683
+2684
+2685
+2686
+2687
+2688
+2689
+2690
+2691
+2692
+2693
+2694
+2695
+2696
+2697
+2698
+2699
+2700
+2701
+2702
+2703
+2704
+2705
+2706
+2707
+2708
+2709
+2710
+2711
+2712
+2713
+2714
+2715
+2716
+2717
+2718
+2719
+2720
+2721
+2722
+2723
+2724
+2725
+2726
+2727
+2728
+2729
+2730
+2731
+2732
+2733
+2734
+2735
+2736
+2737
+2738
+2739
+2740
+2741
+2742
+2743
+2744
+2745
+2746
+2747
+2748
+2749
+2750
+2751
+2752
+2753
+2754
+2755
+2756
+2757
+2758
+2759
+2760
+2761
+2762
+2763
+2764
+2765
+2766
+2767
+2768
+2769
+2770
+2771
+2772
+2773
+2774
+2775
+2776
+2777
+2778
+2779
+2780
+2781
+2782
+2783
+2784
+2785
+2786
+2787
+2788
+2789
+2790
+2791
+2792
+2793
+2794
+2795
+2796
+2797
+2798
+2799
+2800
+2801
+2802
+2803
+2804
+2805
+2806
+2807
+2808
+2809
+2810
+2811
+2812
+2813
+2814
+2815
+2816
+2817
+2818
+2819
+2820
+2821
+2822
+2823
+2824
+2825
+2826
+2827
+2828
+2829
+2830
+2831
+2832
+2833
+2834
+2835
+2836
+2837
+2838
+2839
+2840
+2841
+2842
+2843
+2844
+2845
+2846
+2847
+2848
+2849
+2850
+2851
+2852
+2853
+2854
+2855
+2856
+2857
+2858
+2859
+2860
+2861
+2862
+2863
+2864
+2865
+2866
+2867
+2868
+2869
+2870
+2871
+2872
+2873
+2874
+2875
+2876
+2877
+2878
+2879
+2880
+2881
+2882
+2883
+2884
+2885
+2886
+2887
+2888
+2889
+2890
+2891
+2892
+2893
+2894
+2895
+2896
+2897
+2898
+2899
+2900
+2901
+2902
+2903
+2904
+2905
+2906
+2907
+2908
+2909
+2910
+2911
+2912
+2913
+2914
+2915
+2916
+2917
+2918
+2919
+2920
+2921
+2922
+2923
+2924
+2925
+2926
+2927
+2928
+2929
+2930
+2931
+2932
+2933
+2934
+2935
+2936
+2937
+2938
+2939
+2940
+2941
+2942
+2943
+2944
+2945
+2946
+2947
+2948
+2949
+2950
+2951
+2952
+2953
+2954
+2955
+2956
+2957
+2958
+2959
+2960
+2961
+2962
+2963
+2964
+2965
+2966
+2967
+2968
+2969
+2970
+2971
+2972
+2973
+2974
+2975
+2976
+2977
+2978
+2979
+2980
+2981
+2982
+2983
+2984
+2985
+2986
+2987
+2988
+2989
+2990
+2991
+2992
+2993
+2994
+2995
+2996
+2997
+2998
+2999
+3000
+3001
+3002
+3003
+3004
+3005
+3006
+3007
+3008
+3009
+3010
+3011
+3012
+3013
+3014
+3015
+3016
+3017
+3018
+3019
+3020
+3021
+3022
+3023
+3024
+3025
+3026
+3027
+3028
+3029
+3030
+3031
+3032
+3033
+3034
+3035
+3036
+3037
+3038
+3039
+3040
+3041
+3042
+3043
+3044
+3045
+3046
+3047
+3048
+3049
+3050
+3051
+3052
+3053
+3054
+3055
+3056
+3057
+3058
+3059
+3060
+3061
+3062
+3063
+3064
+3065
+3066
+3067
+3068
+3069
+3070
+3071
+3072
+3073
+3074
+3075
+3076
+3077
+3078
+3079
+3080
+3081
+3082
+3083
+3084
+3085
+3086
+3087
+3088
+3089
+3090
+3091
+3092
+3093
+3094
+3095
+3096
+3097
+3098
+3099
+3100
+3101
+3102
+3103
+3104
+3105
+3106
+3107
+3108
+3109
+3110
+3111
+3112
+3113
+3114
+3115
+3116
+3117
+3118
+3119
+3120
+3121
+3122
+3123
+3124
+3125
+3126
+3127
+3128
+3129
+3130
+3131
+3132
+3133
+3134
+3135
+3136
+3137
+3138
+3139
+3140
+3141
+3142
+3143
+3144
+3145
+3146
+3147
+3148
+3149
+3150
+3151
+3152
+3153
+3154
+3155
+3156
+3157
+3158
+3159
+3160
+3161
+3162
+3163
+3164
+3165
+3166
+3167
+3168
+3169
+3170
+3171
+3172
+3173
+3174
+3175
+3176
+3177
+3178
+3179
+3180
+3181
+3182
+3183
+3184
+3185
+3186
+3187
+3188
+3189
+3190
+3191
+3192
+3193
+3194
+3195
+3196
+3197
+3198
+3199
+3200
+3201
+3202
+3203
+3204
+3205
+3206
+3207
+3208
+3209
+3210
+3211
+3212
+3213
+3214
+3215
+3216
+3217
+3218
+3219
+3220
+3221
+3222
+3223
+3224
+3225
+3226
+3227
+3228
+3229
+3230
+3231
+3232
+3233
+3234
+3235
+3236
+3237
+3238
+3239
+3240
+3241
+3242
+3243
+3244
+3245
+3246
+3247
+3248
+3249
+3250
+3251
+3252
+3253
+3254
+3255
+3256
+3257
+3258
+3259
+3260
+3261
+3262
+3263
+3264
+3265
+3266
+3267
+3268
+3269
+3270
+3271
+3272
+3273
+3274
+3275
+3276
+3277
+3278
+3279
+3280
+3281
+3282
+3283
+3284
+3285
+3286
+3287
+3288
+3289
+3290
+3291
+3292
+3293
+3294
+3295
+3296
+3297
+3298
+3299
+3300
+3301
+3302
+3303
+3304
+3305
+3306
+3307
+3308
+3309
+3310
+3311
+3312
+3313
+3314
+3315
+3316
+3317
+3318
+3319
+3320
+3321
+3322
+3323
+3324
+3325
+3326
+3327
+3328
+3329
+3330
+3331
+3332
+3333
+3334
+3335
+3336
+3337
+3338
+3339
+3340
+3341
+3342
+3343
+3344
+3345
+3346
+3347
+3348
+3349
+3350
+3351
+3352
+3353
+3354
+3355
+3356
+3357
+3358
+3359
+3360
+3361
+3362
+3363
+3364
+3365
+3366
+3367
+3368
+3369
+3370
+3371
+3372
+3373
+3374
+3375
+3376
+3377
+3378
+3379
+3380
+3381
+3382
+3383
+3384
+3385
+3386
+3387
+3388
+3389
+3390
+3391
+3392
+3393
+3394
+3395
+3396
+3397
+3398
+3399
+3400
+3401
+3402
+3403
+3404
+3405
+3406
+3407
+3408
+3409
+3410
+3411
+3412
+3413
+3414
+3415
+3416
+3417
+3418
+3419
+3420
+3421
+3422
+3423
+3424
+3425
+3426
+3427
+3428
+3429
+3430
+3431
+3432
+3433
+3434
+3435
+3436
+3437
+3438
+3439
+3440
+3441
+3442
+3443
+3444
+3445
+3446
+3447
+3448
+3449
+3450
+3451
+3452
+3453
+3454
+3455
+3456
+3457
+3458
+3459
+3460
+3461
+3462
+3463
+3464
+3465
+3466
+3467
+3468
+3469
+3470
+3471
+3472
+3473
+3474
+3475
+3476
+3477
+3478
+3479
+3480
+3481
+3482
+3483
+3484
+3485
+3486
+3487
+3488
+3489
+3490
+3491
+3492
+3493
+3494
+3495
+3496
+3497
+3498
+3499
+3500
+3501
+3502
+3503
+3504
+3505
+3506
+3507
+3508
+3509
+3510
+3511
+3512
+3513
+3514
+3515
+3516
+3517
+3518
+3519
+3520
+3521
+3522
+3523
+3524
+3525
+3526
+3527
+3528
+3529
+3530
+3531
+3532
+3533
+3534
+3535
+3536
+3537
+3538
+3539
+3540
+3541
+3542
+3543
+3544
+3545
+3546
+3547
+3548
+3549
+3550
+3551
+3552
+3553
+3554
+3555
+3556
+3557
+3558
+3559
+3560
+3561
+3562
+3563
+3564
+3565
+3566
+3567
+3568
+3569
+3570
+3571
+3572
+3573
+3574
+3575
+3576
+3577
+3578
+3579
+3580
+3581
+3582
+3583
+3584
+3585
+3586
+3587
+3588
+3589
+3590
+3591
+3592
+3593
+3594
+3595
+3596
+3597
+3598
+3599
+3600
+3601
+3602
+3603
+3604
+3605
+3606
+3607
+3608
+3609
+3610
+3611
+3612
+3613
+3614
+3615
+3616
+3617
+3618
+3619
+3620
+3621
+3622
+3623
+3624
+3625
+3626
+3627
+3628
+3629
+3630
+3631
+3632
+3633
+3634
+3635
+3636
+3637
+3638
+3639
+3640
+3641
+3642
+3643
+3644
+3645
+3646
+3647
+3648
+3649
+3650
+3651
+3652
+3653
+3654
+3655
+3656
+3657
+3658
+3659
+3660
+3661
+3662
+3663
+3664
+3665
+3666
+3667
+3668
+3669
+3670
+3671
+3672
+3673
+3674
+3675
+3676
+3677
+3678
+3679
+3680
+3681
+3682
+3683
+3684
+3685
+3686
+3687
+3688
+3689
+3690
+3691
+3692
+3693
+3694
+3695
+3696
+3697
+3698
+3699
+3700
+3701
+3702
+3703
+3704
+3705
+3706
+3707
+3708
+3709
+3710
+3711
+3712
+3713
+3714
+3715
+3716
+3717
+3718
+3719
+3720
+3721
+3722
+3723
+3724
+3725
+3726
+3727
+3728
+3729
+3730
+3731
+3732
+3733
+3734
+3735
+3736
+3737
+3738
+3739
+3740
+3741
+3742
+3743
+3744
+3745
+3746
+3747
+3748
+3749
+3750
+3751
+3752
+3753
+3754
+3755
+3756
+3757
+3758
+3759
+3760
+3761
+3762
+3763
+3764
+3765
+3766
+3767
+3768
+3769
+3770
+3771
+3772
+3773
+3774
+3775
+3776
+3777
+3778
+3779
+3780
+3781
+3782
+3783
+3784
+3785
+3786
+3787
+3788
+3789
+3790
+3791
+3792
+3793
+3794
+3795
+3796
+3797
+3798
+3799
+3800
+3801
+3802
+3803
+3804
+3805
+3806
+3807
+3808
+3809
+3810
+3811
+3812
+3813
+3814
+3815
+3816
+3817
+3818
+3819
+3820
+3821
+3822
+3823
+3824
+3825
+3826
+3827
+3828
+3829
+3830
+3831
+3832
+3833
+3834
+3835
+3836
+3837
+3838
+3839
+3840
+3841
+3842
+3843
+3844
+3845
+3846
+3847
+3848
+3849
+3850
+3851
+3852
+3853
+3854
+3855
+3856
+3857
+3858
+3859
+3860
+3861
+3862
+3863
+3864
+3865
+3866
+3867
+3868
+3869
+3870
+3871
+3872
+3873
+3874
+3875
+3876
+3877
+3878
+3879
+3880
+3881
+3882
+3883
+3884
+3885
+3886
+3887
+3888
+3889
+3890
+3891
+3892
+3893
+3894
+3895
+3896
+3897
+3898
+3899
+3900
+3901
+3902
+3903
+3904
+3905
+3906
+3907
+3908
+3909
+3910
+3911
+3912
+3913
+3914
+3915
+3916
+3917
+3918
+3919
+3920
+3921
+3922
+3923
+3924
+3925
+3926
+3927
+3928
+3929
+3930
+3931
+3932
+3933
+3934
+3935
+3936
+3937
+3938
+3939
+3940
+3941
+3942
+3943
+3944
+3945
+3946
+3947
+3948
+3949
+3950
+3951
+3952
+3953
+3954
+3955
+3956
+3957
+3958
+3959
+3960
+3961
+3962
+3963
+3964
+3965
+3966
+3967
+3968
+3969
+3970
+3971
+3972
+3973
+3974
+3975
+3976
+3977
+3978
+3979
+3980
+3981
+3982
+3983
+3984
+3985
+3986
+3987
+3988
+3989
+3990
+3991
+3992
+3993
+3994
+3995
+3996
+3997
+3998
+3999
+4000
+4001
+4002
+4003
+4004
+4005
+4006
+4007
+4008
+4009
+4010
+4011
+4012
+4013
+4014
+4015
+4016
+4017
+4018
+4019
+4020
+4021
+4022
+4023
+4024
+4025
+4026
+4027
+4028
+4029
+4030
+4031
+4032
+4033
+4034
+4035
+4036
+4037
+4038
+4039
+4040
+4041
+4042
+4043
+4044
+4045
+4046
+4047
+4048
+4049
+4050
+4051
+4052
+4053
+4054
+4055
+4056
+4057
+4058
+4059
+4060
+4061
+4062
+4063
+4064
+4065
+4066
+4067
+4068
+4069
+4070
+4071
+4072
+4073
+4074
+4075
+4076
+4077
+4078
+4079
+4080
+4081
+4082
+4083
+4084
+4085
+4086
+4087
+4088
+4089
+4090
+4091
+4092
+4093
+4094
+4095
+4096
+4097
+4098
+4099
+4100
+4101
+4102
+4103
+4104
+4105
+4106
+4107
+4108
+4109
+4110
+4111
+4112
+4113
+4114
+4115
+4116
+4117
+4118
+4119
+4120
+4121
+4122
+4123
+4124
+4125
+4126
+4127
+4128
+4129
+4130
+4131
+4132
+4133
+4134
+4135
+4136
+4137
+4138
+4139
+4140
+4141
+4142
+4143
+4144
+4145
+4146
+4147
+4148
+4149
+4150
+4151
+4152
+4153
+4154
+4155
+4156
+4157
+4158
+4159
+4160
+4161
+4162
+4163
+4164
+4165
+4166
+4167
+4168
+4169
+4170
+4171
+4172
+4173
+4174
+4175
+4176
+4177
+4178
+4179
+4180
+4181
+4182
+4183
+4184
+4185
+4186
+4187
+4188
+4189
+4190
+4191
+4192
+4193
+4194
+4195
+4196
+4197
+4198
+4199
+4200
+4201
+4202
+4203
+4204
+4205
+4206
+4207
+4208
+4209
+4210
+4211
+4212
+4213
+4214
+4215
+4216
+4217
+4218
+4219
+4220
+4221
+4222
+4223
+4224
+4225
+4226
+4227
+4228
+4229
+4230
+4231
+4232
+4233
+4234
+4235
+4236
+4237
+4238
+4239
+4240
+4241
+4242
+4243
+4244
+4245
+4246
+4247
+4248
+4249
+4250
+4251
+4252
+4253
+4254
+4255
+4256
+4257
+4258
+4259
+4260
+4261
+4262
+4263
+4264
+4265
+4266
+4267
+4268
+4269
+4270
+4271
+4272
+4273
+4274
+4275
+4276
+4277
+4278
+4279
+4280
+4281
+4282
+4283
+4284
+4285
+4286
+4287
+4288
+4289
+4290
+4291
+4292
+4293
+4294
+4295
+4296
+4297
+4298
+4299
+4300
+4301
+4302
+4303
+4304
+4305
+4306
+4307
+4308
+4309
+4310
+4311
+4312
+4313
+4314
+4315
+4316
+4317
+4318
+4319
+4320
+4321
+4322
+4323
+4324
+4325
+4326
+4327
+4328
+4329
+4330
+4331
+4332
+4333
+4334
+4335
+4336
+4337
+4338
+4339
+4340
+4341
+4342
+4343
+4344
+4345
+4346
+4347
+4348
+4349
+4350
+4351
+4352
+4353
+4354
+4355
+4356
+4357
+4358
+4359
+4360
+4361
+4362
+4363
+4364
+4365
+4366
+4367
+4368
+4369
+4370
+4371
+4372
+4373
+4374
+4375
+4376
+4377
+4378
+4379
+4380
+4381
+4382
+4383
+4384
+4385
+4386
+4387
+4388
+4389
+4390
+4391
+4392
+4393
+4394
+4395
+4396
+4397
+4398
+4399
+4400
+4401
+4402
+4403
+4404
+4405
+4406
+4407
+4408
+4409
+4410
+4411
+4412
+4413
+4414
+4415
+4416
+4417
+4418
+4419
+4420
+4421
+4422
+4423
+4424
+4425
+4426
+4427
+4428
+4429
+4430
+4431
+4432
+4433
+4434
+4435
+4436
+4437
+4438
+4439
+4440
+4441
+4442
+4443
+4444
+4445
+4446
+4447
+4448
+4449
+4450
+4451
+4452
+4453
+4454
+4455
+4456
+4457
+4458
+4459
+4460
+4461
+4462
+4463
+4464
+4465
+4466
+4467
+4468
+4469
+4470
+4471
+4472
+4473
+4474
+4475
+4476
+4477
+4478
+4479
+4480
+4481
+4482
+4483
+4484
+4485
+4486
+4487
+4488
+4489
+4490
+4491
+4492
+4493
+4494
+4495
+4496
+4497
+4498
+4499
+4500
+4501
+4502
+4503
+4504
+4505
+4506
+4507
+4508
+4509
+4510
+4511
+4512
+4513
+4514
+4515
+4516
+4517
+4518
+4519
+4520
+4521
+4522
+4523
+4524
+4525
+4526
+4527
+4528
+4529
+4530
+4531
+4532
+4533
+4534
+4535
+4536
+4537
+4538
+4539
+4540
+4541
+4542
+4543
+4544
+4545
+4546
+4547
+4548
+4549
+4550
+4551
+4552
+4553
+4554
+4555
+4556
+4557
+4558
+4559
+4560
+4561
+4562
+4563
+4564
+4565
+4566
+4567
+4568
+4569
+4570
+4571
+4572
+4573
+4574
+4575
+4576
+4577
+4578
+4579
+4580
+4581
+4582
+4583
+4584
+4585
+4586
+4587
+4588
+4589
+4590
+4591
+4592
+4593
+4594
+4595
+4596
+4597
+4598
+4599
+4600
+4601
+4602
+4603
+4604
+4605
+4606
+4607
+4608
+4609
+4610
+4611
+4612
+4613
+4614
+4615
+4616
+4617
+4618
+4619
+4620
+4621
+4622
+4623
+4624
+4625
+4626
+4627
+4628
+4629
+4630
+4631
+4632
+4633
+4634
+4635
+4636
+4637
+4638
+4639
+4640
+4641
+4642
+4643
+4644
+4645
+4646
+4647
+4648
+4649
+4650
+4651
+4652
+4653
+4654
+4655
+4656
+4657
+4658
+4659
+4660
+4661
+4662
+4663
+4664
+4665
+4666
+4667
+4668
+4669
+4670
+4671
+4672
+4673
+4674
+4675
+4676
+4677
+4678
+4679
+4680
+4681
+4682
+4683
+4684
+4685
+4686
+4687
+4688
+4689
+4690
+4691
+4692
+4693
+4694
+4695
+4696
+4697
+4698
+4699
+4700
+4701
+4702
+4703
+4704
+4705
+4706
+4707
+4708
+4709
+4710
+4711
+4712
+4713
+4714
+4715
+4716
+4717
+4718
+4719
+4720
+4721
+4722
+4723
+4724
+4725
+4726
+4727
+4728
+4729
+4730
+4731
+4732
+4733
+4734
+4735
+4736
+4737
+4738
+4739
+4740
+4741
+4742
+4743
+4744
+4745
+4746
+4747
+4748
+4749
+4750
+4751
+4752
+4753
+4754
+4755
+4756
+4757
+4758
+4759
+4760
+4761
+4762
+4763
+4764
+4765
+4766
+4767
+4768
+4769
+4770
+4771
+4772
+4773
+4774
+4775
+4776
+4777
+4778
+4779
+4780
+4781
+4782
+4783
+4784
+4785
+4786
+4787
+4788
+4789
+4790
+4791
+4792
+4793
+4794
+4795
+4796
+4797
+4798
+4799
+4800
+4801
+4802
+4803
+4804
+4805
+4806
+4807
+4808
+4809
+4810
+4811
+4812
+4813
+4814
+4815
+4816
+4817
+4818
+4819
+4820
+4821
+4822
+4823
+4824
+4825
+4826
+4827
+4828
+4829
+4830
+4831
+4832
+4833
+4834
+4835
+4836
+4837
+4838
+4839
+4840
+4841
+4842
+4843
+4844
+4845
+4846
+4847
+4848
+4849
+4850
+4851
+4852
+4853
+4854
+4855
+4856
+4857
+4858
+4859
+4860
+4861
+4862
+4863
+4864
+4865
+4866
+4867
+4868
+4869
+4870
+4871
+4872
+4873
+4874
+4875
+4876
+4877
+4878
+4879
+4880
+4881
+4882
+4883
+4884
+4885
+4886
+4887
+4888
+4889
+4890
+4891
+4892
+4893
+4894
+4895
+4896
+4897
+4898
+4899
+4900
+4901
+4902
+4903
+4904
+4905
+4906
+4907
+4908
+4909
+4910
+4911
+4912
+4913
+4914
+4915
+4916
+4917
+4918
+4919
+4920
+4921
+4922
+4923
+4924
+4925
+4926
+4927
+4928
+4929
+4930
+4931
+4932
+4933
+4934
+4935
+4936
+4937
+4938
+4939
+4940
+4941
+4942
+4943
+4944
+4945
+4946
+4947
+4948
+4949
+4950
+4951
+4952
+4953
+4954
+4955
+4956
+4957
+4958
+4959
+4960
+4961
+4962
+4963
+4964
+4965
+4966
+4967
+4968
+4969
+4970
+4971
+4972
+4973
+4974
+4975
+4976
+4977
+4978
+4979
+4980
+4981
+4982
+4983
+4984
+4985
+4986
+4987
+4988
+4989
+4990
+4991
+4992
+4993
+4994
+4995
+4996
+4997
+4998
+4999
+Stopping
Index: src/tests/.expect/concurrent/sched-ext-statment.txt
===================================================================
--- src/tests/.expect/concurrent/sched-ext-statment.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/.expect/concurrent/sched-ext-statment.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,702 @@
+Starting
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Statement
+Stopping
Index: src/tests/.expect/sched-ext-else.txt
===================================================================
--- src/tests/.expect/sched-ext-else.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/.expect/sched-ext-else.txt	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,9 @@
+Starting
+Step 0
+else called
+Step 1
+else called
+Step 2
+else called
+Step 3
+Done
Index: src/tests/Makefile.am
===================================================================
--- src/tests/Makefile.am	(revision 201aeb9b7c42eb7c7aa8bc065247bffda4932b33)
+++ src/tests/Makefile.am	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -22,5 +22,5 @@
 concurrent = yes
 quick_test += coroutine thread monitor
-concurrent_test = coroutine thread monitor multi-monitor sched-int-barge sched-int-block sched-int-disjoint sched-int-wait sched-ext sched-ext-multi preempt
+concurrent_test = coroutine thread monitor multi-monitor sched-int-block sched-int-disjoint sched-int-wait sched-ext-barge sched-ext-else sched-ext-parse sched-ext-statment preempt
 else
 concurrent=no
@@ -104,4 +104,7 @@
 	${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@}
 
+sched-ext-parse : sched-ext-parse.c @CFA_BINDIR@/@CFA_NAME@
+	${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@}
+
 gmp : gmp.c @CFA_BINDIR@/@CFA_NAME@
 	${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@}
Index: src/tests/Makefile.in
===================================================================
--- src/tests/Makefile.in	(revision 201aeb9b7c42eb7c7aa8bc065247bffda4932b33)
+++ src/tests/Makefile.in	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -320,5 +320,5 @@
 @BUILD_CONCURRENCY_TRUE@concurrent = yes
 @BUILD_CONCURRENCY_FALSE@concurrent_test = 
-@BUILD_CONCURRENCY_TRUE@concurrent_test = coroutine thread monitor multi-monitor sched-int-barge sched-int-block sched-int-disjoint sched-int-wait sched-ext sched-ext-multi preempt
+@BUILD_CONCURRENCY_TRUE@concurrent_test = coroutine thread monitor multi-monitor sched-int-block sched-int-disjoint sched-int-wait sched-ext-barge sched-ext-else sched-ext-parse sched-ext-statment preempt
 
 # applies to both programs
@@ -856,4 +856,7 @@
 	${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@}
 
+sched-ext-parse : sched-ext-parse.c @CFA_BINDIR@/@CFA_NAME@
+	${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@}
+
 gmp : gmp.c @CFA_BINDIR@/@CFA_NAME@
 	${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@}
Index: src/tests/sched-ext-barge.c
===================================================================
--- src/tests/sched-ext-barge.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/sched-ext-barge.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,85 @@
+#include <fstream>
+#include <kernel>
+#include <monitor>
+#include <stdlib>
+#include <thread>
+
+#include <stdbool.h>
+
+static const unsigned long N = 5_000ul;
+
+enum state_t { WAITFOR, CALL, BARGE };
+
+monitor global_t {
+	bool done;
+	bool started;
+	state_t state;
+};
+
+void ?{} ( global_t & this ) {
+	this.done = false;
+	this.started = false;
+	this.state = BARGE;
+}
+
+void ^?{} ( global_t & mutex this ) {}
+
+global_t global;
+
+bool barge( global_t & mutex this ) {
+	this.state = BARGE;
+	return !this.done;
+}
+
+thread barger_t {};
+void main( barger_t & this ) {
+	yield();
+	while( barge( global ) ) { yield(((unsigned)rand48()) % 10); }
+}
+
+bool do_call( global_t & mutex this ) {
+	yield(((unsigned)rand48()) % 10);
+	if( this.state != WAITFOR && !this.done && this.started ) {
+		serr | "Barging before caller detected" | endl;
+	}
+
+	this.state = CALL;
+	return !this.done;
+}
+
+thread caller_t {};
+void main( caller_t & this ) {
+	while( do_call(global) ) { yield(((unsigned)rand48()) % 10); }
+}
+
+void do_wait( global_t & mutex this ) {
+	this.started = true;
+	for( int i = 0; i < N; i++) {
+		yield(((unsigned)rand48()) % 10);
+		this.state = WAITFOR;
+		waitfor(do_call, this) {
+			sout | i | endl;
+		}
+
+		if( this.state != CALL ) {
+			serr | "Barging after caller detected" | endl;
+		}
+	}
+
+	this.done = true;
+}
+
+thread waiter_t{};
+void main( waiter_t & this ) {
+	do_wait(global);
+}
+
+int main() {
+	sout | "Starting" | endl;
+	{
+		barger_t bargers[17];
+		caller_t callers[7];
+		waiter_t waiters;
+	}
+	sout | "Stopping" | endl;
+}
Index: src/tests/sched-ext-else.c
===================================================================
--- src/tests/sched-ext-else.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/sched-ext-else.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,48 @@
+#include <fstream>
+#include <monitor>
+
+#include <stdbool.h>
+
+monitor M {};
+
+void notcalled( M & mutex m ) {
+	abort();
+}
+
+void test( M & mutex m ) {
+	int i = 0;
+	sout | "Starting" | endl;
+
+	when( false ) waitfor( notcalled, m );
+
+	sout | "Step" | i++ | endl;
+
+	waitfor( notcalled, m ); or else {
+		sout | "else called" | endl;
+	}
+
+	sout | "Step" | i++ | endl;
+
+	when( true ) waitfor( notcalled, m ); or when( true ) else {
+		sout | "else called" | endl;
+	}
+
+	sout | "Step" | i++ | endl;
+
+	when( false ) waitfor( notcalled, m ); or when( true ) else {
+		sout | "else called" | endl;
+	}
+
+	sout | "Step" | i++ | endl;
+
+	when( false ) waitfor( notcalled, m ); or when( false ) else {
+		sout | "else called" | endl;
+	}
+
+	sout | "Done" | endl;
+}
+
+int main() {
+	M m;
+	test(m);
+}
Index: src/tests/sched-ext-parse.c
===================================================================
--- src/tests/sched-ext-parse.c	(revision 201aeb9b7c42eb7c7aa8bc065247bffda4932b33)
+++ src/tests/sched-ext-parse.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -80,5 +80,5 @@
 		16;
 	}
- 	or waitfor( f1, a, a ) {
+ 	or waitfor( f2, a, a ) {
 		17;
 	}
Index: src/tests/sched-ext-statment.c
===================================================================
--- src/tests/sched-ext-statment.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
+++ src/tests/sched-ext-statment.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -0,0 +1,136 @@
+#include <fstream>
+#include <kernel>
+#include <monitor>
+#include <thread>
+
+#include <stdbool.h>
+
+monitor M {
+	int index;
+	int last_val;
+	int calls[7];
+};
+
+volatile bool start = false;
+
+void ?{}( M & this ) {
+	this.index = 0;
+	this.last_val = 0;
+	for( int i = 0; i < 7; i++ ) {
+		this.calls[i] = 100; //10_000;
+	}
+}
+
+void ^?{} ( M &  mutex this ) {}
+
+int get_index( M & mutex this ) {
+	this.index += 1;
+	return this.index;
+}
+
+bool call1( M & mutex this ) {
+	this.last_val = 1;
+	this.calls[0] -= 1;
+	return this.calls[0] > 0;
+}
+
+bool call2( M & mutex this ) {
+	this.last_val = 2;
+	this.calls[1] -= 1;
+	return this.calls[1] > 0;
+}
+
+bool call3( M & mutex this ) {
+	this.last_val = 3;
+	this.calls[2] -= 1;
+	return this.calls[2] > 0;
+}
+
+bool call4( M & mutex this ) {
+	this.last_val = 4;
+	this.calls[3] -= 1;
+	return this.calls[3] > 0;
+}
+
+bool call5( M & mutex this ) {
+	this.last_val = 5;
+	this.calls[4] -= 1;
+	return this.calls[4] > 0;
+}
+
+bool call6( M & mutex this ) {
+	this.last_val = 6;
+	this.calls[5] -= 1;
+	return this.calls[5] > 0;
+}
+
+bool call7( M & mutex this ) {
+	this.last_val = 7;
+	this.calls[6] -= 1;
+	return this.calls[6] > 0;
+}
+
+M m;
+thread caller{};
+
+bool call( int index ) {
+	switch( index ) {
+		case 1: return call1( m );
+		case 2: return call2( m );
+		case 3: return call3( m );
+		case 4: return call4( m );
+		case 5: return call5( m );
+		case 6: return call6( m );
+		case 7: return call7( m );
+		default :
+			serr | "Incorrect index" | index | endl;
+			abort();
+	}
+}
+
+void main( caller & this ) {
+	int index = get_index( m );
+	while( !start ) yield();
+	while( call( index ) );
+}
+
+void do_wait( M & mutex this ) {
+	bool done = false;
+
+	start = true;
+
+	while( !done ) {
+		   waitfor( get_index, this );
+		or waitfor( call1, this ) { sout | "Statement" | endl; if( this.last_val != 1 ) { serr | "Incorrect index: expected" | 1 | "got" | this.last_val | endl; } }
+		or waitfor( call2, this ) { sout | "Statement" | endl; if( this.last_val != 2 ) { serr | "Incorrect index: expected" | 2 | "got" | this.last_val | endl; } }
+		or waitfor( call3, this ) { sout | "Statement" | endl; if( this.last_val != 3 ) { serr | "Incorrect index: expected" | 3 | "got" | this.last_val | endl; } }
+		or waitfor( call4, this ) { sout | "Statement" | endl; if( this.last_val != 4 ) { serr | "Incorrect index: expected" | 4 | "got" | this.last_val | endl; } }
+		or waitfor( call5, this ) { sout | "Statement" | endl; if( this.last_val != 5 ) { serr | "Incorrect index: expected" | 5 | "got" | this.last_val | endl; } }
+		or waitfor( call6, this ) { sout | "Statement" | endl; if( this.last_val != 6 ) { serr | "Incorrect index: expected" | 6 | "got" | this.last_val | endl; } }
+		or waitfor( call7, this ) { sout | "Statement" | endl; if( this.last_val != 7 ) { serr | "Incorrect index: expected" | 7 | "got" | this.last_val | endl; } }
+
+		done = true;
+		for( int i = 0; i < 7; i++ ) {
+			if( this.calls[i] > 0 ) {
+				done = false;
+				break;
+			}
+		}
+	}
+}
+
+thread waiter{};
+
+void main( waiter & this ) {
+	do_wait( m );
+}
+
+int main() {
+	processor p[2];
+	sout | "Starting" | endl;
+	{
+		caller c[7];
+		waiter w;
+	}
+	sout | "Stopping" | endl;
+}
Index: src/tests/sched-ext.c
===================================================================
--- src/tests/sched-ext.c	(revision 201aeb9b7c42eb7c7aa8bc065247bffda4932b33)
+++ src/tests/sched-ext.c	(revision 5dc26f53998df11e71288f9072c8d8f0ff8eafbf)
@@ -45,5 +45,5 @@
 	acceptable.monitors      = &a;
 
-	__accept_internal( 1, &acceptable );
+	__waitfor_internal( 1, &acceptable );
 
 	sout | "Accepted" | endl;
