exploit break_lock(a)=
	preconditions:
		quality:a,lock=true;
	postconditions:
		update quality:a,lock=false;
.

exploit lock(a)=
	preconditions:
		quality:a,lock=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit firewall(a)=
	preconditions:
		quality:a,firewall_on=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit def(a)=
	preconditions:
		quality:a,defaults=true;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit insec_transmission(a)=
	preconditions:
		quality:a,https=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit insec_data(a)=
	preconditions:
		quality:a,encryption=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit virus(a)=
	preconditions:
		quality:a,antivirus=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit updates(a)=
	preconditions:
		quality:a,pc_updates=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit AC(a)=
	preconditions:
		quality:a,access_control=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit ID(a)=
	preconditions:
		quality:a,unique_ID=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit logs(a)=
	preconditions:
		quality:a,logging=false;
	postconditions:
		update quality:a,compliance_vios+=1;
.

exploit power_outage(a)=
	preconditions:
		quality:a,firewall_on=true;
	postconditions:
		update quality:a,firewall_on=false;
.

exploit enc_expir(a)=
	preconditions:
		quality:a,encryption=true;
	postconditions:
		update quality:a,encryption=false;
.

exploit break_in(a)=
	preconditions:
		quality:a,lock=false;
	postconditions:
		insert quality:a,malicious_actor=true;
.		

exploit reset_router(a)=
	preconditions:
		quality:a,malicious_actor=true;
	postconditions:
		update quality:a,defaults=true;
.
