#include <bits/stdc++.h>
using namespace std;
int main() {
  int q;
  while (cin >> q) {
    int cas;
    map<long long int, long long int> Ma;
    for (int i = 0; i < q; i++) {
      cin >> cas;
      if (cas == 1) {
        long long int v, u, w;
        cin >> v >> u >> w;
        while (1) {
          if (v > u) {
            Ma[v] += w;
            v /= 2;
            if (v == u) break;
          } else if (v < u) {
            Ma[u] += w;
            u /= 2;
            if (v == u) break;
          }
        }
      }
      if (cas == 2) {
        long long int v, u;
        long long int ans = 0;
        cin >> v >> u;
        while (1) {
          if (v > u) {
            ans += Ma[v];
            v /= 2;
            if (v == u) break;
          } else if (v < u) {
            ans += Ma[u];
            u /= 2;
            if (v == u) break;
          }
        }
        cout << ans << endl;
      }
    }
  }
  return 0;
}
