| 
					
				 | 
			
			
				@@ -75,26 +75,13 @@ class PromiseUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const seq = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'a', 'b', 'c', 'd', 'e', 'f', 'g', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'h', 'i', 'j', 'k', 'l', 'm', 'n', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'o', 'p', 'q', 'r', 's', 't', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'u', 'v', 'w', 'x', 'y', 'z', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'A', 'B', 'C', 'D', 'E', 'F', 'G', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'H', 'I', 'J', 'K', 'L', 'M', 'N', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'O', 'P', 'Q', 'R', 'S', 'T', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'U', 'V', 'W', 'X', 'Y', 'Z' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const seq = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const shortIdSeq = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    'a', 'b', 'c', 'd', 'e', 'f', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const shortIdSeq = 'abcdef0123456789'.split(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class RandomUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     static randomIntRange(min, max) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return parseInt(Math.random() * (max - min) + min, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Math.floor(Math.random() * (max - min) + min); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     static randomInt(n) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -116,6 +103,10 @@ class RandomUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static randowShortId() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.randomShortIdSeq(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     static randomLowerAndNum(count) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let str = ''; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -156,12 +147,6 @@ class RandomUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    static randowShortId() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let str = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        str += this.randomShortIdSeq(8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     static randomShadowsocksPassword() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let array = new Uint8Array(32); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         window.crypto.getRandomValues(array); 
			 |