| 
						
						
							
								
							
						
						
					 | 
					@ -14,16 +14,31 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define C_2x1 (uint64_t)0x7002 // 111 000 000 000 010
 | 
					 | 
					 | 
					#define C_2x1 (uint64_t)0x7002 // 111 000 000 000 010
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define C_2x2 (uint64_t)0x3F03C // 111 111 000 000 111 100
 | 
					 | 
					 | 
					#define C_2x2 (uint64_t)0x3F03C // 111 111 000 000 111 100
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  C_1x1            |  C_1x2            |  C_2x1            |  C_2x2
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  011 000 000 000  |  001 111 000 000  |  010 000 000 000  |  100 111 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  000 000 000 000  |  000 000 000 000  |  111 000 000 000  |  111 111 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  ...              |  ...              |  ...              |  ...
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_1x1 (uint64_t)0x7 // 111
 | 
					 | 
					 | 
					#define F_1x1 (uint64_t)0x7 // 111
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_1x2 (uint64_t)0x3F // 111 111
 | 
					 | 
					 | 
					#define F_1x2 (uint64_t)0x3F // 111 111
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_2x1 (uint64_t)0x7007 // 111 000 000 000 111
 | 
					 | 
					 | 
					#define F_2x1 (uint64_t)0x7007 // 111 000 000 000 111
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_2x2 (uint64_t)0x3F03F // 111 111 000 000 111 111
 | 
					 | 
					 | 
					#define F_2x2 (uint64_t)0x3F03F // 111 111 000 000 111 111
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  F_1x1            |  F_1x2            |  F_2x1            |  F_2x2
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  111 000 000 000  |  111 111 000 000  |  111 000 000 000  |  111 111 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  000 000 000 000  |  000 000 000 000  |  111 000 000 000  |  111 111 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  ...              |  ...              |  ...              |  ...
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_1x1_R (uint64_t)0x38 // 111 000
 | 
					 | 
					 | 
					#define F_1x1_R (uint64_t)0x38 // 111 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_1x1_D (uint64_t)0x7000 // 111 000 000 000 000
 | 
					 | 
					 | 
					#define F_1x1_D (uint64_t)0x7000 // 111 000 000 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_2x1_R (uint64_t)0x38038 // 111 000 000 000 111 000
 | 
					 | 
					 | 
					#define F_2x1_R (uint64_t)0x38038 // 111 000 000 000 111 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					#define F_1x2_D (uint64_t)0x3F000 // 111 111 000 000 000 000
 | 
					 | 
					 | 
					#define F_1x2_D (uint64_t)0x3F000 // 111 111 000 000 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  F_1x1_R          |  F_1x1_D          |  F_2x1_R          |  F_1x2_D
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  000 111 000 000  |  000 000 000 000  |  000 111 000 000  |  000 000 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  000 000 000 000  |  111 000 000 000  |  000 111 000 000  |  111 111 000 000
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					///  ...              |  ...              |  ...              |  ...
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					class Common { | 
					 | 
					 | 
					class Common { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					public: | 
					 | 
					 | 
					public: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    static uint32_t range_reverse(uint32_t bin); | 
					 | 
					 | 
					    static uint32_t range_reverse(uint32_t bin); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |