You can connect each input to one timer with say a 0.2s time-out. The timer contact will be the one that is actually used to trigger a process. As long as the input is bouncing with cycle time of less than 0.2s, the timer will be reset repeatedly. Only when the bouncing stop then the timer has a chance to time out and the its contact become a debounced input to the program.