Non credo di voler distribuire il sorgente, ma posso comunque spiegarti il principio di funzionamento, tralaltro molto semplice

Boolean