| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import sys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import copy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import os 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import tkinter as tk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import traceback 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -37,6 +38,14 @@ import tool.movewin as movewin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 movewin.check_is_started("FX3","/opt/LibreLight/Xdesk/tkgui/FX3.py") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+console = chat.Client() #port=50001) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def jsend(jdatas): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    jtxt = jdatas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #jtxt = json.dumps(jtxt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #jtxt = jtxt.encode() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.send( jtxt ) #b"\00 ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def _add_space(frame,r,c): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     b = tk.Canvas(frame,bg="black", height=2,bd=0,width=6,highlightthickness=0) #,bd="black") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     b.grid(row=r, column=c, sticky=tk.W+tk.E) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -140,17 +149,47 @@ class tk_event_fx(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             out = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             FIX=3001 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             z=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            xxxyyy = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for i in _fx3_jdata: #info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 #i["event"] = "FX3" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if i["ATTR"].strip(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    out.append( {"event":"FX3","DMX":"123","VALUE":"","FIX":str(FIX+z),"FX3":i} ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                print(i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                z+=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                attr = i["ATTR"].strip() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if attr: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    #out.append(  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    xxxyyy[attr] = {"event":"FX3","MODE":"FX","DMX":176+z,"DMX-FINE":-199,"FIX":"","ATTR":"","VALUE":None,"FX2":i}  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #print(i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                z+=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            patch = get_patch() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            programmer=get_programmer() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            out=[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            z=106 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for k,v in enumerate(programmer): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                attr = v["ATTR"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if attr in xxxyyy: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tmp = copy.deepcopy(xxxyyy[attr]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tmp["ATTR"] = attr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ID = v["ID"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tmp["FIX"] = ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tmp["DMX"] = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for p in patch: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        print(p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ID == p["FIX"]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if attr in p["ATTR"]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                tmp["DMX"]=p["ATTR"][attr]-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    out.append(tmp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cprint("432 FX3:",xxxyyy[attr],color="yellow") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    z+=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             msg=json.dumps(out).encode("utf-8") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cprint("SEND FX3:",msg,color="green") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cmd_client.send(msg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cprint("SEND FX3:",color="green") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for i in out: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cprint(" ", i,color="green") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #msg=json.dumps([i]).encode("utf-8") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #jsend(msg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #cmd_client.send(msg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jsend(msg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self.attr not in fx3_grid: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fx_data = {} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -253,9 +292,9 @@ def motion(code="circle"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "circle": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("SIN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("sinus") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("COS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("cosinus") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "SIZE:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val(100) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -267,11 +306,16 @@ def motion(code="circle"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "BASE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "pan": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("SIN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("sinus") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("COS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("cosinus") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:3"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val("-") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:4"  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -286,11 +330,16 @@ def motion(code="circle"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "BASE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "tilt": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("SIN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("sinus") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("COS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("cosinus") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:3"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val("-") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:4"  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -306,6 +355,10 @@ def motion(code="circle"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "BASE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MAIN.meta.fx3_grid[k].val(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        k = "WIDTH:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val(255) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def size(val=255): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for i in range(4): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -362,19 +415,19 @@ def rgb(code="red"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "red": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:1"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("FD") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("fade") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "green": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:2"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("FD") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("fade") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "blue": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:3"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("FD") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("fade") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "blue": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:3"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("FD") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("fade") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if code == "blue": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         k = "TYPE:3"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MAIN.meta.fx3_grid[k].val("FD") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MAIN.meta.fx3_grid[k].val("fade") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     __refresh_fx3() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -710,7 +763,7 @@ class Gui(): # DUMMY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 data = json.loads(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 self.METAS[nr] = data #.append(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 #print(time.time()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                print("     _REFRESH_EXEC_SINGLE",nr,b,data["LABEL"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                print("     _REFRESH_EXEC_sinusGLE",nr,b,data["LABEL"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 print("  ER1R mc...",e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -784,6 +837,69 @@ def focus_out(event=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 root.bind("<FocusIn>", focus_in) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 root.bind("<FocusOut>", focus_out) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import memcache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    mc = memcache.Client(['127.0.0.1:11211'], debug=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+except: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    mc = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def get_programmer(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if mc is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DATA=mc.get("fix")#cmd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    out=[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for k,v in DATA.items(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ok=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for kk,vv in v["ATTRIBUT"].items(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if kk.startswith("_"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #print(":",k,v,kk,vv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if vv["ACTIVE"]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #print(":",k,v,kk,vv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #print(k,v,v["NAME"],kk,vv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tmp={"ID":k,"NAME":v["NAME"],"ATTR":kk,"NR":vv["NR"]} #,"FX3":vv["FX2"]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                print("tmp",tmp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                out.append(tmp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ok=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ok: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return out 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#import memcache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#import json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#mc = memcache.Client(['127.0.0.1:11211'], debug=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def get_patch(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if mc is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    index=mc.get("PATCH-INDEX") #index")#cmd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    index=json.loads(index) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    out = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for v in index: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #print() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        patch=mc.get("PATCH-"+str(v)) #index")#cmd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        patch=json.loads(patch) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        u =  patch["UNIVERS"] #* 512 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        d =  patch["DMX"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attr = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for a in patch["ATTRIBUT"]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nr =patch["ATTRIBUT"][a]["NR"]  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if nr <= 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #print(v,u,d,nr,a) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if a == "END": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if a.startswith("_"): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nr = nr + d + u*512 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            attr[a] = nr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tmp = {"FIX":v,"UNI":u,"DMX":d,"NR":nr,"ATTR":attr} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        out.append(tmp ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(tmp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return out 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def _refr_loop(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     time.sleep(3) 
			 |