| 
					
				 | 
			
			
				@@ -14,19 +14,19 @@ export enum JobStatus { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected name: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _name: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected module: Modules[keyof Modules]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _module: Modules[keyof Modules]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected jobFunction: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _jobFunction: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected payload: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _payload: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected context: JobContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _context: JobContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected priority: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _priority: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected longJob?: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _longJob?: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		title: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		progress?: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			data: unknown; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,19 +35,19 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected uuid: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _uuid: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected status: JobStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _status: JobStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected createdAt: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _createdAt: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected startedAt?: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _startedAt?: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected completedAt?: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _completedAt?: number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected logBook: LogBook; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _logBook: LogBook; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected jobStatistics: JobStatistics; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _jobStatistics: JobStatistics; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * Job 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -63,21 +63,21 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		payload: any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		options?: Omit<JobOptions, "runDirectly"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.priority = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._priority = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		const module = ModuleManager.getPrimaryInstance().getModule(moduleName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (!module) throw new Error("Module not found."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.module = module; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._module = module; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.jobFunction = this.module.getJob(this.name).method; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._jobFunction = this._module.getJob(this._name).method; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.payload = payload; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._payload = payload; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.logBook = LogBook.getPrimaryInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._logBook = LogBook.getPrimaryInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.jobStatistics = JobStatistics.getPrimaryInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.jobStatistics.updateStats(this.getName(), "added"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._jobStatistics = JobStatistics.getPrimaryInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._jobStatistics.updateStats(this.getName(), "added"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		let contextOptions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -86,18 +86,18 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (session || socketId) contextOptions = { session, socketId }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (priority) this.priority = priority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (priority) this._priority = priority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (longJob) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				this.longJob = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this._longJob = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					title: longJob 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.context = new JobContext(this, contextOptions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._context = new JobContext(this, contextOptions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/* eslint-disable no-bitwise, eqeqeq */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			/[xy]/g, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			c => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				const r = (Math.random() * 16) | 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -105,8 +105,8 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				return v.toString(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.status = JobStatus.QUEUED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.createdAt = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._status = JobStatus.QUEUED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._createdAt = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -115,7 +115,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @returns module.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public getName() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return `${this.module.getName()}.${this.name}`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return `${this._module.getName()}.${this._name}`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -124,7 +124,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @returns priority 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public getPriority() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.priority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return this._priority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -133,7 +133,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @returns UUID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public getUuid() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.uuid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return this._uuid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,7 +142,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @returns status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public getStatus() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return this._status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -150,8 +150,8 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @param status - Job status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	protected setStatus(status: JobStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.status = status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private _setStatus(status: JobStatus) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._status = status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -160,7 +160,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @returns module 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public getModule() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return this.module; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return this._module; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -169,12 +169,12 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @returns Promise 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public async execute() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (this.startedAt) throw new Error("Job has already been executed."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.setStatus(JobStatus.ACTIVE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.startedAt = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (this._startedAt) throw new Error("Job has already been executed."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._setStatus(JobStatus.ACTIVE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._startedAt = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			this.jobFunction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				.apply(this.module, [this.context, this.payload]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this._jobFunction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				.apply(this._module, [this._context, this._payload]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// eslint-disable-next-line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// @ts-ignore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				.then(response => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -182,7 +182,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						message: "Job completed successfully", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						type: "success" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.jobStatistics.updateStats( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._jobStatistics.updateStats( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						this.getName(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						"successful" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -193,19 +193,19 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						message: `Job failed with error "${err}"`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						type: "error" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.jobStatistics.updateStats(this.getName(), "failed"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._jobStatistics.updateStats(this.getName(), "failed"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					throw err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				.finally(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.completedAt = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.jobStatistics.updateStats(this.getName(), "total"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (this.startedAt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						this.jobStatistics.updateStats( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._completedAt = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._jobStatistics.updateStats(this.getName(), "total"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (this._startedAt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						this._jobStatistics.updateStats( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							this.getName(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							"averageTime", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this.completedAt - this.startedAt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							this._completedAt - this._startedAt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.setStatus(JobStatus.COMPLETED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._setStatus(JobStatus.COMPLETED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -223,7 +223,7 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			...(typeof log === "string" ? { message: log } : log) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.logBook.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this._logBook.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			category: this.getName(), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -245,10 +245,10 @@ export default class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			priority: this.getPriority(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			name: this.getName(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			status: this.getStatus(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			moduleStatus: this.module.getStatus(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			createdAt: this.createdAt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			startedAt: this.startedAt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			completedAt: this.completedAt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			moduleStatus: this._module.getStatus(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			createdAt: this._createdAt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			startedAt: this._startedAt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			completedAt: this._completedAt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |