OpenBSD emphasizes very high standards in all areas. Security policies include disabling all non-essential services and having sane initial settings; and integrated cryptography (originally made easier due to relaxed Canadian export laws relative to the United States), full public disclosure of all security flaws discovered; thoroughly auditing code for bugs and security issues; various security features, including the W^X page protection technology and heavy use of randomization to mitigate attacks. Coding approaches include an emphasis on searching for similar issues throughout the code base if any code issue is identified. Concerning software freedom, OpenBSD prefers the BSD or ISC license, with the GPL acceptable only for existing software which is impractical to replace, such as the GNU Compiler Collection. NDAs are never considered acceptable. In common with its parent, NetBSD, OpenBSD strives to run on a wide variety of hardware. Where licenses conflict with OpenBSD's philosophy, the OpenBSD team has re-implemented major pieces of software from scratch, which have often become the standard used within other versions of BSD. Examples include the pf packet filter, new privilege separation techniques used to safeguard tools such as tcpdump and tmux, much of the OpenSSH codebase, and replacing GPL licensed tools such as diff, grep and pkg-config with ISC or BSD licensed equivalents.